APP下载

改进YOLOv5s的轻量化航拍小目标检测算法

2024-02-21魏雅丽牛为华

计算机技术与发展 2024年2期
关键词:损失精度特征

魏雅丽,牛为华

(华北电力大学 计算机系,河北 保定 071000)

0 引 言

随着无人机的发展,“无人机+行业应用”逐渐成为社会刚需,因其轻便性、易操作、低成本等优势得到快速推广,无人机智能化在交通疏导、安防巡检、农业防害、物联网运输等方面也发挥重要作用。同时,将目标检测技术用于无人机航拍领域也得到越来越多的重视。

在深度学习时代,基于卷积神经网络(CNN)的目标检测技术显著提高了目标检测的性能。现阶段目标检测算法可分为 R-CNN[1]系列双阶段算法和YOLO[2]、SSD[3]系列单阶段算法。现已存在多种基于自然场景数据集设计的深度学习目标检测算法,但由于无人机航拍图像小目标多且密集,不同类型目标间尺度差异大,背景较复杂[4],直接将通用目标检测算法应用于无人机图像目标检测时,检测性能通常会大幅降低,因此研究学者进行了大量的改进,从多个角度出发,在保证检测实时性的同时提高精度。

文献[5]对YOLO网络结构中的残差网络和主干网络进行改进,连接网络中具有相同宽度和高度的两个ResNet单元,同时预测多个边界框和这些框的类概率,减少了因感受野受限导致的小目标漏检问题。文献[6]通过将小目标检测分支的通道尺寸加倍,并减少大目标检测分支的一半通道来优化YOLOv5网络,实现了精度与速度的平衡。文献[7]提出一种注意力特征融合模块,根据不同尺度特征图自适应分配注意力权重,增强小目标的特征融合效率。文献[8]在特征提取网络的最后一层,加入邻域注意力转换器以保留足够的全局上下文信息。文献[9]根据小目标的特点引入了多尺度卷积模块构建特征融合预测网络,同时利用自适应优化权重得到高分辨率特征图,提升无人机图像的目标检测精度。

针对遥感目标尺度变化大、遥感图像背景复杂等问题,结合无人机图像特点和单阶段 YOLO系列算法的实时性和准确性,该文充分利用YOLOv5s的优势进行改进,解决算法参数多、检测速度低等问题,有效提高了无人机场景下小目标检测的精度。

1 YOLOv5s网络介绍

YOLOv5s是当前主流的单阶段目标检测算法之一,相较于其他同系列单阶段算法,在检测速度及模型体量上都占据优势。该算法结构简单、计算高效,具备良好的检测效果。因此,选择YOLOv5s作为基线网络,针对无人机航拍图像的特点,在此基础上进行算法的改进,提高对小目标的检测能力。如图1所示,YOLOv5s的网络结构较为简洁,大致可以分为三部分:用于特征提取的骨干网络(Backbone)、用于特征融合的颈部网络(Neck)和用于目标类别和位置回归检测的头部网络(Head)。

图1 YOLOv5s网络结构

主要检测流程如下:首先,通过Mosaic数据增强对图像数据进行预处理,并采用自适应锚框来计算不同训练集中的最佳锚框值,以供检测头的预测框更好地匹配目标;其次,主干网络使用CBS结构和C3结构,即多层卷积池化结合的算法从输入图像中提取特征信息;随后将提取到的信息输入到颈部网络中,将特征金字塔(Feature Pyramid Networks,FPN)[10]与路径聚合网络(Pyramid Attention Network,PAN)[11]相结合,路径从上而下传递深层的语义信息,从下而上将浅层位置信息传递做补充,从而增强整个网络的特征表达能力;最终,使用三个检测头,在CIoU边界框损失函数以及NMS非极大值抑制的计算约束下输出检测分类结果和置信度。

2 轻量化小目标检测算法

2.1 跨层级特征融合

