袁子玄,廖义奎
(广西民族大学电子信息学院,南宁 530006)
随着科学技术的发展,目标检测在人类社会[1-2]发挥着越来越重要的作用,是研究的重点也是难点。其中,关于红外图像的检测便是其重要研究方向,它在交通、安防监控、人员搜索以及农作物病虫识别检测[3-5]方面,都有着重要的作用和巨大的潜力。许多国内外的学者以及科学家也在这方面展开了非常深入的研究[6-10]。当前,针对红外图像的检测算法,主要有以下两类:传统算法和深度学习算法。
刘兴淼等[11]提出了一种时域与空域结合的小目标检测算法,利用图像背景变化较慢的特点,运用相邻帧相减,减少背景和噪声的干扰,提高目标信噪比。潘胜达等[12]提出一种基于双层局部对比度的红外弱小目标检测方法。张祥越等[13]提出了一种改进的LCM红外小目标检测算法,既增强了目标区对比度,又有效抑制了背景杂波,从而提高了小目标的检测精度。Du等[14]提出了一种基于时空特征的检测框架,分析了红外目标的小样本、敏感尺寸,以及通常的样本选择策略等几个影响小目标检测的因素,提出了小交并(IOU)策略和基于帧间能量累积(IFEA)增强机制的端到端时空特征提取与目标检测框架。然而,针对上述的传统算法,在一些简单背景下检测时效果较好,但在复杂背景下时,检测效果往往难以达到实际需求。而基于深度学习的算法,相比传统算法而言,有着更佳的特征提取能力,能够提高目标检测性能,得到更好的检测精度。
针对红外图像检测的主流深度学习检测算法有以下几类:第一类是单阶段目标检测算法,主要包括SSD[15]和YOLO[16-18]系列等;第二类是双阶段目标检测算法,主要包括Fast R-CNN[19]、Faster R-CNN[20]等。前者不需要生成候选区域,直接将目标定位问题转换为回归问题,生成检测目标的预测分类概率以及预测坐标值,一次检测就可以得到结果。后者需要产生候选区域预测和鉴别两部分,计算量大。前者相对于后者而言,有着更快的检测速度。
随着YOLO系列算法的不断改进,出现了许多更加有效的目标检测算法。如,张鹏辉等[21]提出了一种基于YOLOv4-Tiny改进的红外目标检测模型,完成了对红外目标图像的特征提取与检测。李北明等[22]提出了关于YOLOv5的红外目标检测算法,降低了模型参数量,提升了模型准确率。张明路等[23]在网络中增加了注意力机制,提高了网络模型的精度。杨子轩等[24]提出了一种引入注意力机制的红外目标检测方法,通过在不同的骨干网络进行实验,提升了模型的mA P,但增加了一定的参数量。
以上检测算法,在精度、速度上相比于传统算法而言,虽具有一定的优势,但还是不太理想,还有进一步的提升空间。针对以上问题,本文基于YOLOv5目标检测算法进行改进,最终在红外图像目标检测与识别的精度以及模型计算量方面都有所改进。
YOLOv5结构与YOLOv4相似,但也有许多差别。它有四个版本,YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,这四个版本在网络结构上是相同的,不同点在于模型的权重、宽度和深度。本文采用的版本是YOLOv5s检测模型。YOLOv5的整体结构如图1所示,主要有以下四个部分组成。
图1 YOLOv5网络结构图
YOLOv5的输入端,统一将图片缩放到640×640的尺寸,一次性读取4张图片,分别对4张图片按照一定的比例进行缩放、裁剪、排布的操作后再进行组合,既扩充了数据集,又提升了模型的检测能力。
YOLOv5s的Backbone主要由Focus结构、C3、SPP(空间金字塔结构)组成。Focus结构主要对特征图进行切片操作,把图片的高度和宽度的特征信息整合到通道,再经过一系列的卷积、归一化、激活函数,进而提高检测速度、降低FLOPS(每秒浮点运算次数)。Focus结构如图2所示。C3、SPP的结构如图3所示。
图2 Focus结构
图3 C3和SPP结构
Neck模块部分主要指的是特征金字塔结构(FPN)和路径聚合网络结构(PAN)。此结构可以加强网络模型对不同缩放尺度对象的特征融合能力。YOLOv5中的Neck部分是在FPN的基础上借鉴了PANet的思想,经过由上而下传达强语义信息,再由下而上传达强空间信息,最后进行参数聚合传送到输出网络中,以此来提高模型鲁棒性。
YOLOv5输出端使用CIOU Loss来计算损失函数的均值,值越小,预测的目标框就越准确。损失函数计算公式如式(1)所示。
式中:v为真实边框与预测框的宽高比损失,α为宽高比损失函数系数。wp、hp和wgt、hgt分别代表预测框和真实框的宽高,为中心点距离占比惩罚项,其中惩罚项分子是预测边框中心点与真实边框中心点的距离,分母是预测边框与真实边框的最小包围框对角线长,如图4中的d和c部分。
图4 中心点距离占比惩罚项
注意力机制是通过对feature map赋予不同的权重信息,从而获得研究目标中更多需要关注的细节信息,达到约束无用信息的效果。
为了突出目标的特征,提高目标检测识别的能力。本文在主干网络(backbone)CSPDark-Net53部分添加注意力机制(convolutional block attention module,CBAM)模块,CBAM[25]机制是一种即插即用的模块,该模块主要在通道和空间上提取注意力信息。在原始YOLOv5网络的Backbone部分的第8层与第9层之间添加CBAM模块,通过添加该注意力机制帮助网络在众多信息中选择对当前检测目标更为关键的特征信息,抑制背景等无关信息。改进后的主干网络部分的结构如表1所示。
表1 改进的主干网络结构
图5展示的是CBAM模块结构,式(4)、式(5)为该注意力机制的公式。
如图5所示,CBAM注意力机制由通道注意力模块和空间注意力模块构成。在通道注意力模块首先通过平均池化层和最大池化层进行特征图空间信息汇总,式中的描述符为Fcavg、Fcmax,得到一个1*1大小,通道数为c的特征图,再送入一个两层的共享神经网络层(MLP)。而后,将MLP输出的特征进行叠加操作,再经过激活函数,最终生成输出的特征图。空间注意力模块首先是基于channel上做最大池化和平均池化操作,得到通道数为1的两个特征图,然后将这两个特征图在空间上进行拼接,再进行降维,得到通道数为1的特征图,最后再经过激活函数,得到最终输出的特征图。
图5 CBAM注意力模块
符号Mc(F)∈R1*1*c,表示通道注意力模块的输出,Ms(F)∈Rw*h*l为空间注意力模块的输出,其中δ代表sigmoid函数,M L P权重W0和W1对两个输入是共享的,ReLu激活函数后面是W0,F∈Rw*h*c,表示传入网络的特征图,f7*7表示一个7*7大小的卷积核。
YOLOv5s网络的C3残差组件结构设计如图6所示。首先分别通过一个Conv进行卷积操作,其次再通过Bottleneck结构进行堆叠,最后再进行融合。借鉴了ResNet[26]网络,在不同的卷积层之间增加跨连接(shortcut)方式提高网络性能。图6的Residual结构展示的就是残差结构。
图6 C3模块
为了解决梯度发散问题,文献[27]提出了DensetNet网络,图7为DensetNet网络结构的示意图。由图7可知,DensetNet网络中的每个层的输入都会与前面层在空间维度上进行拼接,再作为下一层的输入,使得各卷积网络的特征能够进行相互融合,有效实现特征重用,提高了模型的计算效率。提取到的网络信息也会更加丰富。本文设计了一种借鉴DensetNet网络的思想,在Bottleneck结构的基础上,设计了如图8所示的Bottleneck1模块结构图。
图7 DensetNet模块
图8 新的Bottleneck模块
新的组件中的配置不变,依旧先通过两个1*1、3*3大小的卷积核,然后再进行归一化操作,最后通过SiLU激活函数层。不过在原始网络的两个Conv部分之间,把输入部分跨连接到第一个Conv卷积之后,使得每个模块间的紧密性更佳,让模型能够更快地收敛到最优解。SiLU激活函数公式如式(6)。
原始YOLOv5网络Neck部分的Bottleneck结构如图9左侧所示,没有采用残差结构。本文研究在此处添加残差结构,如图9右侧所示,实验证明,相比于原始的YOLOv5网络有着更高的准确度。在骨干网络(Backbone部分)中,修改了yaml文件C3部分的系数配置。原本4个C3部分的系数配置为3-9-9-3,本文将其修改为3-6-9-3。经过实验验证,改过之后的网络在训练的过程中,不仅降低了网络复杂度、重复计算量,而且在mAP上也有着相应的提升。
图9 优化的Neck部分
原始YOLOv5算法是采用最近邻插值法进行上采样,运算量小,但对图片进行缩放时会存在一定的失真。所以,本文采用双线性插值法进行上采样,相比前者而言,后者基本上克服了最邻近插值法灰度值不连续的缺点,效果更佳。
若特征图尺寸为n×n,那么最邻近插值法的时间复杂度为O(n2),双线性插值法时间复杂度就为O(n4),后者的计算量更高。不过相比于精度上的提升,带来的额外开销是可以接受的。
本文研究训练模型租用的是极链Al云平台服务器。采用Pytorch深度学习框架,配置为Pytorch1.8.0、CUDA11.1.1,编程语言为Python3.8,操作系统为Window10 64位,CPU、GPU型号分别为Intel(R)Xeon(R)Gold,Ge-Force RTX 2080 Ti 1。
本实验lr0为0.01,momentum为0.937,lrf为0.1,BatchSize为32,采用SGD梯度下降算法进行参数更新。
本文研究采用的是FLIR公司发布的红外数据集[28]。该数据集是通过红外摄像仪在街道和高速路上获得的。包含的类别为人、汽车、自行车、狗和其它。由于此数据集下的狗以及其它的类别数量非常少,为了防止因数量类别相差过大所导致对算法评估产生的不利影响,本文去除狗和其它类别,只选择了三类目标作为本文的检测目标。人(People)、汽车(Car)、自行车(Bicycle)三类目标所占图像数量分布如图10所示,按照8∶2的比例分为训练集和测试集。
图10 数量分布图
首先对数据集的标签进行处理,将标签转化为YOLO文本格式,生成含有id、x、y、w、h的.txt文件,再进行归一化处理。其中,id表示图片序号,x、y分别表示目标在图片中的横坐标、纵坐标,w、h表示目标的宽度和高度。本研究首先使用传统方法进行数据增强,然后再进行Mosaic数据增强,扩充了数据集,丰富了图片背景。数据增强效果如图11所示。序号0表示People,1表示Bicycle,2表示Car。由图11可知,红外图像存在部分信息丢失、模糊,轮廓不明显的情况。
图11 数据增强效果图
本文研究采用了A P、准确率(Precision)、召回率(Recall)、mAP,计算量(GFLOPS)作为模型的评价指标。其中,mA P@0.5代表I O U阈值为0.5时的平均AP,体现了模型识别能力。这五个指标与模型的检测是呈正相关的。
以下就是上述指标的公式。
P为P-R曲线下方面积,T P表示的是真正例,为I O U大于阈值时的检测框数目;FP表示的是假正例,为小于阈值的检测数目;F N表示漏检。
为了验证添加注意力机制,改进Bottleneck模块等策略对YOLOv5模型的检测精度是否有提升效果,本文做了消融实验,实验训练的主要超参数如表2所示,迭代了120次。各改进实验后所得效果如表3所示。
表2 主要参数
从表3中序号1与原始网络YOLOv5对比可知,加了注意力机制(CBAM)的YOLOv5s,在Bicycle类别上的AP,相比没有加注意力机制(CBAM)的原始网络提升了2.2个百分点,精确度(Precision)提升了2.2个百分点,mAP提升0.3个百分点,表明改进后的网络能够很好地关注通道和空间上的注意力信息,有效地提取特征信息;序号2改进Bottleneck结构,三个类别的AP都有着相应的提升,mA P@0.5相比于原网络,提升了1.3个百分点,证明改进后的Bottleneck1结构能够有效实现特征重用,提高了模型的计算效率;序号3,优化Neck结构,修改Backbone结构的参数配置,相比原网络,计算量降低了0.5(GFLOPS),有效提升了模型的检测效率;序号4,改进上采样函数,引进双线性插值法,mAP@0.5提升了2.2个百分点,表明改进上采样函数策略的有效性;序号5和6是以上实验的复合实验,序号7是4种改进策略的综合应用。实验证明,多种策略的结合使用,一般优于单一策略的实验效果。综上所述,本文改进后的模型,在检测精度上相比原始网络YOLOv5,有效提升了3个百分点,模型计算量降低了0.5(GFLOPS)。
表3 消融实验
图12中的(a)、(b)表示改进前后的val_loss变化,由图12可以看出,在原始YLOLv5s网络中,迭代50次后val_loss开始上升,出现了过拟合现象。改进后的网络,在迭代50次左右后,逐渐趋向于平稳,优化了这一现象。
图12 改进前后的val_loss变化
为了验证所改进算法的可行性,在此与SSD,Faster R-CNN,YOLOv3-tiny,YOLOv5smobileNetv3,YOLOv5s-ghost这几类算法做对比实验。各类算法的实验结果如表4所示。从表4对比结果可知,相比于上述算法,改进后的YOLOv5s无论是整体的mAP,还是各类别的A P,都占有明显的优势。相比原始网络(YOLOv5s),改进后的YOLOv5s(our)网络的mAP提升了3个百分点,其中,在bicycle这个单类别中,AP提升了7.7个百分点,Car和People分别提升了0.1个百分点和1.2个百分点。结合模型的精度来看,本文所改进的YOLOv5s网络与众多模型相比,无论是在单类别的A P上,还是所有类别的mAP上,都表现得更为出色。本实验训练120次后的Pr eci sion和Recall结果如图13所示,图14为测试后的mA P效果图,由图14可知,在迭代50次时,mAP50,mA P50:95曲线趋向平稳。
图13 Precision和Recall结果图
图14 mA P@0.5和mAP@0.5:0.95结果
表4 不同模型对比结果
针对红外图像存在识别精度低的缺点,本文研究提出了基于YOLOv5s改进的目标检测算法。第一部分,基于YOLOv5s的主干部分,添加注意力机制(CBAM)。第二部分,改进原始网络的Bottleneck结构。第三部分,优化Backbone与Neck结构。第四部分,改进上采样损失函数,最终的mAP达到了81.3%,相比原始网络提升了3个百分点。其中,Bicycle类别的AP提升较为显著,提升了7.7个百分点。
通过以上的改进实验,提升了在复杂环境下的红外路况检测的识别精度,证明了本文设计方法的可行性。但红外图像检测依旧还存在许多挑战,例如红外图像的纹理背景不够清晰、噪声大等缺点。在后续的过程中,将会继续进行实验,进一步提升网络模型的稳健性与准确性。