一种基于双目视觉多手势机器人控制方法与流程

文档序号:13973984阅读:174来源:国知局
一种基于双目视觉多手势机器人控制方法与流程

本发明涉及机器人控制方法,具体涉及一种基于双目视觉多手势机器人控制方法。



背景技术:

工业机器人的应用主要通过操作人员使用示教器,手动控制机器人的关节运动,以使机器人运动到预定的位置,同时将该位置进行记录,并传递到机器人控制器中,之后的机器人可根据指令自动重复该任务,但是目前的示教方法存在过程繁琐、效率低的问题

目前在工业机器人示教方法上,主要有两种方法——人工示教方法和离线示教方法。人工示教是指由人工导引机器人末端执行器,或由人工操作导引机械模拟装置,或用示教盒来使机器人完成预期的动作,由于此类机器人的编程通过实时在线示教程序来实现,而机器人本身凭记忆操作,故能不断重复再现。离线示教法指先对模型进行采集,在计算机上模拟仿真编程,进行轨迹规划自动生成运动轨迹。

现在工业机器人领域多应用示教盒,这种控制方式效率低,不直观。有基于视觉的机器人控制方法需要操作人员穿戴特定颜色的手套,只有一种控制模式,在需要进行微调时,位置和姿态指令会互相干扰,且控制空间和机器人工作空间不容易统一,导致操作不方便[1]。对于裸手的识别主要基于颜色空间分割,此种方法受光照和背景颜色影响很大。而离线示教方法的计算量大,算法复杂,非规则边缘不便计算,而且对机器人模型的精度,以及机器人工具坐标系的确定都有很高的精度要求。



技术实现要素:

本发明为了解决现有的基于视觉的机器人控制方法操作不便、对手的识别受光照和背景颜色影响很大,且离线示教方法计算量大、对机器人模型精度及机器人坐标系的确定有很高精度要求的缺陷,而提出一种基于双目视觉多手势机器人控制方法,包括:

步骤一、设置双目相机,并进行标定和矫正。

步骤二、操作人员在双目相机的视野范围内进行手势演示,并在双目相机的左摄像机拍摄的视频中人工选取包含手势的矩形框,加入到训练样本集。

步骤三、使用训练样本集对最近邻分类器以及贝叶斯分类器进行训练。

步骤四、操作人员按照步骤二中的手势出现在双目相机的视野中;处理器根据左摄像机的图像利用级联方差分类器,基于随机森林的贝叶斯分类器,最近邻分类器检测得到目标;再对目标进行跟踪,将跟踪结果和检测结果进行融合,同时更新手势模板中的样本,在左摄像机图像中跟踪成功后,则在右相机图像的极线上进行检测和跟踪,如果左右视图同时跟踪成功则输出目标矩形框。

步骤五、对目标矩形框的中心点进行跟踪;计算中心点从初始点移动到目标点的偏移距离,并输出速度控制指令,使机器人进行平移运动。

步骤六、在目标矩形框中提取用于描述手势轮廓的特征点,求解特征点对应的旋转矩阵。

优选地,步骤一具体包括:

步骤一一、设置双目相机中左摄像机和右摄像机的间距为20cm,且为水平放置。

步骤一二、对双目摄像机使用张正友标定法进行标定,并对左摄像机和右摄像机的视图消除畸变以及行对准,使得左右摄像机视图的成像原点坐标一致、光轴平行、成像平面共面、极线行对齐。

优选地,步骤二具体包括:

步骤二一、操作人员在双目相机的视野范围内进行手势演示。

步骤二二、在双目相机的左摄像机拍摄的视频中人工选取包含手势的矩形框。

步骤二三、对选取的矩形框中的图像块进行缩放、旋转、仿射,并将缩放、旋转、仿射后的图像归一化为相同大小的图像块构成正样本集;并选取预定数量的在原图像中距离已选取的图像块的距离大于预定阈值的图像块构成负样本集;正样本集以及负样本集共同构成训练样本集。

优选地,步骤三具体包括:通过如下公式计算贝叶斯分类器的前景类后验概率:

其中y1表示前景,当y1=0时表示图像中没有目标,y1=1时表示图像中包含目标;xi表示图像的第i个特征;图像的每个特征为图像中任意选取的两个点的灰度值大小关系,灰度值大小关系用0或1表示。

优选地,步骤四具体包括:步骤三中,

贝叶斯分类器的个数为10;特征xi对应的前景类样本的个数为#p,背景类样本的个数为#n,总样本个数为#m,则有:

