基于改进YOLOv5的实时交通标志识别
2023-05-30杨茜茜周箩鱼邹学玉
杨茜茜 周箩鱼 邹学玉
关键词:交通标志识别;小目标检测;YOLOv5;Cluster NMS;标志替换法
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)02-0001-03
1 概述
交通标志检测是复杂道路环境感知任务中十分重要的一个环节,交通标志检测模型保持高精确度的同时保证较快的检测速度对汽车自动驾驶系统(Mo?tor Vehicle Auto Driving System,MVADS)有着重大的意义,因此攻克交通标志检测这个难题迫在眉睫。
纵观交通标志检测的发展史,检测方法包括传統的检测方法、二阶段检测方法、一阶段检测方法总共三种方法。传统检测方法的分类依据是目标的色彩、形状、边缘等特征,但该传统方法的适用性较差,在特征被遮挡时将无法完成检测任务。目前利用神经网络进行交通标志检测的方法主要分为二阶段目标检测方法和一阶段目标检测方法。二阶段目标检测首先利用区域建议网络进行初步的边框回归,再利用ROI池化生成建议框,最后经过全连接得到分类结果与边框。王海等[1]将不同的R-CNN检测器串联起来,用GIOU(Generalized IoU loss)取代原始的IOU损失函数,得到一种改进的Cascade R-CNN检测网络。该方法提高了交通标志的检测精度但是只能识别四类交通标志,并且检测速度只有2.74帧每秒。
一阶段检测方法同时完成预测框的回归和物体的分类。邓天民等[2]利用改进后的YOLOv3网络检测交通标志,将BN 层(Batch Normalization)和conv 层(convolution)合并减少网络的计算量,使用kmeans++聚类算法来寻找更合适的锚框大小。检测精度和检测速度都得到了提升但是小目标识别的效果不太好,模型的参数量大不利于移动端的部署。
综上所述,针对在检测较小的交通标志时检测精度不高、检测速度慢的问题,本文将YOLOv5的加权非极大抑制模块改进为Cluster NMS,采用交通标志替换法对小目标进行数据扩增。最终,采用TT100K(Tsin?ghua-Tencent 100K)数据集作为训练集和测试集,对改进后的算法和经典算法开展大量对比试验来证明改进后算法的识别精度和识别速度都得到了较大的提升。
2 改进YOLOv5 的交通标志检测
2.1 YOLOv5 算法
YOLOv5由四个部分组成,根据网络的深度与宽度的不同产生了四种模型,其中由于YOLOv5s的推理速度最快,因此将YOLOv5s运用在交通标志检测中。
Input部分是指数据的输入端,Input运用了Mosa?ic数据增强模块,采用随机缩放、剪裁、色域变换等操作对四张图片进行图像增强后进行拼接,使得数据集更加丰富[3]。在backbone部分中,首先利用Focus模块将输入通道扩充了四倍,并且在没有信息丢失的情况下完成采样。YOLOv5s分别在backbone和neck中加入了CSP 结构(Cross Stage Partial Networks), CSP1_X 将梯度流分开,两个部分通过不同的网络结构再通过Concat将梯度流汇合,CSP结构减少了计算量,加强了网络的学习能力。在neck部分中增加了FPN(FeaturePyramid Networks)+PAN(Path Aggregation Network)结构,FPN将低层特征融入高层特征,再经过PAN将高层特征融入低层特征,这样不仅加强了语义特征信息又加强了定位信息[4]。在张量拼接(Concat)后增加CSP2_X结构加强了网络的融合能力。在prediction中通过NMW筛选出最优的预测框。采用GIOU_Loss作为损失函数[5],解决了在锚框不相交时无法筛选预测框的问题。
2.2 改进NMW
YOLOv5 采用了加权非极大抑制NMW[6] 模块,NMW利用wi 对边界框进行加权平均后得到最佳边界框,计算如式(1)、式(2)。假设有n 个边界框,wi 为边界框的权重,Bi 是大于阈值的候选框,Bargmaxsj是置信度最大的边界框,sj 是当前锚框的置信度大小。
Cluster NMS首先上三角化IoU矩阵X,得到除上三角元素外都为0的矩阵X。而后取矩阵Ci 每列元素中最大的值依次排列,如果bi 中元素小于一定的阈值就置1,否则就置0,最终得到bi=[b1,b2,…,bn]。接着将bi转换成一个对角矩阵E,E与IoU矩阵X相乘得到新的矩阵Ci,取其每列元素中最大的值依次排列得到新的张量bi,接着将bi 依据阈值转换成一个对角矩阵E,继续将E与IoU矩阵X相乘得到新的矩阵Ci。重复上述操作直至bi等于bi ? 1,就筛选出了最优的预测框。
3数据扩增
TT100K数据集包含很多不同的复杂道路场景,具有更高的分辨率,数据集中的交通标志大部分是小目标[8],这很符合实际的交通场景。该数据集收集了在不同的亮度和天气条件下的10000幅包含30000个交通标志实例的图像。但是,数据集里不同类别的交通标识之间数量差异巨大,需要采用数据扩增来平衡数量差异。标志替换法首先对交通标志进行模糊和亮度变化处理,再将该标志随机替换掉图片中已有的标志[9]。
本文采用标志替换法,对实例个数不足1000个的交通标志扩增,不仅增加了小目标的数量,而且缩小了各种类标志之间的数量差异。扩增后的数据集包含17935张图片,训练集有12555张图片,测试集有5382张图片,输入网络的图片分辨率为640×640。
4 试验与结果分析
4.1 模型训练环境
本文进行实验采用了Ryzen 7 5800H 型号的CPU,NVIDIA GeForce RTX 3060 Laptop型号的GPU和win10系统操作系统。本文的模型是在CUDA 11.0的PyTorch 深度学习框架下进行训练,初始学习率为0.001,采用余弦退火策略降低学习率和adam优化器,训练了300epoch,批次大小为24。
4.2 评价指标
本文采用准确率(P)、召回率(R)、mAP@0.5、mAP@0.5:0.95、FPS作为评价指标。召回率(R)用来衡量模型遗漏目标的程度。mAP@0.5用来衡量模型精确率随召回率变化趋势,mAP@0.5高就说明模型在高准确率的同时拥有高召回率。mAP@0.5:0.95用来衡量检测框与标定框拟合的精准度。FPS是指模型每秒处理的图片数量,FPS超过30帧/s才满足实时性要求。
4.3 实验结果分析
在测试集上利用原始的算法和改进后的算法分别进行检测。图1是误检对比图,本文的算法没有出现误检的情况,无误地识别出限速60的交通标志。在图2中改进后的算法准确地识别出了图中所有的交通标志,这说明改進后的算法能很好地避免漏检的情况。图3是夜晚情景中的检测效果图,改进后的算法不仅没有误检还识别出了限速60和禁止鸣笛的标志,这说明改进后的算法可以解决夜间的交通标志检测问题。综上所述,本文的方法适用性更强,很好地解决了误检和漏检的问题。
从数据集中挑选21类常见的交通标志,利用YO?LOv5算法与改进后的算法分别进行检测,图4中改进后算法检测21类交通标志的mAP@0.5都比较高说明泛化性能好,改进后算法进行检测的大部分识别精度都比原始算法高,检测精度平均增加了11.3%,本文方法检测精度最低的交通标志是禁止鸣笛,还是比原始算法提高了2.8%,这说明改进后的方法以高精度很好地完成了交通标志细分类。
利用改进后的算法、YOLOv5算法和文献[10]对交通标志进行检测,检测结果如表1所示。mAP@0.5s是针对小目标检测的精度,原始算法检测小目标的准确率不高,文献[10]的mAP@0.5为0.893,而本文算法将小目标的检测精度mAP@0.5提高为0.916。
原始YOLOV5算法的准确率是0.81,文献[10]的准确率是0.508,改进后的算法准确率是0.892,本文的方法提高了交通标志检测的准确度。本文算法的召回率比原始算法高0.14,改进后算法很好地改善了漏检的情况。改进后算法的mAP@0.5为0.898,比文献[10]提高了0.041,证明改进后算法的检测框与标定框拟合更精准。改进后的算法FPS达到93帧/s远远超出实时性的需求,比YOLOv5 算法、文献[10]分别高出2.74 帧/s、4.87帧/s,说明本文提出的方法在提高了识别的准确度的同时兼顾了识别的速率。
4.4 消融试验
如表2所示,使用标志替换法后mAP@0.5:0.95增加了0.038,mAP@0.5增加了0.057,数据扩增很好地提高了检测精度。数据扩增后检测速度还提升了1.91帧/s,说明标志替换法还提高了检测速度。总的来说标志替换法很好地提升了模型的性能,一方面提高了检测精度,另一方面提升了检测速度。
加入Cluster NMS 后mAP@0.5:0.95 增加了0.05,mAP@0.5 增加了0.057,YOLOv5 算法采用ClusterNMS相比于采用NMW检测精度得到大幅度提升。采用Cluster NMS后将检测速度提高为92.59帧/s,证明了Cluster NMS模块很好地平衡了识别精度和识别速度的要求。
5 结论
针对交通标志检测任务,本文利用Cluster NMS模块替换了YOLOv5网络模型的NMW模块,实验表明采用Cluster NMS不仅提高了检测精度还提升了检测效率。利用标志替换法进行数据扩增,实验证明标志替换法通过均衡各类别交通标志之间数量分布,很好地提高了检测精度的同时检测速度也得到了提高。总的来说,在TT100K数据集上将改进后的算法与经典算法开展大量实验对比后,证明了本文的方法很好地平衡了准确性和实时性的要求。但是本文依然有一些尚未解决的问题,本文提出的方法不能应对如雨雪、雾霾等极端天气下的交通标志检测情况,并且模型参数量较大,不利于资源有限的车载环境进行部署。下一步可以研究的方向有解决恶劣天气下的交通标志识别和轻量化模型等。