基于注意力机制的水下目标检测算法

2021-07-08 05:26赵晓飞于双和李清波
关键词:卷积注意力模块

赵晓飞,于双和*,李清波,阎 妍,赵 颖

(大连海事大学a.船舶电气工程学院;b.环境科学与工程学院,辽宁 大连 116026)

由于水下环境复杂、数据采集困难,所以水下目标检测一直是计算机视觉领域一项重要且富有挑战性的工作.早期的水下目标检测算法采用人工制定的特征提取方法提取图像特征,如尺度不变特征变换匹配算法[1](scale-invariant feature transform,SIFT),然后利用支持向量机(support vector machine,SVM)等分类器对图像进行分类.近年来,卷积神经网络(convolutional neural networks,CNN)被广泛应用于目标检测[2-3],取得了令人满意的效果.卷积神经网络以原始图像作为输入,通过简单的非线性模型从大量样本中学习相应的特征,避免了复杂的特征提取过程.基于卷积神经网络的现代目标检测算法可分为one-stage和two-stage两种.Two-stage方法首先生成一组候选对象框以减少搜索空间,然后再进一步分类和回归.如Ren[4]和Zhu[5]等采用此类方法在PASCAL VOC和MS COCO等具有挑战性的数据集上取得了良好效果;黄杰等[6]在Faster R-CNN算法的基础结构中添加一种抛锚策略,用于提高图像中的火焰检测效率.与此相反,one-stage方法具有较高的计算效率,但其检测精度较低.如Zhang等[7]在SSD(single shot multibox detector)算法中加入上下文信息,对图像高维和低维信息进行融合,提高了检测性能,但在精度方面,与two-stage方法仍有较大差距.上述方法在陆地数据集上均已测试成功,但天然水下场景的目标检测难度更大,研究进展较少.这主要是因为:1)水下图像通常由自动设备采集,很难将成像设备与物体之间的距离约束在一定范围内,且海洋空间巨大,物体的尺度往往较小;2)受水下光线散射和泥沙的影响,拍摄对象可能模糊不清或不全,导致特征丢失;3)目标检测算法须搭载水下机器人使用,故对模型的实时性和高效性要求较高.

针对水下目标检测,本文提出一种新的目标检测算法FRANet,以解决多尺度目标检测问题和类别不平衡问题.在标准SSD算法框架上,提出特征增强模块和特征融合模块,设计产生多尺度的上下文特征,以提高SSD中的浅层特征表征能力;同时采用双路径模块(dual path module,DPM)代替SSD中额外增加的卷积层,以提高深层特征表征能力.此外,本文采用一种级联的注意力机制方案[8]以获得多尺度的上下文特征,突出给定特征图上空间区域的目标,使网络更有利于水下小目标的识别.

1 网络结构

在复杂的水下场景中,图像退化会丢失许多特征.如海胆、扇贝等生物的颜色信息较稳定,但纹理信息易被破坏;海参等生物的纹理信息分辨度较强,但颜色信息会因光照不足等原因被破坏.针对水下检测任务,本文采用如图1所示的FRANet算法.FFMv1和FFMv2对应两种不同的特征融合模块(feature fusion module,FFM),将2个具有不同语义信息的特征图相组合,然后利用特征增强模块(feature enhancement module,FEM)强化其语义,获得新的特征图.同时,采用2个双路径模块DPM代替传统SSD算法中的深层特征表征,以加强深层语义.为提高网络对水下目标分类和回归的性能,结合上述不同类型的模块,本文还提出一种级联的注意力机制方案,该方案由锚框精化模块(anchor refinement module,ARM)、空间注意力模块(spatial attention module,SAM)以及目标检测模块(object detection module,ODM)3个相互连接的模块组成.

1.1 特征增强模块

图2为特征增强模块示意图.FEM使用2个残差卷积块以增加深度并学习更多的非线性特征.在第1个残差卷积块中,首先利用1个1×1的卷积层以减少特征图中的通道数量,然后使用2个堆叠的3×3 卷积层代替5×5卷积层,以减少参数并学习更多的非线性表示.每个分支中都有一个带有空洞系数的卷积,以生成更高分辨率的特征图,在保持参数数量不变的情况下,在更大的区域捕捉更多的背景信息.在此基础上,引入第2个残差块,以获得更多的特征通道信息.参考文献[9],采用2个1×1卷积层代替2个全连接层的方法.

