易华辉,宋文治,黄金香,王雨璇,丁 瑞
(西安工业大学兵器科学与技术学院,西安 710021)
由于国家遥感和农业部门的大力推动,无人机低空航空摄影已成为一项成熟的技术,并在不同领域实施了示范项目。基于低空无人机的航空摄影具有平台小、成本低、成像分辨率高、操作方便、机动性灵活、应用范围广等优点[1]。它是卫星遥感的有力补充。
无人机是低空航空摄影的理想平台,可以用高清传感器捕捉地面目标。图像分辨率远高于基于飞机的高空航空摄影。在较低的飞行高度,空中图像不受云层影响,使用高清相机获得的图像分辨率可以达到厘米级[2]。
随着网络技术的快速发展,无人机图像目标检测有着广泛的应用,包括智能视频监控、森林防火、农业信息、电力线检测、考古研究、道路桥梁损伤评估、军事侦察等[3]。此外,无人机图像在维护社会秩序方面发挥着至关重要的作用。
物联网与无人机相结合,可用于实时视频监控,以监控盲点。无人机航空图像数据量巨大,无法手动处理视频。处理视频内容的传统手动方法将导致遗漏和调试错误。因此,仅仅依靠人力资源进行检索是不现实的。
近几年以来,伴随着深度学习技术快速的发展,国内外的研究者逐渐将深度学习技术应用于小目标检测。Wang 等[4]提出了一种基于SSD(Single Shot MultiBox Detector)的轻量、高效的特征融合模块,在保持检测速度的情况下提升检测精度,对小目标检测效果有所提升;Gong 等[5]在特征金字塔网络(Feature Pyramid Network,FPN)[6]的基础上,添加一个融合因子描述相邻层的耦合度,来控制深层传递浅层的信息,提高了小目标检测性能;Pang 等[7]提出基于多尺度融合的Faster-RCNN 的小目标检测方法,提高了无人机对地面车辆目标的检测精度,但是模型参数较多,计算量大,实时性较低。Zhang等[8]提出了一种用于无人机图像目标检测的多尺度空洞卷积方法。增加了多尺度空洞卷积模块,以增加视野感知并改善网络在无人机图像中的目标分布。目标特征(例如大小和差异)的学习能力进一步提高了网络对无人机图像中多尺度和复杂背景目标的检测精度。Cui 等[9]提出了一种改进的YOLOv3 模型,结合超分辨率重建技术,用于无人机图像中的实时目标检测。该算法在复杂环境中具有较高的处理速度和鲁棒性。Qiu等[10]提出了一种改进的YOLOv3方法,用于无人机图像识别地面上的小目标。
本文根据无人机航拍图像小目标检测的特点,由于YOLOv5 具有出色的速度和精度,改进了该版本的算法,并提出基于改进YOLOv5 的小目标检测方法。首先,为了提高对小目标区域的关注程度,在骨干网络的特征提取模块中加入高效通道注意力机制(ECA)[11]模块,以增强对小目标特征的提取能力。其次,为了减少模型参数量和计算量,将CBL 模块中的普通卷积更换为Ghost卷积,在保证算法实时性的同时提高算法精度。最后,采用加权损失函数,以充分学习图像特征。改良后的网络结构如图1所示。
图1 基于ECA和Ghost卷积的YOLOv5s
YOLOv5 是一种单阶段检测算法,可以一次性输出预测框的位置和类别置信度,拥有极快的检测速度和较高的检测精度,在保证算法检测速度的同时又兼顾了检测精度。然而,YOLOv5 实验通常在MS COCO 数据集中进行,并不完全适用于无人机图像。由于无人机图像中存在背景复杂、目标小、目标检测相互遮挡等问题[12],YOLOv5算法对部分目标检测不准确,导致误检和漏检。
YOLOv5框架主要由3个模块组成,包括骨干网络模块(Backbone)、颈部模块(Neck)以及输出模块(Head),如图2所示,Backbone 模块用于提取图像特征;Neck 模块则是通过组合(Concat)图像特征的网络层,并将图像特征输出给Head 模块;Head 模块对图像特征进行预测,生成边界框并预测类别。在检测大目标具有明显的优势,而无人机航拍目标大多为小目标,为此,需要在无人机航拍目标检测任务上对原始模型进行改进。
图2 YOLOv5s网络模型整体结构框架
特征提取模块是目标识别中最重要的部分,由于无人机航拍图像中的目标通常比较小,为提高模型的识别精度,将高效通道注意力机制(Efficient Channel Attention,ECA)模块加入YOLOv5 网络结构中的特征提取模块中,既可以强调小目标所在区域,又可以抑制不相关背景区域。ECA 模块结构如图3 所示,将ECA 模块连接在残差块主干分支之后,首先经过一个不降低维度的通道级全局平均池化(GAP),在此基础上再利用一维稀疏卷积操作来捕获当前通道与它的k个邻域通道信息的交互,最后再使用一个Sigmoid函数生成通道权值,将原始输入特征与信道权重组合以获得具有信道关注度的特征。
图3 ECA模块结构
在无人机航拍小目标检测任务中,通过不同的卷积信道提取目标的不同特征将导致太多的训练资源被用于无小目标区域,从而导致网络的训练效率低下。为了解决这一问题,本文将ECA-Net 注意力添加到YOLO v5 目标检测模型的特征提取层,具体网络结构如图4 所示。通过添加ECA-Net-注意力模块,将不同的权重分配给不同的卷积信道,以突出小目标特征,通过适当的跨通道交互,避免了降维对学习通道的影响,大大降低了模型的复杂度,并且通过只添加少量参数,可以实现客观的性能改进。
图4 基于高效通道注意力(ECA)机制的YOLOv5s
权重的计算公式如下:
式中:σ为Sigmoid 激活函数;yi为通道;wi为通道的权重;Ω ki为yi的k个相邻通道的集合。
可以通过卷积核为k的一维卷积实现有效通道注意力模块,如下:
式中:C1Dk为卷积核为k的一维卷积;y为通道。
通过这种结构,模型可以选择性地增强包含目标特征更多的细节,抑制不相关或弱特征。本文提出的模型如图4 所示,在骨干网络的最后一层加入ECA 注意力机制。
在无人机航拍小目标的检测任务中,存在着大量重复的特征图。这些冗余的特征图对小目标检测不仅没有帮助,反而会增加检测模型的参数量,这些冗余特征图大多来源于常规卷积。因此,本文采用了Ghost卷积[13]去减少模型的参数和计算量以提高检测速度。
Ghost卷积分为常规卷积、Ghost生成和特征图拼接3步,如图5~6 所示。第一步:使用比较少的卷积核对输入图像的特征图进行特征提取;第二步:进一步对提取出来的这部分特征图进行线性变换运算;最后通过拼接操作将两组特征图中的信息进行组合,生成最终的特征图。
图5 普通卷积
图6 Ghost卷积
与常规卷积相比较,Ghost卷积计算量很少,仅仅使用线性变换就能产生大部分的特征信息。因此,将模型中CBL 模块中的普通卷积替换为Ghost 卷积以减少模型的参数量和计算量,如图7~8 所示,将GhostNet 卷积作为CBL 模块的的卷积层,利用Ghost 卷积这些特征,可以减少模型的参数和计算量,模型更适合无人机航拍图像的小目标检测。
图7 CBL模块
图8 改进的CBL模块
合适的损失函数有利于指导神经网络学习有意义的信息,为了充分学习图像特征,本文所设计的YOLOv5s模型采用了加权损失函数,包括交叉熵损失函数、DSC 系数损失函数、IOU 系数损失函数和Focal loss 损失函数。
(1)交叉熵损失函数
交叉熵损失函数如下:
式中:ytrue为真实掩膜图像;ypre为改进的YOLOv5s 目标检测网络预测结果。
交叉熵损失函数能够较好地衡量预测结果和真实掩膜图像之间的相似程度,并且不影响模型的收敛速度。
(2)DSC系数损失函数
Dice 系数可以用于衡量两个集合的相似性,其值在[0,1]之间,定义式如下:
对于目标检测任务,其值定义为预测图片和掩膜图像之间重叠像素数量的两倍除以二者像素数量的总和,其定义如下:
预测图片和掩膜图像之间重叠越多,DSC 值越接近于1;故通过下式将其转换为单调递减函数作为EFMYOLOv5s语义分割网络的损失函数:
(3)IOU系数损失函数
IOU 系数用于衡量两个集和的重叠大小程度,其值在[0,1]之间,定义如下:
式中:ytrue为真实掩膜图像;ypre为改进的YOLOv5s 的预测结果。
Focal loss 能够使得模型更加专注于较难分类的样本,从而较好地解决了正负样本不均衡的问题。最终本模型的损失函数为上述4个损失函数的加权:
无人机航拍图像面临尺度变化大、目标小等问题,为了保证数据集的准确性,选用DOTA 数据集。该数据集是从谷歌地球、中国卫星数据应用中心等来源收集的大型数据集,共有21 046 张航拍图像,是一个用于航空图像中目标检测的大型数据集,包含了不同比例不同方向和不同形状的目标[14]。共有15 种目标物体,如飞机、汽车、桥梁、舰船等,图9 所示为部分数据集的样图。为了保证模型的有效性,将数据集划分为训练集和验证集,使用数据集中原始图像的75%作为训练集,25%作为验证集,训练集有15 749 张图像,验证集有5 297 张图像。
图9 部分数据集
实验使用的开发平台为Windows10,平台具体配置如表1所示。
表1 实验配置
一般来说,评价一个目标检测模型的好坏,主要需要对精度进行评估,对精度进行评估主要参考平均精度和平均精度均值,因此,本文采用平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)作为评价该模型的指标,计算公式如下:
式中:TP为正确分类的样本数;FP为被错误判定为正样本的负样本数;FN为被错误判定为负样本的正样本数。
将DOTA 数据集分别通过YOLOv5s 模型和改进后的YOLOv5s 模型进行训练,迭代次数设置为100 次,训练过程中对应模型的结果对比如图10 所示。由图可知,与原算法相比,改进的YOLOv5 模型的平均精度,预测率和召回率都有一定的提升,拥有更高的精度。
图10 YOLOv5s与改进YOLOv5的训练结果对比
改进的模型检测的各个类别的精度如表2 所示,对比可知,改进的模型较YOLOv5 模型,每个类别的精度均有所提高。
表2 实验结果对比
为了验证改进算法的先进性,使用同一数据集进行模型训练,将改进的算法与现阶段最具代表性的3 种单阶段检测模型的检测效果进行对比,分别是YOLOv3[15]、YOLOv4[16]、以及YOLOv5,检测结果如表3 所示。由表可知,相比其他模型,改进后模型的mAP、模型尺寸以及检测速度上均获得了比较好的结果。其中,mAP 比其他的模型精度都高,模型大小与检测速度YOLOv5相近,模型尺寸约为YOLOv3模型的1/11,YOLOv4模型的1/12,检测速度比YOLOv3模型提高约62 ms,与YOLOv4相比,比YOLOv4 模型提高约35 ms,在保证原算法YOLOv5 模型检测速度的同时提高了检测精度。在检测精度上,比YOLOv5 提高了1.9%,比YOLOv4 提高了1.59%,相比YOLOv3高13.77%。
表3 主流模型检测结果比较
为了验证了本文改进算法对小目标检测的有效性,对验证集进行测试并且与原算法进行对比,结果如图11所示。YOLOv5 模型对小目标存在漏检的情况,改进后的YOLOv5 模型可以改善较小目标的漏检情况,提高小目标的检测精度。该实验结果表明,通过在YOLOv5 模型中加入高效通道注意力机制,提升了模型对小目标的检测精度。
图11 改进前后YOLOv5模型的检测结果示例
本文针对无人机航拍小目标检测精度不高的问题,提出了基于改进YOLOv5 的无人机小目标检测算法。该算法通过引入ECA 注意力机制模块增强网络提取图像特征图信息,对提高小目标检测效果有所帮助。针对模型体积大、检测速度慢的特点,将CBL 模块中的普通卷积更换为Ghost 卷积,减少了参数量。为了减轻类间样本数量不平衡对模型分类损失产生的问题,使用加权损失函数改善无人机航拍小目标类间不平衡所导致的模型检测精度受限的问题。最后通过在DOTA 数据集上进行测试,实验表明,所设计模型比原来的YOLOv5 模型有着更高的准确率,在保证检测速度的前提下有效提高了检测精度,提升了无人机航拍小目标的检测准确率。