面向智能船舶的水面小目标检测算法

2021-05-25 01:04翔,辉*,2,祥,2
大连理工大学学报 2021年3期
关键词:梯度注意力损失

梁 月 翔, 冯 辉*,2, 徐 海 祥,2

( 1.武汉理工大学 交通学院, 湖北 武汉 430070;2.武汉理工大学 高性能船舶技术教育部重点实验室, 湖北 武汉 430070 )

0 引 言

由于船舶业的成本随着社会对船舶的安全性能、环保性能和舒适性能等方面的追求不断升高,提高船舶智能化水平成为船舶业的大势所趋.

智能船舶的智能感知系统可以帮助智能船舶获取自身运动状态信息、周边障碍物信息以及海洋环境等方面的信息和数据.基于视觉的感知是智能船舶感知系统中的核心,其中,利用可见光图像实现周边障碍物目标的检测与识别是智能感知系统的重要组成部分.此外,基于可见光图像的目标检测与识别,具有分辨率高、速度快、传递的信息丰富、成本低等特点,能够实时评估船舶航线附近的运行状态,提早发现在航行过程中的安全隐患.

基于可见光图像的船舶目标检测方法分为传统模式识别方法和深度学习方法.传统模式识别方法包括基于统计学方法、基于频域变换方法等.Xie等[1]利用统计学方法,采用层次聚类直方图构建异常检测模型,然后识别候选区域并从候选区域中删除非船舶类目标,最后使用结构连续性来消除错误警报.但该方法仅适用于全色可见光图像的海区,不适用于港区.Yu等[2]提出了一种基于统计分析和形状识别的模型.通过统计分析船舶在海域的分布情况,将受到影响的船舶目标与海、陆、岛或巨浪区分开来,然后利用纵横比、圆度等形状特征来检测船舶.在变换方法中,对输入图像进行变换,如Radon变换、小波变换或Hough变换,以提取特征.Yu等[3]提出了利用小波分解得到图像的高频和低频特征,然后通过归一化和加法将特征组合起来,得到显著特征图.叶聪颖等[4]把输入的RGB图像转换到HSI空间上,通过对不同特征图的规格化和线性融合获得综合的显著图.该方法应用于多种海上目标图像均取得较好效果.Leng等[5]提出了一种基于复杂信号峰度(CSK)的单通道可见光图像舰船检测方法,该方法主要由区域提取和目标识别两部分组成.它们首先对潜在的船舶位置进行区域建议,然后再进一步检测与识别这些船舶的具体位置.

近年来,基于深度神经网络的水面船舶检测方法得到了越来越多的重视.Cheng等[6]提出了一种基于全卷积网络(FCN)的边缘检测网络.Kang等[7]使用Faster R-CNN[8]对船舶进行检测.Jiao等[9]提出了一种基于Faster R-CNN的多尺度神经网络,用于多尺度、多场景可见光船舶检测.Lin等[10]提出了一种新的网络架构,利用SE-block的通道注意力特性部署在Faster R-CNN 模型上.这个网络抑制了冗余子特征,进一步提高了可见光图像中的船舶检测率.Yang等[11]提出了用旋转密集特征金字塔网络检测来自不同场景的船舶,包括海洋和海港.胡炎等[12]分析了针对SAR图像的CNN网络结构设计的基本需求.通过分辨率归一化制作混合数据的训练样本集,在Faster R-CNN框架下设计并构建了一个仅3层卷积神经网络用于特征学习,获得了较好的检测结果.赵春晖等[13]分析了Faster R-CNN 中区域建议网络的实现方法,并在区域建议网络的包围盒尺寸设置中引入了K-Means聚类算法,显著地缩短了算法的识别时间.吴金亮等[14]提出了基于Mask R-CNN框架的舰船目标检测识别方法,通过候选框与像素分割曲线相结合的思路,较好地解决了紧密排列舰船目标的检测问题.

以上这些方法对于检测水面正常目标效果显著,但是对于具有识别区域分辨率低、图像模糊、信噪比低等特点的水面小目标检测,其感受野受到预设锚框限制,在复杂背景下容易产生大量虚警.小目标的界定在目标检测领域中没有确定的标准,本文将目标所在区域的像素面积小于整个图像1/10的都称作小目标.为了解决水面小目标检测难题,本文以Faster R-CNN为基础,提出自注意力特征融合水面小目标检测算法,引入自注意力模块、结构化特征金字塔融合结构和大梯度定位损失函数.

