改进YOLOv5s的车载红外图像目标检测
2022-04-14宋甜,李颖,王静
宋 甜,李 颖,王 静
(四川大学电子信息学院,成都 610065)
0 引言
车载红外热成像系统具有红外线探测能力,可感应人眼视觉之外的红外线,能够大幅度改善驾驶员夜间驾驶的环境感知能力,从而提高驾驶员的驾驶安全系数和驾车体验,对夜间辅助驾驶具有重要意义。车载热成像系统探测距离远且不依赖光源,所以车载红外图像具有分辨率较低、目标小的特点,给夜间目标检测带来了一定的困难。且受限于车载嵌入式系统有限的负载能力和车载动态环境,要求检测网络具有轻量化和实时高效的特点。因此,希望针对车载热成像系统的特点,提出一种目标检测方法。
目标检测(object detection)技术作为视觉智能领域系统的一个重要研究方向,广泛应用于机器人导航、智能视频监控、工业检测等诸多领域,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。目前基于深度学习的目标检测算法按照其功能主要可以分为基于区域提名的和基于端到端学习的目标检测模型两类。2014年R.Girshick等提出的基于候选区域加卷积神经网络的R-CNN算法就属于第一种目标检测模型,该算法的提出开启了基于 RCNN的研究热潮。由于R-CNN系列的检测过程中候选框的生成和边框的回归这两个操作是分开进行的,从而使模型对于交通目标的检测速度达不到实时性的要求。于是在2016—2018年,国内外的专家学者相继提出基于深度学习的单阶段目标检测实时性算法YOLO系列和SDD系列,YOLO把物体分类和边界框预测结合在一起,直接通过回归得到预测的边界框和对应的置信度和类别,SSD中采用特征金字塔,丰富了特征图的尺寸,使得不同尺寸的特征图拥有不同的感受野,对应检测不同尺寸的目标,从而解决了YOLOv1在小目标上检测困难,定位不准的问题。并且随着后续学者的不断改进,于2021年,Ultralytics公司推出了YOLOv5,YOLOv5是在原有的YOLOv4的架构基础上从各个方面引入一些优化方法进行改进。相比于其它的目标检测算法,YOLOv5以其速度快、精度高而受到广泛关注。由于YOLOv5网络具有推理速度快、检测精度高、体积小等优点,适合部署到车载嵌入式系统中。所以本文以YOLOv5网络群中深度和特征图宽度最小的YOLOv5s为车载红外图像目标检测的基本框架,对SPP模块进行密集连接的特征融合并添加到40×40和80×80大小的特征层,在骨干网络的最后一层添加为轻量化网络设计的坐标注意力模块(coordinate attention,CA),并 对 网 络 的 边 界 框 回 归(bounding box regression,BBR)损失函数进行改进,实验结果表明改进网络能够提升网络的检测效果。
1 YOLOv5s目标检测模型
YOLOv5s网 络 由Input、Backbone、Neck、Prediction四个部分组成。其网络模型结构如图1所示。
图1 YOLOv5s网络模型结构
1.1 Input
Input输入端包括Mosaic数据增强、自适应锚框计算、自适应图片缩放三部分。Mosaic数据增强采用四张图片,通过随机缩放、随机裁剪、随机排布的方式进行拼接。YOLOv5s初始设定了三种大小的锚框,每次训练之前,自适应地计算不同训练集中的最佳锚框点。
1.2 Bac kbone
YOLOv5s的Backbone结构由Focus、CBS、C3和SPP(spatial pyramid pooling)4个模块组成。Focus模块分为两个步骤:切片拼接和卷积。CBS模块由Conv2d、BN(BatchNorm2d)和SiLU(sigmoid weighted linear unit)组成。C3模块由卷积层和X个Bottleneck模块Concate组成。BottleNeck结构本质上是一个残差网络,先通过一个1×1的卷积层,再通过一个3×3的卷积层,如果输入和输出的通道数相同且允许连接的时候,则把原始输入和经过两个卷积后的结果进行相加,作为最终的结果输出。SPP模块由四个并行的分支构成,分别是池化核为5×5,9×9,13×13的最大池化和一个跳跃连接。
1.3 Nec k
YOLOv5s中采用FPN+PAN结构作为Neck。在Backbone中,通过卷积下采样后,特征图的尺寸被不断减小,在得到高层级特征的同时,也伴随着的信息的流失,越高级的特征图包含的语义信息越丰富,而越浅层的特征图包含位置信息更为丰富。特征金字塔网络(Feature Pyramid Networks,FPN)通过上采样将高层级的特征回流传递,与低层特征融合,增加浅层特征图中的语义信息,提高小目标的检测性能。
然而,随着研究的不断深入和目标检测算法的不断发展,人们发现,浅层的语义信息对于深层特征图在检测大尺寸物体时也有增强的效果,所以PANet(path aggregation network)被提出来,并在语义分割任务中取得了出色的结果。YOLOv5s借鉴了PANet的思想,在FPN的下采样后,又添加了2个PANet结构,形成一个自底向上的特征金字塔。通过以3×3的卷积核以步幅为2对FPN后获得的最大尺度的特征图做卷积操作,在重新进行下采样提取特征的同时,缩小图片的尺寸,然后与FPN中相同尺寸的特征图做横向连接,实现较大尺寸特征图中的位置信息回传到高层较小尺寸的特征图中,提升对于大尺寸物体的检测精度。
通过FPN+PAN结构,实现了自上而下和自底向上的双向融合。FPN+PAN结构如图2所示。
图2 FPN+PAN结构
1.4 Pr edi c t i on
Prediction部分包括边界框回归损失函数和非极大值抑(non-maximum suppression,NMS)。YOLOv5s中使用CIOU Loss作为损失函数,在目标检测结构后处理阶段,针对出现的众多目标框的筛选,采用加权NMS操作,获得最优目标框。
2 改进型YOLOv5s介绍
本文以YOLOv5s网络结构为基础,首先对SPP模块进行改进,引入密集连接减少特征丢失,并将改进后的SPP模块分别添加到40×40和80×80大小的特征层,从而提升检测准确度。然后针对车载红外图像分辨率低,目标小且细节模糊的特点,在骨干网络的最后一层后即第一个C3_2模块后添加CA注意力模块,使模型能够更好地学习重要的特征和感兴趣的区域,对非背景物体有所侧重。最后对网络的边界框损失函数进行改进,采用EIOULoss代替网络原本的CIOU Loss。
2.1 改进的SPP模块
SPP模块嵌在YOLOv5s骨干网络最后一个CBS模块之后,由四个并行的分支构成,分别是池化核为5×5,9×9,13×13的最大池化和一个跳跃连接。不同尺度的最大池化和跳跃连接,能够让图片学习到不同尺度的特征,再将局部和全局特征融合,丰富了特征图的表达能力。其中最大池化将图像划分为若干个矩形区域,对每个子区域输出最大值。最大池化操作虽然能减少冗余信息,但是也容易造成特征信息的丢 失。本 文 受DenseNet的 启 发,借 鉴DenseNet构造密集连接,加强特征复用的思想,对SPP模块进行改进,提出了SPP+模块,从而减少SPP模块最大池化带来的特征信息丢失。改进前后模块结构如图3所示。
图3 改进前后模块结构
与SPP模块不同,改进后的SPP+模块在将四个不同感受野的特征进行concat连接前首先对各感受野的特征之间进行密集连接,特征融合操作加强了特征的复用率,减少了三次最大池化操作带来的特征信息丢失。
YOLOv5s中SPP模块只嵌在特征图尺度最小的特征层后,输入图片尺寸为640×640时对应20×20尺寸大小的特征图,为了同时提高40×40和80×80大小的特征的表达能力和特征复用,本文将SPP+模块插入网络的第13层和第17层,即第一次和第二次concat操作后。添加SPP+模块的网络结构如图4所示。
图4 SPP+模块添加位置示意图
2.2 注意力机制模块
为了辅助驾驶员掌握远处的交通情况以便提前做好应对准备,车载热成像系统具有探测距离远的特点,所以车载红外图像分辨率低,图像中大多数的目标都比较小且细节模糊,网络在进行特征提取时容易丢失特征。所以,我们在检测网络中添加注意力机制,帮助网络从众多的信息中选择出对当前检测任务目标更关键的信息,通过使用注意力机制能够使模型更多地关注重要特征并抑制背景信息等不必要的特征,从而提高模型的表现力。
本文使用的是坐标注意力模块(coordinate attention,CA),针对通道注意力通常会忽略对生成空间选择性注意力图非常重要的位置信息的问题,将位置信息嵌入到通道注意力中,使得网络能够在更大的区域上进行注意力,CA注意力模块添加的位置如图5所示。
图5 CA模块添加位置示意图
不同于通道注意力将输入通过2D全局池化转化为单个特征向量,CA模块将通道注意力分解为两个沿着不同方向聚合特征的1D特征编码过程。这样的好处是可以沿着一个空间方向捕获长程依赖,沿着另一个空间方向保留精确的位置信息。然后,将生成的特征图分别编码,形成一对方向感知和位置敏感的特征图,它们可以互补地应用到输入特征图来增强感兴趣的目标的表示。
CA模块通过精确的位置信息对通道关系和长程依赖进行编码,分为两个步骤:坐标信息嵌入(coordinate information embedding)和坐标注意力生成(coordinate attention generation),结构如图6所示。
图6 CA注意力模块结构
2.2.1 坐标信息嵌入
全局池化方法通常用于通道注意编码空间信息的全局编码,但由于它将全局空间信息压缩到通道描述符中,导致难以保存位置信息。为了促使注意力模块能够捕捉具有精确位置信息的远程空间交互,CA模块按照以下公式将全局池化进行分解,转化为一对一维特征编码:
具体而言,对输入X,先使用尺寸H×1和1×W的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行编码,因此,高度为h的第c个通道的输出表示为:
2.2.2 坐标注意力生成
通过坐标信息嵌入可以很好的获得全局感受野并编码精确的位置信息。为了利用由此产生的表征,提出了坐标注意力生成。坐标注意力生成转换首先级联之前模块生成的两个特征图,然后使用卷积变换函数对其进行变换操作:
然后沿着空间维数将f分解为2个单独的张量f∈R和f∈R。再利用两个1×1卷积F和F将特征图f和f变换到和输入X同样的通道数,得到:
然后对g和g进行拓展,作为注意力权重。
最后,CA模块的输出表示为:
2.3 边界框回归损失函数
在目标检测中,边界框回归是决定目标定位性能的关键步骤,边界框回归的三个重要几何因素为:重叠面积、中心点距离、宽高比。CIOU Loss考虑了这三个重要的几何因素,在DIOU Loss的基础上,增加了宽高比影响因子,合并到惩罚项。
CIOU Loss与之前的损失函数相比,收敛速度和检测精度都有明显的提高。但是通过其公式中的v反映的宽高比的差异,而不是宽高分别与其置信度的真实差异,所以有时会阻碍模型有效的优化相似性。为了解决这个问题,本文采用EIOU Loss代替CIOU Loss,将宽高比的影响因子拆开分别计算目标框和锚框的宽和高,能够对检测效果有一定提升。EIOU Loss定义如下:
小麦成熟后应及时收割、晾晒、筛选,如遇阴雨天气,应采取烘干措施,防止收获和储存过程中湿度过大,导致病菌再度大量繁殖,造成二次污染。
其中,c和c是覆盖两个Box的最小外接框的宽度和高度。
3 实验结果与分析
3.1 实验环境及参数设置
本文实验使用深度学习框架Pytorch,训练测试均在Pytorch 1.7.1环境下完成,编程语言为Python 3.8,基于Linux系统,操作平台为ubuntu16.04。实验的硬件条件为E5-2640V3 CPU,内存64 GB,GPU为Nvidia Geforce GTX1080,11 GB显存。初始学习率lr设为0.01,weight decay设置为0.0005,网络优化方法使用SGD,momentum为0.937,batchsize设置为16,训练轮数为300轮。
3.2 数据集介绍
本文使用2018年传感器系统开发商FLIR公司发布的自动驾驶开源红外热成像数据集进行实验,对数据集中的行人、自行车、汽车3类目标进行检测。该数据集是由安装在车上的热成像相机获取,驾驶环境为11月至5月期间日间(60%)和夜间(40%)晴到多云天气行驶在加利福尼亚州圣巴巴拉市街道和公路上。数据集总共包含14452张红外图像,其中10228张来自多个短视频,训练集8862张,验证集1366张,大多数图片的采样率为1秒两帧,少数环境中目标较少时,采样率为1秒1帧。测试集为长144 s的视频中采样的4224张图片,采样率为1秒30帧。训练集、验证集和测试集各类别的数量如图7所示。
图7 FLIR数据集数量统计
3.3 评价指标
在目标检测当中,通常使用精确率(Precision)、召回率(Recall)、PR曲线、平均精度(average precision,AP)和多个类平均精度(mean average precision,mAP)来作为评价指标。精确率和召回率定义如下:
其中,TP为预测为正样本实际为正样本的数量,FP为预测为负样本实际为正样本的数量,FN为预测为负样本实际为正样本的数量。Precision为预测正确的正样本个数和预测为正样本个数的比值,Recall表示被正确判定的正样本的个数占总的正样本个数的比重。
PR曲线反映的是精度和召回率之间的关系。如果模型精度越和召回率越高,则PR曲线与x,y轴所包围的面积就越大,模型的总体性能也就越好。AP为PR曲线下方的面积,AP越大,则模型的准确度越高,反之,模型的性能越差。mAP为多个类别AP的平均值。本文采用AP和mAP作为对模型检测效果的评价标准。
3.4 实验结果对比与分析
本文首先使用YOLOv5s网络在FLIR数据集的训练集和验证集上进行训练和验证,保存训练结果最好的模型,在测试集上测试该模型的泛化能力。然后对YOLOv5s进行改进,YOLOv5s模型和改进模型在测试集上的检测效果如图8所示。
图8展示了基本网络(左)和改进网络(右)的检测效果对比,由图中可知,改进网络后能够检测到基本网络漏检的一些目标,如两图第一列所示:其中图一中漏检了两个自行车类目标,图二中由于遮挡原因,少检测了一个行人和一个自行车目标,图三中由于目标较小,少检测了一个行人,通过改进网络后,能够有效地减少漏检情况。两图第二列中展示了对网络错检情况的改进,基本网络分别将背景错检为行人、自行车和汽车目标,而改进网络能够改善错检情况。
图8 测试效果
从表1可以看出,对SPP改进并嵌入40×40和80×80大小的特征层后,检测结果均有提升,对比原始YOLOv5s网络mAP@0.5值提升了2.2%。表2表明添加CA模块后mAP@0.5值提升了1.2%,更改边框回归损失函数后,mAP@0.5值提升了1.1%。由此可见,三种改进方法都在不同程度上提高了模型的检测精度。采用本文的方法,行人类的AP值提升了3.1%,自行车类AP值提升了6.8%,汽车类AP值提升了0.4%,总的mAP@0.5值提升了3.4%。
表1 SPP改进实验结果对比
表2 网络改进对比
从表3两种模型的平均推理速度和权重大小对比可以看出,改进网络后,模型的推理速度几乎没有下降,权重大小仅增大了1.7 MB。由此得出,本文方法在提升检测准确率的同时并没有带来很大的模型权重大小增加和推理时间的消耗,模型依旧能够满足实时检测的需求并保持体积小的优点,适合部署在车载嵌入式系统中。
表3 两种模型性能指标对比
4 结语
本文设计了一种基于改进YOLOv5s网络的车载红外图像目标检测模型,适合部署在车载嵌入式系统中用于检测交通目标,辅助夜间驾驶。首先提出YOLOv5s+3SPPs网络,在SPP模块中引入密集连接并增加模块数量,然后针对车载红外图像分辨率低、目标小且细节模糊的特点,在YOLOv5s的骨干网络的最后一层添加CA注意力模块,让网络专注于图像上重要的目标特征及感兴趣区域。最后对网络的边界框回归损失函数进行改进。本文实验表明:三种改进方法在不同程度上都起到了提高网络的检测精度的作用。相比于YOLOv5s网络,本文提出的网络在FLIR数据集测试集上的mAP@0.5值提升了3.4%,且几乎不影响检测速度,模型权重大小只增加了1.7 MB,满足车载嵌入式系统对模型体积小和实时高效检测的需求。