基于改进YOLOv3的遥感图像小目标检测

2022-12-18 08:10黄朝兵文元桥
计算机应用 2022年12期
关键词:锚框置信度损失

冯 号,黄朝兵*,文元桥

(1.武汉理工大学 信息工程学院,武汉 430070;2.武汉理工大学 智能交通系统研究中心,武汉,430063)

0 引言

近年来,随着计算机运算能力的不断提升,深度学习被广泛应用于目标检测。相较于传统的目标检测算法,使用深度学习进行目标检测的过程就像一个黑匣子,深度学习模型通过模拟人脑的视觉感知系统,直接从原始图像中提取特征并逐层传递,以获得图像的高维信息。目前优秀的深度学习检测模型大致可以分为两类:第一类模型将目标检测分为候选框选取和目标分类两阶段[1],代表算法有R-CNN(Region-Convolutional Neural Network)[2]、Fast R-CNN[3];第二类为一阶段模型,将分类与定位看作回归任务来进行,典型的代表算法有YOLO(You Only Look Once)[4-7]、Retina-Net[8]。

遥感图像通常由航空航天平台获取,其中目标的尺寸相对背景而言比较小,对这些小目标进行检测是富有挑战的研究任务[9]。小目标的定义方式有两种:一种是相对尺寸的定义,若目标的长宽是原图像的1/10,即认为是小目标;另一种定义方式认为面积小于32×32 像素的目标是小目标。小目标检测一直都是目标检测任务中的难点,Lin 等[10]提出的特征金字塔网络(Feature Pyramid Network,FPN),首先在小尺度特征图上采样,然后与大尺度特征图进行融合,最后再进行预测,使小目标检测的精度提升显著;Kisantal等[11]将包含小目标的样本进行过采样,使小目标的检测精度有较大提升;Liu等[12]提出了感受野块(Receptive Field Block,RFB)结构,通过引入空洞卷积,增大感受野,进而提高小目标的检测精度;邵慧翔等[13]对锚框进行了优化,在多尺度训练过程中提升目标与锚框的贴合程度,进而提升检测精度;于洋等[14]通过在YOLOv2中加入直通层对船舶目标进行检测,与原始 YOLOv2 算法相比准确率有所提高;Ye 等[15]提出自适应空间特征融合(Adaptively Spatial Feature Fusion,ASFF)模块,对模型中的信息流进行重新分配权重,以获得对检测有用的信息。

虽然现有的深度学习方法在小目标检测任务中取得了一些的成果,但是大部分目标检测算法在遥感图像小目标检测任务中精度不高。这是因为骨干神经网络如VGG(Visual Geometry Group)系 列[16]和ResNet(Residual Network)系 列[17]都有几次下采样处理,导致小目标在特征图的尺寸基本上只有个位数的像素大小,最后使用分类器进行分类的效果不佳。另外,Ye 等[15]提出的ASFF 模块虽然对信息进行了筛选,但是这种筛选方式并不是最有效的;邵慧翔等[13]提出的锚框优化算法在目标尺寸分布不均衡的复杂数据集中,容易出现真实框(Ground Truth Box,GTB)与检测目标不匹配的情况,从而影响模型的检测能力。针对以上问题,本文使用K 均值聚类变换(K-means Transformation,K-means-T)算法对GTB 进行聚类,增加先验框与GTB 之间的匹配度;优化置信度损失函数,改善难易样本分布不均的问题;引入注意力机制以提升对小目标物体的感知能力。综合以上改进思路,本文提出了一种对YOLOv3 算法引入K 均值聚类变换和注意力机制的改进(improved YOLOv3 algorithm by adding Attention mechanism and K-means Transformation,YOLOv3-AKT)算法。

1 YOLOv3模型结构