图2 特征增强模块结构图Fig.2 Feature enhancement module structure diagram

标准SSD算法仅在深层特征表征中使用额外的卷积层,易导致深层特征图中大量细节信息丢失.故本文设计双路径模块,以加深骨干网络,获得更多的语义信息.双路径模块的详细结构如图3所示,该设计对网络进行了深度化处理,并通过元素求和及通道拼接的操作,使浅层和深层具有隐性的特征融合,增加深层的特征信息量.

图3 双路径模块结构图Fig.3 Dual path module structure diagram

1.2 特征融合模块

为了增加标准SSD算法中浅层的语义信息,设计两种特征融合块FFMv1和FFMv2,然后应用局部注意力机制突出浅层的目标区域.具体而言,首先对FC7层的特征图做通道维度上的压缩及特征图的上采样,对Conv4_3层的特征图做通道维度上的压缩,然后引入局部注意力机制,最后利用通道维度的拼接操作输出新的Conv4_3层,利用Conv4_3和FC7的特征构建特征融合模块,相互增强和完善.

在局部注意力机制中,首先给定两组相同维度的特征图XC×H×W和YC×H×W,其中C是特征图通道数量,H和W为特征图的高和宽.然后利用1×1的卷积将特征图在多个通道维度上合并,再利用一组全连接层和激活函数在每个空间位置产生权重激活值,最后通过对输入Y重新加权得到输出Z=Y·δ(Wf·F(X))+Y.其中δ(·)为Sigmoid函数,Wf是训练得到的权重,F(·)代表1×1的卷积层、批归一化和激活运算.

1.3 级联的注意力机制方案

级联的注意力机制方案包括以下3个模块:

1)ARM.ARM对锚框进行二元分类和坐标回归,以过滤负类锚框,减少分类器的搜索空间,同时为后续回归进行初始化.在基础网络的特征图上为每个规则分割单元匹配3个锚框;然后ARM得到4个精化后的锚框偏移量及2个表示锚框中存在前景对象的置信度分数.ARM中的二元分类结果可预测每个锚框为前景或背景,生成空间注意力特征图,以抑制背景、突出目标,减少正负锚框之间的类别不平衡.

2)SAM.首先,沿通道维度对给定空间位置上的锚框的目标类别预测结果进行最大池化操作,然后进行Sigmoid函数激活,产生空间注意力特征图A,该特征图对基本网络获得的特征Fn进行改进,改进后特征Fm=Fn×A+Fn.然后,进行可变形信息的提取加入.采用1×1的卷积从ARM的回归结果中提取空间偏移量Δp=WsFa,其中Ws是1×1卷积核训练得到的权值,Fa是精化后锚框的坐标回归.通过可变形卷积将空间偏移量加入到相应的特征图中,每个卷积层的空洞率分别设为5、4、3、2,以便进一步提高局部信息.最终的精化特征图Ffinal=∑p∈RWpFp,Δp.其中p为特征图上每个空间的位置,R是对输入特征进行采样的规则网格,Wp是可变性卷积层训练得到的权重,Fp,Δp为未精化特征图.

3)ODM.以精化的锚框和增强的特征图作为ODM输入,进一步改进回归,预测多类标签.ODM计算输出不同目标种类的置信度分数和精化锚框相对于目标真实边界框的4个偏移量.

3 目标检测试验

