多尺度YOLOv5的交通灯检测算法

2022-09-22 05:59王国中李国平
软件导刊 2022年9期
关键词:交通灯类别尺度

钱 伍,王国中,李国平

(上海工程技术大学电子电气工程学院,上海 201620)

0 引言

近年来,计算机视觉和深度学习的快速发展使很多领域都取得了重大突破,其中自动驾驶领域也发展十分迅猛。基于视觉的交通灯检测、行人检测和车辆检测作为自动驾驶的核心技术受到众多学者关注。对交通灯的准确定位与类别识别能够获取路口信息,为自动驾驶汽车的决策提供重要的数据支持,减少了汽车行驶的安全隐患。因此,一个具有可靠性与实时性的交通灯检测算法能够保障自动驾驶汽车的行驶安全,避免交通事故发生。

传统交通灯检测算法通常从颜色特征出发,并结合机器学习、图像处理等方法,其中Hough[1]、SVM(Support Vector Machine)[2]和Tophat[3]等方法被广泛使用。如田谨等[4]提出一种箭头形交通信号灯识别方法,将多种机器学习方法相结合,在模板匹配下实现对箭头形交通信号灯的识别。

随着深度学习的发展,基于卷积神经网络的目标检测算法被提出。叶飞等[5]通过改进YOLOv3[6]实现了对行人的检测,且精度提高了5%;严广宇等[7]将Faster R-CNN[8]与Deeplab v3+网络相结合,实现了对共享单车类别与违停的检测,其中类别检测mAP(mean Average Precision)达到72.36%,违停检测的平均准确率为89.11%;Zhu 等[9]从10万张街景图中构建交通标志数据集TT100K,使用6 层卷积神经网络实现了交通标志检测;Kim 等[10]将交通灯的颜色部分与R-CNN[11]和R-FCN[12]相结合,把交通灯检测应用于汽车辅助驾驶系统中;Liu 等[13]建立了自己的数据集,提出基于改进YOLOv3 的检测交通灯,改进后模型的检测速度达到59FPS,mAP 达到91.12%。基于深度学习的目标检测算法能够自动提取特征,且对颜色信息不敏感。但这些方法在特征提取过程中不可避免地会对图像进行下采样,且对小目标的检测能力差。

以交通灯尺度小、环境复杂为研究重点,本文采集现实场景中的交通灯图像建立数据集。基于YOLOv5[14]模型,提出多尺度训练与多尺度融合输出的方法,增加了模型对小目标的检测能力。多尺度YOLOv5检测速度最快可达到9.5ms,mAP 最高可达到99.8%。在Bosch 数据集[15]上,改进方法直接提高了6.5%的检测性能,最后以消融实验验证改进方法的有效性。

1 数据获取与相关算法

1.1 数据集制作

在自动驾驶和辅助驾驶任务中,BDD100K[16]、KITTI[17]和Cityscapes[18]数据集是首选的公共数据集。由于其均采集自于国外,与国内交通环境具有很大差异,且没有对交通灯进行类别标注,因此以这些数据集为研究背景的模型很难适用于国内的交通环境。清华大学发布的TT100K[9]以交通标志为主,而没有对交通灯进行标注,不能作为交通灯检测的数据集。长沙理工大学发布的CCTSDB[19]将常见的交通标志标注为3种,也没有对交通灯进行标注。

针对国内交通环境,本文采集了10 万张现实中的交通灯影像,从中筛选出16 333 张图像,并使用Labelme 工具进行标注,制作成交通灯检测数据集,以8:2 的比例划分为训练集和测试集,部分样本数据如图1 所示。数据集包含时间、类别和尺度属性。在时间分布上,白天、夜晚、黎明/黄昏的图像个数分别是9 548、5 620 和1 165;在标签类别分布上,红灯有24 937 个标签,黄灯有787 个,绿灯有12 433 个,None 有12 450 个;在标签尺度分布上,小中大3种尺度的比例为29 875:19 602:1 130。