YOLOv3 作为一阶检测模型,主要是由特征提取模块(Darknet-53 编码模块)和特征融合模块(FPN 解码模块)组成。如图1 所示,1 张416×416 的图片输入到网络后首先会被Darknet53 模块提取特征,Darknet53 对输入图像分别进行8 倍、16 倍、32 倍下采样得到3 张分辨率分别为52×52、26×26、13×13 的特征图。接下来FPN 模块就会对这3 个层进行特征融合并重构。

图1 YOLOv3的模型结构Fig.1 Model structure of YOLOv3

FPN 模块主要是将提取到的抽象的语义信息和浅层位置信息相融合。首先,13×13 特征图经一系列卷积后流向两个分支,一条分支流作为最终结果输出,其输出的特征图的大小为(13,13,1 024);另一条分支经过上采样UpSampling2d后与浅层特征图(26,26,512)按通道方向进行特征融合。融合后的特征图继续进行卷积流向两个分支:一条作为最终结果输出,其输出的特征图尺寸为(26,26,256);另一条分支继续进行上采样与更浅层特征图(52,52,128)进行融合,融合后作为最终输出进行回归预测。所以FPN 模块一共输出(13,13,512)、(26,26,256)、(52,52,128)3 个特征图,接下来这3 个特征图会经过Yolo Head 模块,最后输出3 个不同的预测图,其大小分别为(13,13,3*(num_classes+1+4)),(26,26,3*(num_classes+1+4)),(52,52,3*(num_classes+1+4))。预测图最后一维数据中的数字3 代表了每一个特征点存在3个先验框;num_classes代表数据集的种类数;1 代表了先验框是否包含了物体信息;4 代表了每个先验框的调整参数(分别为先验框中心坐标x,y与先验框高宽h,w)。

2 YOLOv3算法原理

输入的图片经过YOLOv3 模型后最终预测出x、y、w、h、c、p这6 个参数,其中:x、y、w、h分别代表了预测框的中心调整参数和宽高调整参数,c代表了框内是否有物体的置信度,p代表了物体种类置信度。另外,也需要把标签文件中关于真实框的信息转为相应的参数才可进行损失函数计算。真实框映射在3 个不同的特征层上会产生4 个调整参数其中为真实框的中心调整参数为真实框的宽高调整参数。

YOLOv3网络损失函数由三部分组成,分别为预测框定位误差、目标的交并比(Intersection Over Union,IOU)误差以及分类误差。将真实框的调整参数和网络预测的调整参数x、y、w、h、c、p代入损失函数来计算损失,如式(1)所示:

3 改进的YOLOv3模型

YOLOv3 虽然通过特征融合输出三种尺度的特征图兼顾了小目标预测,但是对于以小目标检测为主的遥感目标检测任务的检测精度仍然不能满足实际需要。本文采用K-means-T 算法对Anchor 进行优化以提升锚框和目标物体的贴合程度,对置信度损失函数进行改进以解决样本难易程度分布不均问题,并且引入位置注意力(Coordinate Attention,CA)模块来增强模型对细节信息的感知能力。

3.1 优化交叉熵损失函数

YOLOv3 模型会得到若干预测框,这些预测框分为3 种不同的情况:与真实框的IOU 最大的预测框会被判为正例(目标);IOU 超过门限但是并不是最高的预测框被忽略掉;IOU 低于门限的预测框被判为负样本(背景)。这里的门限一般设为0.5。在YOLO 目标检测中,图片背景数量远远大于目标数量,尽管YOLOv3 已经设置了阈值机制限制了负样本的数量,但是仍然存在大量的负样本,正负样本数量的不平衡会影响网络的训练。另外,不同难度样本的分布不均衡问题也影响着YOLO 模型的训练。易样本是指正负样本中容易被模型学习并准确判断的样本,而难样本则是特征不明显容易被错误判断的样本。背景样本虽然大部分非常容易识别,但其中也会存在着比较像某类目标的难样本,而前景类中也有许多难以被正确判断的困难样本,比如尺寸过小的目标、与背景相似的复杂目标。针对正负样本数量和难易程度分布不均衡的问题,有必要对置信度函数Lconf进行优化,优化后的置信度函数Lconf-c可以通过减少易分类样本对总损失的贡献,增加困难样本的惩罚权重,使得模型在训练时更专注于困难样本的学习。优化方式如下:

