基于双目相机的直线运动轨迹快速测量算法 下载: 1241次
ing at the difficulty of binocular synchronous stereo matching under high-speed camera conditions, a fast measurement algorithm for the spatial linear motion trajectory based on binocular camera is proposed. The camera space coordinate system is established ,and the imaging model is constructed based on the principle of small hole imaging and the mapping relationship between the target point and the corresponding point. The principle of the algorithm is verified experimentally, and the method of reducing the error by traversing the input points and finding the average value of the result is obtained. The feasibility of the principle and the effectiveness of the algorithm are verified.
1 引言
高速摄像机可应用于**实验中测量做高速直线运动的某型炮弹的运动轨迹[1],其主要采用双目立体测距算法。传统的双目立体测距方法[2]是通过相机标定获取摄像机内部参数和外部参数,得到世界坐标系和图像坐标系间的投影关系[3],进而利用对应特征点匹配得到视差信息来测量目标距离。但该方法的难点在于合理选择匹配特征和匹配准则[4],尤其是在高速摄像条件下,特征点匹配的过程变得尤为复杂、困难。
传统的双目测距系统的研究工作主要分为对结构上进行改进和对特征点匹配算法进行改进。Di等[5]提出一种基于单旋转角分度摄像机的虚拟双目测距系统,通过旋转的单目相机模拟双目相机系统的组成,由同一物体投射的两个视差图像可以由不同空间位置的单个摄像机收集。此方法虽降低了成本,但测量误差足有3%左右,并未显著改善测量准确度。Lai等[6]对双目相机测距系统进行了改进,为了获得移动机器人的范围信息,运用数字信号处理(DSP)控制系统对双目测距系统加以实时控制,此方法虽使平均误差降到了0.37%,但测量目标为120 cm的近距离单点,不适合用来测量做高速直线运动的目标。Xiong等[7]提出了一种基于四景立体视觉的自动三维重构方法,由于双目图像具有可重复或相似的特征,在此工作中应用了一个四摄像头测量系统,可以添加额外的匹配约束并提供多个测量值。此方法虽显著提高了特征点匹配的准确度,但计算量较大,且在实际应用中操作复杂。上述文献的研究均基于对测距系统结构上的改进,而领域内对特征点匹配算法的研究也颇多。如沈彤等[8]利用Matlab标定工具箱与OpenCv的Harris角点函数,实现了左右相机的立体校正和左右图像对的立体匹配。尽管因OpenCv库函数的高度集成性使得此方法应用非常广泛,但在匹配低纹理的目标图像对时仍存在困难。Hsu等[9]提出了一种基于加速稳健特征(SURF)算法的改进立体匹配算法,从实验结果来看,稳定性较好且误差低于5%,但其缺点在于受环境光照影响较大。姚海滨等[10]根据特征点之间极线约束关系定义了一种不受仿射变换影响的能量来描述特征点,有效降低了误匹配率和误剔除率,但计算较复杂。狄红卫等[11]利用视差的分段连续性提出的一种特征点快速匹配算法,其视差图仍存在“线条”特征,在视差缓变处存在精度低的问题。张丽娟等[12]提出的一种亚像素级匹配算法,由于实际操作较复杂,需要人工找出待匹配区域,待匹配区域既不能太小,也不能太大,因为太小会把精确匹配点排除在外,而太大又会增加匹配的计算量。
综合考虑了实际被测目标的高速直线运动特性与特征点匹配过程的算法复杂程度,本文提出了一种无需同步匹配的直线轨迹测量方法,旨在解决测量目标高速直线运动时传统的双目立体测距方法特征点匹配困难、精度差的问题。其基本原理为首先通过小孔成像模型中的几何映射关系求出双目相机的映射平面,两映射平面相交得出目标直线轨迹,然后通过目标的成像光路直线方程与已求出的轨迹直线方程相交得出目标点坐标,最后测量目标距离。从实验结果来看,该算法不仅无对应特征点匹配的过程,且测量结果的误差达到了一定要求。
2 坐标系的建立及转换
世界坐标系、图像坐标系和摄像机坐标系是双目视觉中需要用到的坐标系[13-15],本文将左眼摄像机坐标系作为世界坐标系。
2.1 图像坐标系转换
图像物理坐标系的原点
通过分析两坐标系关系可以得出:
式中d
运用齐次坐标将转换关系写成矩阵形式,图像物理坐标(
为了便于将图像像素坐标直接转换为图像物理坐标,转换关系写成如下形式:
只要求出上述坐标转换矩阵即可将成像平面上的点从图像像素坐标转换为图像物理坐标,而坐标转换矩阵可以通过内参矩阵得到。
通过对摄像机进行标定,得到内参矩阵:
式中
求其逆矩阵:
为了得到(3)式中的转换矩阵,需将矩阵
2.2 平面坐标系转换为空间坐标系
空间坐标系即摄像机坐标系,本模型中此坐标系的建立是以左眼光心为原点,
建立摄像机坐标系后,将成像平面上的二维点(
由(8)式可知,在小孔成像模型中,当
本文中摄像机坐标系是指双目模型中以左眼摄像机坐标系作为系统整体坐标系,故需将右眼坐标系下的点统一在左眼坐标系下,坐标系的转换采用平移关系和旋转关系来进行统一。
将右眼摄像机坐标系下的
理想状态下,右眼摄像机坐标系相对于左眼摄像机坐标系的旋转矩阵
右眼摄像机坐标系相对于左眼摄像机坐标系的平移矩阵为
式中
3 测量原理
考虑到成像质量及便于聚焦等因素,相机镜头为多个凹、凸透镜的组合,而透镜组合可以等效为一个凸透镜,即将相机等效为简单的小孔成像模型[16]。
3.1 传统的双目测距模型
传统的双目测距模型[2]如
根据相似三角形的原理可以得到以下关系:
式中
3.2 无需双目同步的测距模型
当目标做直线运动时,本文提出了一种无需双目同步的测距方法。不同于传统的双目测距方法利用同步特征点的视差来求得目标深度信息的方式,本文方法利用成像过程中映射平面与映射直线的空间关系来确定目标在真实世界中的坐标。
根据光沿直线传播以及空间中三点确定一平面的原理,做直线运动的目标在成像时,每个小孔成像模型中两个不同位置的目标点与光心可形成一个空间映射平面,直线轨迹即为两个空间映射平面的相交直线。根据目标点与成像点的映射关系,每个小孔成像模型中由两个不同的成像点与光心即可确定空间映射平面方程,进而可以求出两平面相交的空间直线方程,此空间直线便是目标直线运动轨迹。
双目相机可以选择不同的点对确定空间映射平面,无需双目同步与特征点匹配,通过成像点对与相机光心即可确定映射平面。如
左眼各成像点在此坐标系下的坐标为
两组点分别确定出两个空间平面方程:
式中系数分别为
利用(14)式和(15)式直接确定出交面式空间直线方程:
为便于求交点,需将轨迹直线方程交面式转化为参数式方程:
式中
直线
式中
联立(17)式和(18)式,求出参数
4 实验分析
利用本文算法对目标进行测距,双目相机采用高速相机(CR450x3,Optronis,德国),分辨率为1024 pixel×1024 pixel,像素大小为14 μm,并采用鱼眼镜头(FE185C086HA-1,Fujinon,日本),定焦距为2.7 mm。双目相机位置固定且光轴平行,沿某一直线方向移动目标并对其进行连续的图片采集。编写C++程序使鼠标可以读取图片中目标的像素坐标,利用C++程序与Matlab处理后续计算过程。
对目标进行测量之前,需要利用张定友标定法进行单目标定获取左右相机的内参数[17]。
左眼内参矩阵为
右眼内参矩阵为
理想的透视模型是小孔成像模型,物和像满足相似三角形的关系。但实验中实际采用的是鱼眼镜头,该透镜并不能满足物和像呈相似三角形的关系,故而相机图像平面上实际所成的像与理想成像之间会存在畸变。去畸变也将对测量结果产生重要的影响,为了最大程度地还原小孔成像模型,使用OpenCv3.0中的fisheye::undistortion函数对图片进行去畸变预处理。实验结果如
图 7. 图片去畸变。(a)处理前;(b)处理后
Fig. 7. Undistort image. (a) Before processing; (b) after processing
实验中利用手机光源模拟被测目标进行直线运动,沿某一方向等距离采集目标图像,如
表 1. 目标实际距离和坐标
Table 1. Actual distance and coordinates of the target
|
利用所述测距原理,左眼选两组成像点,记作
例如,从
对于所采集的全部目标点,经过所述算法可以直接得到
表 2. 测量数据
Table 2. Data of measurement
|
由
据此,改进思路为:测量结果只取选作构成映射平面的目标点,如
遍历8组点对组合方式作为输入将得到784个测量结果,其中同一个目标点有98个测量结果,对其取算术平均值,结果如
表 3. 修正后的目标测距比较
Table 3. Comparison of corrected target ranging
|
由
因Matlab的自带标定工具箱与OpenCv库函数的高度集成性,沈彤等[8]的测距方法实际应用最为广泛,使用此方法对本实验中的目标进行测量,与
表 4. 双目立体测距结果
Table 4. Results of binocular stereoscopic ranging
|
传统的双目测距方法实际操作分为4个步骤[2]:相机标定、双目校正、双目特征点匹配,以及计算深度信息。对于特征点匹配过程,Hsu等[9]所使用的SURF算法为领域内所熟知的经典算法,所以选用此算法作为传统的双目测距方法中的特征点匹配算法,对本实验中的目标进行特征点匹配,进而得到视差信息来测距。匹配结果如
由
表 5. 测量结果
Table 5. Results of measurement
|
从
为求得目标直线运动轨迹,将
拟合直线参数方程为
式中
由
5 结论
为了克服高速摄像条件下双目测距算法中左右眼对应特征点匹配困难的问题,在测量高速直线运动目标的背景下,提出了一种无需双目同步的空间直线轨迹测量方法。首先在双目系统中建立小孔成像模型和坐标系,在每个小孔成像模型中利用两个目标点与各自成像点的映射关系确定出了空间平面方程,双目系统中两空间平面的相交直线方程即为所测量目标的直线运动轨迹,成像点和光心确定的直线与轨迹直线的交点即为成像点所对应的目标点。所提方法的计算工作主要集中在求取空间映射平面方程以及相交直线方程,相对于特征点匹配过程其计算量较小,且进行测距时无需双目图像同步,解决了高速摄像条件下特征点匹配过程复杂、困难的问题。通过实验验证发现,所提方法测量构成映射平面的目标点时误差较小,并据此提出了改进思路。从修正数据来看,测量结果相对误差都较小,证明了算法的可行性。其中最大相对误差仅为2.76%,且大部分目标点相对误差未超过1%,证明了算法的有效性。不足之处在于,需要手动读取目标成像点像素坐标,故下一步的研究重点为自动识别目标并读取其像素坐标的算法。
[1] 张献中, 高炳哲, 李桂芝, 等. 高速摄像实现高精度矢量脱靶量测量方法研究[J]. 光子学报, 2005, 34(3): 445-447.
[2] 马肖, 舒博伦, 李景春. 双目立体视觉测距技术[J]. 电子设计工程, 2016, 24(4): 81-83.
[3] 冯亮, 谢劲松, 李根, 等. 摄像机标定的原理与方法综述[J]. 机械工程师, 2016( 1): 18- 20.
FengL, Xie JS, LiG, et al. Review of camera calibration principles and methods[J]. Mechanical Engineer, 2016( 1): 18- 20.
[4] 肖静文, 青鑫月, 万琦. 基于Opencv与Matlab的双目测距系统研究[J]. 信息通信, 2015, 28(2): 21-23.
[5] Di HY, ShangQ, Wang SA. A virtual binocular vision range finding method of remote object based on single rotating angle indexing camera[C]∥Proceedings of 2009 9 th International Conference on Electronic Measurement & Instruments , 2009: 846- 849.
[6] Lai X B, Wang H S, Xu Y H. A real-time range finding system with binocular stereo vision[J]. International Journal of Advanced Robotic Systems, 2012, 9(1): 1-9.
[8] 沈彤, 刘文波, 王京. 基于双目立体视觉的目标测距系统[J]. 电子测量技术, 2015, 38(4): 52-54.
[9] Hsu T S, Wang T C. An improvement stereo vision images processing for object distance measurement[J]. International Journal of Automation and Smart Technology, 2015, 5(2): 85-90.
[10] 姚海滨, 翁金平, 崔海华, 等. 基于特征点能量的双目立体匹配稳健算法[J]. 激光与光电子学进展, 2016, 53(2): 021501.
[11] 狄红卫, 柴颖, 李逵. 一种快速双目视觉立体匹配算法[J]. 光学学报, 2009, 29(8): 2180-2184.
[12] 张丽娟, 杨进华, 姜雨彤, 等. 基于双目CCD测距的目标图像匹配算法研究[J]. 激光与光电子学进展, 2014, 51(9): 091002.
[13] MilaniS. Three-dimensional reconstruction from heterogeneous video devices with camera-in-view information[C]∥Proceedings of 2015 IEEE International Conference on Image Processing, 2015: 2050- 2054.
[14] Zhang JN, PanW, Shi HB, et al. Three-dimensional reconstruction method based on target recognition for binocular humanoid robot[C]∥Proceedings of 2016 International Conference on Progress in Informatics and Computing, 2016: 355- 359.
[16] 张鹏炜, 张智诠, 胡磊, 等. 基于针孔模型的双目视觉标定误差仿真分析[J]. 电光与控制, 2009, 16(12): 65-69.
Article Outline
蔡成涛, 王峰. 基于双目相机的直线运动轨迹快速测量算法[J]. 激光与光电子学进展, 2019, 56(5): 051502. Chengtao Cai, Feng Wang. Fast Trajectory Measurement Algorithm for Linear Motion Based on Binocular Camera[J]. Laser & Optoelectronics Progress, 2019, 56(5): 051502.