对每个贝叶斯分类器求取p(y1|xi),并将结果取平均,若平均值大于预设的阈值,则认为该图像中存在目标。

优选地,步骤三中,最近邻分类器用于计算两个图像块的相似度,计算公式为:

式中μ1,μ2,σ1,σ2表示图像p1和p2的平均值和标准差;两个图像越相似则结果越接近1;定义两个图像的距离为:则当两个图像的距离小于预定的阈值时则认为图像片包含目标。

优选地,步骤四具体为:

步骤四一、操作人员按照步骤二中的手势出现在双目相机的视野中。

步骤四二、由操作人员手动选出初始矩形框。

步骤四二、处理器生成滑动矩形框,利用级联方差分类器过滤掉不符合方差阈值条件的矩形框,然后通过贝叶斯分类器筛选得到可能包含前景的图像块,再通过最近邻分类器计算滑动矩形框与手动选出的初始矩形框的相似度。

步骤四三、选出重叠度最高的矩形框作为样本矩形框,在样本矩形框内计算shi-tomasi角点作为特征点。

步骤四四、计算样本矩形框内计算前向预测误差、后向预测误差和相似度,并筛选出小于前向预测误差与后向预测误差平均值且大于预设相似度阈值的特征点。

步骤四五、计算当前帧中筛选出的特征点与上一帧相应特征点的平均位移,得到当前帧目标框的位置,并根据特征点在上一帧与当前帧中的欧氏距离的比值,得到当前帧中目标框的大小。

步骤四六、将步骤四五中得到的目标框进行归一化处理,并计算归一化后的目标框与正样本集中所有图像的相似度,如果存在一个相似度大于指定的阈值,则跟踪有效,并将得到的目标框加入样本集,否则认为跟踪无效并丢弃。

优选地,步骤五具体包括:

步骤五一、将步骤四六得到的目标框的中心点作为手势中心点,利用立体视觉的原理视差测距法计算手势中心的空间坐标值,具体为:

式中x,y,z为手势中心点在空间中的位置,u1为标记球在左相机图像坐标系中的x坐标,u0为左相机图像坐标系的x原点,u2为标记球在右相机图像坐标系中的x坐标,d为两相机之间的平移距离,v1为标记球在左相机图像坐标系中的y坐标,v0为左相机图像坐标系的y原点,f为相机焦距。

步骤五二、操作人员通过标定按钮在任意位置设置原点;处理器检测到手势中心点离开以预设的控制阈值为半径的球体时,则输出速度控制指令,计算公式为:

v=kd

其中v为输出的速度控制指令,k为控制系数,d为手势中心偏离初始位置的距离;速度控制指令用于控制机器人末端进行平移运动。

优选地,步骤六具体包括:

步骤六一、在步骤四六中得到目标框中通过基于肤色检测和背景差分法相结合的方法得到手势的轮廓,再通过凸包检测和凸包缺陷检测算法得到食指、中指和无名指以及食指中指凹陷处、中指无名指凹陷处共5个特征点;并通过步骤五一中的公式得到这5个特征点的空间坐标。

步骤六二、在手掌上定义坐标系,以中指的根部为原点,定义指向中指指尖方向为y轴正方向,定义平行于两个凹陷处连线为x轴,指向小拇指的方向为x轴正方向。

步骤六三、根据carley定理利用5个特征点求解旋转矩阵。

步骤六四、将旋转矩阵转换为pitch-yaw-roll欧拉角,获取手势从当前姿态转换为原始状态过程中的相对旋转角度,根据相对旋转角度输出欧拉角角速度指令控制机器人的姿态变化。

优选地,步骤六三具体包括:

步骤六三一、建立任意不含特征值-1的旋转矩阵r和一个反对称矩阵sb之间有如下关系:

r=(i-sb)-1(i+sb)

sb=(r+i)-1(r-i)

式中i为单位矩阵,b=(b1,b2,b3)t为carley向量;其中b1,b2,b3分别为carley向量中的第一、第二、第三分量;且

步骤六三二、设pi为i号特征点在的空间坐标值,qi为i号特征点在手掌坐标系中的坐标值。则求解旋转矩阵方程为:

对上式做恒等变换,得到:

式中:

vi=pi-qi

ui=pi+qi

sui为ui对应的反对称阵;

可得方程:

ab=c

式中:

步骤六三三、解方程ab=c得到carley向量,再计算出旋转矩阵r。