1 本文算法介绍

1.1 自注意力模块

利用深度神经网络进行目标识别与检测时,通常采用自注意力机制,其目的是让网络模型中给予关注重点,而不是让网络关注全部信息.注意力机制分为软注意力和强注意力两种.软注意力关注的是空间或者通道,是一种可微的并且是确定性的注意力,而强注意力关注的是像素点且不可微,所以相关领域的研究都采用软注意力方法.利用相关的特征学习权重分布,将学习到的权重施加在原有特征上进一步提取相关知识.

最经典的注意力方法有Non-local[15]和SE-block[16].前者是注意力的加权作用在空间尺度上,通过自注意力机制来建模查询位置与所有位置的远程依赖关系.后者是注意力的加权作用在通道尺度上,即将全局上下文的不同通道赋予新标定的权重,强化网络对某些通道的依赖性,其目标是通过明确地建模卷积特性通道之间的相互依赖关系提高网络表示的质量.

Non-local的缺点也较为明显,其建模像素之间的关系是通过自注意力机制,但其对于每一个位置的学习并不受位置依赖,造成了大量的计算浪费.SE-block虽然是轻量化方法,但是其没有充分利用上下文信息,即缺少空间注意力.

本文在这两个方法的基础上设计一种全新的自注意力模块,该模块同时具备空间注意力和通道注意力,而且与Non-local方法相比更为轻量化,如图1所示.其中,N代表批样本的数量,C代表输入图片的通道数,H代表输入图片的高,W代表输入图片的宽,r代表瓶颈部分的缩放因子,每个计算矩阵都由4个维度组成,M代表宽高两个变量合成一个维度,维度对应的数字代表维度的大小.该自注意力模块分为两个部分,第1部分使用上下文建模进行相似度计算并使用Softmax 函数进行归一化.第2部分通过一个转换结构捕获通道间的依赖.整个自注意力模块的公式表示为

(1)

图1 自注意力模块结构

式中:R代表ReLU函数,L代表层正则化函数LN,G代表全局平均池化函数GAP,zi代表主干网络的输出,xi代表位置索引,xj代表存在的所有位置,Wk代表上下文建模的1×1卷积结构,W1代表转换结构的第1个1×1卷积结构,W2代表转换结构的第2个1×1卷积结构,全局平均池化公式可以表示为

(2)

其中S代表上下文建模(context)的输出.

通过自注意力机制,使用一层上下文建模模块建模远程依赖关系.对于每个查询位置,非局部网络首先计算查询位置与所有位置之间的两两关系,形成一个注意图,然后将所有位置的特征用注意图定义的权重进行加权和累加,最终将聚合的特性添加到每个查询位置的特性中,以形成输出.这个自注意力模块可以广泛应用于视觉识别任务中,并且灵活地允许它插入到网络结构中的任意位置.

1.2 结构化特征金字塔融合结构

在目标检测与识别中,多尺度目标检测始终是一个难题.Liu等[17]在SSD中指出神经网络模型中高层和低层特征的优缺点:低层特征是分辨率较大的特征图,虽然细节信息多,但是全局语义信息不足,直接在低层特征上进行分类定位不是很准确.高层特征是低层特征经过神经网络多次降采样后的结果,感受野大,全局语义信息全面,但是细节信息损失严重.

针对这种情况,Lin等[18]提出了一种自顶向下的跨层连接来缓解不同特征层之间的矛盾.具体是将高层特征图上采样后与低层特征进行融合,从而使低层特征同时具备全局的语义信息,这对于小目标检测是一个提升.但是缺点也很明显,因为低层特征传递累积了过多的梯度,从而使网络对于高层特征的学习不足.

学界对于特征金字塔的改进有两种,一种是神经网络搜索(NAS),另一种是人工设计最优结构(如BiFPN),如图2所示.图中,P3~P7表示输入的第3~7级特征.NAS的结果符合人工设计网络常识,且对于目标检测效果提升明显,但是这种网络不利于工业部署[19].BiFPN[20]则是在NAS基础上设计的特征金字塔结构,去掉了仅有一个输入的节点,在同层之间增加了横向连接,易于部署,并且可以多次堆叠,但是对于NAS的跨层连接的优点并没有采用.