深度卷积通过不断叠加卷积模块来提高检测精度,但是无人机图像小目标众多,分辨率高,一味增加深度小目标更易丢失位置信息,也会严重降低算法实时性。为了在相对保持网络检测速度的同时提高网络检测精度,该文在特征金字塔从上而下传递语义信息过程中增加两条网络链路传递信息。同时引入空间注意力模块(SAM)[12],将更多的注意力用来学习该区域特征,以便在有限的计算资源下更好地提取信息。

该文在特征金字塔中进行了跨层级连接,如图2所示,两条虚线在原有网络特征融合基础上增加特征信息传播链路,融合部分主要分为四部分:特征金字塔(FPN)从上至下传递语义信息,路径聚合网络从下至上融合位置信息,跨层级连接避免特征损失,同级前后连接补充特征信息。

图2 跨层级特征融合图

同时为了保留更多目标的信息,在特征提取和特征融合过程中添加空间注意力模块(SAM),可使神经网络更加关注图像中对分类起决定作用的像素区域而忽略无关紧要的区域。工作流程如下:首先,将输入的特征图分别经过平均池化和最大池化进行压缩,得到两个H×W×1的特征图;其次,将两个特征图做通道拼接,再对其进行卷积操作降维,经过归一化获得空间权重;最后,使用这个权重和输入特征图相乘得到一个只关注于目标信息的图像,如公式1所示:

Fs=sigmoid(conv[AvgPool(F);MaxPool(F)])

(1)

针对YOLOv5s算法,该文提出了引入注意力机制做特征信息增强,在融合过程中提取特征图中有效信息,抑制无用信息,以增强背景信息对回归、分类的指导;另外修改特征融合网络,尽可能挖掘小目标密集区域的特征信息,使每次特征融合过程都能更关注小目标区域的特征,提高多尺度特征融合效率,减少背景噪声干扰,提高检测精度。

2.2 多尺度检测头

现有YOLOv5由三个尺寸不同的检测头部构成,分别通过输入图像(640*640)8倍、16倍、32倍下采样,并经过特征金字塔和路径聚合网络得到,最终输入到检测头部的特征图层为{P3,P4,P5},其大小分别为80*80*128,40*40*256,20*20*512。浅层网络提取的浅层特征图P3中包含了更多的位置信息,用来检测小目标;而深层网络经过多次卷积池化操作,提取的特征图P5中包含更多的语义信息,用来检测较大目标。为了提高极小目标的特征信息提取量,将骨干网络前期卷积得到的特征图C2输入颈部网络与{C3,C4,C5}进行特征融合,得到新的特征图P2进行极小目标检测,如图3所示。

图3 多尺度检测头

由于高分辨率的特征图C2是经过输入图像4倍下采样而得,其中保留了更多关于小目标的细节信息,因此更有利于图像中极小目标的检测。图中,{C2,C3,C4,C5}是四个尺度大小的特征图,分别对应着{4,8,16,32}倍的下采样倍数。特征图C2与C3,C4,C5通过特征金字塔进行特征融合,由于C2的分辨率更高保留更多关于小目标的特征信息,在特征信息传递的融合过程中提供更充足的目标信息,从而加强网络的学习能力。

增加多尺度检测头有利于检测极小目标,在保证检测实时性的同时能大幅提升检测精度,虽然在FPN+PAN网络中增加部分卷积层做特征融合会为算法带来一些额外的计算量和参数量,但综合来看,能在只增加少许的计算开销的情况下,大幅提升算法对小目标检测的精确率。采用上述改进措施后,有益于深入挖掘无人机图像目标检测的关键特征信息,能够实现对极小尺度目标的检测,提升YOLOv5s算法在无人机航拍图像中目标检测的效果。

2.3 改进损失函数

在目标检测中,检测头的损失函数通常由置信度损失、分类损失、定位损失组成,常见的计算定位损失函数有GIoU Loss[13],DIoU Loss[14],CIoU Loss[15]和SIoU Loss[16]。YOLOv5s中分类和置信度损失均使用二元交叉熵损失函数(BCE With Logits Loss)来计算,如式2所示,定位损失由CIoU Loss来计算,如式3所示。

Lossobject=Lossloc+Lossconf+Lossclass

(2)

(3)

(4)

