基于前视声呐的水下目标检测算法研究
2022-12-01刘卫东高立娥
高 晗,刘卫东,高立娥
(西北工业大学 航海学院,西安 710072)
0 引言
海洋环境的探测与开发越来越依赖水下机器人对周围环境的感知能力,目前探测海洋的方法包括磁探测、声波探测、光探测和红外探测等等。而其中声波探测是唯一能够在海水介质中进行远距离探测的方法,因此声波探测是探测海洋的主要方法,利用声波进行探测的设备就是声呐,所以研究使用声呐进行水下目标检测对水下环境探测、作业有着重要的作用。
目前已有的研究思路大多是采用数字图像处理技术提取目标,在此基础上衍生出检测、识别、分类、跟踪等研究。归纳近些年关于水下目标检测方法的国内外相关资料,被广泛采用的方法有数字形态学[1]、马尔科夫随机场[2]、模糊逻辑理论[3]、小波变换[4]等。
基于声呐图像的目标检测和参数识别的文献有很多。Abu Avi等[5]提出了一种恒虚警率(CFAR,constant false alarm rate)检测算法,对不同环境下的270幅真实声呐图像进行了检测,结果表明该算法在接收机工作特性曲线方面较现有算法具有优越性;Santos MMD等[6]提出了一种图像处理技术与卷积神经网络结合的算法,在检测过程中融合卫星图像和水下声呐图像,以辅助部分结构环境下的水下导航;Matias Valdenegro-Toro等人提出了一种融合前视声呐和光学传感器信息的基于CNN的端对端目标探测方法;Gu J等[7]提出了一种可应用于 ROV 目标检测的算法,该方法利用高频前视成像声呐进行自动检测和识别,并对水下目标回波形状或声影形状的分割。
我国在水下目标探测与识别领域也取得了得以稳步发展。郭戈等人[8]中讨论了基于声呐图像的目标检测、去噪和图像分割的主要进展和典型算法,提出了基于声呐图像的水下目标检测的解决方案;Wenwu W等人[9]在声呐图像去噪后,利用相关匹配方法借助类目标模板进行目标检测和特征提取;王涛等人[10]提出了一种结合K-均值聚类和数学形态学的海床目标轮廓自动提取算法,该算法具有较强的克服背景噪声的能力;李海森等人[11]提出了一种基于TBD技术的SIFT特征跟踪方法,该方法使用了多波束声呐序列,能从潜在目标中选择出真实目标。
本文基于前视声呐硬件系统的优势功能,调整软件算法,搭建了试验环境,在水池进行了声呐数据采集试验,获取相关数据,通过获取的声呐数据图像,对水下目标检测方法进行了研究,达到了检测水下目标的目的。
1 水下目标检测总体方案
水下目标的检测主要依靠声呐探测装置,本文采用的声传感器为机械式单波束前视声呐。声呐数据量非常大并且通信频率较快,需采用声呐信息处理计算机来存储与处理声呐实时上传回来的数据,通过RS232串口通信将声呐数据传入声呐信息处理计算机。系统整体结构如图1所示。
图1 水下目标检测系统框图
图3 “mtHeadData”命令格式
2 声呐装置及实验场景
2.1 声呐装置
本文使用的声呐为来自Tritech公司的Super Seaking DST型单波束前视声呐。如图2所示,为前视声呐扫描示意图。Super Seaking DST型单波束前视声呐以低频3.0°(或高频1.5°)的开角向四周进行360°全方位扫描,最远探测距离为300米。该声呐可通过指令设置调节扫描范围,在数据采集中,利用这一功能仅进行90°范围内的扫描。当调节扫描范围大小后,该声呐的扫描方式变为:每次在一个特定的方向发射声波束,接收到回波数据后,改变角度发送新的声波束,重复这个过程直到覆盖整个扇区,一旦到达左右角度边界,声呐头便会反向旋转继续扫描。
图2 前视声呐扫描示意图
Super Seaking DST型单波束前视声呐的工作方式为命令/应答模式,即工作时需要接受外部命令,不能主动向外发送扫描数据。具体工作步骤如下:
1)声呐上电后,会通过RS232串口主动向外发送”mtAlive”信息,表明此时声呐与信息处理计算机能正常通信。
2)声呐和计算机正常通信后,计算机通过串口向声呐发送”mtSendVersion”命令。
3)收到”mtSendVersion”命令后,声呐向计算机发送确认消息”mtVersionData”。
4)确认好软件版本信息后,计算机向声呐发送”mtHeadCommand”命令为声呐配置工作模式、参数等。
5)配置好扫描参数后,计算机向声呐连续发送”mtSendData”命令,每收到一次,声呐便按照配置旋转一个步进角度Step并扫描当前的环境信息,打包成一个数据包”mtHeadData”通过串口上传给计算机。
声呐回传给计算机的”mtHeadData”命令格式如图3所示。
其中,白色部分为”mtHeadCommand”中的配置参数,可通过解算来校验参数正确性,Bearing为声呐当前扫描角度,深色部分为各个扫描线上的采样点强度值,个数与Dbytes表示的数值相同。
2.2 实验环境
为了验证水下目标检测算法的可靠性,在如图4的水池环境中进行试验;放置检测物(由黑色方框标记),设置声呐的扫描距离为2米,扫描范围为90°,采样点个数为50个,步进角度为0.9°。
图4 水池试验环境
3 水下目标检测算法研究
3.1 水下目标检测算法流程
水下目标检测算法主要由数据解析、滤波处理、增强处理、二值化分割处理、形态学处理、连通域检测目标等6个步骤构成,具体流程图如5所示。
图5 水下目标检测算法流程图
3.2 声呐数据分析与解算
前视声呐图像的生成依赖于声呐对接收到的声波进行的映射,声波在水中的传输中衰减和损耗较大,与光学图像相比,前视声呐图像具有以下特点[12]:
1)声纳图像分辨率低,图像整体偏暗,像素灰度值分布不均,大部分为背景区和混响区,目标区呈亮斑状,分布集中并且目标细节特征较少、轮廓模糊;
2)水下环境复杂,声呐成像易受到混响、噪声以及水中悬浮物的影响,并且由于声波在传输过程中衰减严重,往往导致目标被噪声淹没;
3)多途效应和旁瓣效应的影响,声呐图像上的目标可能会出现重影或者单个目标分裂成多个的情况,水中其他物体也会干扰目标的检测;
4)在对声呐采集的回波数据进行成像处理的过程中不可避免会有信息损失。
5)不同的水质环境对声呐的成像效果也有影响,使用同种处理方法得出的结果也大有不同。
通过声呐采集到的数据以灰度值的形式显示得到原始声呐数据图像如图6所示。
图6 声呐原始图像
对于声呐数据的处理可以参考传统光学图像的处理方法,对声呐图像的进行预处理,尽可能地降低噪声干扰,保留目标特征信息。
3.3 滤波算法研究
声呐图像中充斥大量斑点、目标区域边缘模糊等问题。为了抑制噪声影响,需对图像进行滤波处理,常用的图像滤波算法有中值滤波、均匀滤波、高斯滤波等。
中值滤波是一种空间域内的非线性滤波算法[13],其基本原理是:选择待处理像素的一个邻域中各像素值的中值来代替待处理的像素。主要功能使某像素的灰度值与周围领域内的像素比较接近,从而消除一些孤立的噪声点,所以中值滤波器能够很好的消除椒盐噪声。均匀滤波的基本原理:选择待处理像素的一个邻域中各像素值的均值来代替待处理的像素。但是均值滤波不能很好地保持图像细节,在图像去噪的同时也破坏了图像的细节部分,不能很好地去除噪声点,特别是声呐图像存在的椒盐噪声。高斯滤波是一种线性平滑滤波,其基本原理为:待处理像素点的值和其邻域内的其他像素值经过加权平均后得到的值来代替待处理的像素。对原始数据图像进行中值滤波处理、高斯滤波处理、均匀滤波处理和圆形邻域的均匀滤波处理,得出处理效果图分别如图7中(a)、(b)、(c)、(d)所示。
图7 滤波处理方法对比图
为了判断滤波效果的好坏,计算客观评价指标:峰值信噪比(PSNR,peak signal to noise ratio)、均方误差(MSE,mean squared error)、平均绝对误差(MAE,mean absolut error),从而判断3种滤波方法的效果。PSNR的值越大处理效果更好,MSE和MAE数值越小处理效果越好。PSNR、MSE和MAE的公式如(1)、(2)和(3)所示。
(1)
(2)
(3)
式中,M、N分别为声呐图像的长和宽,fm,n、gm,n分别为滤波前后图片在点(m,n)处的像素灰度值,MAXf表示图像中的最大灰度值。经过对PSNR、MSE和MAE等指标的计算,对比结果如表1所示。
表1 滤波效果指标
可以看出,中值滤波在PSNR、NMSE和MAE等指标上相较于高斯滤波、均匀滤波和圆形邻域的均匀滤波,具有更好的优越性,处理效果更好。所以采用中值滤波算法进行滤波处理,具体步骤如下:
1)如图8所示,取声呐图像中点坐标为(m,n)的灰度值为a4。
图8 3×3的正方形滑动窗口
2)对{a0,a1,a2,a3,a4,a5,a6,a7,a8}的灰度值大小进行排序,排序后为{b0,b1,b2,b3,b4,b5,b6,b7,b8},其中中值b4为点(m,n)处的灰度值。窗口如下:
图9 排序后的滑动窗口
3.4 增强处理
经过滤波后的图像,需要对其进行增强处理,目的是为了扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强声呐图像判读和识别效果,满足检测目标的需要。
为了得到更好的图像处理效果,需要对其灰度直方图进行分析,如图10所示,得到经过中值滤波处理后图像的灰度直方图。
图10 滤波后图像的灰度直方图
图像增强的方法一般采用直方图均衡化的方法,它是一种有效的空间域图像处理方法,是图像增强、图像压缩和图像识别的基础。直方图均衡化是利用图像直方图调整图像对比度的方法。其基本思想是以图像各灰度级概率的累积分布函数作为变换函数,将原图映射为一幅灰度级分布较均匀的图像。这样就增加了像素灰度值的动态范围,从而可达到增强图像整体对比度的效果[14]。经过直方图均衡化处理后的图像如图11(a)所示,其直方图如图11(b)所示
但是通过分析发现,经过直方图均衡化的图像并没有将目标的数据信息增大,只是将数据图像整体的亮度增强,对于我们后续提取目标的数据信息的作用并不明显,于是对直方图数据分析后得出,目标的灰度强度主要集中在0.2~0.5灰度范围内,即50~125灰度值区间。
经过对灰度直方图的分析,对图像进行增强处理:将图像中灰度值低于50的像素点和灰度值高于125的像素点去掉,再将50和125灰度值之间的像素值映射到整个灰度等级范围,从而使图像变得明亮[15]。经过增强处理后的图像如图11(c)所示,其直方图如图11(d)所示。
图11 增强处理及其直方图
可以看出,经过增强处理后的数据图像,目标的信息被有效的放大,从而使得目标凸显了出来。
3.5 阈值分割算法研究
图像经过增强后,就需要对其进行分割处理,图像分割是通过对图像某种特征的分析,将图像分割成不同的区域,根据相似度特征提取有用目标的过程[16],目的是通过减少冗余信息来简化图像。常用的分割特征有像素灰度、纹理、形状、边缘轮廓、直方图、空间频谱等[17]。
图像分割的方法一般有大律法和迭代法,大津法是全局阈分割算法之一,其核心思想是遍历整个图像,根据图像的灰度特征把图像分为目标和背景两部分,通过类间方差确定合适的阈值,使得目标与背景两部分之间的灰度值方差差异最大[18]。迭代法属于自适应的阈值确定方法,可根据图像中的灰度分布自动选取分割阈值,其核心思路是通过多轮迭代运算来一步一步逼近最佳阈值。经过大律法和迭代法处理后的图像分别如图14(a)和14(b)图所示。
本文通过采用一种改进的迭代法对图像进行分割处理。
改进的迭代法实现步骤如下:
1)先求取灰度图像的最大灰度值Zmax和最小灰度值Zmin,通过最大、最小灰度值得到初始迭代阈值:T1=(Zmax+Zmin)/2;
2)根据得到的初试阈值T1,将图像分为背景和目标两个集合,小于初试阈值的集合为背景集合,大于初试阈值的集合为目标集合,通过式(4)和式(5)求取两集合的灰度均值分别为μ0和μ1。
(4)
(5)
其中:pi=ni/(M×N),M×N代表灰度图片大小,ni为灰度值为i的像素点个数。
当声呐图像的环境亮度与水下目标的亮度不具有明显区别时,使用迭代法确定阈值,会得到比较差的二值化结果,经过迭代法取得的阈值,与较亮的背景区域的像素值比较接近,导致较亮的背景区域也被误划分为水下目标。下面我们对迭代法进行改进,使其求得的阈值更接近水下目标的像素值,从而与较亮背景区域的像素值区分开来。迭代法的阈值更新公式为每次取μ0与μ1之和的一半来更新阈值:
T1=μ0*0.5+μ1*0.5
(6)
但是为了使阈值更接近μ1,需对上述公式进行修改,增大μ1的比重,同时减小μ0的比重,则公式更改为:
T1=μ0*(1-K)+μ1*K
(7)
要增大μ1的比重,同时减小μ0的比重,就要对K值进行合适的选择,本文提出一种自适应的K值选择方法来选取最佳的K值。
关于如何自适应的选取K值,需要引入一个参数,即结构相似性(SSIM,structural similarity),它是一种衡量两幅图像相似度的指标。SSIM的公式如(8)所示。
(8)
其算法核心为:遍历的求取不同K值下的SSIM值,求取SSIM值最大时的K值,即是最佳K值。算法流程图如图12所示。
图12 自适应K值算法流程图
3)设置迭代最小误差值ε,若|T1-T|≤ε则停止迭代,T1为最佳分割阈值,二值化图像;否则令T1=T,返回第2)步继续迭代。
改进后的迭代算法流程图如图13所示。
图13 改进的迭代法流程图
经过经过改进的迭代法处理后的图像如图14(c)所示。
图14 图像分割算法处理
为了验证改进后的迭代法的优越性,求取大律法、迭代法、改进迭代法的PSNR、MSE、NMSE、MAE和SSIM等指标,其中,MSE、NMSE、MAE的数值越小,处理效果越好,PSNR、SSIM的数值越大,处理效果越好。表中由灰色标注的为改进迭代法的指标,对比结果如表2所示。
表2 分割算法评价指标
改进后的迭代法的MSE、RMSE、MAE、NMSE相较于大律法和未改进的迭代算法显著降低,SSIM、PSNR显著增大,在图像处理的客观评价指标的效果上得到显著增强。
3.6 目标筛选
经过图像分割后,目标已被大致提取出来,但目标轮廓不够清晰,内部仍有不连续的孔洞,且背景区存在少量孤立噪声点。进行目标筛选之前,有必要对图像进行简单的形态学处理。数学形态学主要应用于几何形状和结构的分析,其组成元素为形态学代数算子,常用的形态学代数算子有腐蚀、膨胀、开运算和闭运算[19]。
闭运算是对图像先膨胀后腐蚀的操作,可以进一步减少背景噪声干扰,并填充目标内部的孔洞、不连续部分得到连续[20]。闭运算的定义如下式:
I·se=(I⊕se)Θse
(9)
式中,se为处理图像的结构算子,⊕为膨胀运算,Θ为腐蚀运算。
对图像进行特征提取就是要找出可以表征图像主要特征的信息[21]。本文采用连通域标记法对闭运算之后的声呐图像进行目标标记,并通过目标面积特征进一步剔除假目标和噪声。
基本的8-邻域连通域查找法则如图15所示,8-连通域通过查找某一像素点与其周围八个位置的像素点是否为1来划分区域。图15(a)为二值化后,待分割的图像,目标区为1,背景区为0;图15(b)为经连通域查找标记后的图像,同一区域的目标用相同的标识符标记,与其他不连通的区域划分开。经过连通域查找处理后的图像如图16所示。
图15 8-邻域连通区域标记示意图
图16 连通域标记图
如图15(b)所示,经过连通域查找后,不同的目标区域被打上了不同的标签,累加每个标签的个数来近似确定面积大小,并计算每个目标的面积与声呐扫描扇区内的像素总个数的面积比εi来滤掉不符合目标尺寸的假目标。
(10)
式中,areasi为第i个连通域内的目标像素个数,Ssec为声呐扫描扇区内的像素总个数,ε为面积比较阈值,若εi<ε,则认为第i个目标为假目标或者噪声而剔除。
通过面积特征剔除假目标的步骤如下:
1)创建连通域增长队列,按从左向右、从上到下的顺序依次扫描所有像素点,当找到一个灰度值不为0的像素点时,将其入队列,并标记为label(label从1开始),当前目标像素个数加1;
2)检查队列是否为空,若不为空,从队列中弹出一个像素点,依次验证该点左、上、右、下4个邻域内的像素点,若这些点的值为1并且未被标记过,则该点入队列并标记为label,当前目标像素个数加1,重复步骤2)。当队列中所有的像素点都被弹出时,说明这个连通域查找完毕;
3)检查当前目标像素个数与声呐扫描扇区总像素个数的比值,若εi<ε,则清空队列,该区域的标记作废,label-1;
4)继续检测下一个未被标记过的像素点是否为0,若不为0则将其入队列并标记为label+1,目标像素个数加1,重复2)~3)步骤直至图像遍历完毕。
经过面积特征筛查处理的图像如图17所示。
图17 水下目标检测结果图
4 试验结果与分析
在如图18所示的水池环境中,由声呐采集水池中的环境信息数据,再通过RS232串口连接到信息处理计算机存储,声呐处理计算机如图19所示,最后利用MATLAB平台将采集到的声呐数据做算法处理。
图18 水池试验环境图
图19 声呐处理计算机
通过对不同目标的检测,如图20(a)和图20(b)所示,分别是以水桶和黑箱为目标进行声呐数据的采集。
图20 目标信息检测图
将采集到的声呐数据在MATLAB平台里生成图像后(距声呐0.2 m的死区范围内像素灰度值置0)。对其进行灰度处理、中值滤波、二值化、连通域查找等一系列声呐数据操作后,再通过面积特征进行目标筛选,得到如图21所示的检测结果,图中由虚线标记出来的为检测物,星号表示检测物的质心。
图21 水下目标检测结果图
试验结果表明,该水下目标检测算法在识别指定目标的时候具有很强的优越性,其根据检测物的物理特征做出了很好的检测效果,但是由于实验环境限制测试远距离的检测效果,因此还需进一步的完善。
5 结束语
本文首先对实验场景进行了搭建,利用声呐设备进行了声呐数据的采集,利用目标检测计算机存储声呐数据;然后进行了水下目标检测算法研究,对采集到的声呐数据进行处理,完成了对数据图像的滤波、增强等操作,并通过对迭代法的改进实现对声呐图像的有效分割,之后通过面积特征进行目标筛选,成功识别出待检测的目标。实验结果表明本文所研究系统和算法的有效性。