近年来,随着机器人在各领域的成功应用,双目视觉系统已经成为机器人自主化不可或缺的部分,双目视觉是基于视差原理,利用双目成像设备拍摄同一个物体,从左右两幅图像中获取目标物的特征点,再通过三角测量法实现目标定位.
双目立体视觉定位[1-6]建立在匹配点视差基础上,因此在左右图像中获取目标区域各点的匹配关系是双目视觉最重要的问题.由于传统区域匹配[7-9]的方法获取视差误差较大,故采用特征匹配算法[10-14],其中Lowe提出的SIFT特征匹配算法[15]在抗旋转、平移、尺度变化以及部分光照和仿射变化有一定的成效,因此得到了广泛的应用.因此,本文在研究SIFT算法的基础上,提出了改进的SIFT特征匹配以及目标定位算法,该算法能够迅速准确获得目标三维信息.
1 双目视觉定位原理双目视觉仿照人类眼睛观察物体的原理,采用两个摄像机从不同的角度去观察同一个目标物体,并同时获得两幅图像,通过目标在成像中的相对视差获得目标的三维坐标信息.如图 1所示,空间中任意一点P,设左摄像机坐标系是O1x1y1z1,图像坐标系是OLXLYL,有效焦距是fL,右摄像机坐标系是O2x2y2z2,图像坐标是ORXRYR,有效焦距是fR.P在左右图像坐标系上的点分别是P1,P2.
|
图 1 双目立体视觉原理图 Figure 1 Schematic diagram of binocular vision |
世界坐标中点P(X, Y, Z)的坐标可以通过图像坐标系转换过来,设点P在图像坐标上的坐标为(u,v), 也就是特征提取的点,其转换公式为
其中M1,M2分别是摄像机的内参和外参,M是投影矩阵,R是左右摄像机之间的旋转矩阵:
SIFT即尺度不变特征变化算法,算法步骤如下:
(1) 首先进行尺度空间极值检测,采用高斯函数去识别保持尺度和方位不变的关键点.
(2) 关键点的精确定位,确定关键点的位置和尺度,删除不稳定的边缘关键点,获取图像局部特征点.
(3) 对于选定的图像局部特征点,确定其方向参数,使它具有旋转不变性.
(4) 最后生成特征描述子,也就是生成128维的SIFT特征向量.
2.1 改进的SIFT算法由于传统的SIFT算法生成了大量的特征点,并且需要生成128维的特征向量,所以传统的SIFT计算量比较大,寻找的特征点也相对较多,匹配搜索的复杂度较高,实时性较差.为了提高SIFT算法的实时性,采用以下改进方式.
(1) 由双目视觉原理,要计算目标点在左右视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来.然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,利用极线约束使得对应点的匹配由二维搜索降为一维搜索.极线约束的作用就是要把消除畸变后的两幅图像严格地行对应,使得两幅图像的对极线恰好在同一水平线上,这样一幅图像上任意一点与其在另一幅图像上的对应点就必然具有相同的行号,只需在该行进行一维搜索即可匹配到对应点.校正是通过摄像机外参数进行图像校正,校正前后对比,如图 2所示.
|
图 2 校正前后对比 Figure 2 Comparison of before and after correction |
(2) 采用人工选择目标ROI的方法将目标选择出来,从而减少其他不相关区域的匹配.如图 3所示,假设目标物是右边绿色茶叶盒子,那么可以通过人工框选出该目标,从而减少后续匹配的工作量.
|
图 3 目标ROI选择 Figure 3 Select the target ROI |
(3) 在不降低匹配效果的前提下,将特征点描述子的维数变为32维数.对特征点描述如图 4(a)所示,以关键点为中心的8×8窗口,中间黑点为关键点的位置,每个小格代表关键点区域所在尺度空间中的一个像素,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,图中蓝色线圈代表高斯加权的范围,然后在每4×4窗口内计算出8个方向直方图,绘制每个梯度方向的累加值,就可以形成一个种子点。如图 4(b)所示,1个特征点由4个种子点组成,每个种子点有8个方向向量信息,共形成了32维特征描述子。
|
图 4 生成SIFT特征点描述子 Figure 4 Generate the SIFT feature point descriptor |
(4) 在KD树的基础上,采用BBF (Best Bin First)算法来减少匹配搜索的复杂度,BBF是一种改进的KD树最近邻查询算法. KD树在查询时,其搜索过程中的“回溯”是由“查询路径”来决定的,并没有考虑查询路径上数据点本身的性质。BBF查询思路就是将“查询路径”上的节点按各自分割超平面(称为Bin)与查询点的距离排序.回溯检查总是从优先级最高的(Best Bin)的树节点开始.另外BBF还设置了一个运行超时限制,当优先级队列中的所有节点都经过检查或者超出时间限制时,算法返回当前找到的最好结果作为近似的最近邻.采用了BBF方法就可以将KD树扩展到高维数据集上,从而进一步加快匹配速度.
(5) 采用RANSAC算法去除误匹配点。随机抽样一致算法(Random Sample Consensus, RANSAC)可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。在某种意义上说,它会产生一个在一定概率下合理的结果,其允许使用更多次的迭代来使其概率增加. RANSAC算法消除误匹配点方法是:寻找一个变换矩阵,使得得到的左右图像的特征点之间符合这个变换关系,即从一个左图像平面的特征点到另外一个右图像平面的特征点的射影关系,称为射影矩阵H。H矩阵是一个包含8个自由度的3×3矩阵,它最少由两平面的4对匹配点计算出,但是同一个平面的3个点不可以共面.图 5(a)是未使用RANSAC算法的匹配效果图,图 5(b)是使用RANSAC算法排除误匹配点后的效果图.
|
图 5 RANSAC算法效果 Figure 5 Effect of RANSAC |
如图 6(a)所示,对于没有改进的SIFT算法,由于没有选定所需要的目标物,导致匹配了一些没有意义的匹配点.由于生成特征向量的维数是128维,所以匹配速度非常慢,并且没有加入RANSAC算法来去除误匹配,可以看到有部分点是匹配错误的.通过上述4种方法改进后的算法匹配结果如图 6(b)所示,此时寻找特征点具有目标性,不会寻找到与目标无关的特征点,这样就准确得到所需目标ROI区域的匹配,并且加入RANSAC算法后,误匹配的点几乎全部消除,SIFT经过改进后匹配速度明显提高,确保了后期的三维定位的精确度与实时性.表 1为匹配结果统计对比.从表 1中可以看出,改进后的SIFT匹配算法不仅速度更快,同时也是大大降低了误匹配率.
|
图 6 算法对比图 Figure 6 Comparison of the algorithm |
| 表 1 匹配结果统计 Table 1 Matching result statistics |
实验采用2个型号为HD-GY300W的工业摄像机,组成平行双目视觉系统,有效像素为300万, 像元尺寸为3.2 μm×3.2 μm,基线长度为90 mm,采集分辨率设置为640×480像素,以两个茶叶罐为测量目标,分别验证三维坐标(X, Y, Z)的精确度.在Visual Studio 2010利用Opencv2.4.9进行仿真,电脑配置CPU为酷睿i3-380、内存为2G、显存为512 M.假设空间中有一个参考点P(X, Y, Z),P的左右图像坐标分别是(uL, vL),(uR, vR),它们的投影矩阵分别是ML和MR,那么根据式(1)可知
| $ {Z_{C1}}\left( {\begin{array}{*{20}{c}} {{u_{\rm{L}}}}\\ {{v_{\rm{L}}}}\\ 1 \end{array}} \right) = \left( {\begin{array}{*{20}{c}} {{m_{11}}} & {{m_{12}}} & {{m_{13}}} & {{m_{14}}}\\ {{m_{21}}} & {{m_{22}}} & {{m_{23}}} & {{m_{24}}}\\ {{m_{31}}} & {{m_{32}}} & {{m_{33}}} & {{m_{34}}} \end{array}} \right)\left( {\begin{array}{*{20}{c}} X\\ Y\\ Z\\ 1 \end{array}} \right) = {\boldsymbol{M}}_{\rm{L}}\left( {\begin{array}{*{20}{c}} X\\ Y\\ Z\\ 1 \end{array}} \right), $ | (2) |
| $ \left( {\begin{array}{*{20}{c}} {{u_{\rm{L}}}{m_{31}} - {m_{11}}} & {{u_{\rm{L}}}{m_{32}} - {m_{12}}} & {{u_{\rm{L}}}{m_{33}} - {m_{13}}}\\ {{v_{\rm{L}}}{m_{31}} - {m_{21}}} & {{v_{\rm{L}}}{m_{32}} - {m_{22}}} & {{v_{\rm{L}}}{m_{33}} - {m_{23}}}\\ {{u_{\rm{R}}}m{'_{31}} - m{'_{11}}} & {{u_{\rm{R}}}m{'_{32}} - m{'_{12}}} & {{u_{\rm{R}}}m{'_{33}} - m{'_{13}}}\\ {{u_{\rm{R}}}m{'_{31}} - m{'_{21}}} & {{u_{\rm{R}}}m{'_{32}} - m{'_{22}}} & {{u_{\rm{R}}}m{'_{33}} - m{'_{23}}} \end{array}} \right)\left( {\begin{array}{*{20}{c}} X\\ Y\\ Z \end{array}} \right) = \left( {\begin{array}{*{20}{c}} {{m_{14}} - {u_{\rm{L}}}{m_{34}}}\\ {{m_{24}} - {v_{\rm{L}}}{m_{34}}}\\ {m{'_{14}} - {u_{\rm{R}}}m{'_{34}}}\\ {m{'_{24}} - {v_{\rm{R}}}m{'_{34}}} \end{array}} \right). $ | (4) |
为了验证三维坐标信息(X, Y, Z),分别测试当两个茶叶罐与摄像机相距400 mm,600 mm,900 mm,1 200 mm时,多次测量得到(X, Y, Z)平均值.
(2)两个茶叶罐上下对齐摆放,如图 5所示,选取目标正中央位置进行特征匹配,两个茶叶罐中心位置相距110 mm,也就是两个茶叶罐竖直Y坐标之间的实际距离为110 mm.验证Y坐标之间差值的时候,保证两个茶叶罐的X坐标值一致或者相近,这样才能保证得到Y坐标之间差值的准确度,测试结果如表 3所示.
由表 2可知,当400 mm的时候,摄像机与茶叶罐之间测量距离Z′与实际距离Z比较接近,并且两个茶叶罐之间X坐标差值最为接近实际距离150 mm,随着茶叶罐与摄像机越来越远,误差越来越大;同样的,由表 3可知,当摄像机与茶叶罐之间距离Z越近,两个茶叶罐之间Y坐标差值最为接近实际距离110 mm,随着茶叶罐与摄像机越来越远,误差也越来越大.引起误差原因为内外参数标定的不准确,摄像机本身像素所限及摄像机畸变并没有完全消除.
| 表 2 茶叶罐X坐标之间距离测试 Table 2 Distance between theX coordinates of the tea pot |
| 表 3 茶叶罐Y坐标之间距离测试 Table 3 Distance between theY coordinates of the tea pot |
特征点提取与匹配的精度越高,双目视觉测量系统的准确度也就越高,这就要求更好的匹配算法,并且匹配算法的实时性一定要强.由于传统的SIFT算法在图像匹配中算法的复杂度较高,实时性比较低,并且存在较多的误匹配,所以该算法在双目定位中很难有优势.本文提出一种结合目标区域选择的SIFT图像匹配,先对图像进行极线约束,再降低特征点描述子的维数,BBF算法加快匹配速度和RANSAC去除误匹配,从而降低特征提取与匹配的复杂度和提高了匹配的准确度,最终提高了目标定位的实时性和精确度.每个视觉系统都是在特定环境下应用的,本课题主要是应用在机械手抓取工件,所以优化摄像机参数和匹配算法,提高实时性和精确度是以后研究的一个重要方向.
| [1] |
孟浩, 程康. 基于SIFT特征点的双目视觉定位[J].
哈尔滨工程大学学报, 2009, 30 (6): 649-652.
MENG H, CHENG K. Object location technique for bino-cular stereo vision based on scale invariant feature transform feature points[J]. Journal of Harbin Engineering University, 2009, 30 (6): 649-652. |
| [2] |
李耀云, 贾敏智. 基于Harris-SIFT算法的双目视觉定位[J].
电视技术, 2013, 37 (9): 23-26.
LI Y Y, JIA M Z. Object location technique for bin-ocular stereo vision based on harris-SIFT algorithm[J]. Video Engineering, 2013, 37 (9): 23-26. |
| [3] |
王晓华, 傅卫平. 零件的双目视觉识别定位与抓取系统[J].
制造业自动化, 2010, 32 (11): 129-131.
WANG X H, FU W P. Research on recognition and location system of work-piece based on binocular vision[J]. Manufacturing Automation, 2010, 32 (11): 129-131. |
| [4] |
李瑞峰, 李庆喜. 机器人双目视觉的标定与定位算法[J].
哈尔滨工业大学学报, 2007, 39 (11): 1719-1723.
LI R F, LI Q X. Calculation of the position between mobile robot and object based on two CCD cameras[J]. Journal of Harbin Institute of Technology, 2007, 39 (11): 1719-1723. |
| [5] |
李晓飞, 宋亚男, 徐荣华, 等. 基于双目视觉的船舶跟踪与定位[J].
南京信息工程大学学报, 2015, 7 (1): 46-52.
LI X F, SONG Y N, XU R H, et al. Tracking and positioning of ship based on binocular vision[J]. Journal of Nanjing University of Information Science & Technology, 2015, 7 (1): 46-52. |
| [6] | 申琳.高精度双目CCD测距研究[D].长春:长春理工大学光电工程学院, 2011. |
| [7] |
王玉翰, 金波. 基于双目立体视觉的深度信息测量[J].
机电工程技术, 2015, 44 (3): 34-38.
WANG Y H, JIN B. Depth information measurement based on binocular stereo vision[J]. Mechanical & Electrical Engineering Technology, 2015, 44 (3): 34-38. |
| [8] |
王婷婷, 李戈, 赵杰, 等. 基于双目视觉的运动目标检测跟踪与定位[J].
机械与电子, 2015, 6 : 73-76.
WANG T T, LI G, ZHAO J, et al. Detection, tracking and positioning of moving target based on binocular vision[J]. Machinery & Electronics, 2015, 6 : 73-76. |
| [9] |
刘浩, 李晋惠, 乔永兴, 等. 基于计算机双目视觉的火灾定位问题的研究[J].
科技信息:学术版, 2008, 22 : 67-68.
LIU H, LI J H, QIAO Y X, et al. Research on the problem of fire location based on computer binocular vision[J]. Science & Technology Information:Academic Edition, 2008, 22 : 67-68. |
| [10] |
孙伟, 钟映春, 谭志, 等. 多特征融合的室内场景分类研究[J].
广东工业大学学报, 2015, 32 (1): 75-79.
SUN W, ZHONG Y C, TAN Z, et al. Research on multi-featured fusion for indoor scene recognition[J]. Journal of Guangdong University of Technology, 2015, 32 (1): 75-79. |
| [11] |
雷禹, 何家峰. 基于改进SURF算法的SAR图像目标匹配[J].
广东工业大学学报, 2014, 31 (1): 65-69.
LEI Y, HE J F. SAR image target matching based on the improved SURF algorithm[J]. Journal of Guangdong University of Technology, 2014, 31 (1): 65-69. |
| [12] |
阳吉斌, 胡访宇, 朱高. 基于改进SURF算法的遥感图像匹配[J].
电子测量技术, 2012, 35 (3): 69-72.
YANG J B, HU F Y, ZHU G. Remote sensing image registration based on improved SURF[J]. Electronic Measurement Technology, 2012, 35 (3): 69-72. |
| [13] |
刘萍萍, 赵宏伟, 臧雪柏, 等. 移动机器人定位图像匹配的快速局部特征算法[J].
仪器仪表学报, 2009, 30 (8): 1714-1718.
LIU P P, ZHAO H W, ZANG X B, et al. Fast local feature algorithm applied to mobile robot localization image matching[J]. Chinese Journal of Scientific Instrument, 2009, 30 (8): 1714-1718. |
| [14] | BAY H, ESS A, TUYTELAARS T, et al. Speeded-up robust features (SURF)[J]. Computer Vision and Image Understanding, 2008, 110 (3): 346-359. DOI: 10.1016/j.cviu.2007.09.014. |
| [15] | LOWE D G. Distinctive image features from scale-invariant key points[J]. International Journal of Computer Vision, 2004, 60 (2): 91-110. DOI: 10.1023/B:VISI.0000029664.99615.94. |
| [16] | Zhang Z. A flexible new technique for camera calibration[J]. Transactions on Pattern Analysis and Machine Intelligence, 2000, 20 (11): 1330-1334. |
| [17] | Zhang Z. Flexible camera calibration by viewing a plane from unknown orientations[C]//Proceeding of IEEE International Conference on Computer Vision.[S.l.]:IEEE, 1999, 11(1):666-673. |
2017, Vol. 34