本发明的有益效果为:1、位置和姿态指令不会相互干扰,控制空间和机器人的工作空间容易统一,使得操作很简便;2、对手的识别使用了特征点和旋转矩阵,受光照影响很小;3、离线示教的部分计算量小,算法不复杂;4、对机器人模型精度及机器人坐标系的确定的要求不高。

附图说明

图1为本发明的手势机器人控制装置示意图;

图2为控制手势示意图,其中图2(a)为姿态控制模式的手势示意图;图2(b)为位置控制模式的手势示意图;

图3为本发明的基于双目视觉多手势机器人控制方法的流程图。

具体实施方式

本发明的基于双目视觉多手势机器人控制方法,是基于如图1所示的装置实现的,其中101为上位机,其中包括用于计算和控制机器人的处理器;102为喷漆机器人;103为双目摄像机的左摄像头,也可称为左摄像机,104为双目摄像机摄像机右摄像头,也可称为右摄像机。105为操作人员的手部。由一组双目相机平行放置作为手势的检测部分,通过计算机处理得到控制信号发送给机器人。操作人员只需保证手出现在两个相机视野中。

为了防止位置控制和姿态控制耦合,可以提前记录并学习两种手势,一种是位置的控制,一种是姿态的控制。本发明定义当手掌张开时进行姿态控制,如图2(a)所示;当拇指、食指和中指捏在一起时进行位置控制,如图2(b)所示。

图3为基于双目视觉多手势机器人控制方法,具体包括:

步骤一、设置双目相机,并进行标定和矫正。

步骤二、操作人员在双目相机的视野范围内进行手势演示,并在双目相机的左摄像机拍摄的视频中人工选取包含手势的矩形框,加入到训练样本集。

步骤三、使用训练样本集对最近邻分类器以及贝叶斯分类器进行训练。

步骤四、操作人员按照步骤二中的手势出现在双目相机的视野中;处理器根据左摄像机的图像利用级联方差分类器,基于随机森林的贝叶斯分类器,最近邻分类器检测得到目标;再对目标进行跟踪,将跟踪结果和检测结果进行融合,同时更新手势模板中的样本,在左摄像机图像中跟踪成功后,则在右相机图像的极线上进行检测和跟踪,如果左右视图同时跟踪成功则输出目标矩形框。

步骤五、对目标矩形框的中心点进行跟踪;计算中心点从初始点移动到目标点的偏移距离,并输出速度控制指令,使机器人进行平移运动。

步骤六、在目标矩形框中提取用于描述手势轮廓的特征点,求解特征点对应的旋转矩阵。

步骤一具体可以为:设置双目相机中左摄像机和右摄像机的间距为20cm,尽量摆放平行。利用张正友标定法得到相机的内参和外参,然后进行立体校正,分别对左右视图进行消除畸变和行对准,使得左右视图的成像原点坐标一致、两摄像头光轴平行、左右成像平面共面、对极线行对齐。

步骤二和步骤三是建立样本集以及训练过程,具体可以为:训练过程对贝叶斯分类器和最近邻分类器进行训练,将初始帧中鼠标选择的图像块进行缩放、旋转、仿射,最终归一化为相同大小的图形块作为正样本集,选取远离上述图像块的若干图像块作为负样本集,用此样本集训练最近邻分类器。根据此样本集,提取出2bitbp特征的正负样本集训练贝叶斯分类器,得到贝叶斯计算后验概率的公式。在下一步的跟踪模式中在线更新样本集,并迭代训练上述两个分类器。

本装置使用级联分类器的方式进行手势的检测,包括方差分类器,基于随机森林的贝叶斯分类器和最近邻分类器。方差分类器指的是求出待检测滑动矩形框图像片的方差,因为跟踪目标区域的方差一般比背景区域方差大,因此通过方差过滤器大概能过滤掉绝大多数的扫描矩形框。随机森林中包含10个贝叶斯分类器。贝叶斯分类器选取的特征为2bitbp特征,2bitbp特征就是任意两个点的灰度值大小关系,取值只有0和1。将图像所属的类用yi(i=1,2)表示,课题中的检测问题可以看作一个分类问题,且只有两类,即前景类和背景类,可以令y1=0表示图像中没有目标,y1=1表示图像中包含目标。用xi(i=1,2,3,...,213)表示图像的特征集,也就是上述的2bitbp特征。那么贝叶斯分类器得到前景类的后验概率为:

在样本集中令xi对应的前景类样本个数为#p,对应的背景类样本个数为#n,总样本个数为#m。则

整个随机森林就有10个后验概率了,将10个后验概率进行平均,如果大于阈值,就认为该图像片含有前景目标。