1.2 YOLOv5

Fig.1 Sample images of traffic light data set图1 交通灯数据集样本

YOLOv5 延续了网格预测方法,将图像划分为S×S的网格,每个网格负责预测B个边界框和C个条件类别概率,在输出结果中还要计算预测框的置信度值。在正负样本选择上,YOLOv5 抛弃了基于最大IOU(Intersection Over Union)的匹配规则,而是直接通过宽高比选取正负样本,相比于YOLOv3/v4[20],正样本至少增加了3倍。

如图2(a)所示,YOLOv5 将图像固定为640*640 尺度输入网络,经过Focus 层将图像的宽高信息转化为通道信息,既减少了计算量,又增加了感受野。经过多个正则卷积层和BottleneckCSP 层提取特征,将8 倍、16 倍和32 倍下采样后的特征图送入PANet[21]网络进行特征融合。最后,检测头对融合后的高级语义信息进行分类与回归,给出置信度值。图2 中的Conv 用于下采样和改变通道数目,BottleneckCSP 是参考CSPNet[22]设计的特征提取层。

YOLOv5拥有4种规模,分别记为YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x。随着模型的深度和宽度逐渐增加,特征提取与检测能力也随之提高。因为YOLOv5具有推理速度快、自适应锚框和高召回率等特点,十分适合交通灯检测任务,所以本文以YOLOv5 的4 种模型为基础,针对YOLOv5 的不足进行改进。针对YOLOv5 模型泛化能力差,容易出现过拟合,且采集的数据集规模不大的问题,本文提出复合数据增强策略;针对YOLOv5 的输入是固定尺度,提取到的特征信息有限的问题,本文提出多尺度代替固定尺度的训练方式;针对YOLOv5 将3 种尺度语义信息送入检测头,对小目标的检测能力不足的问题,本文提出多尺度特征融合的改进方式,并引入远跳连接传输语义信息。

2 多尺度YOLOv5

2.1 复合数据增强

YOLOv5 使用mosaic[20]方法对图像进行增强处理。考虑到本文制作数据集的规模不大,且环境复杂多样,因此在mosaic 基础上提出复合数据增强方式对模型的输入进行增强,以提高模型输入的复杂性、增加训练难度,从而提升模型的泛化能力。使用mosaic、透视变换与颜色变换相结合的方式对输入进行增强,复合数据增强流程如图3 所示。具体步骤如下:①读取当前需要增强的图像f,长宽分别是l和d;②从数据集中随机读取3 张不同于f的图像f1、f2和f3;③以2l为边生成矩形画布,将4 副图像拼接得到mosaic 结果g1;④使用透视变换对g1随机进行旋转、平移和缩放,得到g2;⑤从g2中随机截取与模型输入尺度相同的图像,对其进行颜色变换,随机调整图片的色调、饱和度和明度得到g3;⑥以0.5 和0.3 的概率对g3进行水平翻转与垂直翻转,得到g4;⑦将g4作为复合数据增强结果输入模型。

Fig.2 Network structure of YOLOv5 and MS-YOLOv5图2 YOLOv5与MS-YOLOv5网络结构

Fig.3 Composite data augmentation process图3 复合数据增强流程

经过复合数据增强后,模型的输入由一幅固定图像变成多幅图像的随机组合。与mosaic 相比,增强后的图像更为复杂,模型能够学习到更多复杂特征,提升了模型对不同场景的适应能力。消融实验结果证明,复合数据增强方法的mAP 提高了5.2%,相比mosaic 增加了0.8%。

2.2 多尺度训练

在卷积神经网络中,通常通过增加模型输入尺寸以提高模型对小目标的检测能力。但是该方法会带来新问题:①模型计算量随输入的增加而成倍增加,使训练和推理速度变慢;②模型感受野随之变小,对大尺度目标的检测能力下降。