原置信度损失函数如式(2)所示,其中Lconf为置信度损失函数,pc为样本的置信度。易样本在训练的过程中能快速地获得较高的置信度,但即使已经被训练好,它们仍然会在下一次梯度更新中产生较大的影响。本文希望模型在训练好易样本基础上能够对那些得分较低的难样本加大力度学习,能够重点训练这些模棱两可的难样本。优化后的置信度损失函数Lconf-c可以降低得分高的样本(易样本)的权重,增加得分低样本(难样本)的权重。这样就能把模型的注意力逐渐放在难分类样本上。

文献[8]中对置信度函数进行了改进,本文采取另一种方式对其优化,优化结果如式(3)所示:

其中:σ是Sigmoid 函数,pc是置信度,ε为极小常数。对于正样本而言,当pc接近1 时接近0,这意味着对于已经训练好的得分高的易样本它的权重很小;当pc接近0 时接近1,意味着该样本分类错误,那么就应该增加其惩罚权重。这样就解决了难易样本不平衡的问题,模型能在训练好容易样本的前提下更重视难样本的学习;另外,它还可以避免模型专门对容易拟合的样本“拼命”训练,所以优化后的损失函数还能防止过拟合。修改后的总的Loss如下:

3.2 优化Anchor

数据集中的物体目标的面积和宽高比都是不一样的,所以选择合适的锚框(Anchor Box,AB)尺度对于网络训练具有很大影响。另外YOLOv3 的预测框的大小损失、预测框的中心坐标损失都与锚框有密切关系,所以锚框的设计是YOLOv3 算法中非常重要的部分,锚框由数据集聚类得到,通常选用的聚类算法是K-means 算法。值得注意的是,标准K-means 算法使用的是欧氏距离,而锚框聚类的目的是让锚框(Anchor Box,AB)和真实框(GTB)越接近越好,所以改用IOU 作为新的距离公式,如式(5)所示,交并比越大,距离越小,距离越小就越可能属于同一类。数据集中的样本按照该距离函数划分为M个子集,这M个子集就是M个锚框,本文M设为9。

多尺度训练有助于提升模型对小目标信息的感知能力,能增强模型的鲁棒性和泛化能力,所以在训练的过程中锚框和目标的匹配尤为重要。为提高匹配程度,文献[12]中提出了线性拉伸算法对预设的锚框进行优化,虽然对小目标的检测能力有一定提升,但对于目标尺寸分布不均衡的复杂数据集的检测性能的提升并不高。

为了使模型在多尺度训练过程中有更好的表现,本文结合数据集自身的目标尺寸分布特征提出了一种基于K均值聚类变换(K-means-T)算法,该算法是根据数据集的目标大小分布特征将K-means聚类生成的锚框进行缩放。w1~w9为放缩前从小到大排列的锚框的宽,h1~h9为放缩前从小到大排列的锚框的高;wi表示第i个锚框的宽,wc表示中心框的宽,wc的选取是由数据集中目标尺寸分布特征决定~为缩放后从小到大排列的锚框的宽,~为缩放后从小到大排列的锚框的高。当i<c时,按式(6)进行放缩;当i>c时,按式(7)进行放缩。β、α是缩放比例,这里设α=0.5,β=2。在多尺度训练过程中,缩放后的Anchor 与目标更加贴合从而能减小多尺度训练带来的误差,提升整个网络选框的精确性。

