1. 引言
水下机器人作业环境存在能见度低、水质浑浊与扬沙等现象,使得采集的图像缺乏有效感知信息,图像检测算法难以提取目标边缘、颜色等特征,并且生成的三维点云较云为稀疏,降低了三维重建模型的成像质量。因此,增强ROV (Remotely Operated Vehicle)采集的水下图像特征,提高有效特征点,是目前亟需解决的难题。
特征点检测作为三维重建必不可少的环节,国内外均有着长期的研究。特征点检测需要图像具有明显的物体边缘特征信息,以便精准的描述目标物体。因此,需要对采集的水下图像进行预处理,如张阳等 [1] 通过ORB (Oriented FAST and Rotated BRIEF)特征点法对水下图像进行特征提取与匹配时,面对光在水体吸收和散射作用下导致图像质量下降的问题,选择直方图均衡化作为图像处理的方法,实验结果验证了图像处理对于水下图像特征点提取、匹配数量方面均具有较大改进,尤其是低对比度的图像,误匹配数明显减少;李海森等 [2] 在对多波束声纳图像进行SIFT (Scale-invariant feature transform)特征跟踪时,通过中值滤波和动态亮度分配对图像进行处理,使得提取到的SIFT特征包含了更多的图像信息;王昕平等 [3] 在基于SIFT特征的水下图像拼接研究中,提出了多尺度融合的图像增强算法来修复深水域偏色严重的问题,提高了水下图像配准的准确率和拼接的效果。图像处理之后就可以进行特征点检测,其中最著名的是Kanade Lucas Tomasi (KLT)方法,该方法使用光流法跟踪出现在视频下一帧中的关键点 [4] [5] [6]。为了加快KLT的速度,Sinha等人 [7] [8] 借助KLTGPU的图形处理单元(GPU)上实现了KLT。但是,类似KLT的方法很容易产生错误的特征匹配,不利于SFM (Structure-From-Motion,运动恢复结构)和SLAM (Simultaneous Localization and Mapping)中的特征跟踪 [9]。为了提高类KLT方法的精度,Myung等 [10] 建议使用惯性测量单元(IMU)辅助KLT减少误差累积。但是,类似KLT的方法在亮度、对比度变化明显时会增加失误,这会加剧SFM [11] [12] 和SLAM [13] [14] 中的特征漂移,更加不适应水下环境。最近,基于特征检测和匹配框架的特征跟踪已受到计算视觉领域 [15] [16] 和计算机图形学 [14] 的广泛关注。例如,Zhang等 [15] 提出了一种针对SFM非连续帧的高效特征跟踪算法,该算法使用两次遍历匹配对来处理物体遮挡问题以避免特征漂移。为了提高SLAM系统特征检测的鲁棒性,Garrigues等人 [17] 提出了一种半密集点跟踪算法来为移动设备生成密集的轨迹。Lee等 [18] 提出了一种使用光流的混合特征跟踪来检测无标记增强现实的独特不变特征点。在Bundler系统中,SIFT和BF方法用于检测和匹配关键点,计算时间较长。Buchanan等 [19] 提出了一种交互式特征跟踪方法,该方法使用KD-Tree和动态编程技术来加速特征描述符匹配。为了使特征跟踪方法获得准确的特征对应,Zhang等 [20] 提出使用极线约束来消除其极线附近的离群值。Wu等 [21] 提出的Viewpoint-Invariant Patches (VIP)来匹配高分辨率的图像,然后产生准确匹配的集合。但是,VIP功能非常耗时,降低了特征跟踪的效率。为了提高时间效率,可以使用RANSAC算法剔除异常值,例如Lee等 [18] 提出了一种用于增强现实的混合特征跟踪方法,该方法使用多种策略,包括光流、RANSAC、极线约束,以去除异常值,然后得出正确的匹配项。此外,使用快速特征检测器可以加快特征跟踪的过程,例如Zach等 [22] 建议使用SURF (Speeded-Up Robust Features)代替SIFT,以获得更快的计算速度。Svarm等 [23] 提出了一种基于图论的点跟踪方法,并采用了Gomory-Hu算法 [24] 删除不正确的匹配项。
本文提出了一种水下目标三维点云生成优化方法,通过改进SIFT特征检测,提高对水下目标图像的特征信息以及边缘信息提取能力,消除环境中特征点的误检测,优化生成的三维点云模型,并基于Visual Studio 2017和OpenCV计算机视觉库,在ROV采集的水下图像序列中验证该方法的有效性。
2. 水下目标图像序列特征检测优化方法
2.1. 目标三维重建
SFM传统算法是一种基于无序图片进行三维重建的离线算法。如图1所示,首先从图片中提取出焦距信息,然后利用SIFT特征提取算法提取图像特征点,接着用KD-Tree模型计算不同图片特征点之间的欧式距离进行特征点匹配,获得特征点匹配个数达到要求的图像对。针对每一对图像,计算对极约束,估计本质矩阵(E矩阵)与基础矩阵(F矩阵),通过计算较优匹配对距离来筛选符合匹配长度的优良匹配对,再用经典的RANSAC (随机抽样一致性)算法对其中的误匹配对进行剔除。同时,特征点在匹配对中链式地进行传递形成轨迹。
使用SFM算法对图片匹配对进行三维重建。首先,对初始化选择的两幅图片进行集束调整(Bundle Adjustment, BA),然后循环添加新的图片进行BA,直到无图片添加,BA优化结束。最终得到相机估计参数和场景几何信息,即稀疏的3D点云。
2.2. SIFT特征点检测算法
SIFT算法通过计算多尺度空间中关键点的位置、方向与尺度信息,以生成特征点描述子。SIFT算法充分考虑了图像变换过程中出现的光照,尺度,旋转等变化,其检测的关键点具有精度高、尺度旋转不变性等特点,同时不易受到噪声和亮度变化的影响。SIFT特征点提取过程包括以下四个阶段:
1) 多尺度空间构造
(1)
式中,
为输入图像,
为可变高斯函数,定义如下所示:
(2)
式中,
是尺度空间因子,决定图像模糊平滑处理的程度。
表示在
尺度下的图像像素坐标。通过调整参数
生成高斯尺度空间,然后将高斯尺度空间中相邻层的卷积结果进行相减,得到高斯差分(DOG)金字塔,计算如下所示:
(3)
式中,
表示响应图像,k表示其它相邻尺度空间倍数,为常系数。
2) 检测尺度空间极值点
针对每个采样点和相邻的26个点(同尺度周围的8个点以及相邻上下尺度的各9个点)进行比较,如果该点为其邻域的极值点,我们则认为是候选特征点。
3) 特征点方向分配
(4)
(5)
式中,
表示梯度模值,
表示梯度方向。
4) 构造特征向量
通过以上三个步骤,每个特征点被分配坐标位置、尺度和方向,为保证其旋转不变性,还要将特征点区域旋转(为特征点的方向),由于进行旋转,则采样点坐标改变,新坐标定义如下所示:
(6)
将坐标轴旋转到关键点方向,采样窗口是以关键点为中心的16 * 16的邻域大小,将采样窗口分割成为16个4 * 4的子块,计算在每个子块上8个方向的梯度直方图,特征向量由所有子块的梯度方向的直方图组成,所以一个关键点可以具有8 * 16 = 128维的特征向量。
2.3. 改进的SIFT尺度空间构造方法
由于水中悬浮颗粒对光的吸收和散射,会造成原始图像清晰度低、目标边缘模糊和颜色失真,从而导致SIFT算法检测的特征点数量减少,为后续的相机运动轨迹恢复及三维重建带来挑战。针对上述问题,本文提出了一种改进SIFT尺度空间的构造方法,通过在多尺度空间构造过程中引入图像滤波模块,有效地提高了目标边缘特征点数量。具体特征点提取流程如图2所示。
![](//html.hanspub.org/file/4-2760640x23_hanspub.png?20220129081930185)
Figure 2. Flow chart of feature point extraction based on underwater image
图2. 基于水下图像的特征点提取流程图
本文提出的SIFT尺度空间构造方法,针对图像给定的任一像素,通过在式(1)中增加图像噪声抑制与目标边缘增强项,得到边缘特征明显的响应图像,计算式如下所示:
(7)
式中,
表示图像I的卷积降噪项,定义如下:
(8)
式中,
核尺寸。通过卷积网络实现对滑动窗口中的原始图像降噪,消除图像中由水下悬浮颗粒引入的椒盐噪点。式(7)中
表示为像素的权重和,定义如下:
(9)
式中,
计算像素点I到中心点的空间距离权重值,
表示相邻像素值权重。在图像信号幅度平坦区域,
中每个像素点
的值相近,空间距离权重
主导滤波效果;在目标边缘区域,边缘同侧的
值相近,且远大于边缘另一侧的值,此时另一侧的像素点的权重对滤波结果几乎不影响,目标边缘信息得到增强。在平坦区域出现扬尘噪声点时,噪声点周围的信号的权值都很小,在进行归一化后,这些权值得到了提升,因此具有一定的效果。定义如下:
(10)
(11)
最后通过不同的高斯平滑参数
计算DOG响应图像,计算式如下:
(12)
检测DOG响应图像中的极值并标记,得到图像特征点。
3. 实验结果与分析
3.1. 水下目标图像特征点检测及匹配结果
本文基于ROV拍摄烟台近海水产养殖基地的水下图像资料,分别从特征点检测、有效特征匹配对及三维重建三个方面讨论改进尺度空间构造方法与传统SIFT特征提取算法的性能差异。实验环境如下表1所示。
![](Images/Table_Tmp.jpg)
Table 1. Experimental data source and processing platform
表1. 实验数据来源及处理平台
由图3(a),图3(b),图3(e),图3(f)可知,改进算法在物体边角处(海胆及海参的突触、扇贝的外壳等)检测的特征点数量比SIFT算法显著提升,式(8)增强了图像的边缘信息,提高了图像局部极值点数量;在图3(c),图3(d),图3(i)~(n)中,改进算法在物体重叠区域的特征点数量与密度明显高于SIFT算法,这是由于在构造多尺度空间过程中,改进算法消除了悬浮颗粒对物体的遮挡使得物体轮廓更加明显;在图3(g),图3(h),图3(o)~(t)中,物体密集排列且重叠区域较少,改进算法相比SIFT在检测特征点高出301%与131.88%,其特征点主要分布在物体轮廓,这表明在多尺度空间构造中对物体边缘信息增强,有效地提高了特征点检测数量。
实验结果表明,本文算法生成的特征响应图像,增强了物体的辨识度,提高了物体边缘信息的感知,消除了物体外特征点干扰,目标物体特征点数量增加,表达出了更多的特征信息及边缘信息。
各场景中特征点的数据统计如图4所示:
![](//html.hanspub.org/file/4-2760640x60_hanspub.png?20220129081930185)
Figure 4. Columnar comparison chart of underwater image target feature point inspection measurement
图4. 水下图像目标特征点检测量柱状对比图
如图4水下图像目标特征点检测量对比所示,本文算法的目标物体特征点检测量均是传统SIFT算法中特征点检测量的1.51倍以上,如特征点增加较大的实验组,F组和H组分别增加了10倍与9倍左右。水下环境中光受海水散色及吸收较严重,海水较为浑浊,本文算法提出的SIFT尺度空间消除了图像中环境的干扰,使生成的点云模型更具物体特征信息和空间层次信息,得到的图像特征点数量约为传统算法的3.9倍,本文算法在提取水下图像特征点中更具优势。
然后分别对不同角度拍摄的水下目标物体进行特征点匹配,消除误匹配对,匹配效果如图5 (左图为SIFT传统算法,右图为本文算法)所示。
如图5特征点匹配效果图所示,相较于SIFT原算法,本文算法得到的图像中目标物体的特征点匹配对数远大于物体外的匹配对数,虽然目标物体外的匹配对数减少了,但整个图像的匹配对数并没有因此而减小,改进的SIFT算法检测出更多的目标物体特征点。如图6匹配对对比图所示,本文算法较原SIFT算法匹配对数均有了提高。由于B组图像目标物体几乎占据了整个图像,不是改进算法的“理想对象”,因此表现出与SIFT原算法相同的性能,致使匹配对数增加不明显;其他组匹配对数至少增加0.32倍,如特征点数分别增加10倍与9倍的F组和H组,匹配对数增加了5.44倍和4.46倍。
![](//html.hanspub.org/file/4-2760640x81_hanspub.png?20220129081930185)
Figure 6. Comparison of underwater image object matching to cylindrical image
图6. 水下图像目标物体匹配对数柱状对比图
验证的10组图像中,本文算法得到的匹配对数是SIFT原算法的2.78倍,算法效果明显,验证了本文算法能有效提高中小型水下目标图像特征点匹配对数。实验表明,本文改进的SIFT算法提高了目标物体的特征点数量,使得匹配对数量增加,尤其是物体边缘处的图像匹配对数,表达出了更多纹理细节信息,使得点云模型更具特征信息和空间立体感,有利于优化三维点云模型。
3.2. 水下图像三维点云重构
根据本文算法,对120张水下图像序列进行处理,得到的图片匹配对进行SFM,如图7所示,传统SIFT算法以及本文提出的改进的SIFT算法对水下图像序列处理后生成的三维点云模型对比。
(a) SIFT算法生成的点云数据
(b) 本文算法生成的点云数据
(c) SIFT算法生成的点云数据
(d) 本文算法生成的点云数据
Figure 7. Rendering of point cloud model
图7. 点云模型效果图
![](Images/Table_Tmp.jpg)
Table 2. The number of 3D point clouds generated by each image sequence
表2. 各图像序列生成的三维点云数量
实验结果表明,经过水下图像优化方法生成的点云数据,不仅提高了点云模型的几何特征、颜色特征,而且从表2中统计数据可见,本文算法生成的点云模型在点云的数量上是传统算法的2~4倍,从图7可见,本文方法得到的点云模型,其特征主要表现在优化后的点云模型噪音、杂质较少,模型清晰度高。经过本文方法的颜色响应计算后,图像特征信息明显,边缘信息突出,特征响应计算则将目标物体从背景中分离出来,剔除了环境干扰的影响,所以在最终生成的点云模型中,环境影响因素造成的噪音点被消除,噪声点云数量降低。在三维重构后得到的点云信息既能反应水下较为真实的结构,也能获得较为准确的目标物体的物理几何信息,从而有利于随后的研究观察,以及优化实地建模效果,工程意义显著。
4. 结论
本文提出了一种三维点云模型生成优化方法,并基于ROV拍摄的水下图像进行了验证。该方法在水下图像特征点检测、图像匹配、点云重构模型方面与SIFT原有算法进行了比较。在特征点检测方面,不仅增强目标物体的辨识度和边缘信息的感知能力,还消除目标物体以外特征点的干扰,有效解决水下图像目标物体难检测的问题;在图像匹配上,增加了图像间目标物体处特征点的匹配对,减小了目标物体以外特征点的匹配对;在点云模型重构方面,本文算法更有利于识别出目标物体,生成模型更具目标物体特征信息及空间层次信息。
实验证明,本文算法相较于SIFT算法更有利于处理水下图像三维点云模型重构问题,该方法为之后的水下环境观察、研究、建模提供了一定的工程价值。
基金项目
本文项目来自于国家重点研发计划(2018YFC0309400)。