一种基于力觉学习的机器人多风格书法临摹方法与流程

文档序号:17495346发布日期:2019-04-23 21:15阅读:373来源:国知局
一种基于力觉学习的机器人多风格书法临摹方法与流程

本发明涉及机器人轨迹规划领域,更具体地,涉及一种基于力觉学习的机器人多风格书法临摹方法。



背景技术:

书法作为中华传统艺术中最为重要的一个组成部分,书法的传承与发展的重要性不言而喻。然而随着智能制造的推进,机器人技术快速发展,工业机器人作为一种面向工业领域的多自由度的机械装置,可以进行编程并自动执行特定的动作,在近年来已经大量应用于生产中,可以在较为恶劣的环境下进行喷涂、焊接和铣削等工作,具有较为广泛的应用前景。目前书法机器人仅通过图像分析来对机器人进行轨迹规划,没有考虑到下笔力度对书法效果的影响,为了更好的保留不同风格的书法特征,亟需一种结合力觉的机器人书法方法。



技术实现要素:

为了解决上述问题,本发明旨在公开一种基于力觉学习的机器人多风格书法临摹方法,尤指一种基于机器学习对书法风格的分类与提取轨迹特征、书法力信息提取与机器人复现书法过程的解决方法。

为了实现上述目的,本发明所采用的技术方案主要包括以下过程:

步骤1、建立工业机器人的运动学模型,得到工业机器人的运动学正解与逆解,并设计一种能够固定在力传感器上的毛笔夹持工具,装配在机器人末端法兰盘上,并通过四点法标定得到机器人工具坐标系,通过三点法标定得到机器人工件坐标系;

所述一种能够固定在力传感器上的毛笔夹持工具,其三维模型参考图2,法兰盘(1)可以固定在力传感器的感应区域的法兰盘上,松紧夹(2)可以通过螺栓螺母的松紧度调节松紧度,坐标系标定的工具坐标系中心点在毛笔笔尖处,工件坐标系中心点在宣纸的起始落笔点;

所述四点法为机器人末端装上夹持工具夹持毛笔,在机器人附近找一点,使工具中心点对准该点,保持工具中心点的位置,更换夹具的姿态,共记录四次,即可自动生成工具坐标系的参数,得到工具坐标系标定结果;

所述三点法为机器人末端装上夹持工具夹持毛笔,将毛笔笔尖对齐书写平面,通过示教三个示教点实现,第一个示教点是用户坐标系的原点,第二个示教点在x轴上,第一个示教点到第二个示教点的连线是x轴,所至方向为x正方向;第三个示教点在y轴的正方向,示教完这三个点即可自动生成工件坐标系的参数,得到工件坐标系的标定结果;

步骤2、所述的多风格标准字库是通过机器学习的多元回归算法对力传感器信号进行拟合,来建立不同书法风格下的标准字库;

所述多风格标准字库的模块,通过手持加载了夹持工具的力传感器,进行不同风格书法字体几个标准字的书写,选用的标准字须能包含该风格下大部分笔画的书写特征,例如:玉、火、玉、七、永、田、心、少、之等,并按照50至300hz的频率采集竖直方向上的力传感器的信号数据,力传感器信号数据参考图3;

通过使用机器学习库scikit-learn的sklearn.preprocessing.polynomialfeatures这个类对力传感器数据进行训练、评价,并将采集信号序列号除以采集信号的总数量来得到每个信号对应的时间百分比,从而得出力关于时间百分比的多元回归模型,并采用四个评价指标对该多元回归模型进行评价;

所述四个评价指标为:

sse=∑(actual_y-predict_y)2

公式(1)中actual_y为实际信号反馈出来的力的值,predict_y为通过该回归模型预测的值,sse为和方差,rmse为均方根,r为决定系数r-square,r2_adjusted为校正决定系数adjustedr-square;