针对YOLOv5 的固定尺度训练,本文提出多尺度训练方法,将目标可能出现的不同尺度送入网络进行训练学习。在多尺度训练过程中,模型不会侧重于学习小尺度或大尺度,而是较均衡地学习不同尺度的信息,对不同尺度的目标都具有检测能力。

在训练阶段,将数据分批次送入模型。在当前的batch 下,按照公式(1)选择图像尺度作为训练尺度,图像被缩放到训练尺度后进行前向推理和反向学习。在测试阶段,以固定尺度作为模型输入尺度,对模型进行测试。消融实验结果表明,多尺度训练可显著提高模型的特征提取能力,在没有数据增强的情况下,mAP 可提高5.8%。

其中,input是模型固定尺度,λ是随机数,out是模型输入尺度。

2.3 多尺度特征融合与输出

YOLOv5 借鉴PANet 的思想对主干网络提取到的基础特征进行融合(见图4(a)),生成高层特征信息送入检测器计算损失。由于交通灯尺度集中于小尺度,较多信息分布在基础特征中,所以YOLOv5 会出现较多漏检测的情况。针对小尺度目标检测,本文受BiFPN[23]启发,设计了多尺度的特征融合(见图2(b))代替YOLOv5 的PANet。将4倍、8 倍、16 倍和32 倍采样信息作为输入,生成4 种不同尺度的语义信息用于分类与回归,其中4 倍采样和8 倍采样结果用于检测小尺度目标,16 倍采样结果用于检测中尺度目标,32倍采样结果用于检测大尺度目标。

Fig.4 Feature fusion network图4 特征融合网络

多尺度特征融合网络结构如图4(b)所示,在融合过程中通过自上而下传递信息以强化中间两层特征。最后生成多尺度高级语义信息,引入远跳连接方式传递原始基础特征,并将低级特征与高级语义信息再次融合,以强化高级语义信息中的低级特征。

多尺度融合输出后,生成的高级语义信息被送入检测器,按照4 种尺度的方式重新计算回归损失LCIOU、分类损失Lcls和置信度损失Lobj。其中,分类损失使用交叉熵函数作为损失函数,回归损失使用CIOU 损失作为损失函数。计算方法如下:

其中,IOU是预测框与真实框的交并比;ρ2(b,bgt)表示预测框与真实框中心点之间的欧式距离;D 表示同时包含预测框和真实框的最小闭合矩形区域对角线距离;L是检测层个数;w、h是预测框的宽和高;wgt、hgt是真实框的宽和高;n是预测框个数;nc是一个锚框下的预测框个数;C是预测类别是目标真实类别;M、N分别是网格的宽和高;表示网格位置(M,N)是否负责预测该目标,取0 或者1;P是预测概率;hbox、hcls和hobj分别是回归损失、分类损失与置信度损失系数;s是检测层的输出尺度系数;bs是批量大小。

如图2(b)所示,多尺度YOLOv5 流程如下:①使用提出的复合数据增强对模型输入进行增强;②使用多尺度训练方法随机为增强结果选择尺度,并输入模型;③主干网络提取特征信息,将4 倍、8 倍、16 倍和32 倍采样提取的信息作为基础特征;④将4 种不同尺度特征送入设计的特征融合网络,生成多尺度的高级语义信息;⑤对多尺度高级语义信息计算损失,通过反向传播训练模型权重。

3 实验与结果分析

3.1 实验环境与网络训练

模型的训练在Ubuntu18.04 操作系统、Pytorch 框架下完成,硬件平台为:Nvidia Tesla V100 PCIE 32GB GPU,处理器为:Intel(R)Xeon(R)Silver 4214R CPU 2.4GHz,软件环境为:CUDA10.1,Python3.8。实验训练300 个epochs,初始学习率为0.001,学习率衰减系数为0.2,采用余弦退火衰减方式,设置动量常数为0.937,batch 大小为32,回归损失系数为0.05,分类损失系数为0.5,置信度损失系数为1.0。实验训练了数据集中的13 066 张图像,测试了3 267张图像,在训练过程中对每个epoch 的训练结果进行验证。为验证模型的有效性,本文还在Bosch 小尺度交通灯数据集上测试模型性能。

