黄 维,王超越
(1.武汉职业技术学院,湖北 武汉 430074;2.武汉理工大学,湖北 武汉 430070)
机器视觉系统是实现机器人智能化的基础,双目视觉作为机器视觉的重要研究方向,通过视差获取物体的空间坐标,实现物体三维位置的测量[1-2]。基于视觉技术的机器人系统可以在复杂的环境中做出自主决策,并完成特定的目标识别和空间定位任务,在工业生产、自主巡视等领域应用广泛。
目前,国内外关于双目视觉定位技术已有较多的研究成果。在文献[3]中,提出了一种将图像二分法和orb特征相结合的机器人的双目定位方法。通过图像二分法去除无效区域,采用orb算法进行匹配,最后,利用RANSAC算法消除误匹配点。实验结果表明,所提方法具有效率高和准确度高的优点。在文献[4]中,提出了一种基于SIFT算法的双目立体测量系统。实验结果表明,该方法提不仅提高了匹配的精度,还提高了匹配效率。在文献[5]中,提出了一种将随机蕨算法和二值特征描述子相结合的双目视觉目标定位方法。在粗匹配阶段,采用随机蕨算法对图像进行识别。在精细匹配阶段,根据图像梯度信息建立二值特征描述子。实验结果表明,该方法可以将误差控制在7mm之内。在文献[6]中,提出了一种将高速鲁棒特征和自适应阈值相结合的定位算法。通过高速鲁棒特征提取特征向量,通过自适应阈值完成匹配。实验结果表明,该算法具有效率高、精度高等优点,有一定的实际价值。但上述方法在实际应用中无法适应实时性较高的场合,需要进一步提高适应性。
在此基础上,提出了一种结合SIFT算法和Harris角点算法的汽车零部件图像特征点提取方法。通过阈值自适应方法对特征点进行匹配,通过改进RANSAC 算法则消除误匹配点。仿真验证了该方法的优越性。
双目视觉是根据人眼的成像原理对物体进行感知的技术,主要目的是获取空间物体的三维信息,在机器视觉的研究中发挥着非常重要的作用,通过分析左右相机的多个二维图像进行信息获取[7]。双目视觉的实现流程,如图1所示。
图1 立体视觉流程Fig.1 Stereo Vision Process
(1)图像采集通过双目相机完成。(2)相机标定完成相机参数校准[8]。(3)图像预处理是对图像进行增强的过程。(4)特征点提取就是提取图像的点特征,方便后续对整个图像的分析。(5)立体匹配是使用相关算法对两幅图像进行立体匹配[9]。(6)深度信息获取是通过视差,并结合相应的校准结果来计算物体的深度信息。
SIFT 由David Lowe 于1999 年提出,并于2004 年进行了完善,用于检测和描述图像局部特征。
SIFT算法具有尺度、旋转和光照不变性。二维图像的尺度空间L(x,y,σ)[10],如式(1)所示。
将高斯差分算子(Difference of Gaussian,DOG)用于极值检测[11],如式(2)所示。
式中:k—相邻尺度空间的倍数。
使用差分近似代替微分[12],如式(3)所示。
可以得到[13]如式(4)所示。
DOG中的极值点就是关键点,SIFT特征点优势明显,但是特征点数目过大,分拣机器人的实时处理性能不足,引入角点算法对其进行优化[14]。
如果一个点的行和列的曲率高于图像其他点的曲率,则该点是重要特征点。
算法原理:图像窗口平移[u,v],产生灰度变化E(u,v)[15],如式(5)所示。
式中:w(x,y)—窗口函数;
I(x,y)、I(x+u,y+u)—原始和平移后的图像灰度。
如果E(u),v较大,则对应窗口内有角点存在。式(5)的泰勒展开式[16],如式(6)所示。
式(5)变换为[17]式(7)所示。
对于局部微小的移动量[u,v],可以近似地得到[18],如式(8)所示。
设实对称矩阵M的两个特征值:λ1、λ2,Harris角点响应函数R[19],如式(9)所示。
式中:detM=λ1λ2;traceM=λ1+λ2。
通过特征点的粗、精提取可以计算SIFT选择关键点的R值,以确定关键点是否为角点。该方法一方面可以利用SIFT特征点来保持旋转和尺度的稳定性,另一方面将一些不稳定点去除,提高后续算法的效率。
通过阈值自适应方法对提取后的特征点进行匹配,步骤如下:
(1)通过式(10)所示获得特征点比值结合。
(2)根据特征点比值进行排序,去除前后各10%数据,剩余80%数据取平均值作为阈值。
(3)根据阈值对特征点进行匹配,得到匹配点对集合。
匹配过程中存在一些误匹配点,会导致分拣机器人定位产生较大的偏差,影响预警效果,所以需要去除误匹配点。
由于实际生产等问题,匹配过程肯定会有误匹配点存在,影响后续的识别,需要对误匹配点进行去除。
RANSAC 作为一种鲁棒估计算法,用于误匹配点清除[21]。RANSAC算法根据初始值将数据点分为内部点和外部点,然后执行迭代计算。但RANSAC算法也存在迭代不稳定和复杂度高等问题。引入特征向量夹角余弦值来评估相似度。如式(11)所示:
式中:p、q—特征点对应的特征向量;
n—向量维数。
根据余弦值分布情况设定阈值,根据阈值消除误匹配点。
该算法的过程如下:
(1)随机从数据集N中选择匹配点对数据,并将其记录记为(xi,yi)和(,);
(2)根据式(12)计算方法计算矩阵H,并将其记为模型N。
(3)根据向量余弦对特征点进行约束,如果值大于设置阈值,则将其定义为内部点ii,否则,将其剔除。
(4)如果内部点元素的数量大于内部点最优集合Ibest,则更新Ibest=I。
(5)如果迭代次数超过设定值,则退出。
该实验着重于汽车零部件图像的双目立体匹配,为了验证文中方法的优越性,将其与优化前进行对比分析。实验计算机为华为计算机,实验仿真平台为matlab 2018a。相机是mv-em120m∕C,光源是mv-rl-v环形光源,机械臂是ABB.IRB120 6自由度机械臂,机器人分拣工件为汽车零部件。
在实验中,选择了两个场景进行匹配。(一)模拟汽车零件工厂的复杂环境,将汽车零件随机放置在生产线上以构建复杂的背景环境。(二)选择较为复杂的零部件。
在这两个场景中进行视觉捕捉,提取SIFT特征点,然后结合Harris提取特征点以进行双目立体匹配。不同场景特征点提取实验结果,如图2、图3所示。分析了两个场景下的特征点提取,如表1所示。
表1 特征点提取数Tab.1 Feature Point Extraction Number
图2 场景1特征点提取Fig.2 Scene 1 Feature Point Extraction
图3 场景2特征点提取Fig.3 Scene 2 Feature Point Extraction
由图2、图3和表1可以看出,文中方法在特征点数提取中优于SIFT算法,具有更优的性能。这是因为本文方法将SIFT算法和Harris角点算法相结合用于汽车零件图像特征点提取,提高了SIFT算法的执行效率。
通过结合SIFT算法和Harris方法用于特征点提取,通过阈值自适应方法对图像进行立体匹配,通过改进RANSAC 算法对误匹配点进行消除,完成分拣机器人立体匹配。场景1和场景2的匹配效果如图4所示。
图4 不同场景匹配效果Fig.4 Matching Effects for Different Scenes
由图4不同场下的匹配效果可以看出,齿轮和汽车水泵应用本文方法都具有较好的识别效果。齿轮在粗匹配阶段有132对匹配点,检测耗时135.42ms,经过本文改进RANSAC去除误匹配点,剩余33对匹配点,检测耗时60.32ms。
汽车水泵在粗匹配阶段有21对匹配点,检测耗时79.67ms,经过本文改进RANSAC去除误匹配点,剩余11对匹配点,检测耗时19.39ms。结果表明,本文融合阈值自适应方法与改进RANSAC算法,可以实现汽车零件在多种环境下的立体匹配。
为了使分拣机器人可以更加高效和准确率的分拣,需要获取零件详细信息。在两种场景下,通过测量零件表面与相机间的距离,进行误差分析。匹配特征点的距离,如表2所示。
表2 匹配特征点距离Tab.2 Matching Feature Point Distance
从表2可以看出,计算值和测量值较为接近,最大误差仅为1.21mm,符合分拣机器人的精度要求。
这是因为场景1 中汽车齿轮在传送带上的位置不同,且特征点的位置也不同,计算和测量深度略有不同。场景2 中汽车水泵结构不是平坦的,也不是与相机表面完全平行,因此计算深度和测量深度略有不同。
将SIFT 算法和Harris 角点算法相结合,提取汽车零部件图像的特征点。利用阈值自适应方法对高对比度的特征点进行匹配,改进的RANSAC 算法则用于消除误匹配点。
结果表明,该算法具有效率高、精度高等优点,实际测量值与计算之间的最大误差为1.21mm,符合分拣机器人的精度要求。但也存在一些问题和不足,例如,仅研究了匹配方法,而未对目标跟踪算法进行研究,这些问题和缺点将通过后续研究不断改进和完善。