经过上述方式缩放后,这9 种Anchor 就能覆盖多尺度训练过程中被缩放的物体目标。该缩放并不会改变真实框的中心位置,且为等比例缩放(宽高比例并未发生改变)。该缩放方式会使得在多尺度训练过程中Anchor 和目标更加贴合,从而增强网络模型的鲁棒性和泛化能力。中心框c的选取由数据集本身的特点决定,本文数据集决定了c为7。但是该放缩方式又具有一定的局限性,该锚框缩放算法是配合多尺度训练而设计的,能使真实框更贴合训练过程中不断变化的目标物体;反之,如果训练过程中本身没有采用多尺度训练那么就没有必要使用该K-means-T 算法。

锚框优化效果如图2 所示,深色框是真实框,浅色框是锚框,图像缩小后空白部分由灰色补齐,使缩小后的图片仍然保持原输入大小。图2(a)未采用多尺度训练,图2(b)(c)采用了多尺度训练,其中:图2(b)没有采用本文提出的K-means-T 算法,此时3 个锚框与真实框的IOU 与图2(a)中的IOU 产生了较大的差别,这样就在训练的过程中增加了预测框的损失,导致预测结果不精确;而图2(c)采用了K-means-T 算法,锚框与真实框的IOU 与图2(a)中的IOU 几乎一样,这样在多尺度训练的过程中并不会引入额外的预测框宽高损失,最终预测结果也会更加准确。

图2 多尺度训练中的AnchorFig.2 Anchor in multi-scale training

3.3 CA机制的引入

遥感图像通常是由航天平台获取,其中的目标大多是小目标,为了提升小目标检测的精度和泛化性能,除了加深网络深度还需要引入合适的注意力机制。如图3 所示,CA 机制同时考虑了通道间关系和空间位置关系,不仅捕获了跨通道的信息,还感知了方向和位置敏感的信息,这使得模型能够更准确地识别目标和锁定目标位置。

图3 CA模块Fig.3 CA module

通常注意力机制会按式(8)进行全局池化,由于它将全局空间信息压缩到通道中,导致难以保存位置信息。为了使注意力模块能够捕获精确的空间位置信息,CA 模块按照式(9)(10)分解了全局池化,转为正交方向的一维特征编码操作。具体地,给定输入张量x,首先使用尺寸为(H,1)和(1,W)的卷积核分别沿着水平(X)和垂直(Y)方向对每个通道进行编码。因此,高度为h的第c通道的输出如式(9)所示,宽度为w的第c通道的输出如式(10)所示:

上述变换分别沿两个空间方向聚合特征,得到一组包含方向信息的特征图。这种转换方式使得注意力模块捕捉到空间方向的长期依赖关系,并保存另一个空间方向的精确位置信息,有助于网络更准确地定位感兴趣的目标。得到两组一维特征信息后,对这两组信息和按式(11)处理,其中[·,·]为沿空间维数的concatenate 操作,σ为非线性激活函数,F1为1×1 卷积操作。接着沿着空间维数将f分解为两个单独的垂直张量,其中r为缩减率。得到两个垂直张量后,用卷积变换将两者的通道数调整一致。

式(12)(13)中:gh和gw分别是经通道调整后得到的两组正交的表征,Fh和Fw是1×1 的卷积操作,σ是sigmoid 激活函数。最后CA 模块的输出可以写成:

4 实验与结果分析

4.1 实验数据

本文实验在光学遥感图RSOD 数据集上进行测试。RSOD 数据集以PASCAL VOC 数据集的格式进行标注。它包含从Google Earth 和Tianditu 下载的976 张光学遥感图像,这些图像的空间分辨率0.3~3.0 m 不等。如图4 所示,它由7 400 个对象实例组成,包含了4 个对象类,分别为5 374 架飞机(aircraft),1 698 个油箱(oiltank),178 座立交桥(overpass)和150 个操场(playground)。

图4 RSOD数据集样例Fig.4 Samples of RSOD dataset

图5 是数据集中目标物体尺寸大小的分布情况。aircraft类的比例几乎在0.01 以下,所以基本上是小目标;oiltank 几乎在0.02 左右,所以部分是小目标,overpass 和playground 面积比例均在0.01 以上且分布松散,所以这两类不是小目标。由此可看出,RSOD 数据集绝大多数目标是小目标。

