李永
摘 要 视觉是人类获取周围环境信息的重要手段,当用双眼去观察不同物体的时候,会有远近之分。双目立体视觉系统就是仿照人的双眼去感知距离,具体实现过程如下:双目视觉系统的摄像机标定、双目摄像机同时获取图像、图像预处理、特征点提取、特征点匹配和空间坐标计算。本文从双目视觉系统的原理出发,推导了双目视觉系统的数学表达式,分析了几种不同的特征点提取方法,提出了F-HARRIS方法,提高了计算效率,利用双向交叉匹配办法匹配特征点,在利用几何约束,剔除误匹配点,原理简单易懂,效果比较理想。试验中采用畸变效应小的摄像机(即不考虑畸变),且摄像机已做过标定;图像预处理就是一些简单的平滑滤波;图像分辨率为2048*1536。
【关键词】特征点提取 特征点匹配 F-HARRIS
1 双目立体视觉的数学表达
为了描述问题的方便我们定义三个坐标系,真实世界事物的大小、位置一般用世界坐标系(xw,yw,zw)表示;摄像机的光学成像系统用摄像机系统(xc,yc,zc)表示,事物的图像在图1所示的xoy平面内,即图像坐标系平面,但图像中心一般不和zc轴重合。
通过图1可以看到,摄像机坐标系就是联系图像坐标系和世界坐标系的桥梁,世界坐标系首先变换到摄像机坐标系,然后通过取整、平移后,变换到图像坐标系的行和列。变换公式如下:
公式中R和T组成旋转、平移矩阵,将世界坐标系中事物的坐标转换到摄像机坐标系,由f组成的转换矩阵,将摄像机坐标系中事物的坐标投影到图像坐标系的x-y平面上,最后把得到的位于图像坐标系x-y平面上的坐标数值除以表示像素大小的dx、dy,就得到图像坐标系的行u和列v,但由于图像坐标系的中心和摄像机坐标系的zc轴一般不重合,因此需要进行平移u0行和v0列。其中,zc表示事物到镜头的距离,f表示焦距,fx=f/dx,fy=f/dy,表示有效焦距。
在单目摄像机系统中,世界坐标系到图像坐标系的转换关系用公式(1)表示,为了简化问题,我们假设世界坐标系的原点和双目视觉系统中左目摄像系统的摄像坐标系重合,且各自成像系统的有效焦距相同。
2 双目立体视觉摄像机系统参数
为了能够对(4)式进行求解,需要确定所有参数数值,其中ul、vl和ur是匹配后的特征点像素坐标,标定后的其它系统参数如下: u0r为-17、u0l为43、v0l为-58、r1为0.9996、r2为-0.0010、r3为-0.0290、r7为0.0289、r8为-0.0086、r9为0.9995、fl为1872、fr为1908、tx为-216.21和tz为-0.0818的值。
3 特征点的寻找
目前应用比较广泛的图像匹配是特征点匹配法,首先利用特征点算法计算特征点的位置,常用的特征点有SIFT特征点、HARRIS特征点和FAST特征点;然后利用描述子對特征点进行某种表示,常用的描述子有BRIEF描述子和SIFT描述子,最后进行特征点的匹配。
3.1 特征点寻找
双目视觉图像没有旋转、尺度变化,不能发挥SIFT算子在不变特征提取方面无可比拟的长处,反而暴露出其很差的实时性。本文针对HARRIS实时性不足和FAST太依赖阈值以及图像本身纹理信息分布可能造成特征点提取不均匀的缺陷,提出了一种改进的角点检测算法F-HARRIS,该算法借鉴了HARRIS角点和FAST角点的思想,先通过FAST思想(取小阈值)过滤掉大量不是候选角点的像素,之后计算出候选点的HARRIS响应值R,然后筛选出真正的强角点,实验表明其具有几乎和HARRIS角点检测算法一样的效果,检测效率却大大提高,尤其是对于角点数目小的大图像而言,这种优势更加明显,本文将这个算法称为F-HARRIS。
F-HARRIS算法具体流程如下:
Step1:选取图像中的任一像素点p。
Step2:通过4.3.2节中FAST特征点检测算法判断 p是否FAST特征点,如果是,转Step3,否则跳转到Step1。
Step3:分别计算该像素点及其邻域构成的子图像在X,Y方向上的梯度Ix和Iy。
Step4:结合高斯模板ω,计算出该像素点的Hessian矩阵M。
Step5:根据Hessian矩阵计算该像素的Harris响应值R,如果R大于阈值t,则为角点,否则不是。如果图像像素没有遍历结束,转Step1,否则转Step6。
Step6:对R进行非极大值抑制,局部最大值点为角点。
通过对比试验,HARRIS方法用时146ms,检测到角点数量884,而改进算法F-HARRIS方法用时50ms,检测到角点数量903。
3.2 双目立体视觉的特征点匹配
通过上面的描述,利用F-HARRIS方法我们已经能非常高效的提取特征点,由公式(4)可知,要计算事物的三维空间坐标,还需要将两幅图中表征事物相同位置的特征点匹配。
本文使用双向交叉匹配方法去匹配双目图像的特征点,利用穷举法进行匹配验证。将BRIEF描述子、SIFT描述子和Harris特征点、FAST特征点两两配对,组成四种方式,进行试验验证。实验环境是Intel(R) Pentium(R) CPU G860 3.00GHz,4.00GB 内存。
通过计算,在进行匹配时HARRIS、FAST特征点和BRIEF描述子的两个组合方案用时分别为408ms和301ms,正确率为72.9%和69.9%,而HARRIS、FAST特征点和SIFT描述子的两个组合方案用时分别为811ms和14975ms,正确率为65.8%和79.9%。因此,BRIEF描述子比SIFT描述子更节省时间,同时保证正确率。最终选择BRIEF描述子作为特征描述子。
经过上面的步骤,我们得到数量比较大的匹配的特征点,但总体来说,误配的数量也比较大,考虑到双摄像机摆放在同以平面的同一高度上,两幅图像中景物的高度不会有太大差别,把该条件作为特征点匹配的约束条件,将F-HARRIS+BRIEF和HARRIS+BRIEF两个方案进行对比试验,匹配时间分别为340ms和145描述,匹配点的数量也不是很大,分别为132和104,试验结果比较理想。
4 事物三维坐标的获取
通过摄像机的标定和特征点的匹配,公式(4)中所需要的所有参数已经具备。从公式(4)中可以看到xw和yw的计算都需要得到zw后才能够计算,zw重要性比较高,因此我们只对zw进行了精度分析。需要注意的问题是图像坐标系的原点一般在左上角,而文中都是将图像的几何中心作为原点,计算时需要一个平移转换,才能得到公式(4)所需ul、vl和ur。
本实验中,我们把模型飞机(全长为23cm,宽度为14cm)的质心放置距离双目摄像机透镜中心面(即z轴距离)600mm,1200mm,1800mm,2400mm,3000mm,3600mm,4200mm,4500mm处,获取16组匹配点对(ul、vl,ur)如下:(1415 , 918,638),(968 , 765,159),(1449 , 862,999),(1118 , 810,662),(1103 , 807,757),(1325 , 842,982),(1386 , 900,1102),(1334 , 924,1050),(1127 , 866,874),(1212 , 917,959),(1254 , 885,1025),(1255 , 878,1027),(1197 , 894,983),(1121 , 895,907),(1099 , 894,891),(1036 , 887,826),計算得到的zw坐标为616.35,598.11,1207.50,1208.20,1784.80,1775.20,2370.10,2380.60,2976.80,2942.80,3527.76,3557.70,4088.20,4149.00,4437.10,4408.10(单位:mm),从上述数据可以看到当物体距离摄像机系统越近,测距精度越高,反之,测距精度降低。实验结果还表明:物体距摄像机4.5米以内时,测距误差在3%以内。
参考文献
[1]高宏伟.计算机双目立体视觉[M].北京:电子工业出版社,2012:4-10.
[2]隋婧,金伟其.双目立体视觉技术的实现及其发展[J].电子技术运用,2004,30(10):4-6.
[3]刘红宁.基于双目立体视觉拟人机器人定位关键技术的研究[C].天津:河北工业大学图书馆(硕士学位论文),2006.
[4]宋丽梅.双目立体机器视觉检测系统及其应用[J].西南科技大学学报(自然科学版),2006,21(01):30-34.
[5]马颂德,张正友.计算机视觉—计算理论与算法基础[M].北京:科学出版社,2003:52-56.
作者单位
河北太行机械工业有限公司 河北省石家庄市 050035