图2 特征融合结构比较

本文结合NAS和BiFPN的优点,设计了一种新的结构化特征金字塔融合模块,其模块的特征金字塔是结构化设计的,易于部署,并且对于输出层和中间层增加了跨层连接.进行融合操作的节点采用了两种融合方式:一种是简单的加权融合,主要用于多节点融合;另一种是使用自注意力机制的融合方式,主要用于双节点融合.具体方法就是将主干网络输入进行最大池化操作并经过一个激活函数后与主干网络加权聚合,从而进行有效的特征融合.

1.3 大梯度定位损失函数

传统的目标检测算法R-CNN[21]通过多任务损失函数来解决定位和分类问题,具体组成如下所示:

Lp,u,tu,v=Lcls(p,u)+λ[u≥1]Lloc(tu,v)

(3)

式中:Lcls和Lloc分别对应于分类和定位的损失函数,Lcls中的预测和目标分别用p和u表示,tu是与类u对应的回归结果,v为回归目标,λ用于调整多任务学习下的损失权重.这种多任务学习的问题在于如果分类的效果很好,即分类的损失很小,即使定位效果不理想,总体损失也会变小,一定程度上忽略了定位这一回归问题的重要性.

通常把定位损失小于1.0(设定值)的样本称为正常样本,大于等于1.0的样本称为异常样本.最直接的提升定位重要性的做法就是增大λ值,但是这样带来的问题是将异常样本的梯度放大,导致模型学到了过多的异常样本信息,降低了模型的泛化性能.

本文采用一种新的损失函数即大梯度定位损失函数将正常样本的梯度增大,从而使多任务学习的分类和定位都得到一个理想的结果.

Lloc中的smoothL1损失函数定义为

(4)

梯度表达式如下:

(5)

在smoothL1损失函数基础上重新设计较大梯度:

(6)

新损失函数使用α来控制正常样本的梯度,但不影响异常样本的梯度.图3曲线分别表示smoothL1损失函数的梯度和在不同α取值控制下的大梯度定位损失函数的梯度.从图3可以看出,在正常样本的区间内新损失函数产生稍微大的梯度.图4则显示了大梯度定位损失函数提升了正常样本的损失比例,从而使模型更加容易学习正常样本的信息,增强了模型泛化性能.

对x积分可以得到大梯度定位损失函数:

(7)

其中参数α、β、γ之间的关系如下:

(8)

图3、4的横轴表示回归错误E,图3的纵轴表示梯度G,图4的纵轴表示梯度积分后的损失值L.

图3 不同损失函数梯度比较

图4 不同损失函数损失值比较

大梯度定位损失函数是在传统定位损失函数smoothL1的基础上改进而来,设置拐点将正常样本与异常样本分隔开,并设置最大值为1.0的异常样本产生的较大梯度.大梯度定位损失函数的关键思想是从正常样本的梯度重新平衡所涉及的样本和任务,从而在分类、整体定位和精确定位方面实现更加均衡的训练.

2 实验准备

2.1 数据集

目前没有针对水面船舶目标检测的大型数据集,研究团队依据国内船舶分类标准建立了大型船舶数据库.本文从中选择41个常见类别的水面船舶图片,其中训练图片13 547张,测试图片3 411张,样本框总数为25 437,样本框与图片的比例为3∶2,使用标准的VOC 2007格式数据集,图5为本文实验数据集的比例关系.

图5 仿真实验船舶数据集比例关系

2.2 实验环境与参数设置

为了公平比较,所有的实验都在PyTorch1.2和mmdet上实现.本文实验中使用的骨干网络是公开且预训练好的.实验均为36个周期,初始学习率为0.002 5,如果没有特殊说明,则在24、33个周期之后分别降到原来的1/10.实验主要硬件配置为Intel(R) Core(TM)i5-9300 CPU@2.40 GHz处理器、16 GB内存和GeForce GTX 1660 Ti显卡.实验操作系统为Windows 10.

2.3 数据增强