图5 RSOD数据集上不同类的目标标注框占原图面积的比例分布Fig.5 Proportion distribution of area of labeled box to the original image for different classes on RSOD dataset

如图6 所示,RSOD 数据集一共7 400 个目标(包括aircraft 类、oiltank 类、overpass 类、playground 类,图例如图4 所示)。纵坐标表示目标尺寸占图片的比例;“·”点代表比例大于0.01 的目标(1 657 个);“+”点代表占比小于0.01 的小目标(5 584 个),数量大约占总目标数量的7/9。根据这一比例,设定锚框优化算法中的参数c=7,所以第7 个锚框选为中心框,该框不进行放缩。

图6 RSOD数据集中目标占原图大小的比例分布Fig.6 Distribution of proportion of target size to original image in RSOD dataset

4.2 评价指标与实验设置

目标检测的效果由预测框的分类精度和定位精度共同决定,因此目标检测问题既是分类问题又是回归问题。目标检测算法的性能度量通常是平均精确率均值(mean Average Precision,mAP)和F1 分数(F1 score,F1)。

精度(Precision,P)为分类器认为是正类的样本中实际是正类的比例:

召回率(Recall,R)的具体含义是:分类器认为是正类的样本数量占所有正样本的比例:

精度和召回率是一对矛盾的度量。一般来说,精度高,召回率往往偏低;而召回率高时,精度往往偏低。因此引入平均精确率(Average Precision,AP)作为性能度量,如式(17)所示:

但是对于多分类问题,通常引入平均精确率均值(mAP),如式(18):

F1 分数(F1)往往作为模型泛化能力的性能度量,F1 为0~1 的小数,F1 越大表明模型泛化能力越强,表达式如下:

本文实验在Windows 操作系统下进行,模型搭建采用PyTorch 深度学习框架,CPU 为i5-9400F,内存为16 GB,GPU为NVIDIA GTX1660Ti。在模型的训练过程中Epochs(训练轮次)设置为70,优化器Adam 采用默认参数。前30 个Epochs 中Batch Size 设置为6,学习率 为0.001;后40 个Epochs 中Batch Size 设置为4,学习率为0.000 1。

4.3 实验结果与分析

本文所提YOLOV3-AKT 算法的结构如图7 所示。

图7 YOLOv3-AKT的模型结构Fig.7 Model structure of YOLOv3-AKT

图8 反映了原始YOLOv3、YOLOv4[7]、YOLOv3[15]、本文所提的YOLOv3-AKT 和EfficientDet[18]模型在 训练过程中aircraft 类的AP变化情况。从图8 中可以看出,以上算法均能够在70 个Epoch(训练轮次)以内训练至稳定,稳定后YOLOv3-AKT 表现效果最好,AP能够稳定到0.92 左右,YOLOv4 效果次之,EfficientDet 网络效果最差。这是因为YOLOv3-AKT 对细节信息的表征能力要好于其他网络;而EfficientDet 中的双向特征金字塔网络(Bidirectional FPN,BiFPN)虽然能够加强特征提取网络从而获得更高的语义信息,但这对于检测任务中的小目标定位却帮助不大。另外,YOLOv3-AKT 优化了置信度损失函数,该网络在训练之初就重视困难样本的学习,所以在10 个Epoch 之前AP的提升效果最为明显,并且YOLOv3-AKT 也在以上网络中最先收敛。

图8 不同算法的检测精度比较Fig.8 Detection accuracy comparison of different algorithms

