牛浩青,欧 鸥,饶姗姗,马万民
成都理工大学 信息科学与技术学院(网络安全学院),成都 610051
目标检测是计算机视觉领域中的核心问题之一,它的主要任务是对图像中感兴趣的目标进行识别和定位[1]。随着深度学习和卷积神经网络CNN的快速发展,传统的目标检测方法正在逐渐被基于卷积神经网络的深度学习方法所替代。目前流行的基于卷积神经网络的目标检测方法主要分为两种类别:第一类是单阶段(one-stage)检测方法,例如:YOLO[2~4]和SSD[5]等;第二类是两阶段(two-stage)检测方法,例如:Fast-RCNN[6]和Faster-RCNN[7]等。大部分基于深度学习的目标检测算法虽然在通用目标检测中有较高的精度和泛化能力,但在小目标检测任务中仍存在测精度低、漏检率高的问题。小目标的定义有两种:一种是目标尺寸是原始图片尺寸的十分之一,即可认定是小目标;另一种是小于32×32 像素的目标,即可认定为小目标[8]。小目标由于具有分辨率低、特征信息少、背景干扰噪声多以及定位精度要求高等特点,给目标检测任务带来了很多的困难和挑战[9]。因此,对于小目标检测的研究是当下目标检测任务中最关键的问题之一。
目前已经有很多学者对小目标检测问题进行了研究,侯涛等人[10]提出了基于改进YOLOv4的遥感飞机目标检测算法,该算法通过在YOLOv4主干提取网络中引入DenseNet(密集连接网络)以加强对飞机小目标的特征提取能力,并只保留高分辨率特征层以减少语义丢失,既降低了模型复杂度,也提高了网络对飞机小目标的语义表达能力,但由于去除了包含目标对象和周围环境关系特征的低分辨率特征层,使网络在进行背景噪音较大的图像预测时,对检测目标上下文环境特征提取不够充分。李成豪等人[11]提出了一种基于多尺度感受野融合的小目标检测算法S-RetinaNet,该算法利用特征递归金字塔网络对不同特征层进行两阶段特征融合以避免单阶段特征融合不充分的问题,使用多尺度感受野融合模块进行不同尺度的感受野扩大,使检测目标的上下文信息有效的被提取出来,提升了对小目标的检测效果。赵鹏飞等人[12]提出了一种融合注意力机制的深层次小目标检测算法,该算法将原DarkNet-53中的残差连接结构替换成新的分组残差连接结构,通过汇合不同通道的特征信息提高输出的感受野大小,在多尺度检测阶段采用特征增强模块和通道注意力机制对不同特征层进行融合,从而解决浅层特征语义信息不足的问题。
本文从上述文献中得到启发,提出了一种基于改进YOLOv3[4]的小目标检测算法。针对多尺度特征融合过程中,低分辨率卷积特征图上采样对小目标的特征恢复能力较弱的问题,设计了一种自适应上采样模块替代传统的插值操作,使网络能够自主选择适合目标训练集任务的插值方法以增强不同尺度特征融合的效果;针对小目标包含特征信息少以及定位精度高的问题,提出了一种门控通道注意力机制(EGCA),实现特征层通道之间的相互交互,通过对每个通道的特征进行权重分配来学习不同通道特征层信息的相关性和重要性[11]。实验结果表明,改进后的算法比原算法有更高的检测精度,并且对小目标的检测能力也有较大的提升。
YOLOv3是一种在YOLOv1[2]和YOLOv2[3]基础上进行改进的单阶段目标检测算法,它不像R-CNN 系列将目标检测任务分为生成候选框和识别框内物体两个步骤,而是把整个流程合并在一起直接生成预测结果。因此,基于单阶段目标检测算法相对基于双阶段目标检测算法具有检测速度快但精度低的特点,YOLOv3通过采用残差连接的DarkNet-53作为主干特征提取网络,并借鉴文献[13]中的特征金字塔网络(feature pyramid network,FPN)结构,使用3个不同尺度的特征图进行多尺度特征融合之后输出预测结果等创新工作,使其在目标检测任务中达到了速度和精度上的平衡。YOLOv3的整体架构如图1所示,对于416×416的输入图像,首先通过DarkNet-53(去除全连接层)主干特征提取网络进行基础特征提取,网络中共包含1个DBL模块和5个残差模块。然后将主干网络中最后3 个残差模块的输出作为3 种不同尺度的特征输入到特征金字塔结构进行特征融合。最后在3 个通道中分别对融合后的特征层进行卷积操作以输出13×13、26×26和52×52共3种尺度的预测结果。
图1 YOLOv3结构图Fig.1 YOLOv3 structure diagram
YOLOv3 算法将待检测图像分割成P(P=3)种不同尺度的S×S网格单元(例如:13×13、26×26 和52×52),它们分别对应于图1 右侧3 个并行网络分支的输出,如果目标对象中心落入某个网格单元,那么该网格单元需要对这一目标对象进行预测,图2展示了输入图像和S×S特征层之间的关系。对于上述任一网格单元均需要预测3个高宽比不同的先验框,每一个先验框包含当前网格的置信度Conf、类别B和位置信息Cls。
图2 输入图像与S×S 特征层映射关系图Fig.2 Mapping relationship between input image and S×S feature layer
置信度表示当前网格单元包含对象的可能性,如公式(1)所示:
预测值在单元网格中的位置关系如图3 所示,Pw和Ph为先验框的宽度和高度,bw和bh为转换后预测的实际宽度和高度,bx和by为转换后预测的实际中心坐标,cx和cy为单元格左上角相对整张图片的坐标。
图3 预测值在单元网格中位置关系图Fig.3 Position relationship diagram of predicted value in cell grid
YOLOv3 采用非最大值抑制算法(non-maximum suppression,NMS)对预测框进行筛选过滤,对于待检测图像上的某一目标,首先选择得分最高的检测框C,再将剩余框与C分别计算IOU值,当IOU值超过所设定的阈值时,即对超过阈值的框进行抑制;然后在剩余检测框中选择得分最高的检测框重复上述过程,直到最后保证每个目标只存在一个检测框。
本文基于YOLOv3 算法提出了一种结合EGCA(门控通道注意力机制)和自适应上采样模块的改进YOLOv3算法。该算法将原网络结构(如图1)中的上采样模块替换为自适应上采样模块,并在3个尺度预测结果y1、y2、y3输出之前加入EGCA 注意力机制。较原网络主要有以下两方面改进:
引入一种EGCA(门控通道注意力机制)实现特征层通道之间的交互,通过对每个通道的特征进行权重分配来学习不同通道特征层信息的相关性和重要性。除此之外,该注意力机制还学习了过滤通道信息前后两个特征层之间的重要性关系,有效地提高了网络对小目标的特征提取能力,减轻了因遥感图像背景复杂而引起的误检和漏检情况。
引入了一种自适应上采样模块代替原有的上采样操作,该方法可以通过自主学习权重参数以找到最适合训练任务的上采样方法,有效地减少了低分辨率特征层上采样时语义损失,增强了不同尺度卷积的融合效果。
注意力机制起源于对人类思维方式的研究,人类在处理大量具有不同程度重要性的信息时,总是会选择性地关注所有信息中的一部分即重要的信息,同时忽略剩余信息。由于人类处理信息资源能力是有限的,因此为了合理分配这些资源,就需要选择信息中最重要的部分,然后关注它,同样,深度学习中的注意力机制就是选取输入信息中最重要的部分并给予更大的权值,以使网络能够关注此信息。
注意力机制最早被广泛应用于自然语言处理问题中,取得了不错的效果。因此,有学者开始探索通过使用注意力机制提升计算机视觉工作中卷积神经网络性能的方法,目前计算机视觉中常用的注意力机制主要有两种:通道注意力机制和空间注意力机制。通道注意力机制认为卷积层中每个通道的重要程度是不同的,通过调整每个通道的权重以增强网络特征提取能力[14];空间注意力机制借鉴通道注意力机制思想,认为不同通道上的各个像素的重要程度是不同的,通过调整不同通道上所有像素点的权重以增强网络特征提取能力[15]。
ECA(efficient channel-attention)[16]是一种经典的通道注意力机制结构,如图4所示,对于一个H×W×C的输入卷积层,首先通过全局平均池化操作从空间维度对特征进行压缩,从而得到一个具有全局感受野且和输入通道数相匹配的1×1×C的卷积层;然后通过一个1×1的卷积确保在不降维的情况下实现跨通道信息交互[17];最后,通过Sigmod函数将权重值压缩到0~1之间后和输入卷积层逐通道相乘以完成通道重要性权重分配。
图4 ECA结构图Fig.4 ECA structure diagram
EGCA 是在ECA 的基础上进行改进的一种门控通道注意力机制,标准的ECA 结构是直接使用通道重要性权重对输入卷积过滤之后的特征层进行后续操作,然而原始输入特征层中仍可能存在一些被过滤的重要信息,因此EGCA学习了另一组权重决定是否要保留原始输入特征层的某些通道。
EGCA 的结构如图5 所示,上层通路学习输入特征的通道重要性权重y1,下层通路学习筛选原始特征输入层和过滤后的通道层重要性权重y2,计算过程如下:
图5 EGCA结构图Fig.5 EGCA structure diagram
其中x表示一个长度、宽度和通道数分别为W、H、C的原始特征输入,Conv(x) 表示对特征层进行1×1 的卷积。
最后将学习到的两个权重参数和特征输入进行整合,如公式(7)所示,得到最终的输出特征层y:
上采样是指将采用扩大图像尺寸,实现低分辨率图像到高分辨率图像的映射操作,由于低分辨率图像中所包含像素较少,所以对其进行上采样时必然会丢失很多细节特征。因此,尽可能减少细节特征的丢失以及提高低分辨率图像的特征恢复能力是目前上采样最核心的关键问题之一。
传统的上采样方法包括线性插值和反池化等,其中线性插值是利用几何关系通过已知像素点对新增像素点进行估计。以最近邻插值为例,当图片放大时,新增的像素直接使用与之最近原有像素颜色生成;而反池化是对图像做一些简单的补零和扩充操作,首先记录池化操作过程中最大值的位置信息,然后在反池化扩大图像尺寸时,只恢复最大值的位置,其他值直接设置为0。传统上采样方法虽然计算简单快捷,但会产生明显的锯齿,导致原有图像的细节特征丢失严重。
基于深度学习的新型上采样方法有转置卷积等,转置卷积是一种特殊的卷积操作。与普通卷积实现下采样相反,转置卷积可以通过学习权重参数使低分辨率尺寸图像还原到高分辨尺寸图像,所以这是一种自适应的上采样方法,利用权重参数的拟合尽可能的实现上采样图片和原始图片细节特征保持一致。
传统上采样方法虽然计算量低且实现相对简单,但由于低分辨率图像包含像素有限,所以必然会导致原始细节特征丢失;而转置卷积因为可以学习权重参数以更好的拟合原始图片,因此能够确保尽可能地还原低分辨率图像的细节特征,但是它的实现较为复杂且计算量大。综上所述,本文提出了一种自适应上采样模块,如图6 所示,该模块由一个1×1 卷积加一个转置卷积组成。使用1×1 卷积可以在保持输入特征层宽度和高度不变的同时降低通道维度以减少网络参数,降低计算量,并且1×1卷积可以实现不同通道之间的信息整合和交互以增加网络的非线性特性,提升网络的特征表达能力;在设计转置卷积时,由于转置卷积运算过程中的不均匀重叠会造成图像中某个部位颜色比其他颜色更深的棋盘效应[18],而当转置卷积的卷积核大小能被步长整除时会缓解这一效应,所以模块采用卷积核大小为4,步长为2,padding为1的转置卷积进行上采样操作。
图6 自适应上采样模块Fig.6 Adaptive upsampling module
本文实验平台硬件配置为六核Intel Xeon E5-2678 v3处理器,62 GB内存,NVIDIA GeForce RTX 2080 Ti显卡,11 GB 显存。软件环境为Ubuntu 18.04 操作系统、Python3.8、CUDA11.0、CuDNN8.0以及Pytorch1.7.1。为验证改进YOLOv3算法的可行性,实验将RSOD数据集[19]中包含飞机目标的遥感图片通过随机裁剪、旋转和色彩增强等方法进行数据扩张后,以8∶2的比例随机采样分开作为网络的训练集和测试集,如表1 所示,训练集共有870 张图片,9 957 架目标飞机;测试集共有110张图片,1 602架目标飞机。
表1 测试集与训练集信息Table 1 Testing set and training set information
RSOD 数据集是武汉大学在2015 年发布用于遥感图像目标检测的标准数据集。数据集以PASCAL VOC规范存储了包括飞机、油箱、体育场和立交桥共四类遥感图片及对应的标注文件。由于遥感图片均是在不同高度条件下俯视地面进行拍摄,所以此类图片具有目标对象所占像素较小、尺度变化大以及背景复杂等特点[19],因此对遥感图片进行目标检测较常规图片会更加复杂和困难。
本文所有定量分析实验均采用标准COCO 评价指标中的AP、AP50、AP75、APS、APM以及APL共6 项指标衡量网络对测试图片的检测性能。为了解释上述指标的含义,引入精确率(Precision)和召回率(Recall)的概念,精确率和召回率的公式如公式(8)和(9)所示:
其中,TP为真正例,FP为假正例,FN为假负例,TN为真负例。精确率示模型检测出的正确目标数量(当检测框和真实框的交并比IOU 大于某个阈值时视为检测正确)占所有检测到的目标数量的比重;召回率表示模型检测出的目标数量占真实目标数量的比重。正常情况下,由于精确率和召回率是互斥的,即召回率高时精确度较低,召回率低时精确度较高,所以使用这两个指标不能直观的比较不同网络的性能。因此本文使用不同条件下的AP 值以定量分析网络性能,如公式10 所示,式中Psmooth(r)表示做平滑处理后的PR 曲线,而PR曲线是在0~1区间内以召回率为横坐标,准确率为纵坐标绘制而成的曲线。
标准COCO 评价指标中的AP 指IOU 阈值从0.5 至0.95,每隔0.05计算一次相应阈值的AP值,取平均得到的最终AP 值(下文无IOU 阈值条件下的AP 值均指此AP 值);AP50指IOU 阈值为0.5 时的AP 值;AP75指IOU阈值为0.75时的AP值;APS指计算小于32×32像素的小目标AP值;APL指计算大于96×96像素的大目标AP值;APM指计算像素大小位于大目标和小目标之间的中目标AP值。
本文在原始网络、改进网络以及所有对照网络训练阶段均采用相同的训练策略。首先冻结主干提取网络训练45 个epoch,初始学习率设置为0.001,每训练一个epoch,学习率衰减95%;然后解冻所有层继续训练25个epoch,学习率调整为0.000 1,之后每训练一个epoch,学习率衰减98%,最后选取最优权重参数作为训练结果。
3.4.1 定量分析
为了定量分析上述改进方法的检测性能,本文对原始网络(使用传统上采样方法)、原始网络加自适应上采样模块、原始网络加ECA 通道注意力、原始网络加EGCA通道注意力以及改进YOLOv3网络共5种网络选用相同的测试集做消融实验对比。图像在训练前调整为640×640,实验结果如表2所示。
表2 消融实验结果Table 2 Ablation experimental results
从实验结果可以看出,自适应上采样模块较传统上采样方法在各项评价指标中均有不同程度提升,其中AP值提高了3.3个百分点;同样EGCA通道注意力机制较ECA通道注意力机制相比在各项评价指标中也均有不同程度提升,其中AP 值提高了4.5 个百分点。改进YOLOv3算法的小尺寸目标AP值为33.6%,较原算法提高了8.2 个百分点,提升效果最为显著;中尺寸目标AP值达到60.3%,较原算法提高了8个百分点;大尺寸目标AP 值达到73.4%,较原算法提高了5.2 个百分点;AP 值达到56.3%,较原算法提高了7.9个百分点,即改进算法针对各种尺寸目标特别是小尺寸目标的检测性能及最终AP值均要优于原算法。
3.4.2 定性分析
本文选取了一张具有代表性的测试图片对ECA和EGCA两种注意力机制的检测效果进行定性分析,如图7所示,其中图7(b)和图7(c)是分别使用ECA注意力机制和EGCA 注意力机制对图7(a)进行目标检测的结果。从图7(b)可以看出由于红色箭头指向的飞机翅膀颜色和其它飞机不一样,导致该颜色特征通道在权重分配时占比较少而造成漏检现象;由于EGCA注意力机制对不同通道进行重要性权重分配时,还有一定几率保持原通道特征,从而提高网络的泛化能力,因此图7(c)检测到了图片上的所有飞机目标。
图7 注意力机制检测结果对比图Fig.7 Comparison of detection results of attention mechanism
为了可视化自适应上采样模块和传统上采样方法的效果对比。首先将测试图片输入到相同权重的检测网络中,并抽取最大尺度检测通道上采样前的卷积结果作为低分辨率特征图,分别使用自适应上采样模块和双线性插值方法对其做上采样处理,然后将上述3个特征图第4个通道的参数权重值进行可视化。如图8所示,传统上采样方法只是简单的将低分辨率特征图像素进行扩张,而自适应上采样模块在扩张像素的同时,还增强了目标对象的权重值,使网络能够更好地抽取目标对象特征。
图8 可视化上采样结果Fig.8 Results of visual upsampling
3.5.1 定量分析
为了定量分析改进YOLOv3算法的检测性能,本文选取Faster-RCNN、YOLOv3 和YOLOv4 这3 种经典目标检测网络与改进YOLOv3 算法选用相同的测试集做实验对比。图像在训练前调整为640×640,实验结果如表3所示。
表3 不同目标检测算法实验结果Table 3 Experimental results of different object detection algorithms
从表中可以看出,改进YOLOv3算法无论是对大目标、中目标还是小目标的检测性能均要优于YOLOv3,且AP 值比YOLOv3 提高了7.9 个百分点;Faster-RCNN对大物体的检测性能较改进YOLOv3 算法略高,但对小物体的检测性能及其它评价指标却远远低于改进YOLOv3算法,表明了改进YOLOv3算法检测变化尺度大的小目标时具有更强的鲁棒性;改进YOLOv3算法虽然在IOU 阈值为0.5 时的AP 值略低于YOLOv4,但其它各项评价指标均高于YOLOv4,且最终AP 值比YOLOv4 提高了2.7 个百分点,这表明改进YOLOv3 算法能够更准确地定位遥感图像小目标。
3.5.2 定性分析
本文选取了两张具有代表性的测试图片对YOLOv3、Faster-RCNN、YOLOv4 和改进YOLOv3 算法进行定性分析,测试结果如图9所示。图中第一列右上角存在几架尺寸较小,且分布集中的飞机目标对象,测试图片经过主干特征提取网络多次下采样之后输出的最后几层卷积特征层对小目标的语义表达损失较为严重,而传统目标检测算法不能较好地恢复小目标对象在深层特征的语义表达信息导致网络漏检。改进YOLOv3 算法由于加入了自适应上采样模块,所以改进YOLOv3算法在上采样操作时可以通过学习权重参数以更有效的恢复小目标对象在深层特征的语义表达信息,为目标检测提供更准确的语义特征,最终,成功检测出图片中的所有飞机目标对象;图中第二列左下角位置存在3个同飞机具有相似外形特征的风车,图片整体环境较复杂,干扰因素很多。在没有引入注意力机制之前的传统目标检测算法因对其上下文信息提取不够充分导致误检,而改进后的YOLOv3 算法由于引入了EGCA 通道注意力机制,所以无论是对目标对象的特征提取能力还是定位能力较传统目标检测算法均有提高,从图中可以看中,改进YOLOv3 算法正确避免了风车干扰,并检测出图片中剩余的所有飞机目标对象。综上所述,从实验结果主观评价,改进YOLOv3 算法的漏检和误检现象相较传统目标检测算法均有所下降。因此,改进YOLOv3算法针对遥感影像小目标检测任务确实具备更好的检测能力。
为解决遥感影像中因飞机目标尺寸变化大、所占像素小以及背景复杂等原因而导致网络漏检率高、定位难的问题,本文在YOLOv3 的基础下,以DarkNet-53 为主干提取网络,通过引入可以学习权重参数的自适应上采样模块以及EGCA 通道注意力机制对原始算法进行改进,最后将改进后的网络在RSOD 数据集上进行测试。实验结果表明,无论是在背景干扰较大影响目标对象检测的情况,还是在小飞机密集排列影响目标对象定位的情况,改进YOLOv3 算法都有更好的预测结果,而且从客观评价指标分析,改进YOLOv3 算法的AP 值较原算法及其他传统目标检测算法均有所提高。因此可以看出改进YOLOv3 算法具有良好的鲁棒性且抗环境干扰能力强,有效地提高了原算法的目标检测能力。但是,改进YOLOv3 算法对某些极端情况仍存在错检和漏检现象,后续工作将继续优化网络对极端情况的检测效果。