式中,Δ是结合角度损失而得的距离损失值,Ω是形状损失值,SIoU结合形状角度距离多方面因素去构建损失函数,具体计算公式如下:

(5)

γ=2-Λ

(6)

图4 预测框B与真实框BGT

形状损失值Ω利用对θ的控制来提升对形状损失的关注程度,但为了避免过于关注形状损失而降低对预测框的移动,将参数θ范围设置为[2,6],如式7所示,其中ω分别为预测框和真实框差值的比值。

(7)

SIoU从预测框与真实框之间的距离、长宽比、重叠率等因素出发,引入回归向量角度,重新设定损失函数,降低回归自由度。经过对比实验证明,SIoU Loss能带来更快的收敛和更好的性能,在模型保证精度的同时加快训练速度。

3 实验结果与分析

该文基于PyTorch深度学习框架,利用NVIDIA RTX A5000 GPU进行实验,输入图像尺寸(image_size)处理为640×640,批处理大小(batch_size)为16,初始学习率为0.010 0,使用VisDrone2019数据集将提出的改进算法与多种基准算法进行对比实验。

3.1 数据集概述

VisDrone2019[17]无人机数据集由多架无人机倾斜俯视拍摄而成,涵盖了中国14个城市景观,包含8 629张图像以及260万标注信息,其中有6 471张训练集图像,548张验证集图像,1 610张测试集图像。如图5所示,数据集中类别分布不均衡、小目标众多、大目标稀少,部分类间方差较小,类别混淆严重,是一个极具挑战性的数据集。

图5 VisDrone2019数据集统计图

3.2 评估指标

为了准确地反映深度学习模块在无人机图像领域的检测能力,实验采取精准率和召回率来分析检测网络的错检率和漏检率,精准率和召回率越高,表示检测过程错检率和漏检率越低,评价指标P,R的计算公式如下:

(8)

(9)

式中,TP为目标预测正确的数量,FP为目标预测错误的数量,FN为目标预测漏检的数量。在此基础上,实验另外采取mAP50,mAP50:95,Params(参数量,Parameters),GFLOPs,FPS等指标评价模型性能。AP为P-R曲线下的面积,是所有预测框的准确率与召回率的平均值,其值越高,说明模型的检测效果越好;mAP为所有类别面积的平均值,mAP50反映数据集中各类精度的平均值即不同类别目标的综合分类能力;GFLOPs为每秒10亿次的浮点运算,用于衡量训练模型时的计算复杂度;Params是模型的参数量,用于衡量计算内存资源的消耗;FPS是指模型每秒能检测多少张图像,用于衡量模型的实时性。该文主要考虑模型检测的精度和速度,使用mAP 和FPS作为衡量算法总体性能的重要指标。

3.3 消融实验分析

为了验证提出的多尺度检测头、跨层级特征融合的有效性,进行消融实验评估不同模块在相同实验环境下算法的检测性能,选取YOLOv5s作为基线模型,输入图像分辨率为640*640,每种实验控制参数相同,输出训练300个epoch后的结果,如表1所示。

表1 消融实验

模型D在增加小目标检测层后检测精度提升明显,在YOLOv5s的基础上mAP50提升了4%,证明了其存在的有效性。但增加多余的卷积和池化层来进行操作,同时会增加模型参数量,且检测速度与参数量和计算复杂度呈明显的负相关性,参数量增加了0.14 M,GFLOPs增加了2.9,导致检测速度略有降低,每张图片检测时间增加3.42 ms。

模型B用SIoU Loss损失函数替换原本的CIoU定位损失后,mAP50进一步提升0.3%,且模型收敛速度变快,这说明SIoU不仅能提高检测精度,还可以提高收敛速度。分析认为SIoU增加角度因素后,可以让锚框更准确定位方向靠近真实框,让网络朝着梯度更快更准的方向下降,因此,提高了精度,加速了收敛速度。

文中算法在多尺度检测头的基础上添加SAM,最终的mAP50提高了1.9%,比YOLOv5s提高了5.9%,进一步说明了这两个模块的有效性。最终算法的FPS为74帧/s,相比基线模型有所降低,但能够满足基本航拍目标检测任务的实时性要求。