表1比较了YOLOv3、YOLOv3[15]、YOLOv3-AKT、文献[19]算 法、YOLOv4[7]和EfficientDet[18]的检测精度。可以看 出,YOLOv3-AKT 的mAP比YOLOv3 提高约7 个百分点,F1 提高4.5个百分点,AP(aircraft)提升7.3个百分点,F1(aircraft)提升5个百分点。EfficientDet模型的mAP较高,但是小目标aircraft类的AP较低,所以EfficientDet算法对中、大型目标有很好的检测效果,但对小目标检测能力不强。YOLOv3-AKT 的mAP比YOLOv4高4.1个百分点,F1高3.5个百分点,AP(aircraft)提升5.9 个百分点,F1(aircraft)提升6 个百分点。YOLOv3-AKT 的mAP与文献[19]算法一样,F1 分数高0.5 个百分点,但文献[19]中并没有给出aircraft类的AP和F1,所以无法比较两者对小目标aircraft 类的检测能力。综上,相较于其他对比算法,YOLOv3-AKT对小目标检测具有较大优势。

表1 不同算法的检测精度比较Tab.1 Comparison of detection accuracy among different algorithms

图9 给出了原始YOLOv3、YOLOv4[7]、EfficientDet[18]、YOLOv3[15]和YOLOv3-AKT 的预测结果对比。观察可知,原始YOLOv3 对小型飞机目标的检测能力不足,出现了漏检、错检的情况。YOLOv4、YOLOv3[15]、YOLOv3-AKT 的检测效果均比原始YOLOv3 好,其中YOLOv3-AKT 提升效果最为明显;而EfficientDet 对小目标的检测能力不升反降。相较于其他对比算法,YOLOv3-AKT 能够挖掘更多的困难样本,有效提升对小目标位置的感知能力。对于同一目标,YOLOv3-AKT 给出的预测分数明显高于其他算法的预测分数,这是因为该算法优化了置信度函数后,模型偏向于学习困难样本,所以减少了“模棱两可”的预测。另外,YOLOv3-AKT 给出的预测框相较于其他对比算法更加贴合目标尺寸,这是因为YOLOv3-AKT 对锚框进行了优化,使得锚框在多尺度训练过程紧贴真实目标,所以在预测结果中锚框也能紧贴真实目标。该综合实验结果表明,YOLOv3-AKT 算法能够提高目标的检测精度,尤其对小目标的效果更好。

图9 不同算法的预测结果对比Fig.9 Comparison of prediction results of different algorithms

4.4 消融实验及分析

为更好地验证本文提出置信度损失函数优化算法、K-means-T 算法和注意力机制的有效性,本文在RSOD 数据集上分别单独加入以上改进点进行消融实验。

实验1 修正的置信度损失函数。

本次实验设定难易样本阈值为0.5,置信度大于阈值的正样本和置信度小于阈值的负样本视为容易样本(easy positive);反之,置信度小于阈值的正样本和置信度大于阈值的负样本称为困难样本(hard positive)。图10 记录了原始YOLOv3 和优化置信度损失函数的YOLOv3 算法(YOLOv3 optimized by Confidence loss function,YOLOv3-C)的困难样本在训练过程中的损失占总置信度损失的比例。前10 个Epoch 内YOLOv3-C 困难样本损失占总置信度损失的0.1 左右,而YOLOv3 几乎为0。这说明训练开始YOLOv3-C 就有意识地整合难易样本开始训练,而YOLOv3 此时并没有考虑难样本的训练。在训练的过程中,YOLOv3-C 曲线始终在YOLOv3 之上,说明YOLOv3-C 对分类错误的样本(困难样本)的惩罚力度比YOLOv3 大。另外,YOLOv3-C 曲线波动较为明显,这是因为该网络不断地尝试学习困难样本,而YOLOv3 曲线较为平缓,说明该网络并没有刻意尝试去学习困难样本,始终停留在训练的“舒适区”。

图10 困难样本损失占总置信度损失的比例Fig.10 Proportion of loss of hard samples to total confidence loss

图11 为原始YOLOv3 和YOLOv3-C 的平均精确率对比。在模型训练之初和模型稳定后YOLOv3-C 的平均精确率要明显高于YOLOv3,这是因为前者不仅完成了易样本的学习,而且还对难样本有了很好的学习。整个训练过程中YOLOv3-C 的AP 曲线波动更大,这是因为YOLOv3-C 对难样本更为敏感,不断尝试挖掘难样本的信息。

