基于线结构光的水下双目测量方法 下载: 1532次
1 引言
近年来,海洋资源越来越受到重视,海底勘探和开发活动逐年增加。然而,水下环境情况复杂、高压、缺氧等因素使得水下人工勘探和科研活动受到很大限制,增加了危险性和未知性。随着计算机视觉的日趋完善,越来越多的视觉传感器被应用到海洋探测和开发中,在水下目标检测、焊接、三维重建等方面的应用较为广泛[1-4]。
在水下应用双目视觉时,由海水、密封玻璃等导致的折射使得传统的陆上成像模型不再适用[5],海水浑浊、光线散射及物体本身等因素使得特征点的获取和匹配难度较大。针对这些问题:盛明伟等[6]采用最大类间方差(OTSU)阈值算法,并对尺度不变特征转换(SIFT)算法进行改进,实现了特征匹配;马瑞浩等[7]提出一种基于图像分割的稠密立体匹配算法,利用简单线性迭代聚类(SLIC)算法分割图像,并基于视差图和超像素更新进行立体匹配;张强等[8]针对水下折射影响外极线约束这一问题提出一种适用于水下的极线约束模型,并结合SIFT算法进行立体匹配。但上述几种通过图像算法提取特征的方法对被测物体要求较高,对于特征较少的物体提取效果较差。Kawahara等[9]利用一种像素级的可变焦距相机模型模拟水下折射过程,将视图中每一个像素点的折射光路通过该模型计算出来,从而获取像素点的三维坐标,但针对每个像素点的计算过程较为繁琐,处理时间较长,算法实时性较差。Kang等[10]设计了一种使用两台摄像机的水下成像装置,并在此基础上提出了折射率椭圆和折射相机模型中场景点的折射深度两个新概念,该方法可以同时进行水下摄像机标定和三维重建,但对于匹配方面适用性较低。其他文献[11-13]针对水下目标分割及三维重建进行了许多研究和探讨,但目前没有关于解决特征点提取等问题的很好的方案。
本文设计了一种搭载线结构光阵列的水下双目测量系统,通过结构光在物体表面产生主动特征信息。针对光线折射问题,推导建立水下双目光路折射模型,并通过分析双目成像特性提出了一种改进的外极线匹配方法,实现了对水下物体的测量和三维形貌描述。为验证本文方法的有效性,进行了多组测量对比实验,证明了应用所提双目系统和匹配方法测量的效果较好,测量精度与陆上相当。
2 水下双目测量系统
2.1 系统结构与工作原理
本文设计的水下双目测量系统主要由CMOS相机、线激光器、照明LED及交换机组成,内部结构俯视图如
图 1. 水下双目测量系统。(a)内部结构俯视图;(b)设备密封外形图
Fig. 1. Underwater binocular measurement system. (a) Top view of internal structure; (b) seal outline drawing of equipment
密封于金属舱内的双目相机满足陆上双目立体视觉模型,如
系统工作时,被测物体位于相机公共视场内,将线激光光条阵列投射在被测物体表面,通过相机拍摄光条图像,依次提取图中光条中心点,并将其作为物体表面特征点。通过相机内参数标定,得到左右摄像机坐标系到像面坐标系的转换关系,通过外参数标定,得到右摄像机坐标系o2-x2y2z2到左摄像机坐标系o1-x1y1z1的转换关系。将左摄像机坐标系作为世界坐标系,则被测点P在o1-x1y1z1坐标系下的坐标(xP,yP,zP)即为该点的世界坐标,计算公式为
式中:R=
水下测量系统整体工作流程如
2.2 多光条提取方式
对水下物体进行测量时,水体浑浊和光线较暗导致应用一般图像算法难以获取物体表面特征点,同时一些金属物体本身缺乏特征,这使得SIFT等图像处理算法的应用范围受限。针对以上问题的一种解决方案为采用水下结构光进行扫描测量[14],但该方法需要消耗一定的扫描时间,且扫描过程中需保持扫描装置静止不动,实时性较差。本文采用一种线结构光阵列代替扫描结构,工作时将光条投射到被测物体表面,按照一定步骤逐条提取结构光光条,实现快速测量。该方法的重点是确定两摄像机得到的图像中各光条的对应关系,以便完成双目匹配。
线结构光阵列如
步骤1:左右像机拍摄图像,并分别沿行方向寻找灰度值大于设定阈值(阈值的选取根据图像中光条和背景的亮度设定)的连续区域,计算区域宽度dm,定义第一个存在dm+1≥3dm的行为基准行,并记录三倍宽度处的中点(u0,v0),若不存在,则舍弃该图像,并重复步骤1。
步骤2:以(u0,v0)为起点,沿基准行方向向左寻找灰度值大于设定阈值的区域,针对每一个区域,参照flood fill算法[15]实现中的八邻域填充法,选取一定大小的邻域,向上和向下寻找满足灰度值要求的邻域数据并记录;每次记录完毕后将邻域中心点设定为新的起点,以适应不规则光条的提取,若邻域内没有满足要求的点,则跳过该区域,继续向上或向下寻找,以处理光条缺失现象;对每一组光条数据依次编号为i,i+1,…并存储。
步骤3:以(u0,v0)为起点,沿基准行方向向右寻找灰度值大于设定阈值的区域,针对每一个区域,采用步骤2中方法提取光条数据,依次编号为j,j+1,…并存储。
步骤4:取左右图像编号相同的光条数据,采用灰度重心法提取光条中心,作为双目匹配的原始数据,若不存在两光条编号相同,则转到步骤1。
步骤5:对原始数据进行匹配并计算三维坐标,即可获得物体表面的三维点云。
3 水下三维测量
3.1 水下双目折射模型
针对光线折射问题,建立水下非平行不共折射面双目系统测量模型,如
以左摄像机为例,对理想情况下折射光路进行分析计算。p为水下一被测点,其经过光线折射后在像面的成像点为pl_1,折射光路与玻璃上表面交点为pl_2,与玻璃下表面交点为pl_3,ocl-xclyclzcl为左摄像机坐标系,Ol-XlYl为左像面坐标系,dl为左像机光心ocl到玻璃上表面的距离,nl为左玻璃平面的法向量,θl_1、θl_2和θl_3分别为光线入射角、一次折射角和二次折射角,Xl_1、Xl_2和Xl_3分别为oclpl_2段、pl_2pl_3段和pl_3p段的方向向量,dg为玻璃平面的厚度,空气、玻璃和水的折射率分别用na、ng和nw表示。本文双目系统封装外壳为自行设计,因此参数dl、dr和dg已知,分别为25 mm、25 mm和3 mm。
设pl_1经畸变补偿后的像面坐标为(Xl_1,Yl_1),则入射光线
式中:fl_x、fl_y表示左像面Xl轴方向和Yl轴方向的焦距,单位为mm。
以左摄像机坐标系为基准,则点pl_2坐标可表示为
式中:(xocl,yocl,zocl)=(0,0,0)。由于系统在设计时保证了像机像面和玻璃平面平行,因此nl=(0,0,1)。
由折射定律可得入射角和一次折射角为
光线经过玻璃上表面时发生第一次折射,折射前后两光线共面,且向量nl在该平面内,用nrotl表示该平面法向量,则有
第一次折射过程可视为向量Xl_1经旋转后变为Xl_2,旋转轴为nrotl,旋转角度θ1=θl_1-θl_2,该旋转过程可用四元数方法描述。设四元数ql_1=
由(8)式可计算得到旋转后光线的方向向量Xl_2,则点pl_3坐标可表示为
由折射定律可得折射角θl_3为
光线经过玻璃下表面时发生第二次折射,折射前后两光线共面,且该平面法向量仍为nrotl。第二次折射过程可视为向量Xl_2经旋转后变为Xl_3,旋转轴为nrotl,旋转角度θ2=θl_3-θl_2。设四元数ql_2=
由(12)式可计算得到旋转后光线的方向向量Xl_3,则被测点p坐标可表示为
同理,对右摄像机折射光路进行分析,由(2)~(12)式可得被测点p坐标为
将(14)式中相关坐标通过左右摄像机坐标系间的R、T矩阵转换到左摄像机坐标系下,联立(13)式和(14)式可求解参数λl_3、λr_3,并进一步求解p点坐标。将左摄像机坐标系作为世界坐标系,则该坐标即为p点的三维空间坐标。在实际测量过程中,若图片噪声或系统误差等因素导致光线Xl_3与Xr_3异面[16],则可求解两异面光线公垂线的中点,并将其近似为待求的空间点p。
3.2 双目匹配
一般情况下,水下一被测点p对应的两条折射光线Xl_3、Xr_3异面。令左摄像机下折射光路构成的平面为Πl,右像机下折射光路构成的平面为Πr,两平面交线为L,则可得以下性质:
性质1:被测点p一定在直线L上;
性质2:理想情况下,左右两折射光线均交直线L于点p;
性质3:一般情况下,光线Xl_3、Xr_3与直线L存在交点pl、pr,如
由上述分析可知,水下环境中一个被测点呈现两个“虚像”,虚像由折射、计算误差等因素导致,且互不重合。两个虚像均由被测点产生,因此互相匹配的两像点间距离应小于不匹配的像点间距离,同理可得,互相匹配像点对应的折射光线间距离应小于不匹配时的光线间距离,可得约束条件:
本文待匹配特征点为激光光条中心点,SIFT等传统图像算法无法获得匹配点对,而光条作为一维特征,搜索范围较小,采用外极线几何约束可准确快速地筛选匹配点。由于水下环境中存在折射,陆上外极线匹配方法无法直接使用,张强等[8]针对水下折射问题提出了一种适用于水下的极线约束模型,该模型指出水下环境中,外极线由于折射的存在而发生弯曲变形,成为曲线约束,该曲线可以通过计算获得,且实验结果显示曲线的弯曲程度较小。基于该情况,本文提出一种改进的外极线匹配方法,通过极线几何约束获得初始匹配范围,根据(15)式进行特征点筛选,剔除误匹配点,完成匹配。
外极线匹配原理如
通过极线几何约束,对左像面每一个像点可唯一确定一条右极线,该点在右像面的匹配点一定位于右极线上。令极线方向与光条成像方向呈一定角度,则右像面光条成像与右极线的交点即为左像点对应的匹配点。基于此性质,对外极线匹配法进行改进,使其适用于水下环境,具体匹配步骤如下:
步骤1:提取光条图像中心点作为待匹配点,在左图像任取一点Pa,计算其对应的右极线Lb,极线方程为
式中:sb为右极线斜率;Ebx、Eby为右极点坐标值。
步骤2:为便于求取任意形状光条与极线的交点,计算右像面光条中心点到极线Lb的距离,设定阈值ε,取距离最近且小于ε的两点xr1、xr2拟合直线l,认为l与Lb的交点Pb0为左像点Pa对应的初始匹配点,如
步骤3:以Pb0为圆心,取半径30 pixel范围内所有光条中心点Pbi,通过光路折射补偿,按照(15)式依次筛选Pbi,若满足条件,则Pbi为Pa对应的匹配点Pb。
步骤4:对于筛选出的匹配点对,按照光路折射补偿模型计算其对应的折射光线Xl_3与Xr_3,并计算两光线交点,该点坐标即为被测点p的空间三维坐标。对左像面光条中心点依次进行上述计算,即可完成水下物体双目匹配及三维重建。
4 实验结果与分析
4.1 特征提取对比实验
为验证本文特征点产生与提取方法的适用性,将所提方法与已有图像处理方法进行对比。选取标准圆柱和白色金属钣金件作为被测物体,如
结构光阵列获取表面特征点,按照本文方法进行三维重建;然后移除结构光阵列图案,通过SIFT算法提取特征点并完成特征点匹配,按照(1)式计算三维点云,完成三维重建。两次重建的三维点云分别如
由
图 9. 特征提取对比结果。(a)圆柱;(b)钣金件;(c)本文方法的圆柱点云;(d)图像方法的圆柱点云;(e)本文方法的钣金件点云;(f)图像方法的钣金件点云
Fig. 9. Comparison results of feature extraction. (a) Cylinder; (b) sheet metal parts; (c) cylindrical point cloud of proposed method; (d) cylindrical point cloud of image method; (e) point cloud of sheet metal parts of proposed method; (f) point cloud of sheet metal parts of image method
4.2 光条提取实验
为验证本文多光条提取方法的准确性和有效性,进行多种情况下的光条提取实验。首先通过photoshop软件随机定义一组光条图案,如
图 10. 光条提取测试结果。(a)自定义图案;(b)自定义图案的提取结果;(c)不规则金属板的左摄像机图像;(d)不规则金属板的提取结果;(e)石块的左摄像机图像;(f)石块图像提取结果
Fig. 10. Test results of laser stripe extraction. (a) Custom pattern; (b) extraction result of custom pattern; (c) left camera image of irregular metal plate; (d) extraction result of irregular metal plate; (e) left camera image of stone; (f) extraction result of stone
上述实验从不同方面证明了本文光条提取方法的准确性。由
4.3 水下测量对比实验
为验证本文水下折射模型及匹配方法,进行了陆上与水下测量对比实验。选取半径20.058 mm的标准球作为被测物体,首先将标准球放于陆上环境,通过外极线匹配并按照(1)式获得其表面三维点云,将点云导入Imageware软件计算测量半径,在系统视场范围内选取10个不同位置进行测量并记录测量结果;然后将标准球放于水下环境,在视场内选取10个不同位置,首先不加折射补偿进行一次测量,记录测量半径,再按照折射补偿模型获得三维点云并计算测量半径。用Rl表示陆上测量半径,Rw表示水下不加折射补偿测量半径,Rw0表示水下折射补偿测量半径,测量结果及误差如
表 1. 标准球测量结果及误差
Table 1. Measurement results and errors of reference sphere(unit:mm)
|
由
为验证本文匹配方法及折射模型的测量精度,采用不同方法进行水下测量对比实验,选取半径20.058 mm的标准球为被测物体。首先按照本文测量方法进行测量,计算测量半径并记录;然后更换双目匹配方法,采用外极线斜率匹配法进行匹配,记录测量结果;最后将本文折射模型换为极线约束模型进行测量,记录测量结果。更换10次位置,对每个位置进行上述三次测量,用R1表示本文方法测量半径,R2表示更换匹配方法后测量半径,R3表示更换折射模型后测量半径,测量结果及误差如
表 2. 不同方法测量结果及误差
Table 2. Measurement results and errors of different methods(unit:mm)mm
|
由
4.4 水下物体三维重建实验
为检验本文系统对水下物体的测量及三维还原效果,进行水下一般物体三维重建实验。选取具有代表性的白色金属钣金件和大型石块作为被测物体,对其进行三维形貌还原。首先将金属钣金件放入水中并固定于支架上,通过该系统对其进行测量,将获得的三维点云导入Imageware软件并判断其形状还原情况,测量结果如
再将石块放入水中,通过该系统对其进行测量,将获得的三维点云导入Imageware软件并判断其形状还原情况,测量结果如
由
图 12. 水下钣金件三维测量。(a)实验环境;(b)被测物体;(c)三维点云
Fig. 12. Three-dimensional measurement of underwater sheet metal parts. (a) Experimental environment; (b) measured object; (c) three-dimensional point clouds
图 13. 水下石块三维测量。(a)被测物体;(b)三维点云
Fig. 13. Three-dimensional measurement of underwater rock. (a) Measured object; (b) three-dimensional point clouds
5 结论
本文设计了一种基于线结构光阵列的水下双目测量系统,通过激光光条为被测物体提供大量特征点,针对光线折射问题,建立水下非平行不共折射面双目测量系统光路折射模型,并提出一种改进的外极线双目匹配方法,将其应用于水下环境。实验结果证明,该系统对水下标准球的测量精度与陆上相当,解决了测量误差较大的问题,对于一般物体具有较好的三维重建效果,测量过程中无需扫描,操作简便,适用于水下环境实时定位测量。
[1] Huo G Y, Wu Z Y, Li J B, et al. Underwater target detection and 3D reconstruction system based on binocular vision[J]. Sensors, 2018, 18(10): 3570.
[2] 肖心远, 蒋波, 倪江忠, 等. 基于极线约束的机器人双目视觉水下焊缝特征匹配研究[J]. 制造业自动化, 2012, 34(10): 119-123.
Xiao X Y, Jiang B, Ni J Z, et al. Research on underwater welding seam feature matching of robot binocular vision based onepipolar constraint[J]. Manufacturing Automation, 2012, 34(10): 119-123.
[3] Wu YL, NianR, HeB, et al. 3D reconstruction model of underwater environment in stereo vision system[C]∥2013 OCEANS - San Diego, September 23-27, 2013, San Diego, CA, USA. New York: IEEE, 2013: 6741275.
[4] Pi SM, HeB, Zhang SJ, et al. Stereo visual SLAM system in underwater environment[C]∥OCEANS 2014 - TAIPEI, April 7-10, 2014, Taipei, Taiwan, China. New York: IEEE, 2014: 6964369.
[6] 盛明伟, 周浩, 黄海, 等. 一种水下双目视觉测距方法研究[J]. 华中科技大学学报(自然科学版), 2018, 46(8): 93-98.
Sheng M W, Zhou H, Huang H, et al. Study on an underwater binocular vision ranging method[J]. Journal of Huazhong University of Science and Technology(Natural Science Edition), 2018, 46(8): 93-98.
[7] 马瑞浩, 朱枫, 吴清潇, 等. 基于图像分割的稠密立体匹配算法[J]. 光学学报, 2019, 39(3): 0315001.
[8] 张强, 董玉, 李海滨, 等. 非平行双目视觉系统水下成像的极线约束模型[J]. 光学学报, 2016, 36(3): 0315001.
[9] Kawahara R, Nobuhara S, Matsuyama T. Dynamic 3D capture of swimming fish by underwater active stereo[J]. Methods in Oceanography, 2016, 17: 118-137.
[10] Kang L, Wu L D, Wei Y M, et al. Two-view underwater 3D reconstruction for cameras with unknown poses under flat refractive interfaces[J]. Pattern Recognition, 2017, 69: 251-269.
[11] 李煊, 张铭钧. 水下双目视觉系统中的目标分割和目标定位[J]. 华中科技大学学报(自然科学版), 2017, 45(12): 53-59.
Li X, Zhang M J. Target segmentation and target positioning of underwater binocular vision system[J]. Journal of Huazhong University of Science and Technology(Natural Science Edition), 2017, 45(12): 53-59.
[12] OuyangB, DalgleishF, NegahdaripourS, et al. Experimental study of underwater stereo via pattern projection[C]∥2012 Oceans, October 14-19, 2012, Hampton Roads, VA. New York: IEEE, 2012: 6404976.
[13] 陈元杰, 朱康武, 葛耀峥, 等. 基于双目视觉的水下定位系统[J]. 机电工程, 2011, 28(5): 567-573.
Chen Y J, Zhu K W, Ge Y Z, et al. Binocular vision based locating system for underwater inspection[J]. Journal of Mechanical & Electrical Engineering, 2011, 28(5): 567-573.
[14] 陈云赛, 杨磊, 宫垠, 等. 基于线结构光的水下目标扫描定位方法[J]. 机器人, 2018, 40(6): 786-793, 802.
Chen Y S, Yang L, Gong Y, et al. Underwater target scanning and location method based on line structured light[J]. Robot, 2018, 40(6): 786-793, 802.
[15] BhargavaN, TrivediP, ToshniwalA, et al. Iterative region merging and object retrieval method using mean shift segmentation and flood fill algorithm[C]∥2013 Third International Conference on Advances in Computing and Communications, August 29-31, 2013, Cochin, India. New York: IEEE, 2013: 157- 160.
[16] 解则晓, 余江姝, 迟书凯, 等. 非平行双目视觉系统水下标定与测量[J]. 光学学报, 2019, 39(9): 0912004.
Article Outline
解则晓, 李俊朋, 迟书凯. 基于线结构光的水下双目测量方法[J]. 中国激光, 2020, 47(5): 0504004. Zexiao Xie, Junpeng Li, Shukai Chi. Underwater Binocular Measurement Method Based on Line-Structured Light[J]. Chinese Journal of Lasers, 2020, 47(5): 0504004.