2. 河南省水下智能装备重点实验室,河南 郑州 450015
2. Henan Key Laboratory of Underwater Intelligent Equipment, Zhengzhou 450015, China
水下无人航行器作为水下作业的重要载体,在现代海洋环境信息探测、水下资源勘探与开发中发挥着愈发重要的作用[1]。受限于水下环境,光学手段难以满足远距离探测需求,而声波作为可以在水中远距离传播的波,是现阶段水下探测的重要手段。因此,声呐是UUV水下探测的主要载荷[2]。
但是声呐探测结果图像容易被环境噪声、混响噪声和自噪声影响,特别是位于浅水面、近岸环境下噪声更为严重,难以直接从声呐图像中识别出目标。故需要通过一系列的图像预处理方法[3-4],对声呐图像进行分割和特征提取[5-6],因此研究大噪声环境下声呐图像目标识别技术具有重要意义[7]。
本文对浅水面、近岸环境下采集的有限的具有严重干扰噪声的前视声呐图像做处理,针对特定的目标进行识别。通过探讨大噪声环境下前视声呐图像的预处理和分割方法,得到可能存在目标的区域。对前视声呐分割图像进行有效特征提取,利用SVM对这些图像参数训练和识别,得到一种有效的大噪声环境下前视声呐图像目标识别方法。
1 声呐图像获取本文以直径5 m的圆柱体为识别目标,研究多噪声干扰条件下的目标识别方法。试验采用海卓同创MS720IM型号的720 kHz多波束前视声呐。声呐水平接收波束角1°,波束数512个,发射波束垂直角度5°/20°在线可调,水平有效开角大于120°,水下探测距离1~90 m。
前视声呐固定在水下无人航行器前端,目标物为直径5 m的空心圆柱,试验在水深5~6 m进行。在严重噪声干扰下采集到的声呐图像如图1所示。
![]() |
图 1 采集的前视声呐图像 Fig. 1 Forward looking sonar image |
显然,由于大量噪声存在,难以直接从声呐图像中识别出目标物,需要一系列的图像处理工作。
2 声呐图像处理声呐图像处理主要包括3个部分:声呐图像滤波、声呐图像二值化、声呐图像分割。
2.1 声呐图像滤波图像中常用的滤波方法包括均值滤波、中值滤波、高斯滤波、维纳滤波等。中值滤波作为一种非线性滤波算法,能够有效地滤除孤立噪声点,同时能够保护图像边缘,是一种非常适合声呐图像使用的滤波算法。
本文采用3×3窗口的中值滤波算法,考虑到声呐图像中含有大量灰度值为0的像素点,采用以下方法可以有效的提高计算效率:
1) 判断窗口中像素灰度值之和是否为0,若为0,则滤波值为0,继续滑动窗口,否则跳到第2步;
2) 求取窗口中9个像素灰度值的中值,将其作为滤波值。
图2为中值滤波后的前视声呐图像。
![]() |
图 2 中值滤波后的前视声呐图像 Fig. 2 Forward looking sonar image after median filtering |
声呐图像二值化过程中,阈值的选择极为重要。采用固定阈值的话,难以适应不同的环境,而采取传统的Otus算法计算阈值,在没有目标物的声呐图像中,容易将噪声误当做目标物。这里提出一种改进的Otus算法来计算阈值,即设定好固定阈值
需要注意的是,声呐图像整体偏暗,且是扇形图像。若直接对整幅图像利用改进的Otus算法计算阈值,大量背景区域将影响其阈值计算结果,故根据实际情况,即只对扇形区域应用改进的Otus算法:
给定声呐图像I,统计其扇形区域S内灰度直方图。通过除以S中像素的个数得到归一化直方图
扇形区域由
$ \begin{split} & {(x - {x_0})^2} + {(y - {y_0})^2} \leqslant {R^2} ,\\ & \alpha \leqslant \arctan \frac{{{x_0} - x}}{{y - {y_0}}} \leqslant \alpha + \theta ,\end{split} $ | (1) |
确定,其中
设定固定阈值T,对于每一个大于T可能的阈值t,将直方图分为背景和前景,分别计算背景和前景的灰度方差
$ {\omega _B}(t) = \sum\limits_{j = 0}^t {H(j)},$ | (2) |
$ {\omega _F}(t) = \sum\limits_{j = t + 1}^{255} {H(j)}。$ | (3) |
令
结合改进的Otus算法得到的最优阈值
![]() |
图 3 二值化后的前视声呐图像 Fig. 3 Forward looking sonar image after binarization |
由于声学旁瓣效应和阴影影响,水下目标可能会分裂为多个亮斑,所以对这些亮斑进行膨胀操作,用于连接缺损区域,如图4所示。
![]() |
图 4 膨胀后的前视声呐图像 Fig. 4 Forward looking sonar image after expansion |
为了将各个亮斑分割出来,采用基于区域增长的分割算法。
算法步骤如下:
1) 设置1个种子堆栈和若干个区域堆栈;
2) 设置变量
3) 扫描图像,找到第一个种子记录为0且像素值不为0的点
4) 检查堆栈是否为空,若不为空,则将栈顶像素
5) 若堆栈为空,
至此,得到若干个区域堆栈,统计每个区域堆栈中元素的数量,将其视为各个亮斑的面积。因为所要识别的目标形成的亮斑面积处于一定的范围内,不会太小或者过大,故设置阈值,去除小面积和大面积区域,得到疑似目标区域,如图5所示。
![]() |
图 5 前视声呐图像疑似目标区域 Fig. 5 Suspected target area of forward looking sonar image |
计算每个疑似目标区域堆栈的均值,则得到了每个亮斑的质心。设得到的亮斑质心为
![]() |
图 6 前视声呐分割图像 Fig. 6 Forward looking sonar segmentation image |
经过对声呐图像的处理,已经得到包含目标区域的分割图像,接下来需要从这些分割图像中识别目标。本文采用支持向量机(SVM)算法完成最终的目标识别工作。由于分割得到的101×101图像有10201个像素,很显然无法建立一个10201维的矩阵进行SVM识别。这就需要简化维数,提取重要特征。
目标特征主要体现在形状和亮度,形状可以用亮斑分割图像的特征表示,亮度则可以用原始分割图像的灰度分布来表示。
显然,亮斑分割图像的特征可以用亮斑长度、形状和方向表示,重点介绍如何描述灰度分布。在描述灰度分布的方法中,灰度均值和中值是最常用的。灰度均值可以表示一幅原始分割图像的总体亮度。灰度中值虽然可以一定程度上表示灰度值的变化趋势,但是在原始分割图像中,由于目标物亮度一般较高且范围较小,噪声和其他区域灰度较低但范围较大,使用普通的灰度中值难以明确区分是否含有目标物,故需提高高亮度灰度值的比重。定义灰度能量的概念,即一幅图像的灰度能量值可以表示为
$ {S_{ge}} = \sum\limits_{i = 0}^{255} {{i^2}H(i)} , $ | (4) |
其中,i为灰度值,H(i)表示归一化的灰度直方图。
因此可以取灰度能量的中值来一定程度上表示灰度分布。
3.1 亮斑区域的长度参数一般而言,分亮斑分割图像中的亮斑区域都是非规则图形,且为细长体,难以直接计算其长度,本文提出一种间接的方法——主成分分析法,来计算亮斑区域的“长度”。
设一个亮斑集合为
$ {x_i} \leftarrow {x_i} - \frac{1}{m}\sum\limits_{i = 1}^m {{x_i}} , $ | (5) |
计算样本协方差矩阵
$ length = lengt{h_{\max }} - lengt{h_{\min }} 。$ | (6) |
使用亮斑区域内所有点在长和宽2个方向上的投影到质心的平均距离的比值来衡量其形状参数。实际中,为了加快运算效率,可以用一种启发式的方式来得到长宽比。
亮斑在经过主成分分析后可以形成2个新的维度,即协方差矩阵的2个特征向量。可以通过计算亮斑上所有点分别在2个特征向量方向上投影的平均距离,用平均距离的比值来表示亮斑的长宽比,也即方差的比值。
实际上,协方差矩阵的特征值
圆柱在分割后声呐图像上是一条类长条的亮斑,此亮斑的长度方向与声呐到其质心的方向基本垂直,这里用特征向量和声呐到其质心向量的内积来表示。
由3.1节可知,亮斑的长度方向为单位向量
$ f = {{{{{a}}_1} \cdot ({x_0} - \frac{1}{m}\sum\limits_{i = 1}^m {{x_i})} } \mathord{\left/ {\vphantom {{{{\mathbf{a}}_1} \cdot ({x_0} - \frac{1}{m}\sum\limits_{i = 1}^m {{x_i})} } {|{x_0} - \frac{1}{m}\sum\limits_{i = 1}^m {{x_i}|} }}} \right. } {|{x_0} - \frac{1}{m}\sum\limits_{i = 1}^m {{x_i}|} }} 。$ | (7) |
灰度均值可以一定程度上反映分割区域总体灰度级,一般包含噪声的分割图像灰度会比包含目标区域的分割图像灰度均值低一些,而包含岸分割图像灰度均值则会高一些。图7给出了噪声分割图像和目标分割图像。
![]() |
图 7 噪声和目标分割图像 Fig. 7 Noise and target segmentation image |
2种不同的分割图像的灰度直方图如图8所示。
![]() |
图 8 噪声和目标分割图像灰度直方图 Fig. 8 Noise and target segmentation image gray histogram |
灰度均值的计算由下式表示:
$ {S_{gray}} = \sum\limits_{i = 0}^{255} {iH(i)} , $ | (8) |
其中
式(4)表示灰度能量的定义,使用灰度能量的中值来一定程度上表示其灰度分布。图9表示灰度能量直方图。
![]() |
图 9 噪声和目标分割图像灰度能量直方图 Fig. 9 Noise and target segmentation image gray energy histogram |
平分灰度能量的灰度值,即灰度能量中值计算方法如下:
1) 定义灰度能量
2)
3)
4) 若小于
5) 计算
表1给出了部分目标的样本特征。
![]() |
表 1 部分目标样本特征 Tab.1 Characteristics of some target samples |
在采用SVM的方法识别之前,利用式(9)对所有特征归一化处理。
$ f:x \to y = \frac{{x - {x_{\min }}}}{{{x_{\max }} - {x_{\min }}}} 。$ | (9) |
支持向量机是一种能够很好地解决小样本、非线性、高维数等问题的机器学习方法。给定样本集
SVM的思想为基于训练集D在样本空间中找到一个具有最大分类间隔的最优超平面。设最优超平面方程为
$ {{\boldsymbol{w}}^{\rm{T}}}{\boldsymbol{x}} + b = 0 , $ | (10) |
对于非线性问题,约束条件为
$ {y_i}({{\boldsymbol{w}}^{\rm{T}}}{\boldsymbol{x}} + b) \geqslant 1 - {\varepsilon _i},{\varepsilon _i} \geqslant 0, i = 1,2, \cdots ,m , $ | (11) |
目标函数为
$ f({\boldsymbol{w}},b,\varepsilon ) = \frac{1}{2}\left\| {{{\boldsymbol{w}}^2}} \right\| + C\sum\limits_{i = 1}^m {{\varepsilon _i}} , $ | (12) |
即最小化目标函数,通过拉格朗日乘子法,优化求解后得到分类函数为
$ h({\boldsymbol{x}}) = {{\rm{sgn}}} \left(\sum\limits_{i = 1}^m {{\alpha _i}{y_i}\kappa ({\boldsymbol{x}},{{\boldsymbol{x}}_i}) + b} \right) 。$ | (13) |
SVM核函数的选择至关重要,此处选用高斯核函数(RBF)。
$ \kappa ({{\boldsymbol{x}}_i},{{\boldsymbol{x}}_j}) = \exp \left( - \frac{{||{{\boldsymbol{x}}_i} - {{\boldsymbol{x}}_j}|{|^2}}}{{2{\sigma ^2}}}\right) , $ | (14) |
在RBF中,正则化参数C和核参数
将前视声呐分割图像分为训练集和测试集,如表2所示。
![]() |
表 2 前视声呐分割图像数量 Tab.2 Number of segmented images of forward looking sonar |
最终经过优化训练识别后,在127个目标中,识别出了123个目标,识别准确率达到了96.85%。在115个非目标中,误检了2个目标,误检率为1.74%,识别结果表示如图10所示。
![]() |
图 10 测试集识别结果 Fig. 10 Recognition result of test set |
本文通过UUV搭载前视声呐获取了大噪声环境下的前视声呐图像。针对前视声呐图像数量有限噪声较大的特点,设计了一种有效的前视声呐图像目标识别方法。首先通过改进的中值滤波和Otus阈值检测算法,对前视声呐图像进行滤波和二值化,得到了较好的去噪效果;然后利用区域增长算法分割疑似目标区域图像,采用PCA算法,多角度分析,有效提取分割图像的长度、形状、方向参数,同时引入灰度能量概念,提取灰度均值和灰度能量中值等参数。最后基于SVM对这些分割图像参数训练和识别,识别准确率达到96.85%,有效满足了大噪声环境下的水下前视声呐图像目标的识别要求。
[1] |
徐会希. 自主水下机器人[M]. 北京: 科学出版社, 2019.
|
[2] |
宋三明. 基于随机场的水下声呐图像处理[M]. 北京: 科学出版社, 2020.
|
[3] |
JIANG Wen-long, LI Guang-lin, LUO Wei-bing. Application of improved median filtering algorithm to image de-noising[J]. Advanced Materials Research, 2014, 998: 838-841. |
[4] |
LI W, NI R, LI X, et al. Robust median filtering detection based on the difference of frequency residuals[J]. Multimedia Tools and Applications, 2018, 78(4): 8363-8381. |
[5] |
CERVENKA P, DEMOUSTIER C. Sided-scan sonar image processing techniques[J]. IEEE Journal of Oceanic Engineering, 1993, 18(2): 108-122P. DOI:10.1109/48.219531 |
[6] |
马珊. 水下机器人前视声呐多目标跟踪技术研究[D]. 哈尔滨: 哈尔滨工程大学, 2016.
|
[7] |
石洋, 胡长青. 基于粒子群最小二乘支持向量机的前视声呐目标识别[J]. 声学技术, 2018, 37(2): 122-128. Shi Yang, Hu Changqing. Forward looking sonar target recognition based on particle swarm least squares support vector machine[J]. Acoustics Technology, 2018, 37(2): 122-128. |
[8] |
CHANG Chih-Chung, LIN Chik-Jen, LIBSVM: A library for support vector machines[J]. ACM Transactions on Intelligent Systems and Technology, 2011, 2(3): 27.
|