通过机器人frame示教,记录下笔尖恰好触碰到纸面的世界坐标系位置,使机器人朝z方向向下移动,并记录下δz与fz的对应关系,并使用相同的方法得出其回归模型。至此,可以得出从开始落笔到写完提笔过程中每个时间点的下笔深度,从而建立机器人书法的多风格标准字库;

步骤3、所述书法风格识别模块通过tensorflow搭建卷积神经网络,实现书法风格识别模块;

数据集是不同书法家的碑帖中采集的数据集,该数据集包含了从十个著名书法家的碑帖中采集的图片,其中欧阳询的部分楷书书写数据集参考图4,;

所述卷积神经网络的结构由10层网络结构(不包括flatten层)组成:四个卷积层,四个池化层,两个全连接层,参考图5;

第一、三、五、七层是卷积层,卷积核的个数分别为64、128、256、512,卷积核的大小为3*3;

第二、四、六、八层是池化层,都是采用一个2*2的filter,池化策略采取的是maxpooling,即在每一个区域中寻找最大值;

第九、十层是全连接层,都加入了dropout防止过拟合,第九层使用的激活函数为relu函数,第十层没有使用激活函数;

所述激活函数为:

公式(2)中,x为输入,为输出,之所以使用relu作为激活函数是因为relu得到的sgd(stochasticgradientdescent随机最速下降法)的收敛速度会比sigmoid和tanh快很多;

可以通过gpu加速技术对这个网络结构对该数据集进行加速训练,这个网络结构在书法风格识别上能取得较高的准确率,同时具有不错的泛化能力;

步骤4、笔画信息提取模块通过opencv对书法图像做预处理,包括二值化、去噪、灰度反转、中值滤波、图像细化得到字体的骨架,再按照笔画信息提取策略提取出骨架化后的笔画顺序和各笔画的起始终止点,参考图6。

所述图像细化算法为:

设已知目标点为1,背景点标记为0。定义边界点本身标记为1,而其8-连通邻域中至少有一个标记为0的点。

其细化算法具体步骤为:

考虑以边界点为中心的8-邻域,记中心为点p1,其邻域的8个点顺时针绕中心点分别标记为p2,p3,…,p9,其边界点满足其中两种条件之一即可标记:

条件一为:

2≤n(p1)≤6,

s(p1)=1,

p2×p4×p6=0,

p4×p6×p8=0

条件二为:

2≤n(p1)≤6,

s(p1)=1,

p2×p4×p8=0,

p2×p6×p8=0

其中n(p1)是p1的非零临点的个数,s(p1)是以p2,p3,....p9为序时这些点的至从0到1变化的次数,当所有边界点都检验完毕后,会把所有标记的点除去。此方法称为细化算法。

所述笔画信息提取策略如下:

对于无笔画交叉的字体,采取从上到下,再从左到右的顺序依次提取该字体图像的像素点坐标值;对于有笔画交叉的字体,如果该字体是有偏旁部首的字体,先对字体进行连通区域的划分,划分为偏旁和部首两部分,遍历第一个点的八邻域像素来判断下一个点的走势,当遇到第一个分叉点的时候,提取每个分叉路线之后的5个点来计算其平均走势,与原路线最为接近的即为下一笔画的路线;

根据细化算法提取出来的点,根据笔画走势,将其分为点、横、竖、撇、捺等几个基本笔画,并能得出每个笔画的起始点和终止点,即得到书法的笔画信息;

步骤5、所述机器人关节轨迹规划模块,即结合力信号数据和图像笔画信息提取模块提取的笔画信息转换成世界坐标,按照五次多项式插值对机器人进行轨迹规划;

所述力信号数据和笔画信息转换成世界坐标的方法是:

先将笔画信息提取模块中提取出来的像素坐标,根据图像的分辨率,按照不同的比例转换成为世界坐标系中xoy平面上的轨迹,结合多风格标准字库模块中对应风格的字库拆解成笔画的用力特征,即步骤4中机器人末端z方向上的轨迹,可以得到机器人末端的轨迹,然后按照五次多项式插值的方法对该汉字书写进行轨迹规划。

