张 伟,李子轩,宫 鹏,赵汉卿,曾 宁
(哈尔滨工程大学 自动化学院,黑龙江 哈尔滨,150001)
近年来,各国海军致力于发展无人水下航行器(unmanned undersea vehicle,UUV)技术[1]。在UUV自动接驳技术中,远距离跟踪定位技术已经相对成熟,而在近距离接驳阶段操作的准确性和稳定性是当前需要攻克的难题。在 UUV水下近距离接驳阶段需要用到的检测传感器装置主要有 3种:视觉检测传感器、声学检测传感器和电磁检测传感器。Deltheil等[2]对上述3种方法进行了比较,并说明视觉检测传感器对外部环境有更强的抗干扰性和较高的定向精度。
基于视觉检测传感器的UUV自动接驳是一项复杂任务。目前,国内外学者提出了许多基于视觉传感器的接驳方法,如:标记颜色检测[3]、自相似地标[4]及 3D形状识别[5]等。Hong等[3]的视觉接驳方案使用的是彩色光源阵列,由于水对光谱的吸收,使得在复杂水况中,彩色目标光源阵列被相机检测到的概率很低。Negre等[4]提出对设计的自相似地标进行检测,但从工程角度来说,放置这种视觉导引标志物是一项很复杂的任务。Wirtz等[5]提出的视觉接驳系统,需要足够的外部光源照亮待检测目标,由于水下环境中光的后向散射与非均匀光照,成功检测目标具有很大难度。Maire等[6]提出的新型标记极点检测算法,在室外泳池完成4 m距离内的基于视觉的接驳实验,但是该方法只能在能见度高的水域进行,适用范围较小,对环境要求较高。针对水下目标选择问题,Ghosh等[7]验证了导引灯阵作为被检测目标,更加适合复杂的水下环境。鉴于此,文中提出一种基于视觉导引灯阵定位方法。并通过水池UUV接驳实验验证了其合理性和有效性。
UUV的叉柱式接驳装置可以用来实现UUV的自主接驳,如图1所示。
图1 叉柱式接驳系统Fig.1 Ford-carrying-pole docking system
导引灯阵的设计对单目视觉跟踪系统有很大的影响。设计导引光源系统时,主要需要考虑到光源强度、光源间距、指向性定位要求和定位范围等条件,设计如图 2 所示的线性目标光源系统。
图2 线性目标导引光源Fig.2 Linear target guided light source
采用 3个大小、种类和形状都一致的光源,取中间的光源为参考光源,光源直线排列,相邻光源间距 0.35 m。光源设备为美国CREE公司的XML-Q5系列光源,加装防水罩后,线性排列在母船顶部的接驳装置底部。
实验用于采集图像序列的单目视觉跟踪系统是由以下硬件组成:单目低照度黑白摄像机Tornado、DH-VT111图像采集卡、24 V稳压电源和Windows系统的图像存储设备如图 3所示。其中,图像采集卡是单目黑白摄像机和图像存储设备的桥梁,用来将摄像机采集到的图像传送到图像存储设备中,单目黑白摄像机靠24 V稳压电源来供电。摄像机的安装如图4所示。
图3 图像存储系统Fig.3 Image storage system
图4 摄像机的安装Fig.4 Installation of camera
线性目标光源阵列见图 2,系统由 3个 XMLQ5系列光源经防水处理后组成,并被固定在一条直线上。线性目标光源阵列及手工添加的伪光源和尼龙绳共同构成光源系统如图5所示;实验环境是一个长10 m,宽5 m,深5 m的水池,如图6所示。
2.1.1 方法介绍
图5 手动添加的伪光源Fig.5 Pseudo light source added manually
图6 5 m深水池Fig.6 Water pool of 5 meters in depth
在 UUV近距离接驳阶段,基于单目系统的UUV视觉目标跟踪由位于UUV腹部正中心的摄像机采取原始图像。而原始图像常常受到噪声的影响,使目标跟踪产生误差。因此,需要对原始图像进行预处理,并根据实际情况提取出其突出特征,以提高视觉目标跟踪的稳定性和精度。最后,结合数学形态学对目标光源区域的轮廓进行修正。引入数学形态学处理目标光源可以有效去除造成误差的小块干扰区域,为目标光源特征值的提取提供条件[8]。
2.1.2 改进大津法
在水下接驳 UUV过程中,单目摄像机获取的图像中,线性目标光源区域就整幅图像而言相对较小,考虑到目标光源区域与背景的对比度反差较大,采用阈值分割的方法将会很有效果。但是,在应用传统的大津法[9]进行阈值分割时,由于水下光的散射,水下光源图像附近部分背景区域容易被错判为光源目标,而且常常伴随着较大的干扰,极容易造成分割失败。经过对水下线性目标光源直方图分析,发现目标光源区域的灰度值在不同光照条件和成像距离下总是最大的,如果能选择足够精确的分割区间,再通过大津法就能得到合适的阈值。
基于此,提出对现有大津法的改进方法如下:
1)统计原始图像I0灰度值,得到其灰度值直方图;
2)求出灰度直方图中的所有极大值点,记除最高亮度外,拥有最高灰度值T0的极大值点;
3)取图像I0中大于灰度值T0的所有灰度值存入数组A;
4)用传统大津法获得数组 A中的最佳分割阈值T1,并对原图I0进行阈值分割,即可获取分割后的图像。
2.1.3 改进大津法光源目标提取实验
取单目摄像机采集到的单幅图像(见图 7),将其命名为I2,利用传统大津法对I2进行处理(见图8)。可知,在单幅图像中目标光源所在区域灰度值较高且所占比例较小,用传统大津法并不能有效地分离出目标光源区域的特征。
图7 原始图像Fig.7 Original image
图8 传统大津法处理后的图像Fig.8 Image processed by traditional Otsu method
采用文中提到的改进后的大津法对单幅图像I2进行处理,得到的效果图见图9,可见改进后的大津法可使线性目标光源所对应灰度值的像素个数在全幅图像的比例得到提高,进而降低了对目标光源特征提取过程中存在的误差,达到较好的阈值分割效果。
图9 改进大津法处理后的图像Fig.9 Image processed by improved Otsu method
2.2.1 方法介绍
在近距离视觉导引阶段,常常需要 UUV克服水下各种干扰,实现对回收平台的跟踪。文中对目标导引灯阵的跟踪主要是利用改进的核相关滤波(kernel correlation filters,KCF)算法[10],该算法是在 KCF跟踪算法基础上加入对目标尺度变化的跟踪[11]。在 UUV水下接驳视觉导引灯阵的定位过程中,采用该改进算法常常会由于伪光源的出现而导致跟踪失败。因此文中利用二进制大对象(binary large objects,BLOB)分析描述特征结合改进多尺度KCF跟踪算法。实验中,文中所提出的改进方法能够较好地跟踪带有伪光源的目标光源。
2.2.2 算法原理
1)加入尺度变化的KCF跟踪方法
KCF算法的核心是通过对基础样本循环采样,获得样本矩阵,通过离散傅里叶变化对角化,利用方向梯度直方图(histogram of oriented gradient,HOG)多通道特征训练样本获得的分类器做到快速检测。加入尺度变化的KCF算法[11],通过选择一系列的尺度因子,获得尺度的金字塔,之后利用双线性插值法获取一个固定的尺寸,并依据KCF检测,获取响应最大的尺度,作为新目标的位置和目标框大小。
2)结合 BLOB特征分析的改进多尺度 KCF跟踪方法
在 UUV水下回收阶段视觉跟踪过程中,往往由于水底的白色区域或者接驳站的反光,抑或水中的发光体、悬浮物反光等伪光源的出现导致跟踪失败,这是由于伪光源与真实导引灯阵光源有极大的相似性,而KCF具有跟踪速度快、有一定的抗遮挡和一定的背景光变换适应能力,在水下目标跟踪中具备良好的性能。基于此,文中利用BLOB特征对伪光源进行特征描述,结合带尺度变化的KCF算法。通过分析真伪光源的特点可得出伪光源与真光源在紧度、不等轴度、圆度、粗糙度、距离标准差、实心度及凸度7个BLOB算子描述向量中的不同估计,由此可在 KCF中利用BLOB特征对伪光源进行特征描述,并加以分类。
2.2.3 目标导引灯阵跟踪实验
实验使用的测试样本是在实验室中录制的约300帧添加伪光源后的目标光源移位的图像序列。实验环境如下:Windows 10 64位操作系统、64位MATLAB 2018a、英特尔i7 4720HQ处理器及8 GB内存。录制的图像序列中每张图像的分辨率为640×480。
为了单独测试跟踪算法的性能,通过手工标注第1帧图像中的目标跟踪区域,用如图10矩形框住的区域,矩形中还有少量的背景区域作为样本,可以提高分类器的抗干扰能力。对基准图像(框中标注的图像区域)进行循环移位可以构造大量的训练分类器的样本图像。实验跟踪的过程中提取任意的3帧图像,如图11所示。
图10 手动标注出的第一帧图像Fig.10 The first frame image manually marked
图11 加入伪光源后任意提取的3帧图像Fig.11 Arbitrary three frame images extracted after adding pseudo light source
文中选择较为主流的评价标准Benchmark[12]来评价KCF跟踪方法对目标光源的跟踪性能,其判别的过程主要利用2.1节提出的目标提取算法提取目标光源区域,之后,对提出的改进跟踪方法进行实验。对于KCF跟踪方法,文中利用的是其中的精确度曲线指标。
结合上述3帧图像及对图片序列仿真的过程可以看出,在添加伪光源后,KCF跟踪方法对线性目标光源区域跟踪效果仍然表现良好,得到的基于Benchmark的精确度曲线[12]如图12所示。
图12 加入伪光源后基于Benchmark的精确度曲线Fig.12 Precision curve based on Benchmark after adding pseudo light source
结合该精确度曲线[12],由实验计算出 KCF跟踪方法跟踪线性目标光源区域时的精确度为0.970,每秒传输帧数(frames per second,FPS)为48.67。在UUV跟踪实验中,精确度较高,在实时性上,视觉跟踪的FPS为48.67,远大于UUV控制系统的每秒2拍的采样速度,符合实验要求。
按照规划,在UUV视觉导引定位阶段,UUV已经开始了近距离的视觉导引定位,此时,UUV在接驳站的上方,实验条件下只需考虑横向、纵向、垂向以及艏向4个自由度。横倾角和纵倾角的变化不作考虑。水池实验条件下,经传感器测定纵倾角的最大值为 5°,横倾角的最大值更小,对实验的影响不大,因此只需研究四自由度定位方法。
当导引目标是线性目标光源阵列时,利用单目视觉技术可以在不同条件下对其进行位置测量。由于线性目标光源阵列各光源间的距离已知,相当于确定了其具体尺寸,利用单台摄像机即可获得它的三维坐标。根据摄像机获取的单幅图像,可以对目标光源阵列进行四自由度定位。定位过程中,参考光源和 2个普通光源都应该进入摄像机的拍摄范围内。
在满足包括参考光源在内至少有3个光源进入摄像机范围内的条件下,设距离最远的 2个光源分别为L1和Ln,则向量LnL1和艏向方向相同,可以通过两光源与其在单幅图像上对应的两点所组成的向量LnL1和物理图像坐标系X1的夹角来确定。将艏向角记为正方向为顺时针。两点的坐标分别记为(x1,y1),则可以由式(1)来估计相对艏向角[13]
为了衡量实验的定位精度,使用技术较为成熟的超短基线(ultra short baseline,USBL)[14]定位系统测得的方位和距离值作对比,以人工标定的水平位置(UUV 船艏指向方向)和纵向位置(垂直于 UUV船艏指向方向)作为基准,分别以视觉测量数据和 USBL测量数据与基准的差值作为偏差。由于声音在水池中的反射与叠加,在水池实验中USBL常常会出现无示数或示数产生巨大跳变的情况,因此,实验进行了多次测量,选取USBL数据和视觉数据同时有效的部分进行分析,数据分析如图13所示。
图13 视觉-超短基线定位偏差对比Fig.13 Comparison of positioning deviations between vision and ultra-short baseline(USBL)
根据实验和数据分析可知:如图13(a)和图13(b)可知,视觉和 USBL的变化趋势是相同的,将这2张中2组数据绘制出如图13(c)的水平定位偏差图,分析数据发现,视觉导引和 USBL结果存在偏差,近似为一个0.4 m的定值。经分析,导致偏差的原因与单目摄像机的机械安装误差有关,可通过加入一个常数项进行误差补偿,将误差控制在 0.1 m以内。同时,实验论证了该视觉导引灯阵定位方法在近距离定位时,获取位置信息的质量相对于USBL具有更高的稳定性。
文中针对 UUV自动接驳中的视觉导引定位问题做出了研究,给出了一个简易可行的导引机械结构方案,提出了有效、稳定的UUV视觉导引灯阵定位方法,并对于所提出的方法进行了水池接驳实验验证。文中方法虽然在普适性上不占优势,但是针对水下导引灯阵的定位问题有着较高的实用性。
今后可对以下方面进行研究和改进。
1)选择质量更好的导引灯阵。水下环境光源散射现象严重,若选取更好的灯阵方案,可以增加灯阵识别距离和提高识别效果。
2)进行多场景的实验验证。文中只进行了水池接驳实验,然而,对UUV的自动接驳研究是为了日后运用到更加复杂的场景下,因此需要多场景下的实验验证。
3)对遮挡问题进行研究。考虑到 KCF算法本身有一定的抗遮挡能力,文中对于有遮挡条件下的导引灯阵跟踪问题没有做深入的探讨。
但是对于 UUV自动接驳来说,导引灯阵被遮挡引起的接驳失败也时常发生,因此,解决遮挡问题十分重要。