方志强,肖书浩,熊禾根,李公法
(1.武汉科技大学 机械自动化学院,武汉 430081;2.武昌首义学院 机电与自动化学院,武汉 430064)
伴随着科技飞快发展,图像匹配技术已经应用到计算机视觉、目标定位检测等诸多领域。匹配准确度高和匹配速度快已成为应用领域的迫切需要[1]。
图像匹配一般基于像素灰度和图像特征匹配。灰度匹配用空间二维滑动模板进行图像匹配,特征匹配需先在原图像中提取包括点、线、面等显著特征,再建立特征匹配对应关系;图像特征相比像素,其数量少且匹配度量随位置改变敏感,更易于找出匹配位置。目前图像匹配仍是热点和难点。最具代表性的是Lowe[2]在2004年提出SIFT算法。Bay等[3]提出SURF算法。现在,国外学者如Talmi等[4]依靠目标的外观和几何信息,提出具有变形多样性和相似性的模板匹配。Buniatyan等[5]利用连续切片电镜观察脑图像补丁量化,通过深度学习,采用归一化互相关提高模板匹配率。Hofhauser等[6]提出一种快速的模型变形算法和匹配度量标准,以谐波图像为依据获得变形调节位移,利用一组稀疏的模型点,对模板的变形进行粗粒度重新分析,提高匹配效率。
本文针对引导机械手获取目标姿态实现抓取问题,设计一种基于轮廓特征匹配对工件姿态进行定位的系统。以图像关键外轮廓点集为匹配特征,采用相似度量法则进行匹配判断,引入贪婪值控制匹配速度和精度,最后采用最大值法和均值法筛选消除重配和误配的匹配算法得到图像坐标系下目标姿态;通过摄像机标定进而确定图像坐系与世界坐标系的转换关系,从而实现目标在世界坐标系中的精确姿态。
机械手引导系统结构示意图如图1所示。其主要由图像采集、图像处理、通讯和机械臂驱动四部分组成。本文重点分析在图像处理部分中实现目标平面定位的原理。其中图像采集部分由工业相机采集平面图像,环形光源提供光照;图像处理部分,利用OpenCV视觉库基于Visual Studio 2103在计算机平台上进行开发。
图1 系统结构示意图
图2所示系统定位工作流程。相机采集目标图像经图像预处理后与模板进行边缘轮廓匹配,得到目标质心像素坐标和角度;利用相机标定获得相机参数,通过最小二乘法获得坐标系转换关系矩阵,最后借助像素坐标和转换矩阵得到目标在世界坐标系下的姿态。
图2 系统定位工作流程
在特征匹配中轮廓相比较于其他特征其计算量小,抗噪能力强[7]。目标姿态的确定包括质心坐标和相对旋转角度两部分,因此模板需要先进行图像仿射变换[8]后再在待测图中平移遍历以与某位姿的对象进行匹配。图像的旋转形式如下:
其中点(x,y)为(x0,y0)经旋转变换之后的坐标,α=cosθ,β=sinθ,W,H、W',H'分别为旋转前后图像的宽和高。
图3 向量匹配
图3所示的是利用旋转后的角度模板和待测图轮廓点法线方向向量的相似度量法则,二者进行匹配判断:
其中Gxi,Gyi分别为某像素点X,Y方向向量对应的梯度强度值;T,S分别为模板图像和待检测图像;p表示组成模板外轮廓点个数;S表示两者相似得分阈值,S值越大相似度越高。式中通过归一化使得S在[0,1]之间取值且不受遮挡、混乱影响,具有光照不变性[9]。
2.2.1 图像预处理
若直接利用轮廓检测应用到图像匹配中,有时达不到满意的匹配效果且费时。因此需对图像进行一些图像处理,便于得到较为清晰轮廓。具体步骤如下:
1)对彩色图进行灰度处理将三通道变为单通道。
2)利用Sobel算子提取轮廓点的梯度求幅值。
3)进行非极大值抑制和滞后阈值处理确定有用边界信息轮廓点。
4)Otsu阈值分割并利用轮廓面积去除部分噪声和干扰轮廓。
2.2.2 旋转角度步长计算
根据模板目标的几何信息确定合适的搜索范围后,需要确定合理的旋转步长,如果角度过小可能会导致目标重配而且耗时,角度过大可能造成对象漏配。为此采用余弦定理依靠模板的有用轮廓信息自动计算模板旋转步长。如图4所示,假设O点表示模板轮廓质心,轮廓总点数p,则质心坐标可表示为:
图4 旋转步长示意图
所有轮廓点距离质心的欧氏距离L即为:
将距离质心最远的欧式距离视为旋转半径,R=OH=ON,令NH为1个像素距离,求∠OO NH:
2.2.3 匹配策略
1)金字塔向下采样确定搜索塔层。采用高斯金字塔算法就是为了剔除检测图像细节特征,保留所需要的大致轮廓,降低算法复杂度;利用2×2均值法通过此迭代得到完整金字塔,为避免盲目搜索以轮廓点为依据,经统计分析确定搜索塔层。在最高层获得潜在匹配位置后在塔下一层5×5邻域内搜索,同步实现模板与待测图匹配直至塔最底层。
2)遍历搜索。根据自动计算出的旋转步长,从0°开始在待测图中进行遍历搜索匹配,在匹配过程中模板模型使用相似度量与所要匹配对象的图像进行比较。相似度量的思想就是利用模板图像轮廓点的梯度法向量进行归一化积和,在包含所有点的模型数据集上搜索图像,使得搜索图像中每个点的得分可知。如果模板模型和搜索图像完美匹配,得分函数S值为1,如果该目标不存在于搜索图像中得分值为0。
3)匹配判断。第一种方法是利用平均的性质,一开始不需要计算模板模型中的所有轮廓点,可设置一个最低分Smin的相似得分值。因此为了检查部分得分分数,必须先找到部分和Sq并且归一化。其定义如下:
4)精匹配。所谓精匹配即是进一步设限进行筛选。经之前的遍历搜索匹配,满足相似度量阈值的轮廓将被标记。在搜索速度达标的前提下,确保不规则的待测目标在任何状态下都能被识别到,人为地将搜索范围扩大至0°~360°,同时适当减小Smin值和g值,这就导致有的目标可能被多次匹配或误配。为此,当待测图中的匹配目标只有一个时,通过式(9)将多次匹配的得分值通过比较,保留最大得分值作为匹配结果并标记;当待测图中有多个目标需匹配时,利用式(10)求得得分平均值进行筛选,提高匹配精度。
取检测目标所在平面为Owxwyw,zw轴垂直平面向上,则世界坐标系可表示为Owxwzw;相机坐标系表示为Ocxcyczc,相机光轴中心为Oc,zc轴平行于光轴。相机内参模型可表示为:
式中fx和fy分别为X,Y轴方向上的像素焦距,(u0,v0)为Oc的图像坐标,(xcyczc)为目标在相机坐标系中的坐标。相机外参模型可表示为:
将式(13)表示为Am=B,由此只求出m便可知世界坐标系与图像坐标系的转换关系。采用张正友棋盘标定法[10]求得相机内参,对Owxwywzw中的n个已知点坐标,利用最小二乘法即得参数矩阵m:
由式(14)得到m后,根据图像坐标可求解出目标对应的世界坐标。
实验检测所用操作系统为Windows 10,并在Intel i5-2520M、2.50GHz主频的CPU,4GB内存的64位操作系统平台上运行。测试图片分辨率(1280×960)由工业相机拍摄,实验设备和实验主要检测对象如图5所示。本论文主要从环境适应性、稳定性和时效性,测试算法的可行性。
适应性即指待匹配图中检测的对象在遮挡,对比度低,噪声等环境下,仍能被准确匹配[11]。图6中绿颜色小圆点表示轮廓质心,红色表示匹配到的目标轮廓。在此环境下多目标分散和多目标小面积遮挡的匹配效果如图5(a)、图5(b)所示。
图5 实验设备和检测对象
图6 复杂环境下匹配效果
为进一步检验本文算法的有效性,分别与SURF算法、SIFT算法、SIFT+RANSAC算法以及OpenCV轮廓匹配算法对复杂背景下的螺母目标图像进行匹配检测。其检测效果如图7所示,可以看出在实现目标姿态获取的情况下本文算法的优越性更为突出。
图7 特征匹配算法效果对比
稳定性测试即为对检测目标进行姿态匹配测试,当机械手抓取目标时,需要将角度和质心坐标实时反馈给机械手控制系统,因此两者匹配正确与否决决定着机械手能否获得目标在世界坐标系下准确的姿态信息。各取钥匙、工件1、工件2不同旋转角度的图片108副,分别分为3组,对单目标图像进行无噪声添加、添加噪声方差为0.5的高斯噪声、添加5000点的椒盐噪声处理后再进行定位测试。图8(a)和图8(b)分别为正常情况下不对称件钥匙、对称工件1和2在旋转角度范围内所匹配的角度误差折线图。
图8 角度测试
若满足其中之一:相似得分阈值S(S>0.4)不等于当前测试设定值、贪婪值g(g>0.5)不等于当前设定值、角度误差绝对值大于1°、目标匹配结果与数目不相等,质心x,y方向实际偏差值大于1mm均视为匹配失败;从图8(c)匹配率比对图中不难发现正常情况下匹配率高达94%以上,随着图像噪声等不利因素影响下其匹配效率仍能达到88%以上说明本文算法的稳定性和准确性有保证。
时效性是指算法在时间允许范围内完成相应作业。在引导系统中,需实时地给出目标的姿态,因此对算法时效性提出苛刻的要求,完成作业的时间必须很短。尽管金字塔层越高算法耗时越少,但有用信息也会减少,可能造成误配、漏配[9];而且当图像多次经过多次向下采样后,由像素距离确定步长的误差风险增大,进而影响角度匹配精度。综合考虑,实验做进一步测试,将四者(钥匙、工件1,2)测试工件分别取在不同角度旋转范围内的72副目标数目不限图像,都将金字塔第三层作为最高层进行匹配;其中钥匙的搜索范围0~360°,工件1和2为0~180°,s(0.75~0.85),g(0.8~1.0)。从折线图9中清楚看出工件测试耗时均在460ms以内,证明了本文算法测试速度的有效性。经统计计算其匹配正确率依次为86.1%、87.5%、88.9%。此外本文部分参数需人为设定,因此在实际操作时应注意:
1)合理设定得分值和贪婪值。s得分值过小会造成误检目标、加大精匹配压力,过大容易漏配;贪婪值g设定过小匹配速度慢,多目标匹配时,g值过大会增大漏配风险。
2)合理确定搜索范围。一般机械工业应用中工件多是对称件,因此角度范围可以缩小。再者可根据作业经验和工件姿态出现规律缩小检测区域,进一步提高算法匹配速度,保证机械手流畅作业。
图9 匹配时间测试
本文针对基于引导机械手获取目标姿态,提出一种轮廓特征匹配算法实现位置和角度的匹配。其主要特点在于:
1)提取目标轮廓点的法向量,作为特征描述。
2)以轮廓点为统计依据确定合适的金字塔层数实现模板与待测图同步匹配,节省内存空间。并根据不同模板信息自动计算旋转步长间接提高匹配成功率。
3)引入贪婪值g对匹配速度进行有效控制,并采用最大值法和均值法对匹配结果作进一步筛选,提高匹配效率。
经测试,本文方法稳定性能好,对噪声、遮挡、对比度低等匹配能力强,可实现对象目标在任意角度、坐标下匹配定位,匹配率高,对于轮廓清晰或较为简洁工件耗时可以控制在460ms以内,满足在机械手引导系统中快速、准确获取目标姿态的应用要求。