具体参数设置如表1所示.在数据预处理阶段,对进行训练的图片进行数据增强操作,将已有的数据集图片通过多种方式随机生成,用来提高目标检测模型的鲁棒性.本文具体的数据增强方

表1 数据增强方法

法包括平移、旋转、剪切、尺度变换以及改变图片的饱和度和曝光率.

3 消融实验

消融实验对于深度学习研究至关重要,理解系统中的因果关系是产生可靠知识的最直接方式.消融具体的操作方法就是删除一些模块(或用随机的模块进行替换),观察实验的结果来分析具体模块对模型的影响.

3.1 自注意力模块位置设置

自注意力模块位置不同,会导致模型精度和模型大小不同,本文针对以下几个指标进行性能评价.(1)AP:平均精确率,即多类预测时每一类的查准率取平均值.(2)AP50:检测器用于检测的交并比大于0.5,AP75同理.(3)参数量:模型所有带参数的层的权重参数总量.(4)浮点数:模型的运算次数,即时间复杂度.

Non-local注意力模块插入在Resnet的残差块之后,而SE-block集成在残差块内的最后一个1×1卷积之后.在表2中,本文研究了使用自注意力模块的两种情况,两种位置对于基准算法的指标都有提升,其中位置在Resnet的残差块之后的性能最佳,因此本文将该位置设为默认值.

表2 自注意力模块位置设置

3.2 自注意力模块阶段设置

在网络同一阶段的每一层通常有很多相同的重复层,所以可以选取每一阶段的最后一层卷积层作为输出,由于conv1占用了大量内存并且conv2高级语义特征少,一般不使用它们,本文将每个阶段的最后输出(conv3,conv4,conv5)表示为{C3,C4,C5}.表3显示了在不同阶段集成自注意力模块的结果.所有阶段都受益于自注意力模块中的全局上下文建模.插入到C4、C5比插入到C3获得更好的性能,这表明更好的语义特征可以从全局上下文建模中获益更多.随着浮点数的略微增加,将自注意力模块插入到所有层(C3+C4+C5)产生的性能甚至比只插入一个阶段还要高.因此,本文采用将模块插入到所有阶段的设置.

表3 自注意力模块阶段设置

3.3 瓶颈层设计

瓶颈层通过使用1×1的网络结构很方便改变维度,灵活设计网络,并且减小模型参数量和浮点数.瓶颈转换器中每个组件的影响如表4所示.NL瓶颈层表示使用一个1×1 conv作为转换器的简化版Non-local,与基准算法相比,具有更多参数.r16表示瓶颈层的缩放因子为1/16.尽管r16和r16+ReLU的参数比NL瓶颈层少很多,但两个层的优化难度更大,性能也比单个层差.因此,层正则化(LN)被用来简化优化,其性能类似于NL瓶颈层,但参数量比前者大幅减少.

表4 瓶颈层设计

3.4 瓶颈层缩放因子设计

瓶颈层设计旨在减少参数中的冗余,并考虑性能和参数之间的权衡.随着参数量的增加,缩放因子从1/32改变到1/4,性能不断提高,最终选取缩放因子为1/16,表明本文瓶颈层在性能和参数之间取得了很好的平衡.值得注意的是,即使缩放因子选取1/32,网络性能仍然比基准算法高很多.参见表5.

表5 瓶颈层缩放因子设计

3.5 结构化特征金字塔融合方式设计

结构化特征金字塔融合方式不同导致的模型评价指标结果见表6.首先说明在融合阶段,加权融合比池化更有效,最大池化比平均池化效果好一点.所以采用加权融合和最大池化相结合的特征金字塔融合方式在不增加参数量的前提下,可以有效提升目标检测器的性能.

3.6 3种改进方法组合实验

将自注意力模块、结构化特征金字塔融合结构和大梯度定位损失函数组合使用到基准算法中,可以观察到,无论是哪种组合,对于基准算法都有较明显的提升.其中,大梯度L1损失函数对于算法性能提升最明显,结构化特征金字塔融合结构比自注意力模块对于检测器性能的提升大,3种方法单独使用对于基准检测器参数量的增加相近.消融实验结果表明,将3种方法组合使用检测器的性能提升最高,对于交并比为50的AP值提升4.96%,在牺牲一定训练时间的情况下可以取得相对较好的检测器性能.

