文档介绍:基于 OpenCV 的双目立体视觉测距_ 摄像机标定论文导读:: 双目立体视觉模型。摄像机标定。立体匹配采用 OpenCV 库中的块匹配立体算法。目前的测距方法主要有主动测距和被动测距两种方法。论文关键词:双目立体视觉,摄像机标定,立体匹配,测距(一)引言基于计算机视觉理论的视觉测距技术是今后发展的一个重要方向,它在机器人壁障系统、汽车导航防撞系统等领域有着广泛的应用前景。目前的测距方法主要有主动测距和被动测距两种方法。论文采用的是被动测距法。被动测距法是在自然光照条件下, 根据被测物体本身发出的信号( 如光信号) 来测量距离, 主要包括立体视觉测距法、单目测距法、测角被动测距法等[1] 。立体视觉测距法是仿照人类利用双目感知距离信息的一种测距方法,直接模拟人的双眼处理景物,简便可靠,但该方法的难点是选择合理的匹配特征和匹配准则[2] 。双目立体视觉系统采用两台摄像机同时从两个不同视点获取同一景物的多幅图像,即立体图像对, 通过测量景物在立体图像对中的视差, 再利用双目视觉成像原理就可以计算出目标到摄像机的距离。立体匹配采用 OpenCV 库中的块匹配立体算法,在得到摄像机参数和匹配点后再利用最小二乘法即可算出三维信息。(二)双目立体视觉模型首先介绍双目视觉所涉及到三个坐标系:世界坐标系、摄像机坐标系和图像坐标系。世界坐标系中的点坐标记为, 摄像机坐标系用表示。图像坐标为摄像机所拍摄到的图像的二维坐标,一般有两种表示方法: 是以像素为单位的图像坐标, 是以毫米为单位的图像坐标。建立以毫米为单位的图像坐标是因为坐标只表示了像素在数字图像中的行数和列数, 并没有表示出该像素在数字图像中的物理位置[3] 论文范文。图1 为平行双目视觉模型,即参数相同的两个摄像机平行放置,两光轴互相平行且都平行于 z 轴, x 轴共线摄像机标定,两摄像机光心的距离为 B (即基线距) 。图中 O1 、O2 为左右两摄像机的焦点, I1、 I2 为左右摄像机的像平面, P1、 P2 分别是空间点 P(X,Y,Z) 在左右像平面上的成像点, f 是摄像机的焦距。若视差 d 定义为│ P1- P2│, 则点 P 到立体视觉系统的距离为: (1) 图1 平行双目视觉模型(三)摄像机标定摄像机标定是为了建立三维世界坐标与二维图像坐标之间的一种对应关系[4] 。系统采用两个摄像机进行图像采集,设定好两个摄像机之间的距离(即基线距) ,用摄像机同时采集放在摄像机前的标定物。摄像机标定采用的是张正友[5] 的标定方法,棋盘格大小为 30mm 30mm ,角点数为 117 。标定板的规格如图 2 所示。图2 平面标定板规格张正友的标定方法需要摄像机从不同角度拍摄标定板的多幅图像。由于两个摄像机是向前平行放置的, 且基线距固定, 所以只需摆放标定板的位置变化即可。摄像机为针孔成像模型,则空间点与图像点之间的映射关系为: (2) 为方便计算,使标定板所在平面的 Z 坐标均为 0 ,即 Zw=0 的平面,则上式可变为: 其中,A 为摄像机的内参矩阵, 为摄像机外参矩阵,s 为尺度因子。令,, 则上式可写为: (3) 其中, 为透视投影矩阵,它是标定板上的点和其像点之间的映射。在已知空间点和其对应像点后,可根据最小二乘方程,采用 Levenberg-Marquardt 算法求解得到 H 矩阵,并求出