图11 原始YOLOv3和 YOLOv3-C的AP对比Fig.11 AP comparison of original YOLOv3 and YOLOv3-C

所以,本文提出的损失函数优化方法能够解决样本难易程度分配不均的问题,使得模型训练更加高效,并可以收敛到更好的效果。

实验2 对优化Anchor Box 的YOLOv3 训练和测试。

RSOD 数据集中目标尺寸大小分布不均衡,绝大多数目标是小目标,先对RSOD 数据集使用K-means 聚类算法进行聚类,得到9 个不同大小的Anchor,然后对这些Anchor 进行K-means-T 放缩,得到最终的Anchor-T。因为数据集中小目标数目约占全部目标数目的7/9,所以设定第7 个锚框为中心锚框,此时中心锚框的宽高为(40,44)。比中心框小的锚框会被线性缩小,最多缩小至原来的1/2;比中心框大的锚框会被放大,最高放大2 倍。选定c=1,3,5,7,9 以作对比实验。

然后分别使用放缩前的Anchor 和放缩后的Anchor-T 与原始YOLOv3、文献[13]、文献[15]模型上的Anchor 进行测试并对比,结果如表2 所示。

表2 不同中心框下的锚框Tab.2 Anchor boxes under different center anchor boxes

分别选取5 个不同锚框作为中心框,生成了5 组不同的新锚框Anchor-T(c=1,3,5,7,9),实验得到5 个不同的AP(aircraft),如图12 所示。

图12 中横坐标c代表了中心框,c=i表示选取第i个框为中心框。可以发现c=1,模型对小目标aircraft 类的检测效果最差,这是因为几乎所有锚框都被放大了,这导致了模型对小目标的捕捉能力下降。当c=9,几乎所有的原锚框被缩小,这对于aircraft 类的检测是有积极作用的,但此时的检测效果仍不是最佳状态。由于本文数据集中小目标数量约占总数量的7/9,所以取第7 个框为中心框时刚好满足数据集自身的分布特征,故此时检测效果最好。另外本文所有实验都默认第7 个框为中心框。

图13 中,YOLOv3-T 为采用K-means-T 锚框优化算法后的改进算法,其平均损失曲线由虚线表示;原始YOLOv3 的损失曲线由实线表示。从图13 可见,两者总体呈现逐渐变小的趋势,但是在第7 个训练轮次后,YOLOv3-T 损失函数比原始YOLOv3-T 损失函数小且下降得更快,这是因为K-means-T 聚合的锚框在多尺度训练中更加贴合训练目标,产生的损失更小。

图13 不同算法下YOLOv3的平均损失Fig.13 Average losses of YOLOv3 using different algorithms

表3 为YOLOv3-T 与文献[15]、文献[13]算法的检测结果对比。YOLOv3-T 所用的锚框是经K-means-T 算法优化的锚框。可以看出,相较于原始YOLOv3 算法,文献[15]算法在配合多尺度训练的检测能力不升反降。说明了该算法不适合在多尺度训练中使用。文献[13]算法解决了文献[15]中存在的多尺度训练效果不佳的问题。相较于原始YOLOV3,文献[13]算法在aircraft 类上的AP提升并不显著,只有1.8 个百分点,这是因为文献[13]没有把数据集分布特征考虑进去。本文提出的YOLOv3-T 不仅解决了难以搭载多尺度训练的问题而且还结合了数据集目标尺寸的分布特征,所以在几组实验中aircraft 类的AP提升效果最为明显约为3.2 个百分点。所以,本文所提的 K-means-T 算法更有利于提升小目标的检测精度。

表3 不同锚框优化算法的精度比较Tab.3 Accuracy comparison of different anchor box optimization algorithms

