基于BMM-Fast-SCNN 的海底线实时提取算法* *
2023-10-08赵冬冬郭新新
陈 朋,昝 昊,赵冬冬*,郭新新
(1.浙江工业大学计算机科学与技术学院,浙江 杭州 310000;2.浙江工业大学信息工程学院,浙江 杭州 310000;3.中国科学院深海科学与工程研究所,海南 三亚 572000)
侧扫声呐有着探测范围大、成图分辨率高、经济实惠、操作简便等优点,在海洋研究、海洋定位[1]、海下科考、海底测绘[2]等诸多领域被广泛应用。 拖曳式侧扫声呐在工作时,由一艘船拖曳着托鱼,托鱼左右两侧的换能器向垂直于前进方向发出声波,扫描的海域呈狭长的扇形,声波到达海底被反射后,换能器按照时间先后接收经过海底反射的回波,形成一帧的回波数据,回波数据按照时间推移,沿着垂直于扫描方向拼接进而形成侧扫声呐瀑布图[3],如图1(a)所示。
图1 侧扫声呐工作原理
侧扫声呐主要是为了获取海底的地形地貌,侧扫声呐图像的质量对于海洋研究至关重要,然而根据侧扫声呐的成像原理,在声波到达海底前,由于在水中的传播延迟,会在侧扫声呐瀑布图中间形成一块水柱区;在到达海底后,反射回来的回波随时间序列形成图像区。 其中分割水柱区和图像区的分界线即为海底线,海底线位置同时也表征了声呐距离海底的高度,如图1(b)所示。 斜距校正[4]就是利用海底线的位置,去除侧扫声呐图像的水柱区,在横向上得到连续的声呐图像。 海底线检测的精度,是斜距校正的关键。 虽然深度传感器会记录托鱼到海底的距离,但是在实际应用中,托鱼的姿态会影响到深度传感器的测量精度,导致记录数据并不精确,从而影响斜距校正的效果。
国际著名的SSS 图像处理软件Triton 和Discovery主要采用了需要手动调整的阈值控制法[5],在测量复杂环境时,需要分段手动调整阈值,效率低下且精度不高。 张济博等[6]提出了LOG 算子,提取图像边缘来获取海底线,在水柱区噪声或者水体中悬浮物较少的时候很好地完成了海底线的检测,当水柱区干扰较大时,该方法无法正确提取边缘。 赵建虎等[7]提出了海底线综合检测和提取方法,该方法基于最后峰值法、对称原则和海底连续变化原则在水柱区噪声较大时对海底线进行精准提取,但是其检测方法需设置灰度差变化阈值,需借助人工调参,并不能实时地提取海底线。 Ruiz 等[8]提出了基于卡尔曼滤波器的方法来提取海底线,其复杂的后处理操作十分耗时,导致无法实时提取海底线。 Shih等[9]提出了一种基于Canny 边缘检测方法的自适应海底跟踪算法,根据水柱区干扰程度不同,单张图片处理时间约在0.2 s~1.2 s 范围内,其实时性能差。
深度学习算法已经被广泛应用于图像领域,在目标检测、目标识别[10]、图像分割和图像去噪等领域都取得很好的效果。 Yan 等[11]提出了1D-CNN网络用于提取海底线,该方法使用1D-CNN 网络对海底线区域和其他区域进行分类,用训练好的网络模型对单帧(Ping)侧扫声呐回波数据采用滑动窗口遍历,提取输出概率最大的位置为海底线,该方法取得很好的提取精度,大部分Ping 的提取时间在150 ms左右,部分Ping 的提取时间较长,实时性能较差。 Yan 等[12]为解决1D-CNN 海底线提取算法实时性差的问题,进一步提出了1D-UNet 网络对海底线位置进行分割,该方法对原始侧扫声呐回波数据预处理后送入1D-UNet 网络,并借助1D-UNet 网络对每个位置进行预测,其中输出概率最大值对应的位置就是网络给出的海底线位置。 该方法不需要滑动窗口操作去遍历整个数据,在实时性上显著优于1D-CNN 方法,但该方法鲁棒性较差,在回波信号信噪比较差时无法正确提取海底线。 Qin 等[13]结合残差块和1D-UNet 网络,将1D-UNet 网络中的双卷积操作替换为ResNet 中的瓶颈块,该方法加深了网络结构,提高了海底线的检测精度,但实时性相对较差。
综上所述,当侧扫声呐回波信号信噪比差时,现有的神经网络方法和传统方法不能实时正确提取海底线。 本文提出了一种基于海底信息对称模块和多尺度特征融合模块的快速分割卷积神经网络(Bottom Information Symmetry Module and Multi-scale Feature Fusion Module Fast-SCNN,BMM-Fast-SCNN)用于实时正确提取海底线。 该方法在Fast-SCNN-1D 基础上,采用多尺度特征融合提取海底线细小特征,并结合海底信息对称模块增强网络提取海底线的鲁棒性。 最终在侧扫声呐数据集上表现良好的提取精度和实时性能。
1 海底线提取干扰分析
理想条件下,水柱区第一个强回波是声波第一次到达海底时的回波,如图2(a)所示,方框处即为海底线位置,该方框往左为水柱区,往右为图像区。在水柱区没有噪声干扰,回波信号到达图像区回波强度突然上升,其强度数倍于水柱区,这种条件下海底线位置容易提取;然而在实际采样过程中,诸多因素的影响,为海底线的提取带来困难。 如图2(b)所示,影响海底线提取的因素包括:
图2 侧扫声呐回波信号
①声呐自噪声:在侧扫声呐工作时,换能器会最先记录来自声呐的自噪声,在水柱区形成强回波。
②悬浮物:实际作业时,水体中会伴随大量的悬浮物和一些水中生物,换能器发射出的声波在到达海底前,遇到悬浮物会反射较强的回波,当水柱区被大量悬浮物覆盖时,将会影响海底线的检测。
③海底目标:在声波到达图像区以后,遇到海底目标时反射的回波强度数倍于海底线处的强度,会削弱海底线处的特征,影响海底线的检测。
2 BMM-Fast-SCNN 算法
针对上述海底线提取中的干扰问题,本文提出了基于BMM-Fast-SCNN 的海底线实时提取算法,图3给出了本文的算法框架,该算法主要分为三个部分:①数据预处理部分,包括原始侧扫声呐数据的解析、一维采样序列的生成以及标注序列的获取。②利用BMM-Fast-SCNN 分割网络预测侧扫声呐一维采样序列海底线的分割结果部分。 ③海底线提取精度计算部分,包括遍历分割序列、提取分割位置和计算分割精度。
图3 算法总体流程
2.1 数据预处理
本文的原始侧扫声呐数据是以XTF(Extended Triton Format)格式记录在文件中[14],本文按照其协议编写了解析软件并得到侧扫声呐回波数据。 由于整个Ping 数据很长,为了方便网络训练,输入尺寸需降采样成1 024 的倍数,同时回波数据需进行归一化处理。 其计算公式如式(1)所示:
式中:Bmax代表当前回波强度最大值,Bmin代表当前回波强度最小值,B代表当前采样点的回波强度,BN代表归一化后的强度值。
经过降采样、归一化处理后得到一维采样序列,同时采用人工监督的方法,标记海底线位置,最终生成一维标注序列,如图4 所示。
图4 侧扫声呐数据预处理
2.2 Fast-SCNN-1D 网络结构
语义分割网络在图像分割领域取得很好的效果,其中轻量级的语义分割网络Fast-SCNN 具有优异的实时性和较好的分割精度。 文献[15]提出的Fast-SCNN 网络模型是结合了当前语义分割领域多分支结构[16]和编码-解码结构[17]的网络,其一维模型如图5 所示。 其主要结构如下:在学习下采样部分(Learning to Down-sample),采用标准卷积和两次深度可分离卷积(Depthwise Separable Convolution,DSConv)对输入序列进行下采样,分别得到1/2、1/4、1/8 尺寸的特征图;全局特征提取部分(Global Feature Extrator),在深层特征的分支上经过瓶颈块(Bottleneck Block)和金字塔池化模块[18](Pyramid Pooling Module,PPM),学习到深层特征信息,浅层特征分支的特征图直接送入特征融合部分;在特征融合部分(Feature Fusion),将深层特征分支的特征图经过上采样、深度卷积(Depthwise Convolution,DWConv)和标准卷积后的特征和浅层特征分支经过标准卷积后的特征进行融合;最后,在分类器部分(Classifier),采用两次深度可分离卷和一次卷积操作提高模型的准确率,并上采样恢复到输入序列尺寸,最终经过Softmax 层最终获得分割结果。
图5 Fast-SCNN-1D 网络结构
2.3 BMM-Fast-SCNN 网络结构
Fast-SCNN-1D 具备优异的实时性,但其追求实时性的同时不可避免地损失了一些精度,Fast-SCNN-1D 中多次卷积下采样和金字塔池化操作获得的特征缺失了海底线的细小特征,并不满足海底线提取的精度要求,同时,在一维采样序列一侧的海底线特征被噪声淹没时,Fast-SCNN-1D 不能正确提取海底线位置。 针对这些不足,本文提出了BMMFast-SCNN 网络模型。 该网络的改进如下:
①在金字塔池化后,为了减少四倍上采样带来的误差,深层特征经过两倍上采样后再和浅层特征进行特征融合。
②在特征融合阶段,采用多尺度的特征融合,减少网络对浅层特征的丢失。
③在网络输入阶段,设计了海底信息对称模块,解决在单侧噪声较大时,海底线无法正确提取的问题。 下文将对图6 所示的BMM-Fast-SCNN 网络进行详细介绍。
图6 BMM-Fast-SCNN 网络结构
2.3.1 海底信息对称模块(BISM)
如图7 所示,当海底线一侧的水柱区被噪声充满或者水体中的悬浮物带来噪声距离海底线位置很近时,这种情况下海底线特征被水柱区的噪声给淹没。在人工判断时,且需要参考另一侧的海底线位置信息来提取海底线,然而现有的语义分割网络在缺少先验知识基础上不能正确地识别海底线位置。
图7 悬浮物噪声示意图
为了解决上述问题,借助海底线位置左右对称的先验知识,本文提出了海底信息对称模块(BISM)来提高分割网络的鲁棒性。
如图8 所示,首先对输入的一维采样序列进行左右翻转,得到翻转后的一维序列,然后对已有的两条序列进行求和取平均,最终将三条回波信号序列进行拼接,向分割网络输入三通道的回波信号数据。
图8 BISM 结构图
由卷积神经网络[19]的计算原理可知,通过卷积核可以将不同输入通道的信息提取成相应的特征信息。 在BISM 中,左右翻转后的通道及第一通道为神经网络带来海底线的对称信息;由于仅在水柱区的一侧出现大量噪声,通过求和取均值后的通道在水柱区的噪声得到削弱,且两侧图片区的取值变化较小,该通道在两侧均有较好的信噪比,该通道为网络提供较好的海底线位置特征。 结合三通道特征,网络的泛化能力得到增强,在单侧信噪比较差时,仍能提取海底线特征,提高海底线提取精度。
2.3.2 多尺度特征融合模块(MFFM)
在实际的侧扫声呐回波信号中,当遇到地形复杂时,回波信号中海底线的细节信息不易提取,从而造成海底线位置提取精度较差的问题。
本文借鉴U-Net 在不同特征尺寸下,对浅层特征和深层特征进行拼接的思想,在特征融合阶段,采用不同尺寸的特征融合增强网络对海底线细节信息的提取。 首先,在金字塔池化后,将上采样倍数设置为2,减少4 倍上采样丢失海底线的细节信息;然后,在学习下采样阶段分别向浅层分支输出1/4、1/8、1/16 尺寸的特征图,其深层分支分别和浅层特征进行融合。 最终经过多尺度的特征融合,网络具有更好地提取海底线细节的能力。
2.4 海底线提取精度计算
如图9 所示的回波数据,使用BMM-Fast-SCNN得到了海底线的分割结果。 为了评估海底线提取精度,本文对模型分割结果进行遍历,分别从预测序列中间往左右两侧搜索第一个为0 的点,记录为每个回波数据左右海底线的预测值。
图9 回波数据及预测值
选取一个像素精度和两个像素精度作为可接受误差,计算预测值和真实值的差值是否在可接受范围内,最终确定每个预测值的正确性,如式(2)所示:
式中:yi是预测值,y¯i是真实值,error 表示可接受误差,其取值为1 或者2。 那么海底线提取精度就可以表示为式(3):
式中:acc 表示海底线提取精度,Nc表示正确预测个数,Na表示预测的总个数。
3 实验与分析
为了验证BMM-Fast-SCNN 网络在实时提取海底线这项工作中的有效性和优越性,本文使用在杭州千岛湖实地采集的侧扫声呐回波数据进行实验。
在千岛湖,我们使用HMS-6x4 侧扫声呐进行测量,如图10 所示,一共四个通道,分别记录高、低频下左右舷的侧扫声呐回波数据,其工作频率为高频400 kHz,低频100 kHz,最大采样斜距为200 m,采样间隔为1 s,侧扫声呐回波数据及辅助信息以XTF 格式记录下来。
图10 千岛湖湖试实验
3.1 实验平台与侧扫声呐数据集
原始的侧扫声呐数据以XTF 的格式记录在文件中,使用C#语言,在Visual Studio 2017 平台上对原始数据进行解析。 在64 位的Linux18.04 系统下,使用python3.6、cuda10.1 的编译环境,GPU 型号是RTX 2080,并基于pytorch1.8 版本库进行本次实验。
BMM-Fast-SCNN 网络训练需要大量的数据,才能学习到海底线的特征并具有很好的鲁棒性。 由于侧扫声呐数据没有公开数据集,需要选取一条具有丰富特征的侧扫声呐测线,进行侧扫声呐数据集的制作。 本文选取采样于千岛湖地区的侧扫声呐测线数据,该测线数据共17 920 个Ping,按照本文1.3 节的数据预处理的方法得到17 920 个样本数据和对应的标签数据。 样本数据按照6 ∶2 ∶2 比例划分为训练集、验证集和测试集。
3.2 实验评价指标
为了检验不同方法分割海底线的效果,选取图像分割领域中主流检测指标对模型进行性能评估。本文采用Dice 系数(Dice Similariy Coefficient,Dice)以及交并比(Intersection over Union,IoU)作为分割精度的指标,另外选取模型执行时间作为分割速度的指标。 其中Dice 系数表示两个集合间相似度的度量,其取值范围为[0,1],取值越大表示两个集合样本相似度越高,其计算式如式(4)所示;交并比为真实值集合与预测值集合的交集及其并集的比值,其取值范围为[0,1],计算式如式(5)所示。
式中:TP 表示预测正确的水柱区采样点的样本个数,FP 表示图片区采样点被误检为水柱区采样点的样本个数,FN 表示水柱区采样点被误检为图片区采样点的样本个数。
3.3 训练策略
实验基于pytorch 的深度学习框架,本文研究的是海底线提取,属于二分类问题,输出层经过Softmax 后,选择交叉熵函数作为训练时的损失函数,其公式如式(6)所示:
式中:N表示预测序列和目标序列的长度,pi表示目标序列中第i个采样点概率,yi表示第i个采样点处标签值的类别,正类为1,负类为0。 本文选用Adam优化器方法[20]作为参数优化器,学习率设置为0.001,batch size 设置为64,训练一共迭代40 轮。
3.4 分割性能对比
3.4.1 模型的消融实验
为了验证本文算法的有效性及各个模块对Fast-SCNN-1D 网络的性能提升,本文在4 种不同Fast-SCNN-1D 网络上进行了消融实验。 选用本文3.1 节获得的侧扫声呐数据集进行训练,得到测试结果如表1 所示。
表1 各模型的分割性能指标表
Fast-SCNN-1D 的Dice 系数和IoU 分别为99.78%和99.57%,在分别添加BISM 和MFFM 模块后,模型的Dice 系数和IoU 都得到了一定的提升。 使用全部模块搭建的BMM-Fast-SCNN 模型在分割精度指标上表现最好,其Dice 系数和IoU 指标分别为99.90%和99.84%,相较于Fast-SCNN-1D 网络分别提升了0.12%和0.27%,同时在模型执行时间上保持着良好的性能,这充分体现本文提出的模块能有效提高海底线的分割精度,并保持良好的执行时间。
3.4.2 与其他方法对比
为了验证本文提出方法在实时正确提取海底线时的优越性,本文选取了Yan 等[12]的1D-UNet 网络、Qin 等[13]的U-Net-1D6网络和本文算法进行分割精度和实时性的比较。 表2 为各算法分割性能指标表。由实验结果可知Yan 等[12]提出的方法在实时性上表现更好,但分割精度指标较本文算法偏低。 本文算法经过加入BISM 和MFFM 模块,网络层数进一步加深,分割精度较之其他方法有明显的提升,其中在Dice 系数和IoU 指标上分别至少提高了0.26%和0.49%。
表2 各算法的分割性能指标表
3.5 海底线跟踪精度对比
为了验证本文算法在水柱区存在大量噪声时提取海底线的能力,选取由HMS-6x4 侧扫声呐在千岛湖地区采取的两条测线进行海底线提取实验,并选取Yan 等[12]的1D-UNet 网络、Fast-SCNN-1D 网络、Yan 等[11]的1D-CNN 网络、Qin 等[13]的U-Net-1D6网络以及本文算法进行海底线提取精度对比实验。 五种算法的海底线提取效果如图11 所示,其中a 是侧扫声呐瀑布图,b 是海底线标注图,c 是Yan等[12]1D-UNet 网络提取结果图,d 是Fast-SCNN-1D网络提取结果图,e 是Yan 等[11]1D-CNN 网络提取结果图,f 是Qin 等[13]U-Net-1D6网络提取图,g 是本文算法提取结果图。 如图11(a1)所示,测线1 的瀑布图在水柱区具有较强的干扰,水柱区的悬浮物距离海底线较近,且在一部分探测区域,左侧海底线的特征完全被噪声淹没。 从图中得知,在水柱区干扰较大时,1D-UNet、Fast-SCNN-1D 和1D-CNN 网络均不能很好地跟踪海底线,预测的海底线会出现大量的突变点,海底线提取并不连续,U-Net-1D6网络相较于前三种网络,能较好地提取海底线,提取精度表现较好;而本文算法在加入BISM 和MFFM 模块后,学习到海底线的对称特征,并能很好地提取海底线的细小特征,其提取结果和标注的海底线位置最接近,鲁棒性更好。 如图11(a2)所示,测线2 的瀑布图在水柱区的噪声相对较少,但在方框处出现未知增益突变,且采样中心具有较强的声呐自噪声。 从图中可知,1D-UNet、Fast-SCNN-1D、四种网络均保持较好的提取效果,仅存在少量突变点,提取效果较好,本文算法在整个测线区间保持很好的提取效果,未出现突变点,海底线提取精度最好。
图11 海底线提取效果图
表3 给出了Yan 等[12]的1D-UNet、Fast-SCNN-1D、Yan 等[11]的1D-CNN、Qin 等的U-Net-1D6和本文算法在上述两条测线下的海底线跟踪精度。
表3 海底线提取精度对比表
在测线1 中,Yan 等[12]的1D-UNet、Fast-SCNN-1D 和Yan 等[11]的1D-CNN 跟踪精度表现较差。Qin 等[13]的U-Net-1D6跟踪精度表现较好。 本文算法表现最优异,在两种跟踪精度上,相较于Yan等[12]的1D-UNet 分别提高了28.1%和39.26%,相较于Fast-SCNN-1D 分别提高了10.23%和19.09%,相较于Yan 等[11]的1D-CNN 分别提高了31.17%和28.54%,相较于Qin 等[13]的U-Net-1D6分别提高了1.41%和9.07%。 在测线2 中,五种算法的海底线提取精度均表现优异,在两种跟踪精度上,本文算法相较于Yan 等[12]的1D-UNet 分别提高了3.62%和1.07%,相较于Fast-SCNN-1D 分别提高了1.56%和0.48%,相较于Yan 等[11]的1D-CNN 分别提高了0.74%和2.81%,相较于Qin 等[13]的U-Net-1D6分别提高了4.95%和1.92%。 在不同测线环境下,本文算法相较于其他方法均取得较好跟踪精度。
3.6 特殊情况
通过使用从杭州千岛湖采集的数据进行实验,验证了本文方法的有效性,本文算法借助海底线对称性的先验知识,增强了网络的鲁棒性,能够在单侧噪声较强时有效提取海底线。 然而本文方法在水柱区左右两侧均存在噪声干扰时,无法正确分割海底线位置。 如图12 所示,噪声几乎充满了整个水柱区域,两侧海底线的位置均不明显,这种情况下,本文提出的BISM 模块不能有效降低水柱区噪声的干扰,无法向网络提供有效的特征信息,导致算法无法提取到海底线位置。
图12 水柱区充满噪声的回波信号
4 结论
本文提出了BMM-Fast-SCNN 网络用于提取海底线位置。 采用BISM 使得网络学习到海底线的对称特征,通过MFFM 模块提高网络提取海底线细小特征的能力。 经实验证明,本文算法相较于现有的实时提取海底线的算法,在噪声干扰较大时,可以有效提高提取海底线的精度,并保持良好的实时性能。
本文算法也存在一定的局限性:本文算法在噪声较大时提取精度仍然有限,且当水柱区左右两侧均存在较多的噪声干扰时,本文算法将失效,海底线无法正确提取。 下一步工作是进一步提高网络在噪声干扰下的海底线提取精度。