本文使用的水下数据集由2020年全国水下机器人目标抓取大赛提供 (http://www.cnurpc.org/a/js/).数据集包括海参、海胆、扇贝和海星等4类水下小目标,共含6 000张图片,其中20%作为测试集,80%作为训练验证集,再以8∶2的比例将训练验证集分为训练集和验证集.以平均精度均值(mean average precision,mAP),即每个类别的准确率-召回率曲线所围面积的平均值,作为模型评估指标.准确率P为预测结果中正样本的比例,召回率R为原始样本中正样本能够被正确预测的比例.

受水下复杂环境的影响,若拍摄到的数据样本小于目标整体的30%,则忽略此目标;若部分数据样本模糊不清,则采用自适应直方图均衡化的方法处理.此外,为构建稳健模型以适应目标变化,在预处理阶段使用SSD算法中的数据增强策略,即对原始训练图像进行随机扩容、裁剪,附加随机光度失真和翻转以生成训练样本.硬件试验平台采用深度学习工作站,Ubuntu18.04,64位操作系统,内存32 G,显卡为NVIDIA GeForce GTX 1080Ti,CUDA 9.0版本,试验在基于深度学习框架PyTorch 0.4.0下进行.

4 结果与分析

学习率过低会导致梯度下降慢、训练时间长;学习率过高可以加速训练,但易造成梯度爆炸的问题.故本文的学习率采用一种“热身”策略,即将前5个周期的初始学习率从10-6逐步上升到4×10-3.“热身”阶段结束后,再采用原来的学习率计划,分别在150和200个周期时减小10倍学习率,在250个周期时停止训练.

训练过程中使用小批量随机梯度下降算法更新神经网络的梯度信息,网络根据误差通过反向传播更新参数,使损失函数逐渐收敛.其中权重衰减为0.000 5,动量为0.9,网络使用的输入像素为320×320,批量大小设置为32.本文根据水下任务对SSD,RFBNet[10],RefineDet[11]三种目标检测算法进行了调整,以便与FRANet算法进行比较.以上模型都用预训练模型VGG16[12]初始化,在水下数据集上以相同的超参数进行训练.不同算法的平均精度均值结果如表1所示.由表1可知,FRANet算法的mAP优于其他三种算法.虽然SSD,RFBNet,RefineDet算法的性能在PASCAL VOC和MS COCO等数据集上得到验证,但在水下数据集上的表现却不理想,原因可能是水下的干扰因素较多.图5给出了FRANet和RefineDet算法在水下数据集图片中的识别效果.如图5所示,在复杂的水下环境中,RefineDet算法出现了不同程度的漏检现象,而FRANet算法的检测准确率较高.此外,FRANet的计算开销小,在使用NVIDIA GTX 1070和CUDA 9.0的便携式机器上,对分辨率为320×320的视频进行处理的速度约为40帧·s-1,可以满足实际应用的实时性要求.

表1 不同算法的平均精度均值结果Tab.1 Mean average precision results for different algorithms %

图中数字表示预测类别的置信度;边框颜色:红色表示扇贝,蓝色表示海参,黑色表示海胆,紫色表示海星.图5 不同算法在水下数据集图片中的识别效果Fig.5 Recognition effects of different algorithms in underwater dataset images

为检查算法各模块对网络性能的贡献,以深入理解算法行为,本文进行了消融实验.SSD算法以及在SSD算法中依次累加特征融合模块、特征增强模块和注意力机制算法的mAP分别为73.2%,74.7%,77.0%,80.5%,说明相对于SSD算法而言,特征融合模块和特征增强模块均增强了前层和深层特征图上的语义信息,一定程度上提升了检测精度.而注意力机制的添加,对mAP的提升最为明显,这是因为注意力机制能够有效突出特征图上空间区域的目标,改善目标类别的不平衡性,使得网络更有利于识别水下小目标.

5 结论

FRANet目标检测算法以特征融合模块和特征增强模块相结合的方式,利用深度卷积神经网络自适应地提取多尺度特征图,同时采用由锚框精化模块、空间注意力模块以及目标检测模块组成的级联注意力机制方案改进分类和回归.多模块化结构获得多尺度的上下文特征,级联的注意力机制方案突出给定特征图上空间区域的目标,使网络更有利于识别水下小目标.试验表明,本算法在兼顾检测速度的基础上提高了检测精度.将来计划引入一种无锚机制进一步增强网络性能以实现更强大的特征学习.

猜你喜欢
卷积注意力模块
基于全卷积神经网络的猪背膘厚快速准确测定
28通道收发处理模块设计
“选修3—3”模块的复习备考
让注意力“飞”回来
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
A Beautiful Way Of Looking At Things
必修模块相关知识过关训练
阅读理解两则