五次多项式插值的方法如下:

θ(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5(3)

对公式(3)分别关于时间求一次导数和二次导数可以得出关节角速度和关节角加速度的函数表达式,并用t0和tn分别代表各插补之间的起始点和结束点的时间点,则可以得出如下方程组:

θ(t0)=a0+a1t0+a2t02+a3t03+a4t04+a5t05

θ(tn)=a0+a1tn+a2tn2+a3tn3+a4tn4+a5tn5

对公式(4)中的方程组求解可得五次多项式的六个系数,再代入边界条件,可以解得五次多项式插值的角度、角速度和角加速度的表达式:

步骤6、将机器人关节轨迹规划模块得到的机器人关节轨迹信息发送给机器人驱动器。

附图说明

图1是本发明提出的一种基于力觉学习的机器人多风格书法临摹方法的流程图;

图2是本发明提出的一种能够固定在力传感器上的夹持毛笔的工具三维模型参考图;

图3是通过手持采集到的楷书“玉”字的部分力传感器信号图;

图4是书法风格数据集中欧阳询楷书的部分数据图;

图5是本发明使用的10层卷积神经网络结构图;

图6是汉字细化后的图像骨架图;

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图详细说明本发明的具体实施方式:

参考图1,本发明公开了一种基于力觉学习的机器人多风格书法临摹方法,其包括有多风格标准字库、书法风格识别模块、笔画信息提取模块、机器人关节轨迹规划模块。具体的实施主要步骤如下:

步骤1、建立工业机器人的运动学模型,得到工业机器人的运动学正解与逆解,并设计一种能够固定在力传感器上的毛笔夹持工具,通过四点法标定得到机器人工具坐标系,通过三点法标定得到机器人工件坐标系;

所述一种能够固定在力传感器上的毛笔夹持工具,其三维模型参考图2,法兰盘(1)可以固定在力传感器的感应区域的法兰盘上,松紧夹(2)可以通过螺栓螺母的松紧度调节松紧度,坐标系标定的工具坐标系中心点在毛笔笔尖处,工件坐标系中心点在宣纸的起始落笔点;

所述运动学模型是指通过建立d-h参数表建立机器人各个连杆的坐标系,通过坐标系变换矩阵推导出运动学正解,通过pieper准则推导出运动学逆解;

所述四点法为机器人末端装上夹持工具夹持毛笔,在机器人附近找一点,使工具中心点对准该点,保持工具中心点的位置,更换夹具的姿态,共记录四次,即可自动生成工具坐标系的参数,得到工具坐标系标定结果;

所述三点法为机器人末端装上夹持工具夹持毛笔,将毛笔笔尖对齐书写平面,通过示教三个示教点实现,第一个示教点是用户坐标系的原点,第二个示教点在x轴上,第一个示教点到第二个示教点的连线是x轴,所至方向为x正方向;第三个示教点在y轴的正方向,示教完这三个点即可自动生成工件坐标系的参数,得到工件坐标系的标定结果;

步骤2、通过机器学习的多元回归算法来建立多风格标准字库;

通过手持加载了夹持工具的力传感器,进行不同书法风格几个标准字的书写,选用的标准字须能包含该风格下大部分笔画的书写特征,例如:玉、火、玉、七、永、田、心、少、之等,并按照50至300hz的频率采集竖直方向上的力传感器的信号数据,通过手持采集到的楷书“玉”字的部分力传感器信号参考图3;

通过使用机器学习的polynomialfeatures方法对力传感器数据进行训练、评价,并将采集信号序列号除以采集信号的总数量来得到每个信号对应的时间百分比,从而得出力关于时间百分比的多元回归模型,并采用四个评价指标(s、rmse、r-square、r2-adjustd)对该多元回归模型进行评价;

通过机器人frame示教,记录下笔尖恰好触碰到纸面的世界坐标系位置,使机器人朝z方向向下移动,并记录下δz与fz的对应关系,并使用相同的方法得出其回归模型。至此,可以得出从开始落笔到写完提笔过程中每个时间点的下笔深度,即机器人末端z的轨迹;

步骤3、通过tensorflow搭建卷积神经网络实现书法风格识别模块;

所述卷积神经网络的结构由10层网络结构(不包括flatten层)组成:四个卷积层,四个池化层,两个全连接层,参考图5;

第一、三、五、七层是卷积层,卷积核的个数分别为64、128、256、512,卷积核的大小为3*3;

第二、四、六、八层是池化层,都是采用一个2*2的filter,池化策略采取的是maxpooling,即在每一个区域中寻找最大值;

第九、十层是全连接层,都加入了dropout防止过拟合,第九层使用的激活函数为relu函数,第十层没有使用激活函数;

可以通过gpu加速技术对这个网络结构对该数据集进行加速训练,这个网络结构在书法风格识别上能取得较高的准确率,同时具有不错的泛化能力;

步骤4、执行笔画信息提取模块;

对获取的书法图像进行二值化、去噪,然后将预处理后的图像进行灰度反转,中值滤波,再使用细化算法对图像进行细化,得到骨架。具体骨架化步骤为:

s1、设已知目标点为1,背景点标记为0。定义边界点本身标记为1,而其8-连通邻域中至少有一个标记为0的点;

s2、考虑以边界点为中心的8-邻域,记中心为点p1,其邻域的8个点顺时针绕中心点分别标记为p2,p3,…,p9;

s3、边界点满足其中两种条件之一即可标记,条件一为:2≤n(p1)≤6、s(p1)=1、p2×p4×p6=0、p4×p6×p8=0;条件二为:2≤n(p1)≤6、s(p1)=1、p2×p4×p8=0、p2×p6×p8=0。其中n(p1)是p1的非零临点的个数,s(p1)是以p2,p3,....p9为序时这些点的至从0到1变化的次数;

s4、当所有边界点都检验完毕后,会把所有标记的点除去。

所述笔画信息提取策略如下:

s1、对于无笔画交叉的字体,采取从上到下,再从左到右的顺序依次提取该字体图像的像素点坐标值;

s2、对于有笔画交叉的字体,如果该字体是有偏旁部首的字体,先对字体进行连通区域的划分,划分为偏旁和部首两部分,遍历第一个点的八邻域像素来判断下一个点的走势,当遇到第一个分叉点的时候,提取每个分叉路线之后的5个点来计算其平均走势,与原路线最为接近的即为下一笔画的路线;

s3、根据细化算法提取出来的点,根据笔画走势,将其分为点、横、竖、撇、捺等几个基本笔画,并能得出每个笔画的起始点和终止点,并通过步骤3中识别得到的汉字风格从步骤2的机器人多风格标准字库中提取相应风格的笔画结合,可以得到机器人的末端轨迹。

步骤5、执行机器人关节轨迹规划模块;

先将笔画信息提取模块中提取出来的像素坐标,根据图像的分辨率,按照不同的比例转换成为世界坐标系中xoy平面上的轨迹,结合多风格标准字库模块中对应风格的字库拆解成笔画的用力特征,即步骤4中机器人末端z方向上的轨迹,可以得到机器人末端的轨迹,然后使用五次多项式θ(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5对机器人进行轨迹规划;对该五次多项式分别关于时间求一次导数和二次导数可以得出关节角速度和关节角加速度的函数表达式,并用t0和tn分别代表各插补之间的起始点和结束点的时间点,再代入边界条件,可以解得五次多项式插值的角度、角速度和角加速度的表达式;

步骤6、将机器人关节轨迹规划模块得到的机器人关节轨迹信息发送给机器人驱动器。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1