最近邻分类器有两个功能,一是使用ncc算法依次匹配每一个图像块与在线模型的相似度,二是更新在线模型的正样本空间。为了比较图像块p1和p2,用ncc算法表征图像块的相似度。

式中μ1,μ2,σ1,σ2表示图像p1和p2的平均值和标准差。两个图像越接近则结果越接近1。定义两个图像的距离为:

若距离小于阈值则认为图像片包含目标。

在左摄像机视频中用鼠标选取矩形框选中手势,本装置将训练得到方差分类器的阈值、贝叶斯分类器的参数并保存最近邻分类器的模板,操作人员此时必须保持手势不变,可以适当地移动和多角度旋转手部,模拟控制过程中可能出现的旋转角度,学习完成后点击保存,本装置可以将多尺度多变换的模板保存。

步骤四是跟踪步骤,其目的是在摄像机拍摄到的画面中,先识别出手部所在的矩形框,再根据手部的运动轨迹,具体为:操作人员按照图2中的手势出现在摄像机的视野中,本装置则自动进行检测,利用训练出的级联方差分类器,基于随机森林的贝叶斯分类器,最近邻分类器检测得到目标(即识别出手部所在矩形框的过程)。当检测得到目标后进入跟踪和检测的循坏(即跟踪手部运动轨迹的过程):

使用金字塔lk光流法对目标框中的shi-tomasi角点进行跟踪,为了优化跟踪效果,使用前向后向误差和ncc算法将一部分跟踪不好的点去除。跟踪流程如下:

1.根据初始选择的矩形框,在另一个摄像头中使用ncc算法进行模板匹配得到另一个摄像头中的初始矩形框。

2.进入跟踪循环,在生成的滑动矩形框中,找出目标跟踪框重叠度最高的那个矩形框作为最佳跟踪样本,然后在此矩形框中计算shi-tomasi角点作为特征点。

3.前向和后向误差和匹配相似度,筛选出满足条件的点(这些点满足小于给定平均前后向误差阔值的且大于指定匹配相似度阔值的特征点),结束后会过滤掉一半左右的特征点。

4.用剩余的特征点来预测目标框在当前帧中的大小和位置,根据跟踪成功的特征点与上一帧对应的特征点的平均平移,得到当前帧目标框的位置,同时根据这些特征点在前后两帧图像中对应欧式距离的比值,得到当前帧中目标框的大小。如果位置超出图像则无效。

5.计算归一化的图像片到在线模型的相似度,如果相似度大于指定的阀值,则最终认为此次跟踪时有效的,存储到正样本集。否则就认为是无效的依然丢弃。

6.返回步骤2。

左右摄像头中根据初始帧中目标的位置并行进行跟踪计算,使用分类器进行检测的循坏和上述跟踪循坏是并行计算的,在左摄像头得到图像中对整幅图像进行搜索检测,将跟踪结果和检测结果进行融合得到最终结果,同时更新手势模板中的样本,在左摄像机图像中跟踪检测成功后,则在右相机图像的对应的极线上进行检测,并与右摄像机的跟踪结果融合,得到最终结果,这样可以简化检测算法的计算量。如果左右视图同时跟踪成功则输出目标矩形框。

步骤五是确定步骤四识别出的手势的终点位置空间坐标与初始位置空间坐标,然后确定应当让机器人如何运动,具体为:

操作人员按照图2(b)右侧中的手势出现在摄像机的视野中,指向本装置按照步骤四的方法进行检测跟踪。一直跟踪的矩形框的中心即可视为控制点。

利用立体视觉的原理视差测距法计算手势中心的空间坐标值。公式如下:

式中x,y,z为手势中心在空间中的位置,u1为标记球在左相机图像坐标系中的x坐标,u0为左相机图像坐标系的x原点,u2为标记球在右相机图像坐标系中的x坐标,d为两相机之间的平移距离,v1为标记球在左相机图像坐标系中的y坐标,v0为左相机图像坐标系的y原点,f为相机焦距。

鼠标点击标定按钮后则以此点作为原点,当控制点离开以控制阈值为半径的球体时,则输出速度指令,大小与偏移距离成正比,计算公式如下

v=kd

其中v为输出的控制指令,k为控制系数,d为手势中心偏离初始位置的距离。控制机器人末端进行平移运动。

步骤六是确定步骤四识别出的手势的初始姿态与终点姿态,然后确定应当让机器人如何调整姿态。姿态通过旋转矩阵或欧拉角表示。步骤六具体为:

操作人员按照图2左侧中的手势出现在摄像机的视野中,本装置按照步骤3的方法进行检测跟踪。在目标矩形框中利用背景建模法得到手势的轮廓,运用凸包检测和凸包缺陷检测算法得到食指、中指和无名指和相应的手指相连凹陷处,一共得到五个特征点。根据步骤4中的定位方法得到这五个特征点的空间坐标。

使用基于肤色检测和背景差分法相结合的方法进行人手分割,其中肤色检测将颜色空间从rgb空间转换到hsv空间得到更好的分割效果,为了解决肤色受光照的影响,同时使用基于混合高斯模型的背景差分法,得到更完备的分割效果。得到人手的二值图像之后使用数学形态学中的开操作和轮廓面积检测过滤噪声。然后使用graham扫描法求得人手轮廓的凸点,选择最上端的三个即可得到食指、中指和无名指的位置。然后计算在相邻的凸点之间距离两个凸点最远的点即为手指相连凹陷处,一共得到五个特征点。根据步骤4中的定位方法得到这五个特征点的空间坐标。

按照2左侧的手势在手掌上定义的坐标系,以中指根部为原点,定义指向中指指尖方向为y轴正方向,定义平行于两个凹陷处连线在x轴,指向小拇指为x轴正方向。

根据carley定理求解旋转矩阵,旋转矩阵的carley向量表示法为:任何不含特征值‐1的旋转矩阵和一个反对称矩阵之间有如下关系:

r=(i-sb)-1(i+sb)

sb=(r+i)-1(r-i)

式中i为单位矩阵,b=(b1,b2,b3)t为carley向量。

设pi为i号特征点在的空间坐标值,qi为i号特征点在手掌坐标系中的坐标值。则求解旋转矩阵方程为:

上式可以转换为:

式中:

vi=pi-qi

ui=pi+qi

sui为ui对应的反对称阵。

可得方程:

ab=c

式中:

解方程可以得到carley向量,继而计算出旋转矩阵r。然后将旋转矩阵转化成pitch-yaw-roll欧拉角。鼠标点击标定按钮后以当前姿态为原始姿态,根据相对旋转角度输出欧拉角角速度指令控制机器人姿态变化。

最后,若操作人员将手移开视野,或者做出不是模板中的手势,则控制结束。重复步骤五、步骤六则可以继续控制。

<实施例>

本发明的一个实施例的具体过程为:

(1)放置双目相机尽量保持平行,使用张正友棋盘格标定法进行立体标定和校正。

(2)进入学习模板模式,在左摄像机视频中用鼠标选取矩形框选中手势,本装置将开始学习并保存此模板,操作人员此时必须保持手势不变,可以适当地移动和多角度旋转手部,模拟控制过程中可能出现的旋转角度,学习完成后点击保存,本装置可以将多尺度多变换的模板保存。如果需要多个不同的手势模板,则可以重复上述步骤。

(3)双目视觉跟踪检测,操作人员按照步骤2中的手势出现在摄像机的视野中,本装置则自动进行检测,通过级联方差分类器,集合分类器,最近邻分类器检测得到目标后使用金字塔lk光流法对目标框中的shi-tomasi角点进行跟踪,并将跟踪结果和检测结果进行融合,同时更新手势模板中的样本,在左摄像机图像中跟踪成功后,则在右相机图像的极线上进行检测和跟踪,如果左右视图同时跟踪成功则输出目标矩形框。

(4)在位置控制模式中,操作人员按照步骤2中的手势出现在摄像机的视野中,本装置按照步骤3的方法进行检测跟踪。一直跟踪的矩形框的中心即可视为控制点。利用立体视觉三维重建原理得到手势中心的空间坐标值。鼠标点击标定按钮后则以此点作为原点,当控制点离开以控制阈值为半径的球体时,则输出速度指令,大小与偏移距离成正比:v=kd。

(5)在姿态控制模式中,操作人员按照步骤2中的手势出现在摄像机的视野中,本装置按照步骤3的方法进行检测跟踪。在目标矩形框中利用背景建模法得到手势的轮廓,运用凸包检测和凸包缺陷检测算法得到食指、中指和无名指和相应的手指相连凹陷处。提前在手掌上定义的坐标系,根据carley定理求解旋转矩阵,然后转化成pitch-yaw=roll欧拉角。鼠标点击标定按钮后以当前姿态为原始姿态,根据相对旋转角度输出欧拉角角速度指令控制机器人姿态变化。

(6)操作人员将手移开视野,或者做出不是模板中的手势,则控制结束。重复步骤3、步骤4则可以继续控制。

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

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