因此,自注意力模块是增强基础网络的信息提取能力,结构化特征金字塔融合结构是增强基础网络的信息融合能力,大梯度定位损失函数是平衡基础网络检测性能.使用者根据不同的需求(速度、精度)进行组合,即本文的3个模块是即插即用的灵活模块,结果见表7.

表7 3种改进方法组合实验

4 仿真实验结果可视化及分析

基于卷积神经网络的深度学习模型对于目前学术研究来说仍然是黑箱,即无法通过完整的理论来解释训练和测试的过程,但是通过一些可视化手段可以更方便地监督训练和测试整个过程.本章首先通过对训练过程中的损失函数日志进行分析,观察新的损失函数对于模型收敛性的影响.其次,通过类激活特征图来观察模型对于目标特征的响应情况.最后,通过对小目标的检测结果分析结构化特征金字塔对于小目标检测的影响.

4.1 大梯度定位损失函数可视化结果分析

从图6可以观察到,采用大梯度定位损失函数的新算法总的损失函数曲线在基准算法之下,说明新的算法收敛性好,泛化性优于基准算法.图7、8分别表示两种算法的分类和定位损失函数曲线,可以观察到由于本文对定位损失函数的改进,正常样本的梯度增大,使得模型更容易学到正常样本的信息,最终的结果是定位损失函数变小,

图6 基准算法与新算法总损失函数比较

图7 基准算法分类和定位损失函数比较

图8 新算法分类和定位损失函数比较

从而使得总的损失函数也变小.大梯度定位损失函数可以让目标检测模型强化对于目标定位的重视程度,最终增强模型的泛化性.

4.2 自注意力模块可视化结果分析

为了对自注意力模块达到的效果进行可视化,特征图上每个位置在某种模式时会在其感受野中被激活,将学习到的模式进行线性组合构成类别激活特征图,然后直接使用上采样,将类别激活特征图还原到与原图一样大小,通过叠加可以知道哪些区域与最后分类结果息息相关.通过观察图9的目标检测热力图,可以发现自注意力模块与基准算法相比,感受野中被高度激活的像素点集中到了物体最具特征的区域,说明改进后的网络学习到了更加有效的语义信息,图片中的像素建立了有效的长距离空间和通道依赖.

图9 基准算法和自注意力模块热力图

4.3 结构化特征金字塔融合结构可视化结果分析

传统的目标检测算法对于小目标检测仍然有不足之处,因此很难提取少量像素范围内的小目标信息.尽管目前的主流算法都采用了特征金字塔进行多尺度级别的检测,可以缓解小目标检测的问题,但是多种不同尺度的相互耦合仍然损害小目标检测的性能.为了进一步验证本文算法的有效性,通过对一组采集自真实海上视频中的目标检测与识别目标进行了验证,如图10所示.

(a) 基准算法

(b) 新算法

检测结果中数字表示置信度,可以观察到基准算法(图10(a))在检测小目标时会把背景物体当作前景来检测,并且识别出的目标置信度不高.新算法(图10(b))可以精准识别小目标,并且不会对背景产生误检,同时识别的结果也具有较高的置信度.

4.4 仿真实验结果

将3个模块组合到基准算法中后,最终的查准率为85.31%,召回率为46.72%,平均精度为70.13%,检测单张图片的耗时为61.85 ms.

5 结 语

本文针对智能船舶的水面小目标检测与识别问题,通过分析现有自注意力机制、结构化特征金字塔融合模块和大梯度定位损失函数的固有问题,结合多种算法的优点,重新设计并引入全新的自注意力模块、结构化特征金字塔融合结构和大梯度定位损失函数,提出了基于自注意力特征融合的目标检测算法.该算法在合理范围内增加模型的参数量,对算法的水面小目标检测性能带来了显著的改进,有助于获取船舶周围目标分布信息并最终应用于船舶智能航行、海上监视和交通监管等领域.

猜你喜欢
梯度注意力损失
让注意力“飞”回来
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
胖胖损失了多少元
一种自适应Dai-Liao共轭梯度法
一个具梯度项的p-Laplace 方程弱解的存在性
玉米抽穗前倒伏怎么办?怎么减少损失?
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一般自由碰撞的最大动能损失