郝 立, 张皓迪
(1.东南大学自动化学院, 江苏南京 210096;2.东南大学吴健雄学院, 江苏南京 211189)
高效准确的目标检测对无人机作战效能的发挥至关重要。随着无人机作战应用日趋广泛, 无人机作战环境亦日趋复杂, 尤其是夜间作战, 不仅要考虑自然环境, 还要考虑多种光源并存的复杂光照环境。由于传统的以模式识别为主的检测算法在复杂光照环境下鲁棒性较差, 目前小目标检测领域多采用以深度学习为主的检测算法, 但其在实际应用中仍难以适应众多光源的干扰。为解决复杂光照环境下小目标检测问题, 本文以引入注意力机制的YOLOv5s-Se模型为基础, 设计了基于Ghost模块与形状损失函数的YOLOv5s-Se_Point改进模型, 进一步提高了复杂光照环境下小目标检测的准确性和效率。同时, 围绕无人机夜间突防的典型作战样式, 设置了模拟实验场景, 对YOLOv5s、YOLOv5s-Se和YOLOv5s-Se_Point等3种模型进行了实验验证, 结果表明, 本文提出的方法在准确率和检测速度上具有优势。
小目标, 指的是小于32×32像素面积的物体。目前, 小目标检测方法主要包括基于形状与颜色信息的传统视觉检测和基于深度学习的检测[1]。
传统视觉检测算法通过形状和颜色特征识别目标, 常见的处理方法为通过大小不同的滑动窗口遍历整张图像, 并通过人工设计的特征提取算子对目标特征进行提取, 如SIFT特征算子[2]等。其基本流程如图1所示, 具体过程主要包括数据采集、预处理、模式识别及后处理等。
从筛选标准看, 传统算法并未充分考虑到光照条件的影响。针对复杂的光照条件, 传统的处理方法主要包括基于光照不变量的处理, 如Retinex算法;基于数据增强的处理, 如直方图均衡化等[3]。这些方法主要考虑场景和光源的颜色、亮度, 以便从明暗图像中恢复信息。但当目标本身包含发光亮度大的光源或场景光照条件复杂等情况, 颜色信息往往具有偏差, 这对传统的阈值分割算法造成了极大的挑战, 导致设计好的特征算子在环境特征发生变化时出现提取能力下降的问题。另外, 光照条件变化也会导致目标与场景的明暗关系发生改变。因此, 上述传统的处理方法鲁棒性较差, 可用深度学习算法来处理小目标检测问题。
基于深度学习的目标检测方法可分为两类。一类是双步目标检测算法[4], 如R-CNN系列等。这些算法将目标检测分为两步, 首先生成Region Proposal(候选区), 再将Region Proposal送入网络结构中提取特征, 并预测检测目标的位置、识别检测目标的类别。另一类是单步目标检测算法[5], 如目前最流行的YOLO系列模型, 其官方系列模型已经从早期的YOLOv1发展到了YOLOv5。此类算法直接把图片分成S×S个网格, 在网格的基础上提取特征, 并由网络输出目标的位置和类别信息, 所以检测速度很快。以YOLOv5s模型为例, 其网络结构如图1所示。该模型采用SSD金字塔结构进行多尺度学习, 并使用了不同大小的检测头和Anchor对不同尺度的目标分别检测, 使得YOLOv5系列模型在小目标检测性能上有了极大的提升。同时, YOLOv5系列模型作为端到端的模型, 使用简单, 具有较好的可部署性, 在实际生产生活中应用越来越广泛。
图1 YOLOv5s模型结构Fig.1 Structure diagram of YOLOv5s model
相较于基于传统视觉的目标检测方法, 深度学习方法具有更好的鲁棒性, 但是应用到复杂光照环境场景时依然不能完全满足需求。复杂光照环境一般同时具有点光源、线光源以及面光源, 光源形状复杂多变。由于小目标本身的特征就已不明显, 经过各类光源的干扰后, 其信息进一步丢失, 使得网络的检测精度进一步下降, 误识别率提高。为此, 前人通过引入注意力机制对YOLOv5s模型进行了改进, 称为YOLOv5s-Se模型, 如图2所示。
图2 YOLOv5s-Se模型结构图Fig.2 Structure diagram of YOLOv5s-Se model
注意力机制为20世纪90年代认知科学领域的学者根据人类处理信息机制所抽象出的数据处理方法。传统特征识别假设各个特征的重要性是固定不变的, 而引入注意力机制后, 模型会根据对数据的学习, 不断调整对各个通道特征的关注权重, 从而使模型达到更好的效果。
SE模块[6]结构图如图2中注释细节图所示, 主要包括压缩、激励和Scale操作3个步骤。首先通过全局池化层(图2 SE_Layer中的Global_Pooling模块)使用平均池化, 即使用和输入特征图等大小的滑窗, 计算该滑窗内某通道图层的平均数。对C个输入通道计算后, 可将输入特征图压缩为1×1×C的向量。之后, 通过2个全连接层(图2中FC层)+激活层(图2中ReLu、Sigmoid函数)结构, 使用数据集训练全连接层, 输出对每个通道的重要性的预测结果, 得到1×1×C的权重参数向量。此后, 即可将该权重作用在W×H×C的特征图上, 从而使模型更好地专注于特征图某一通道, 尽可能地从复杂光照环境中提取出目标的特征。
直接使用YOLOv5s-Se模型虽然可以更好地在复杂光照环境中提取出目标的特征, 但其目标定位的精度有所下降。这是因为YOLOv5s模型通过回归训练出的数据在拟合时存在误差, 还需要在损失函数中进一步增加其他指标以满足定位需要。同时, 由于SE模块引入了卷积参数和全连接层, 模型的尺寸也有所增加。因此, 本文将重点研究如何提高模型精确定位和减小模型尺寸。主要思路是基于YOLOv5s-Se模型引入形状损失函数和Ghost模块[5], 新的改进模型称为YOLOv5s-Se_Point模型
为了提高模型对小目标的定位精确性, 首先在YOLOv5s模型的损失函数中引入形状损失项。此方法可以使模型在训练中更有效地利用目标的几何形状特征, 从而提高网络的识别准确率。YOLOv5s模型提供的损失函数为
式(1)中, 1oi,bjj代表正样本, 1ni,ojobj代表负样本, BCE函数为二元交叉熵损失,ck为该类预测值为该类标签值, GIOU函数[4]为对IOU函数的改进, 引入后可以对被遮挡目标进行更好地判断,pc为预测类别概率。
应用式(1), 可以有效地对目标框的长宽进行拟合, 但未考虑目标的形状特征, 故而亦可以通过形状限制排除环境光源的干扰, 进一步增强检测的准确性。
假设目标的几何结构几乎不随视角移动发生变化, 在损失函数中追加定义形状损失项。具体定义为识别区域的4个角点距离中心点的平方, 即
式(2)中,d*为anchor_point 4个角点与中心的真实距离, 即,d为当前4个角点与中心的预测值, 即分别为预测框宽高和对应anchor_point的宽高。此函数可以在损失函数第一项拟合目标框长宽的同时, 让模型更注意目标框的长宽比。
由此, 定义新的损失函数为
将式(3)应用于模型训练的推理过程, 充分地考虑了目标的形状特征, 可提高识别的准确率。
为提高模型推理速度和减小模型尺寸便于部署, 本文使用Ghost模块对模型内的卷积模块进行替换。在一个充分训练的网络中, 需要通过传统的通用卷积层使卷积操作形成较多相似的特征图, 以达到对目标特征较为充分的理解;而Ghost模块首先通过少量卷积运算生成基础特征图, 再通过对这些少量特征图进行线性变换得到大量相似的特征图, 在相同的计算复杂度下生成更多的相似特征图, 提高了检测速度并减小了模型大小, 使模型便于部署。
根据无人机典型夜间作战环境和突防作战样式, 借鉴RoboMatser超级对抗赛实验场地, 设计模拟实验场景。场地分为红蓝方, 每一方都由基地、前哨站、哨兵及攻击无人机组成, 通过遥控己方无人机, 按顺序摧毁敌方前哨站和哨兵, 解除敌方基地防御态势, 发射弹丸摧毁敌方基地。哨兵、前哨站以及基地都装有装甲板, 无人机主要通过识别装甲板对目标实施攻击。
选取比赛中一组滞空时间较长的作战视频作为典型图片数据集, 共计883张图片。该数据集包含6种标记目标, 分别为蓝方前哨站(op_blue)、红方前哨站(op_red)、死亡前哨站(op_dead)、蓝方哨兵(st_blue)、红方哨兵(st_red)、死亡哨兵(st_dead)。在该数据集中, 待识别的距离较远的哨兵机器人满足对小目标的小于32×32像素面积的定义。同时, 距离较近的前哨站满足对大目标96×96像素面积的定义, 便于测试模型的泛用性。在光照环境中, 不同的机器人具有不同颜色的光源、不同的光源分布、与无人机不同的距离并实时运动, 改变无人机的朝向;同时各机器人的装甲板本身具有自发光的特征, 可视为点光源。前哨站哨兵死亡后, 哨兵在轨道上做不规则运动, 可视为线光源。由于哨兵距无人机最远飞行半径较远且目标较小, 且易与场地光源相互干涉, 严重影响视觉算法的识别;同时场地中还有众多的灯光、装饰灯条等光源, 使得场地成为光源形状、强度和颜色都时刻在变化的复杂光照环境, 因此该数据集能较好地模拟复杂光源环境及识别难点, 满足测试需求。
采用小批量随机梯度下降法(SGD)分别对YOLOv5s模 型、YOLOv5s-Se模 型、YOLOv5s-Se_Ghost模型和YOLOv5s-Se_Point模型进行小目标检测训练。4个模型的小批量参数(batch_size)均设为16, 最大训练次数设为100, 其余参数为保证消融实验的对照特性均设置为默认值。
分别通过测试精度P(precision)、召回率R(Recall)、各类别AP的平均值(mAP)及F1曲线来评价各模型的性能。其中AP为P对R的积分, 取各类AP的平均值mAP;F1是在P与R之间寻找较为平衡的值给出的综合评价指标, 用来评价检测模型的整体性能。F1值越大, 算法性能越好。F1曲线是以F1值为纵坐标, 置信度阈值为横坐标所画出的曲线。
以YOLOv5s、YOLOv5s-Se、YOLOv5s-Se_Ghost模型作为对照组进行消融实验, 对比YOLOv5s-Se_Point模型的改进效果。本次实验得到的F1曲线如图3-5所示, 依次为YOLOv5s模型、YOLOv5s-Se模型和YOLOv5s-Se_Point模型。结合图3-5和表1可以看出, 4种模型的mAP都达到了0.93以上, 说明该模型对6种目标均具有较好的识别精度, 其中YOLOv5s-Se_Point模型更是可以达到0.963。但是从图表中可以发现, 使用YOLOv5s模型检测时, 容易出现误识别现象, 包括误识别背景光源为目标、重复识别等。使用YOLOv5s-Se模型后, 相比YOLOv5s模型, 模型的尺寸有所提升。这是因为模型额外引入了Se模块的参数, 但其在模型mAP及置信度方面有了较好的综合表现。引入Ghost模块后, YOLOv5s-Se_Ghost模型相比YOLOv5s-Se模型虽然mAP下降了0.4%, 但是可以在几乎不影响精度的前提下提升了3.4%的推理速度, 减小了25.2%的模型尺寸。同时, 引入了形状损失函数的YOLOv5s-Se_Point模型相比YOLOv5s-Se_Ghost模型准确率提高了1.6%, 但在尺寸上几乎没有变化, 因此在检测速度上变化也不大。
表1 模型改进前后性能比较Tab.1 Performance comparison of the model before and after improvement
图3 YOLOv5s模型F1曲线Fig.3 F1 curve of YOLOv5s model
综上所述, 本文给出的YOLOv5s-Se_Point模型能够在复杂光照环境下有效地改善小目标检测的精度和速度, 且模型尺寸显著降低, 适合部署于小型设备在实际场景中的应用。
图4 YOLOv5s-Se模型F1曲线Fig.4 F1 curve of YOLOv5s-Se model
图5 YOLOv5s-Se_Point模型F1曲线Fig.5 F1 curve of YOLOv5s-Se_Point model
本文针对复杂光照环境下无人机的小目标检测问题, 以引入注意力机制的YOLOv5s-Se模型为基础, 通过引入形状损失函数和Ghost模块, 设计了基于Ghost模块与形状损失函数的YOLOv5s-Se_Point改进模型, 通过模拟实验场景进行验证, 表明本文提出的方法可以有效地改进复杂光源下以YOLO为例的目标检测算法的缺陷, 提高算法的鲁棒性, 实现对小目标的有效识别。未来本文的研究将集中在提高模型的泛化能力方面, 通过选取更加接近于实际场景的数据集, 不断丰富训练样本, 使模型更加适用于真实场景。