3.4 对比实验分析

另外,为了在多种小目标检测算法中验证文中算法的优越性,与各种先进目标检测算法进行对比实验,设置同样的学习率与训练轮次,主要评估指标为检测精度(mAP),结果如表2所示。

表2 VisDrone2019测试集上不同算法各类别检测结果对比 %

通过表2可知,文中算法相较于Faster RCNN,YOLOv4等模型每个类别的AP值都有不同幅度提升;在“pedestrian”,“people”,“motor”等类别像素占比较小图像中,Faster RCNN和YOLOv7算法检测效果最好;YOLOv5s在检测速度最优的情况下,在“car”,“truck”等较大目标检测中精度能与其他算法持恒。文中算法在像素占比小的“pedestrian”类别中mAP提升3.1%,“motor”类别提升2.1%,其他较大目标类别检测能力也有进步,证实了提出的多尺度特征融合方法在小目标检测领域的有效性。

根据表3数据可以看出,提出的改进YOLOv5s算法mAP为38.5%,相较于RetinaNet和FasterR-CNN算法分别提升了14.8%和5.4%,速度每秒分别多检测62帧和59帧;和精度较优模型YOLOv7相比,mAP差距11.3%,但模型参数是其四分之一,在实际工业级别轻量化应用及部署中更有优势;和同类轻量级目标检测算法YOLOv4-tiny对比,精度提升了19.4%,在便于无人机检测任务部署的同时,显著提高了检测精度。

表3 不同目标检测算法对比结果

另外,针对其他同类文献实验结果对比进一步阐述文中算法的优越性。与文献[7]作对比,精度略低,但检测速度大幅提升,参数量也少0.1M;与文献[18]所提出的轻量级目标检测算法对比,模型精度提升14.3%,模型参数量也保持在较低水平;与文献[19]相比,精度略低,但在模型的检测速度上每秒多检测16帧。综上,证明文中算法在保证检测实时性的基础上能提升检测精度,具有较明显的优越性。

3.5 检测结果可视化

由于无人机航拍图像的背景复杂多样,目标较小,另外实际拍摄中还存在失真模糊昏暗的图像,因此在检测过程中经常会出现误检和漏检。为验证改进算法在实际场景中的目标检测效果,该文使用VisDrone2019测试集中具有代表性并且检测较为困难的图像进行测试,来验证模型的检测性能和鲁棒性,预测结果如图6所示。

图6 检测效果对比图

根据图6可知,昏暗光线下检测结果与其他小目标场景检测效果,证明光线对改进后模型的检测精度没有较大影响;同时针对无人机高空拍摄的图片,文中算法在保证基线算法检测框的基础上,检测出更多的小目标,避免一部分漏检;另外在多个目标重叠且受遮挡的情况下,改进后的模型可以准确定位目标框并分类正确。可视化结果显示,YOLOv5s算法在大多数情景下能准确定位并分类,但面对一些目标模糊像素占比小等现象,存在漏检错检的情况,文中算法能在不同情境下准确定位分类,表明该模型准确率较高且具有较好的鲁棒性,符合实际情况的使用需求。

4 结束语

提出的改进YOLOv5s的轻量化航拍小目标检测算法,通过跨层级特征融合算法,设置多尺度检测头,用低层特征图去检测较小目标,又在backbone引入空间注意力机制,将更多注意力聚集到密集小目标区域,提高小目标特征提取能力,同时改变定位损失函数为SIoU Loss,加快网络收敛速度。结果表明,相比于YOLOv5s,其在精准率上提升了6.1%,召回率提升了3.6%,mAP达到了38.5%,检测速度维持在74帧/s,综合性能得到提升。但相对比自然场景下的检测精度还稍有逊色,后期工作仍需在提高精度的同时在无人机并行设备上实施测试部署工作,实现轻量化模型搭载无人机实时监测任务。

猜你喜欢

损失精度特征
胖胖损失了多少元
如何表达“特征”
不忠诚的四个特征
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
抓住特征巧观察
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失
改进的Goldschmidt双精度浮点除法器