为客观评估模型性能,本文计算了模型的混淆矩阵,并通过混淆矩阵计算常用的算法评估指标——召回率(Recall)和mAP(IOU=0.5),计算公式如下:

其中,QTP是正确检测的目标,QFP是模型误检测的目标,QFN是模型漏检测的目标。

如图5(a)所示,MS-YOLOv5l 在训练开始的前20 个epochs,训练损失快速下降到0.045。从第40 个epoch 开始,模型损失下降逐渐变缓,模型开始趋于收敛,损失值在0.02 附近浮动。改进后模型的损失稳步下降,其中前期下降速度较快。训练过程中,MS-YOLOv5l 的验证结果如图5(b)所示。验证集的mAP 在前20 个epochs 快速上升,达到0.96。随着模型的收敛,mAP 的上升速度也逐渐变慢,最后趋于稳定。通过验证mAP 曲线,可知模型未发生过拟合。

3.2 实验结果

Fig.5 Model training process图5 模型训练过程

在不同场景下分别对YOLOv5 和MS-YOLOv5 进行测试。如图6 所示,在逆光场景下,YOLOv5 漏检严重,对被遮挡住的目标没有检测能力。而MS-YOLOv5 不仅检测出红灯的位置和类别,而且,当目标被大范围遮挡时,也能够正确检测其位置。如图7 所示,在夜晚场景下,受到汽车尾灯影响,YOLOv5 很难识别交通灯,因此漏检了两个交通灯。MS-YOLOv5 则准确检测出每一个交通灯的类别,对交通灯的定位也没有受到干扰。在图8 中,两种算法都能够正确检测交通灯,但是MS-YOLOv5 对每个交通灯的置信度更高,对预测坐标框和类别有更高的确信度。由图9可知,在交通灯尺度极小的场景下,YOLOv5 的检测性能骤降,而MS-YOLOv5 不仅能准确识别每一个交通灯,而且提高了置信度分数。

表1 量化了本文数据集上的模型检测性能,通过计算模型在测试集上的召回率、mAP 和检测速度来评估模型性能。YOLOv5x 作为YOLOv5 最好的模型,召回率为0.809,mAP 为0.828,检测速度为18.1ms。相比之下,MS-YOLOv5s在9.5ms的检测速度下,召回率达到0.989,mAP 达到0.998,相比YOLOv5 提高了17%。改进后的方法相比YOLOv5 在召回率和mAP 上有大幅提升,召回率最多提升了27.8%,mAP 最多提升了28.2%。

表2 给出了模型改进前后在Bosch 数据集上的测试结果,并与其他方法进行对比。YOLOv5 算法作为较新的目标检测算法,相比Faster RCNN 和SSD 的改进方法具有更好的检测能力、更快的检测速度。MS-YOLOv5 与YOLOv5同级别模型相比,检测性能均有所提高,mAP 最少增加了6.5%,达到0.673,拥有对比算法中最高的检测能力。改进方法在大幅提高模型检测能力的同时,对速度的影响仅约为2ms。Bosch 数据集的测试结果表明,改进模型在其他交通灯数据集上同样适用,并优于其他模型。

Fig.6 Detection results of YOLOv5 and MS-YOLOv5 in backlitscenes图6 YOLOv5与MS-YOLOv5在逆光场景下的检测结果

Fig.7 Detection results of YOLOv5 and MS-YOLOv5 in night scenes图7 YOLOv5与MS-YOLOv5在夜晚场景下的检测结果

