田嘉禾,王宁,陈廷凯,李春艳,陈帅
1 大连海事大学 船舶电气工程学院,辽宁 大连 116026
2 大连海事大学 轮机工程学院,辽宁 大连 116026
3 哈尔滨工程大学 船舶工程学院,黑龙江 哈尔滨 150001
随着海洋智能体技术的快速发展,基于计算机视觉的水下环境智能感知技术在海洋开发中扮演着越来越重要的角色,尤其是在海底地形勘察、海洋环境监测以及水下目标检测识别等领域,具有重要的研究意义[1]。双目立体匹配作为双目视觉系统的核心技术,其精度与效率对后续的三维重建等工作有着极大的影响[2]。高精度的图像匹配技术引起了国内外学者的广泛关注,针对空气中的立体匹配研究,Lowe[3]提出了具有旋转和尺度不变性的SIFT (scale invariant feature transform)图像描述方法,但使用高维的描述向量不可避免地导会致SIFT算法计算缓慢,难以满足实时性要求。Bay等[4]等提出了稳健加速SURF(speededup robust features)算法,即在匹配过程中采用具有64维向量的特征点描述子,可有效提高匹配效率。PCA-SIFT (principal components analysis-SIFT)算法[5]借助主成分分析的策略可改善SIFT平滑加权直方图的描述方法,能使特征描述更加简洁、快速;ORB (oriented FAST and rotated BRIEF)算法[6]结合FAST (features from accelerated segment test)算子与BRIEF (binary robust independent elementary features)描述符,可使匹配速率提升2个量级。上述算法虽然能够提高匹配速率,但难以保证水下图像匹配的准确率。
需要指出的是,一方面,水中折射会影响光线的照射方向[7],导致相机的水下成像模型与空气中不同;另一方面,水下光照不均匀,会导致图像特征点稀疏,空气中的匹配方法难以直接平移应用于水下图像匹配。就目前而言,水下匹配方法主要分为稠密匹配与稀疏特征匹配2种。李雅倩等[8]提出了一种基于深度约束的半全局算法,通过采用抛物拟合法得到亚像素级的稠密视差图,有效实现了高精度的水下稠密立体匹配;Gedge[9]提出了一种水下相机反投影折射模型并建立了曲线约束条件,可有效删除误匹配点,获取稠密的特征点视差;Ferreira等[10]分析了折射因素对水下图像的影响并进行了近似估计,在对水下图像进行处理时,弱化折射因素对水下图像的影响可提高水下双目图像匹配的正确率。针对稀疏特征匹配研究,张强等[11]提出了基于曲线约束的UCCSIFT(SIFT feature matching based on underwater curve constraint)特征匹配算法,通过对水下成像模型的分析建模,并引入折射率因素,构建曲线约束方程来改善空气中的极线约束模型,改善了SIFT算法在水下双目立体匹配中误匹配率高的问题,但对于约束剔除阈值的选取不具泛化性;李佳宽等[12]将ORB算法与水下曲线约束策略相结合,可有效剔除水下图像的误匹配点,提高了匹配效率。
需要注意的是,上述方法在匹配的过程中并未考量水下特征信息缺失的因素,剔除了大量带有水下特征信息的关键点。另外,上述匹配算法的效率与精度还受最邻近匹配阈值的影响,阈值的选取难以统一。基于此,本文拟提出一种基于自适应深度约束(ADC)的水下双目图像稀疏特征匹配算法,针对水下图像中的稀疏特征,结合FAST算子与SIFT描述子来有效提高正确匹配点对的数量,以在保证算法稳定性的同时提高匹配效率;然后,通过建立自适应阈值约束的方法降低阈值选取对图像匹配的影响,极大程度地还原图像原始特征信息。
在水下拍摄的图像受光照和介质散射的影响,具有纹理不清、色彩单一以及光照不均的特点,若采用传统的特征点检测方法,将仅能获取有限的特征点[13]。因此,本文拟采用FAST算法提取大量特征点,用于描述水下图像的纹理信息,然后采用SIFT方法构建高维匹配基元,用以保证匹配准确率。
FAST[14]作为一种角点检测算法,不涉及特征点的特征描述。为获取图像中的特征点位置,首先,对图像施加FAST算子以提取响应值最大的特征点,然后,对相应的特征点添加方向属性,以此获取具有位置和旋转属性的特征区域。
为了获取不同位置的像素状态S p→m,如图1所示,以像素点P为圆心,以r=3为半径作圆[14],覆盖周围的16个像素点分别对应16个位置,则S p→m可以表示为:
图1 FAST特征检测原理图Fig.1 Schematic diagram of FAST feature detection
式中:m∈{1,2,···,16},为点P周围像素点的索引值;Ip→m为对应像素点的像素值;t为检测时的经验阈值。当周围像素的像素值与P点像素值的差值分别小于、大于和等于经验阈值时,该位置像素点的状态分别为d(dark),b(bright)和s(similar),分别表示周围像素点的亮度为暗、亮和约等于P点的亮度。
为了获得关键点集合,计算每个检测到的角点得分,如式(2)所示。
其中,
式中,Sb,Sd分别指像素点状态为b和d时该像素点所在位置的集合。计算以P点为中心的邻域内16个像素点与P点的像素值差的总和,保留响应分数最大的特征点,得到最终的关键点集合。
SIFT[3]特征匹配方法由特征检测与特征点描述2部分组成。针对特征点描述部分,SIFT方法通过计算像素梯度方向,为每个像素点分配高维的、具有独特性的描述符,以使匹配度量不受角度影响。本文将借助SIFT描述子的稳定性来对经过FAST方法检测后的关键点建立描述向量。首先,根据输入的图像建立尺度空间,即利用高斯函数对图像进行模糊和降采样工作来得到图像高斯金字塔,计算公式为:
式 中:L(x,y,σ)为 高 斯 函 数G(x,y,σ)对 图 像I(x,y)的 模糊函数;σ2为分布方差。
经高斯金字塔筛选出的关键点具有尺度不变性,在匹配过程中,为使匹配度量不受角度的影响,为每个关键点建立了独特的描述符,如图2所示。
图2 关键点主方向分配原理图Fig.2 Schematic diagram of main direction assignment of key points
采用16×16的窗口建立关键点描述区域,将关键点的基准方向旋转至与x轴重合,其中,像素点梯度方向的选取如式(6)所示:
式中:m(x,y), θ(x,y)分别为图像中像素点的梯度模值与方向角;L(x+1,y),L(x−1,y),L(x,y+1)和L(x,y−1)分别为对应像素点在其邻域内的尺度空间函数。通过构建关键点邻域梯度分布直方图,选取分布最广的方向作为关建点的主方向。
旋转后的坐标(x,y)表示为
式中: (xi,yi)为 关键点的初始坐标;θ0为绕基准方向旋转的角度。在图像半径区域内,根据每个像素点的梯度幅值与方向,通过分配高斯权重来生成方向分布直方图。
利用上述方法,在4×4区域内生成8个方向的梯度方向直方图,然后将每个方向的梯度累加,形成一个种子点。在16×16区域内共生成了16个种子点,因为每个描述子包含邻域128维相关信息,因此,每个关键点的描述向量都具备独特性与互异性,提高了算法的抗噪能力。
使用欧氏距离对双目图像中待匹配点的相似性进行度量,即寻找与关键点欧氏距离最小的特征点,即可得到最近相邻点距离N。根据欧氏距离计算次近相邻点距离S,通过比较相邻点距离与次近点距离的比值是否小于阈值T来判断是否接受这一对匹配点,如式(8)所示:
式中,T为预设阈值,且0<T≤1。匹配对数会随着预设阈值T的增大而增加,匹配对数增加,特征点匹配正确率却逐渐降低;相反,当降低预设阈值T时,匹配的对数减少,匹配过程更加稳定。
当双目相机在水下环境工作时,空气中的极线约束方法由于受到光的折射影响难以适用[15],因此在实际水下环境中,可通过考虑不同介质之间的折射率,设计自适应深度约束模型来减小图像匹配过程中的搜索区域,提高匹配效率。
为了减小匹配过程中关键点的搜索范围并提高匹配精度,在空气中常用极线约束方法来对最终匹配结果进行筛选[16]。考虑到水介质会对水下图像带来不良影响[17],为剔除误匹配点,本文构建了不同介质间相对折射率的约束模型,具体如图3所示。
图3 水下反投影模型Fig.3 Underwater back projection model
图3中:水下目标点Q在相机坐标系下的坐标为 (x2,y2,z2);投影到左、右成像面上的投影点分别为Pl和Pr;投影到折射平面上的投影点分别为Pl′和Pr′;双目相机焦距为f;光心到水面的距离为h;目标点至水面的距离为d;θ为左成像点与相机坐标系下y轴的夹角;φ2和φ3分别为左、右折射面对应的入射角;φ1和φ4分别为左、右折射面对应的折射角。根据相似三角形原理,可将坐标(x1,y1,z1)表示为
相应地,根据d和h以及折射点之间的位置关系,得到水下目标点Q的坐标 (x2,y2,z2)为
利用Q,和Or这3点的坐标,求得平面方程为
由于Pr的纵坐标z=f,由此可得Pr的坐标方程为
本文在SIFT算法的基础上,结合FAST角点检测算法,并引入水下折射率因素的约束条件,实行了水下双目图像特征匹配,具体的流程如图4所示。匹配过程主要分为4个步骤:
图4 水下图像匹配流程图Fig.4 Flow chart of underwater image matching
1) 利用FAST角点提取算法,通过设定阈值计算像素点状态,并提取左、右两幅图像关键点的位置。通过计算关键点的FAST得分,得到两幅图像各自的待匹配特征点集。
2) 使用SIFT算法对两幅图像的待匹配特征点集进行描述,并利用中心像素点周围像素的梯度信息生成128维描述子。
3) 通过关键点的描述信息计算左、右图像特征点的欧氏距离,得到最近相邻点距离以及次近邻点距离。计算2个距离的比值,筛选出比值小于阈值T的左、右图像特征点来作为预备匹配点对,T值通常取为0.4~0.6[3]。
4) 利用相机的内、外参数以及水下折射率,对不在约束方程的匹配点对进行筛选。在筛选过程中,由于误差的存在,特征点不会完全落在约束曲线上,此时,检测特征点与约束曲线的距离,当该距离小于设定阈值 τ时,保留该匹配结果,其中 τ的初值为1像素,即 τ0=lpix(lpix为图像中相邻两像素点的间距)。当保留点对数少于总匹配点对数的50%时,重新设置阈值,使阈值大小增加一个像素距离,即 τ1=τ0+lpix,然后扩大搜索区域,重新进行匹配点对的剔除操作,直至循环i次,阈值 τi=τ0+ilpix,使保留特征点对数满足条件,从而获取最终的匹配点对。
为了证明本文算法的有效性与优越性,将本文所提算法与经典的SIFT[3],SURF[4]以及UCCSIFT[11]在匹配对数、准确率和实时性方面进行了对比。为了体现本文算法的鲁棒性和普适性,本文针对自采数据与公开数据集[18-19]分别计算了匹配结果,数据采集平台如图5所示。
图5 水下数据采集平台Fig.5 Underwater data acquisition platform
实验所用相机尺寸为80 mm×22 mm×25 mm,分辨率为640×480,视场角为72°,焦距为3.6 mm,数据采集地址为大连海事大学凌海港口水域。为避免水域特性对实验结果产生影响,选取了公开的数据集[18-19]。其中,文献[18]中数据集所选取图片的分辨率为512×512,水体颜色偏绿,水质较为浑浊;文献[19]中数据集所选取图片的分辨率为640×360,水体呈蓝色,数据的亮度皆较暗。实验平台基于win10系统,Intel Core i3 8代处理器,配置Visual Studio 2013与Opencv2.4环境。本文通过张正友标定法计算了相机内部参数,如表1所示。表中,(fx,fy)为相机的焦距相关参数,(u0,v0)为像素坐标系下原点坐标,K为相机畸变参数矩阵。
表1 双目相机内部参数Table1 Internal parameters of binocular camera
在3种典型的水下环境(暗光、旋转、浑浊)下共选取6组图片进行了对比,相应的匹配结果如图6所示。
图6 不同数据集匹配结果Fig.6 Matching results under different data sets
如图6所示,在3种典型的水下环境中,SIFT与SURF算法在匹配的过程中同名点之间连线的斜率不一致,存在明显的误匹配点;基于水下约束的UCC-SIFT算法则能明显降低误匹配点对,但特征点数量有所下降。需要强调的是,本文所提的ADC-UFM算法与传统的SIFT,SURF算法相比,能够明显剔除误匹配点,与UCC-SIFT算法相比能够保留更多的特征点对,且不受水下环境影响,更加稳定。
除上述匹配结果图外,采用4种匹配算法在T=0.4的情况下测得相应的量化指标如表2所示。
如表2所示,在匹配点对数方面,采用本文所提ADC-UFM算法对双目图像匹配进行条件约束时,匹配点对数在绝大多数水下环境中均少于传统的SIFT和SURF算法,考虑到水下图像特征点易聚簇的情况,本文所提方法在迭代阈值 τ的过程中易接受多余的特征点,因此自采数据在浑浊环境下的特征点对数高于SIFT算法,且此时本文所提ADC-UFM算法的准确率有所下降,低于UCC-SIFT算法。另外,借助FAST算子,本文所提ADC-UFM算法在特征提取方面能够比UCC-SIFT算法获取更多的匹配点对数,更适用于双目视觉后续的三维重建工作。
表2 实验结果数据对比Table2 Comparison of experimental data
在匹配正确率方面,对于缺乏误匹配点剔除策略的SIFT和SURF算法,其准确率在上述3种典型水下环境中均低于本文所提ADC-UFM算法。需要指出的是,缺乏自适应阈值选取的UCC-SIFT算法不可避免地会剔除正确的匹配点对。因此,本文所提ADC-UFM算法的匹配正确率要高于UCC-SIFT算法。图7所示为在自建数据集和公开数据集下不同算法匹配正确率与阈值T的关系,由于数据集包含的图像较多,所以每组数据集皆采用50组图像。由图7可知,与SIFT,SURF和UCC-SIFT算法相比,本文所提ADC-UFM方法在T=0.4~0.8之间有着较高的准确率,在T=0.4时准确率能够达到85.2%。
图7 不同算法匹配准确率对比图Fig.7 Comparison of matching accuracy of different algorithms
在匹配效率方面,由于采用的是外加深度约束策略,本文所提ADC-UFM算法在匹配效率方面要低于无约束策略的SIFT和SURF算法。但相比SIFT特征提取方法,因本文采用了效率更高的FAST算子,因此在旋转、浑浊和暗光的水下环境中,其匹配速率高于UCC-SIFT算法。
本文提出了一种基于FAST与SIFT算法相结合的高精度双目水下图像特征匹配方法。通过考虑水下折射率,明显提升了水下匹配约束模型的可用性,能够有效剔除误匹配点对。通过设计自适应阈值选取模块,最大程度地保留了水下图像特征信息的完整性。实验结果和比较分析验证了本文所提出ADC-UFM算法的有效性和优越性,为基于双目视觉的三维重建以及测距等提供了新的技术手段。需要指出的是,ADC-UFM算法在抵抗光照性与匹配效率方面略有不足,还有一定的提升空间。