基于图像特征检测和匹配的无人船航行姿态角提取方法
2021-11-19何伟业
何伟业,金 光
(宁波大学 信息科学与工程学院,浙江 宁波 315211)
近年来,随着计算机视觉、自动驾驶和物联网等新技术的发展,无人船的研究和应用也逐渐崭露头角[1].获取航行姿态角是无人船航向控制的基础,不仅关系到航行安全,也是航迹跟踪、自动避障等问题的重要组成部分,直接影响无人船的导航精度.计算机视觉技术的发展使得其在无人船领域可以得到有效运用,通过计算机视觉获取无人船环境信息和船体运动信息成为可能.
图像特征的提取和匹配在三维重建、视觉同步定位与建图、图像拼接、图像融合、图像检索、目标识别和跟踪等计算机视觉应用中具有重要的意义[2],是无人船相关视觉技术的基础.通过提取特征点并加以描述,最后计算特征点之间的相似度是常用的特征匹配方法,即归结为特征的提取和图像之间的对应关系,旨在识别并对应相同或者相似的结构或内容.
为应对不同的场景和任务要求,研究者们在特征检测和描述算法方面做了大量研究.常见的角点特征检测方法包括Harris 角点[3]、小核值相似区[3]、加速分割测试特征(Features from Accelerated Segment Test,FAST)[3]以及集合特征检测器和描述符的定向快速选择(Oriented FAST and Rotated BRIEF,ORB)[4]等.同时也涌现出许多高精度要求的斑点特征描述方法,如尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)[3]、加速稳健特征(Speeded Up Robust Features,SURF)[3]等.随着基于学习的方法逐步应用于图像特征检测,精确形状的局部特征学习并定位的方法[5]、利用强化学习训练特征点检测和描述的方法[6]也应运而生.这些特征检测器相继出现和发展,不断改进特征类型、效率、鲁棒性以及准确性,进一步提高了特征的匹配度.
虽然针对不同场合提供了相应的特征检测和描述方法,但误匹配的存在也会大大影响特征匹配算法的效果,因此,研究者们常常围绕随机采样一致性(Random Sample Consensus,RANSAC)[7]、最小方差法(Least Squares,LS)[3]、最小中值法(Least Median Squares,LMedS)[8]3 种常用数学方法进行改进,出现了DL-RANSAC[9]、自适应阈值RANSAC[10]、运动网格统计[11]等方法,大幅提高了特征匹配的准确率.
上述方法使特征提取和匹配算法成功地运用于图像的运动姿态检测,但仍有一些问题需解决.具体来说,特征提取直接影响后期匹配算法的准确性.传统方法可以使用尺度、仿射信息等更多的图像线索来提高鲁棒性和精度,而基于学习的检测器则可以捕获更高级的图像线索,但是往往耗时较长,且需要提供训练集.而在特征对匹配中,简单的像素间相似度计算会导致匹配结果不尽如人意,同样不必要的匹配对还会影响算法效率,增加计算耗时.
而对于水域图像匹配,因周边环境变化多端,能提取的有效特征有限.基于上述分析,本文提出一种基于ORB 特征的无人船航行姿态角提取算法(Navigation Attitude Angle Extraction,NAAE),该算法增加水岸线分割任务,并基于LMedS 和LS 对特征匹配策略进行改进.算法流程如图1 所示,首先对采集图像进行预处理,划分有效区域,并计算ORB 描述子.接下来采用简单特征匹配策略对其进行初步筛选.然后进一步优化前后帧图像的模型参数.最后计算航行姿态角,即船体的俯仰角、横倾角、航向角.
图1 NAAE 流程
1 基于水岸线分割的ORB 特征提取
特征提取是特征匹配的第一步,如前所述,特征选择应考虑输入图像特性和所需精度.ORB 特征具有选择、尺度不变性和快速等优点[4],在实时性要求较高的计算机视觉任务中得以广泛应用.ORB 特征匹配通过建立特征集之间的对应关系来匹配两幅图像中的ORB 描述子,通过对汉明距离的相似性度量,在所有描述子中找到最接近的匹配.由于所有描述子都参与匹配过程,不必要的描述子会增加特征匹配的计算量和耗时,而且会影响算法准确率.因此,在对图像进行特征提取前需要对其进行预处理.
而对水域环境中的图像匹配,图像之间往往存在很多不重叠的动态区域,如水面、天空等动态变换的场景.对于这些区域的特征提取是不必要的,同时会增加整体计算量和时间.水中倒影更会增加后期误匹配数量,从而降低整体准确率.因此,为提高特征提取和匹配速度及有效性,本文对每一帧图像进行预处理,去除图像的水面部分.
对于水岸线分割,目前大多基于拟合的方法进行水岸线识别,进而区分水域和岸基.然而在复杂的内河水域环境中,水岸线大多极为不规则,此外水面常存在倒影、障碍物等干扰,因此拟合的方法效果不佳.而语义分割算法在自动驾驶领域中效果显著,为其在水岸线分割任务中的运用奠定了基础.
快速分割卷积神经网络(Fast Segmentation Convolutional Neural Network,Fast-SCNN)[12]基于现有的二分支网络结构,引入学习下采样模块,以此控制计算开销.因此Fast-SCNN 能实现实时的语义分割.本文采用该网络架构对图像集进行水岸线分割,分离水体,保留岸边环境.图2 展示了采用Fast-SCNN 进行水岸线分割的结果,可以看到部分河岸被错误地检测为水,且无法准确检测水域边界区域.
图2 水岸线分割
2 特征匹配
2.1 改进初始匹配策略
在ORB 特征匹配中,除非两幅图像的描述子都能找到与之匹配的对方,否则匹配无效.由于所有描述子都参与匹配,因此滤波是描述子匹配的一个重要过程.本文假设当描述子之间的汉明距离大于所有成对描述子最小距离的两倍时,两者匹配无效.为防止最小距离过小,过度滤波,本文将其下限设置为20.接下来,本文采用普通的模式匹配(Brute-Force,BF)来获得初始匹配对.
如果一个特征在特征集中有很好的区分度,那么说明其最近邻特征和次近邻特征之间有相当大的差异.为保证特征之间具有良好的区分度,本文采用比值提纯法,保留最近邻与次近邻比值在0.49~0.80 之间的匹配对,从而确保匹配的可信度.
2.2 优化模型参数
在完成特征对的初始匹配后,误匹配会对后期单应性矩阵、旋转矩阵等参数的计算造成很大影响.为此,一些拟合算法被用于减少误匹配的影响,从而减小误差.其中RANSAC 较常用,其反复从点集中随机选择一个子集,计算该子集中的单应性矩阵,并根据与初始估计值的一致性来区分所有剩余数据点,将其分为内点和外点,最后保留具有最大内点的样本.但是使用RANSAC 时需要确定最少点数、迭代次数、内外点距离阈值以及一致性集合大小阈值等参数,而且参数的确定直接影响匹配效果.
相比之下,LMedS 无需预设阈值,且可自适应地区分内点和外点.但当外点在样本中所占比例超过一半时,结果将会很差,而 LS 可以确保LMedS 利用足够多的内点[13],因此,本文结合LMedS 和LS 来优化模型参数,其框架如图3 所示.
图3 优化模型参数
3 航行姿态角计算
欧拉角将旋转姿态分解为围绕X轴、Y轴和Z轴的3 次旋转,通过给出的3个相互垂直的轴向,可描述现实世界空间的任意旋转[14].而X轴、Y轴和Z轴对应的3个欧拉角ψ、θ和φ可分别对应无人船的俯仰角、横倾角和航向角.
旋转矩阵可由3个相互垂直的单位向量构成,用于描述点在世界空间坐标系下的姿态,针对坐标轴可以分别构建对应的旋转矩阵R x(ψ)、R y(θ)以及R z(φ)[14]:
对于一个点在世界坐标系中的描述,可以理解为先绕X轴旋转,然后绕Y轴旋转,最后绕Z轴旋转,即可得旋转矩阵[14]:
根据2.2 节得到的旋转矩阵R可分别求取欧拉角ψ、θ和φ[14]:
4 实验和结果分析
最近,清华大学与西北工业大学的研究人员公开了首个内河无人驾驶数据集USVInland,旨在促进无人船领域相关研究[15].该数据集的采集平台配备了激光雷达、毫米波雷达、惯性测量单元(Inertial Measurement Unit,IMU)、双目立体相机等相关设备.针对无人船在内河航道中的感知和定位问题,提供了同步定位与建图/里程表、立体匹配和水岸线分割等不同任务的相关数据集.
本文实验环境:i7-9700K 处理器,英伟达RTX2080Ti 显卡,16 GB 内存,Ubuntu 18.04 系统.具体的水岸线分割采用USVInland 中的Water Segmentation 数据集进行训练.然后采用USVInland 中的SLAM/Odometry 数据集进行验证.
为验证本文算法的有效性,分别依据USVInland 中晴、雨、雾3 种天气的数据集进行实验.数据集提供了划分好的图片、传感器数据、对应时间戳及双目立体相机的内置参数.首先以相邻两幅图像为一组的方式抽取数据,3 种天气分别随机抽取100 组作为测试图像,根据对应时间戳的IMU(相机和船体均各自提供)数据计算每组图像对应的航行姿态角.基于这些数据,将常用的3 种方法(SIFT、SURF、ORB)与本文的NAAE 方法进行对比测试.
实验用的3 组图像如图4 所示.
图4 实验用图
图5为4 种方法在晴天状态下一组图像的特征匹配情况,图中可以明显看到前3 种方法均存在水面倒影的错误匹配对,而本文NAAE 解决了这一问题.
图5 特征匹配
本文以航行姿态角的平均准确率E和平均运行时间T评价算法准确性及有效性.对求得的旋转角度ψ′、θ′和φ′与实际的旋转角度ψ、θ和φ进行比较,以此计算准确率e,其计算公式如下:
为了分析本文方法的先进性,在有无水岸线分割任务的场景下,对比4 种算法的平均准确率E和平均运行时间T.此外再分析水岸线分割的必要性以及本文在特征匹配方面的提升.
在增加水岸线分割任务之后,4 种算法在3 种天气状况下的准确率都有了一定的提升(表1),其中,晴天相较于其他两种天气状况的结果提升较大.
表1 实验结果
在晴天时,几种算法的平均准确率均达90%以上.在雨天时,图像中可明显看出雨滴留在镜头上,且水汽较大,图像清晰区域较少,因此4 种算法的平均准确率都有所下降.在雾天时,相比雨天减少了雨滴的影响,清晰度提升不少,但还是存在模糊区域.此时4 种算法的平均准确率虽有所提高,但仍低于晴天条件的结果.在所有场景中,NAAE算法基本优于其他3 种算法.
4 种算法在晴天、雾天、雨天3 种场景中的平均运行时间也随可见度降低而减少.相比SIFT 和SURF 两种算法,ORB 算法和NAAE 算法的运行时间相对较稳定.在增加水岸线分割任务后,4 种算法的运行时间都有明显增加,但是NAAE 增加了水岸线分割任务后还能低于未增加该任务的SIFT和SURF 两种算法.考虑实际使用中对实时性的要求,NAAE 算法相比其他几种算法更适合.
5 结论
针对水面倒影及精度低的问题,本文提出了一种基于ORB 特征的航行姿态角提取方法NAAE.实验结果表明,该方法能有效地提取航行姿态角,删除冗余特征点,减少错误匹配,优化参数,加快航行姿态角的提取速率,进一步提高精度,并且满足实时性要求.
但在雨天、雾天等外部条件影响下,图像上会出现模糊区域,导致提取的航行姿态角准确性下降.另外,性能较低的设备尚难以支持计算实时性.后续研究将针对上述问题,继续提升计算精度和效率,改善算法的设备适应性.