Fig.8 Detection results of YOLOv5 and MS-YOLOv5 in dusk scenes图8 YOLOv5与MS-YOLOv5在黄昏场景下的检测结果

Fig.9 Detection results of YOLOv5 and MS-YOLOv5 for small objects图9 YOLOv5与MS-YOLOv5对小目标的检测结果

Table 1 Results of model on our dataset表1 本文数据集上模型测试结果

Table 2 Results of model on Bosch dataset表2 Bosch数据集上模型测试结果

为探究模型对不同类别交通灯的检测能力,本文测试了不同类别的AP 值(见表1),并绘制了YOLOv5 和MSYOLOv5 的PR 图。从表1 中可知,YOLOv5s 对黄灯的AP值仅有0.462,YOLOv5x 对黄灯的AP 也仅有0.635。改进后模型对所有类别的检测能力都有显著提高,其中AP 值最低也可达到0.983,最高为0.994。如图10(a)所示,YOLOv5l 对红灯和绿灯的检测能力一般,对黄灯和None 的检测能力严重不足。如图10(b)所示,MS-YOLOv5l 对所有类都有很好的检测能力,PR 曲线逼近右上方。

Fig.10 PR curve of Yolov5l and MS-YOLOv5l on the test set图10 YOLOv5与MS-YOLOv5在测试集上的PR曲线图

3.3 消融实验

通过构建消融实验,可逐步探究改进方法对模型的有效性。实验以YOLOv5l 为基础模型,逐步引入改进方法,并在本文数据集上测试模型召回率和mAP,将结果记录在表3中。

Table 3 Ablation experiments based on YOLOv5l表3 以YOLOv5l 为基础模型的消融实验

没有进行数据增强的YOLOv5 对交通灯检测的mAP只有0.808,在使用YOLOv5 自带的mosaic 数据增强条件下,mAP 提升了4.4%。在使用本文提出的数据增强方法后,mAP 提升了5.2%,召回率更是提升了7.1%。因此,数据增强对于YOLOv5 十分关键,可大幅提高模型召回率。引入多尺度训练后,模型的mAP 和召回率都有所改善,其中mAP 提升了5.8%,达到0.866。使用多尺度特征融合后,模型检测能力提升不够显著,mAP 提升了4%。相比与其他几种改进方法,mAP 和召回率的提升幅度较小。

通过逐步引入改进方法,模型检测能力也随之得到提升,最终mAP 达到0.991,召回率达到0.994。可发现在经过数据增强和多尺度训练后,多尺度特征融合效果显著增加,召回率提升了8.3%,mAP 提升了8.4%,相比单独使用多尺度特征融合的效益更高。

4 结语

由于国内缺乏交通灯数据集,本文采集了现实场景中的交通灯图像,制作了交通灯数据集。针对交通灯检测存在的尺度小、环境复杂等难点,提出多尺度YOLOv5 的交通灯检测方法:首先使用数据增强方式对模型输入增强,增加图像的复杂度,提高模型的鲁棒性;然后针对模型输入尺度提出多尺度训练方式,增加模型对不同尺度的检测能力;最后提出一种多尺度输出的特征融合方式,并使用远跳传递低级特征信息,有效提升了模型对小目标的检测能力。实验结果表明,多尺度YOLOv5 增加了少量推理时间,大幅提升了模型的召回率和mAP,模型的鲁棒性也得到提高,实现了对国内交通环境中交通灯的实时、准确检测。本文下一步工作是将该算法与行人检测、车辆检测与车道线检测算法相结合,构建自动驾驶汽车周围环境快速检测系统。

猜你喜欢
交通灯类别尺度
财产的五大尺度和五重应对
基于单片机的交通灯控制系统设计
一直飘红的交通灯
宇宙的尺度
基于单片机的LED模拟交通灯设计
服务类别
9
论类别股东会
中医类别全科医师培养模式的探讨
基于protues仿真的交通灯即时控制的一种实现