图14 比较了经过K-means-T 锚框优化算法后的YOLOv3和原始YOLOv3 的各类AP,可以看出,使用K-means-T 锚框优化算法后的YOLOv3 在飞机类AP提升约3.2 个百分点,对于油桶类的AP提升不明显;对操场类的AP几乎没有提升。另外,立交桥类由于训练样本少且特征不明显,在优化前后该类的AP很低,故不考虑该类的精确率。图14 说明了K-means-T 算法更有利于提升小目标的检测精度。

图14 优化Anchor前后的YOLOv3 在数据集各类目标上的精度Fig.14 Accuracy of YOLOv3 before and after optimizing Anchor on different classes of targets in dataset

实验3 对引入注意力机制的YOLOv3 进行训练和测试。

注意力机制能自适应提取显著对象周围的有用信息,能自动捕获区分性语义信息和定位精确位置信息,从而得到更好的小目标检测效果。如图1 所以,本文将CA(Coordinate Attention)注意力模块分别嵌在探测头1,探测头2,探测头3上进行测试。表4 分析了不同位置安放CA 注意力机制对精确率的提升作用,其中mAP是平均精确率,AP和F1 是小目标飞机类的精确率和F1 分数。可以发现,当CA 模块插入在检测头1 时,mAP提高0.9 个百分点,AP提升3.2 个百分点,F1 提升1 个百分点;当CA 模块插入在检测头2 时,mAP提高0.6 个百分点,AP提升3.4 个百分点,F1 提升1 个百分点;当CA 模块插入在检测头3 时,mAP提高2.9 个百分点,AP提升5.1 个百分点,F1 提升3 个百分点。当CA 注意力模块加在探测头3 位置时,效果最佳。因此CA 可以提高模型对细节信息的捕获能力,能提升模型对浅层位置信息的感知能力,从而提高对小目标的检测精确率。

表4 不同位置插入CA的精度比较Tab.4 Accuracy comparison of CA inserting in different positions

图15 为检测头3 引入CA 模块时各类目标的AP比较,可以发现,小目标居多的飞机类的AP提高约为5.1 个百分点,目标相对较大的油桶类的AP提升不明显,操场类下降0.51个百分点。说明YOLOv3 中,引入CA 注意力模块使得网络对小目标信息感知更为敏感,提高了对小目标检测的能力。

图15 引入CA前后的YOLOv3在数据集各类目标上的APFig.15 AP of YOLOv3 before and after introducing CA on different classes of targets in dataset

5 结语

本文对YOLOv3 的锚框进行了改进,使得预测框与真实框更加贴合;又对置信度函数进行了优化,一定程度上改善了难易样本分配不均衡问题;最后引入CA 机制增强模型对细节的感知能力。在RSOD 数据集上做了训练和测试,结果表明本文提出的YOLOv3-AKT 在小目标类(aircraft)的AP和F1 两种指标上都优于YOLOv3、YOLOv4、EfficientDet 和其他对比的改进YOLOv3 算法。本文K-means-T 主要采取了缩放变换的思想对Anchor 进行优化,这有助于增加锚框和目标的贴合程度,从而提升精度。但是,该优化算法的思想是在训练之前对锚框进行缩放,无法在训练过程中实时地缩放锚框。所以如何在多尺度训练过程中动态地同比例缩放锚框以精准匹配目标物体,是进一步需研究的问题。另外,本文实验中可以看出置信度损失优化算法的训练过程有一定的波动性,未来可以从置信度损失优化算法和学习率的角度出发进行研究。

猜你喜欢
锚框置信度损失
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
置信度辅助特征增强的视差估计网络
一种基于定位置信度预测的二阶段目标检测方法
基于GA-RoI Transformer的遥感图像任意方向目标检测
硼铝复合材料硼含量置信度临界安全分析研究
胖胖损失了多少元
基于深度学习的齿轮视觉微小缺陷检测①
玉米抽穗前倒伏怎么办?怎么减少损失?
正负关联规则两级置信度阈值设置方法