APP下载

基于MATLAB和Opencv的双目视觉系统研究

2019-03-11王先节赵立宏

数字通信世界 2019年2期
关键词:立体匹配角点双目

王先节,赵立宏

(南华大学电气工程学院,衡阳 421000)

1 引言

双目视觉技术广泛应用于大型机械位姿感知、小工件测量、无人机自动寻迹、3D打印、汽车自动驾驶等科技领域。机器视觉主要的目的在于从图像或图像序列中获取对世界的描述。自20世纪70年代Marr首次提出完整的机器视觉系统理论框架[1]以来,立体视觉信号备受人们的关注。双目视觉系统分摄像机标定、特征提取、立体匹配、深度信息提取。立体匹配和深度信息提取作为双目视觉系统的核心内容也成为人们研究的热点。立体匹配技术从早期的小窗口区域匹配发展到现在的自适应窗口,提高了对图像特征信息提取的灵活性,降低了在立体匹配中特征点误匹配率,提高了对深度信息提取的精度。在近几年的发展中,基于全局的立体匹配技术有很大的发展,根据不同的特征信息大致分为几类:针对边缘特征的差分边缘检测、Reborts算子、Sobel算子;针对角点特征的基于模板的角点检测算法Kitchen-Rosenfeld角点检测算法、Harris角点检测算法;针对尺度不变特征的SIFT特征向量、SURF特征等普遍特征。本文所做研究包括:利用MATLAB工具箱以及OpenCV建立双目视觉系统,并完成对摄像机内外参数的求解,分析摄像机视差与两摄像机之间夹角给双目视觉系统带来的误差影响。

2 双目视觉系统数学模型

基于2D平面方格模板的标定方法,从不同方位采集模板图像,利用模板方格中特征信息和其图像中特征信息即可完成标定过程,通过建立双目视觉传感器数学模型将二维信息对应在三维坐标系中,实现了双目视觉系统对目标的位置测量。双目视觉系统成像模型如图1所示。

图1 双目视觉成像模型

C1和C2表示两摄像机镜头光心所在位置,C1O和C2O分别为两摄像机的光轴,量摄像机之间的距离(基线距)为2a,光轴夹角为2α,焦距相等且为f。

将世界坐标系OwXwYwZw的原点Ow、设在左相机光心C1处,OwZw轴在左相机光轴C1O重合,OwYw轴垂直向上,左右相机的图像坐标o1x1y1和o2x2y2分别在各自像平面上,原点在像平面终点。M为交汇视场内任一被测点,其在两像平面上的像点分别为m1(x1,y1)和 m2(x2,y2),m1、m2像点对2台相机镜头光心的水平视场角为β1和β2,垂直视场角为γ1和γ2,由图中的几何关系得出M点坐标为:

3 摄像头标定

理想成像模型作为线性成像模型如图2所示,根据小孔成像原理:空间点P在像平面的像点的位置为摄像机光心Oc与P的连线OcP像平面的交点,设P点在摄像机坐标系下的坐标为P(Xc,Yc,Zc)。

图2 线性成像模型

像点P在图像坐标系下的坐标为p(x,y),由比例关系得出

在实际应用过程中,由于摄像头存在程度不同的畸变,考虑畸变情况下真实坐标(畸变坐标)(Xd,Yd)得非线性畸变数学模型:

畸变有两种类型:径向畸变和切向畸变,对于每一种畸变类型都需要一个无穷级数,在工业机器视觉应用中只需要考虑径向畸变,任何更复杂的建模会导致数值难以稳定。得到像素点畸变调整的坐标后需要对相机外参进行求取,外参包括旋转矩阵R和平移矢量T来表示相机在世界坐标系中的位置和方向由式(2)可得空间点图像像素坐标系下的坐标与其在世界坐标系下的坐标之间的变换关系为:

式(4)中M1是由摄像机内部参数确定,M2由摄像机与世界坐标系之间的相对位置参数即外部参数确定。在使用MATLAB工具箱标定过程中有两种方法:

(1)使用工具箱自带寻点方式,通过确定四个方向的顶点,到达对图像坐标角点提取,在大畸变情况下正常的选点就完全偏离了实际像点坐标,通过对畸变参数k的预估计能较好的消除一定误差。(2)通过自选点的方式确定图片坐标系下标定板中角点的位置信息,考虑到人工选点的误差影响,并且在双目视觉系统中对于同一个点的不同图片坐标系的匹配问题也被放大,使误差增大。对左右相机进行立体建模,直观的看到标定板与摄像头之间的距离关系,因为在操作过程当中对于一阶畸变参数预估不同左右两相机同一组图片存在不匹配的问题,在调整同一组图片的畸变参数预估数据后得到解决,最终得到双目视觉系统外部参数效果图如图3所示。

图3 双目视觉系统外部参数效果图

4 立体匹配

立体匹配作为双目视觉系统的核心内容主要是寻找在三维场景中不同位置和角度所得的二维图像特征信息之间的对应关系,立体匹配过程大多以小窗口的基础,对窗口中特征信息如:灰度、颜色等进行匹配,通过对二值化边缘梯度的计算减少匹配误差,对窗口内特征信息的加权函数来提高匹配精度,而窗口的大小直接影响这些函数的复杂性,就一般性而言越大的窗口对图片信息收集是越全面的,匹配依据也更加的充分,而更多的特征信息的提取使得窗口内存在更多相似点,陷入更多的特征点误匹配,这时候就需要更加完善且复杂的数学模型减少这类误差的产生。对于一种立体匹配算法要确定的是单位匹配对象即匹配基元譬如角点、特征点或图像区域和边缘,然后就是匹配算法,本文中使用的匹配算法是SAD绝对差值和算法,这种方法相较其他复杂算法优势就是算法简单,能简化计算工作,速度快。但是无法完整保留图像结构信息,结果图只能显示特征区域信息,并且精度低误匹配高。

如图4所示,在没有调整畸变情况下(图左)除镜头光心水平直线周围小范围点上完成了立体匹配,边缘区域误匹配率偏高,所以达到的效果无法还原三维信息,且光心区域由于径向畸变的影响图片效果一般,反观畸变调整后(图右)每一个方块相较于图左有明显改善。通过图4中立体匹配结果我们可以得到图形中各特征点坐标进而计算棋盘各特征点的深度信息。在表1中可以看出,前四个点是图片特征点中同一列的四个点,(u,v)坐标中u因为操作原因有小部分波动,v大幅度变化,对于深度信息测量值Zw由于拍摄姿势的原因也存在定的误差。后四个点是同一行的四个点。

图4 畸变调整前后立体匹配对比图

表1 图像坐标计算坐标和误差

5 结束语

本文利用MATLAB和OpenCV两个软件的结合,基本完成对双目视觉系统的构建,着重分析了立体匹配技术应用方法,得出了在使用SAD立体匹配技术所产生的误差,分析了误差来源,通过双目摄像头拍摄的二位图像,恢复了目标的三维信息,达到了很好的效果。

猜你喜欢

立体匹配角点双目
一种改进的Shi-Tomasi角点检测方法
多支撑区域模式化融合角点检测算法仿真
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于双目视觉的高耸类游乐设施晃动测试方法研究
基于FAST角点检测算法上对Y型与X型角点的检测
基于SIFT算法的图像匹配技术在测量系统中的应用
改进导向滤波器立体匹配算法
基于双目视觉图像的长度测量方法
动态规划立体匹配的状态空间分析和性能改进
镜像式单摄像机立体视觉传感器对弹簧几何尺寸的测量