基于侧扫声呐的水下小目标检测技术研究
2023-04-24葛锡云魏柠阳周宏坤高宇航
葛锡云,魏柠阳,周宏坤,李 锦,高宇航
(1. 中国船舶科学研究中心,江苏 无锡 214082;2. 深海技术科学太湖实验室,江苏 无锡 214082)
0 引言
水下成像技术是当前海洋探测的常用主要技术手段之一。当前,水下成像技术主要包括光学成像和声呐成像:光学成像分辨率较高,但作用距离较近,一般在几米至几十米之间,而且在浑水场合基本失效;声呐成像具有作用距离远、穿透能力强等优点,特别适用于浑水域,因而在水下地质地貌勘测、水下丢失物寻找、水雷探测(含锚雷、沉底雷和泥沙掩埋的沉底雷)、坝基检测等领域得到了广泛应用[1]。
然而,水声信道的水介质及其边界具有复杂多变的特性,声波本身的传播损失和透射、散射,导致采集得到的声呐图像往往具有对比度低、斑点噪声强和目标边缘模糊等特点,这给声呐图像的人工判读和自动解译带来了极大的困难,不利于声呐成像在水下目标探测与定位、堤坝安全检测与修复、海上资源勘探与管道敷设、水库清淤与航道疏浚等国防民生领域发挥更为重要的作用[2]。
侧扫声呐是利用回声测深原理对水下目标及水下地形地貌进行成像的探测设备。鉴于其技术成熟、性价比高等特点,广泛应用于海洋地形地貌调查、海底礁石、沉船、管道、电缆等水下目标的探测[3]。
针对侧扫声呐图像的特点进行图像处理,旨在将水下场景信息更加清晰、真实地呈现在声呐操作员面前,提高人工判读的准确性,降低目标漏判、误判的概率。DOBECK 等人针对声呐图像中水雷的自动检测与识别进行了研究,开发了一种基于多种分类器与特征提取方法相结合的综合模型,优化了检测与分类的准确度,并最大限度减少了误报的情况[4]。REED 等人针对侧扫声呐图像似雷目标的识别提出了一种自动分类的无监督模型,开发了一种面向检测的无监督马尔科夫随机场模型,提出了一种新颖的协同统计模型用以提取图像中的高光和阴影部分,实验证明要比该领域内其他模型性能较好 。吴涛等人针对声呐图像使用传统的图像分割方法产生的鲁棒性差及精度不高的问题提出了基于树结构马尔可夫随机场的声呐图像分割新方法,该方法能有效地保存图像目标基本信息,同时减少分割误差,具有较高的处理精度和鲁棒性[6]。
本文通过对侧扫声呐图像进行非局部均值滤波、膨胀算法与Canny 目标边缘分割算法相结合的方法,进而获得区域一致性好、边缘定位准确的自动检测结果,对侧扫声呐图像中目标的自主识别至关重要,有助于进一步发挥声呐成像在水下目标检测等领域的重要作用。
1 研究方案
基于侧扫声呐的海底目标检测技术研究方案包括图像采集与解析、图像滤波去噪、目标提取和目标测量。
声呐数据采集与解析。声呐数据解析主要包括实时声呐数据采集与解析以及对离线文件数据解析。主要通过读取XTF(eXtended Triton Format)格式的数据流,将其转换为ma(tMATLAB Format)进行处理,之后转换为数组送入OpenGL(Open Graphics Library)进行显示。
图1 XTF 文件整体架构Fig. 1 Overall architecture of XTF file
图像滤波。侧扫声呐图像分辨率低,干扰噪声大,常规滤波方法不仅难以清除图像中存在的噪声,而且造成图像质量的下降,影响视觉感观和目标追踪功能的实现。鉴于此种情况,采用非局部均值滤波和GPU(Graphics Processing Unit)三维线程加速的方法,实现良好滤波效果的同时,保证了实时性。
目标提取。目标提取分为手动目标提取与自动目标提取。其中手动目标提取采用框选的方法选中目标。对于自动目标提取,系统利用算法自动在图像中框选中目标、跟踪目标。采用Canny 边缘检测的方法,将当前帧的图像中的目标进行边缘提取。由于图像中存在不连续的位置,这里首先使用膨胀算法,将不连续的位置进行连接,然后对当前帧的图像进行目标提取。经过对目标的几何特征进行判断,剔除一些不符合条件的假目标,提高了目标提取的准确性。
目标测量。在完成目标识别提取的基础上,结合从声呐设备本身提供的信息与XTF 文件获取的信息,建立坐标系,完成目标位置信息测量的任务。
图2 总体方案架构图Fig. 2 Overall solution architecture diagram
2 图像预处理
2.1 滤波算法
对于图像滤波算法有多种,比如均值滤波、自适应均值滤波、高斯滤波、非局部均值滤波算法等。
对比声呐图像滤波去噪方法,选取声呐图像进行滤波试验。滤波窗口尺寸均设为5 × 5。
采用均方误差(MSE)、信噪比(SNR)2 个指标对去噪结果进行量化分析[7]:
式中,x、y为每个像素点在图像中的二维坐标。上述评价标准中,均方误差(MSE)值越小越好,说明滤波效果越好,反之越差;信噪比(SNR)值越大越好,说明滤波效果越好,反之越差。
对比分析表1 中数据可以得出非局部均值滤波均方误差值最小,信噪比最大,但运行时间较长。
表1 滤波算法评价表Table 1 Evaluation table of filtering algorithm
2.2 非局部均值滤波
非局部均值滤波[8]是利用整张图像的像素点进行滤波。图3 中所示后点A 为待滤波点,绿色窗口MA为A 的邻域窗口。红色窗口为需要遍历的窗口,B 点为(i,j)的起点,C 点为W(i,j)的终点。A 处的像素点由下式确定:
图3 非局部均值滤波原理及滤波后的图像Fig. 3 Non-local means filtering principle and filtered image
式中:P(A) 为A 点的像素值;w、h为搜索窗口Ds的宽和高,一般w=h;W(i,j)为(i,j)点像素值的权重;P(i,j)为(i,j)点像素值。
权重W(i,j)由A 点所在邻域MA以及(i,j)点所在邻域Mx的相似度确定:
MSE 为均方误差,可用下式表示:
式中,m×n为邻域的像素点总数。
sum 为所有权重之和:
非局部均值滤波算法无论是图像视觉处理效果,还是评价指标,均为最优,因此选择非局部均值滤波算法作为侧扫声呐图像滤波处理算法。
但是其存在大量的加法运算,具有极高的运算复杂度。
2.3 算法加速
非局部均值滤波在不同数据量下,在 CPU(Central Processing Unit)端运行时间为25 000 ms。其中搜索窗口大小为15×15,邻域窗口大小为11×11。因此,考虑采用GPU 三维线程进行加速。
图4 非局部均值滤波在CPU 端运行结果Fig. 4 Results of non-local means filter on CPU
GPU 采用NVIDIA(NVIDIA Corporation)的显卡,使用 CUDA(Compute Unified Device Architecture)运算平台。CUDA 是一种通用并行计算架构,该架构使GPU 能够解决复杂的计算问题。
它包含了CUDA 指令集架构以及GPU 内部的并行计算引擎。开发人员可以使用类C 语言来为CUDA 架构编写程序,所编写出的程序可以在支持CUDA 的处理器上以超高性能运行。它是一个完整的GPU 解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API 接口来实现GPU 的访问。在架构上采用了一种全新的计算体系结构来使用GPU 提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU 更加强大的计算能力。因此,使用CUDA 对我们的算法进行加速。
1)首先是在算法上进行优化。由上述计算过程可知原始非局部均值滤波算法存在诸多计算均方差的步骤,算法主要是对这一步进行优化,缩减计算均方差耗费的时间。采用积分图的方法来优化计算过程,使计算时间大大缩减。
2)将基于积分图计算的非局部均值算法由CPU 平台运行改为GPU 平台运行。GPU 拥有众多的加法器,依靠其大量的加法器实现并行运算,从而提高计算速度。
3)在计算过程中将积分图计算分块计算,充分利用GPU 线程。
4)改进GPU 线程分配。GPU 可以依靠CUDA进行驱动。CUDA 在编程层面将GPU 线程分为三维,需要充分利用了GPU 的三维线程,将速度进一步提升。
非局部均值滤波在GPU 加速下使用三维线程并且使用分块计算的方法来计算积分图。在713×256 像素的数量下,时间控制在了30 ms 左右,满足实时性的要求,如图5 所示。
图5 非局部均值滤波采用GPU 三维线程分块计算结果Fig. 5 Non-local means filter calculated by 3D thread block on GPU
3 目标提取
3.1 目标图像提取算法
侧扫声呐图像主要由目标高亮区、目标阴影区和海底背景区组成[9]。常用的目标图像提取算法主要由C-means 算法[10]、FCM 算法[11]和Canny算法[12]。从分割准确率、计算时间2 个指标来评价分割算法的优劣[13],分割算法如公式(7)所示,分割评价如表2 所示。
表2 目标图像提取算法对比Table 2 Comparison table of target image extraction algorithms
式中:S1为2 幅比较图像的目标区;S2为2 幅比较图像的阴影区。
在对运算速度要求不高时,用Canny 算法能够很好地提取出多个目标和阴影,并在去除噪声干扰的同时保持图像的边缘信息,便于进一步的目标识别与测量;Canny 算法对不同尺寸、不同背景、不同噪声环境的单个声呐目标图像进行大量的计算仿真,均能获得较好的分割结果,且Canny 算法对单一目标具有很强的适应性和鲁棒性。
3.2 膨胀算法与Canny 算法
采用膨胀算法与Canny 算法相结合的方式。首先用膨胀算法,依次遍历整个图片的像素,分析每个像素的周围8 个像素,从而实现将目标不连续像素有序地连接起来,再利用Canny 算法对目标进行分割提取。
Canny 算法是找寻一幅图相中灰度强度变化最强的位置。所谓变化最强,即指梯度方向。对滤波去噪后的图像使用Sobel 算子计算水平方向和竖直方向的一阶导数(图像梯度)。根据得到的这2幅梯度图(Gx和Gy)找到边界的梯度G和方向θ。
在获得梯度的方向和大小之后,对整幅图像做一个扫描,保留每个像素点上梯度强度的极大值,而删掉其他的值。
分割后的图像,采用二值化处理,将图像中所有亮点目标与暗目标利用阈值分割,区分阴影与目标,并通过阈值选取,匹配目标亮点与阴影,最终实现目标的正确提取。
图6 Canny 算法目标提取Fig. 6 Canny algorithm for target extraction
4 实验测试
4.1 实验数据采集
利用北京海卓同创科技有限公司生产的SS900型侧扫声呐已有SDK 开发包,实现声呐设备实时连接与控制,SDK 提供设备工作参数设置接口功能、获取工作命令功能和声呐数据接口功能,因此可基于SDK 开发包实现与声呐端的网络连接、网络通信功能,为声呐端端口进行IP 分配,为上位机客户端配置对应IP、子网掩码、网关,并基于RS 系列串口通信标准可实现与侧扫声呐端的连接。
4.2 软件界面显示
基于C++开发语言,Win10 QT5.9 环境实现界面开发,通过QT 界面显示声学图像处理软件输出的声学图像,并具备基本的视频读取模块、视频播放以及导出模块、参数设置模块和目标测量显示(距离、方位、尺度)。
4.3 目标检测测试
为了评估该目标检测方法的有效性,采用服务器使用Intel® CoreTM i7-10700 CPU 处理器,配备NVIDIA GeForce RTX 3070TI 显卡,显卡内存8 G,Win7 64 位操作系统。具体流程图如图7 所示。
图7 测试流程图Fig. 7 Test flow chart
如图8 所示蓝色框为提取出的暗目标,绿色框为提取出的亮目标。红色框为将绿色框加长后的框。当红色框与蓝色框的IOU 超过某阈值时,对应绿色框被保留。
图8 阈值未设置时的目标提取Fig. 8 Target extraction when threshold is not set
图9 设置阈值后的目标提取Fig. 9 Target extraction after threshold setting
在低混响条件下,对57 张测扫声呐图像的目标个数进行了统计,共包含75 个目标,在IOU 为0.7的时候,有67 个目标被正确框选,目标的检测成功率为89.3%。实验结果表明:侧扫声呐目标检测系统能够较好地满足水下测扫声呐目标检测的实际需求。
5 结束语
针对水下小目标探测识别难的问题,开展基于侧扫声呐的目标检测方法研究,主要对侧扫声呐图像滤波算法和目标图像提取算法进行研究,主要成果如下:
1)声呐图像预处理采用非局部均值滤波算法与GPU 加速相配合的方法。通过改进非局部均值滤波算法的运行顺序,使其运行于GPU 这类并行处理器件上,同时优化GPU 线程分配,进一步提高声呐图像预处理的运行速度。30 ms 的图像预处理时间,满足实时性的要求。
2)提出膨胀算法搭配目标分割与轮廓检测的办法用于目标提取。通过2 种算法的取长补短达到了较好的目标提取效果。低混响条件下,目标的检测成功率为89.3%。