交通信号灯识别主要用于电子警察或卡口等抓拍设备,但施工接线复杂,现场各方向的交通信号灯均需要引线至电子警察、卡口设备,线缆较多且容易混淆。本文拟运用深度学习算法[1-3]改进现有的信号灯识别程序,基于人工智能算法[4-6]提升计算机视觉感知的能力,使交通信号灯的应用场景通用、算法精准高效[7-8]。1交通信号灯智能识别系统整体设计1.1基于Yolov5模型的交通信号灯智能识别系统设计本文以交通信号灯目标检测[9-12]与识别为研究对象,one-stage目标检测算法Yolov5应用为研究基础,提出了一种基于深度学习算法的Yolov5交通信号灯智能识别系统,基于生成的目标检测预测模型框架,实现多场景下的交通信号灯自动检测与识别,能够对实时采集的交通流视频进行机动车灯动态的自动目标检测与智能识别。1.2交通信号灯图片数据集的采集、多维分析与制作在研究过程中建立了目标检测的交通信号灯数据集,包括2 500张红绿灯图片,使用Labeling进行图片标注,通过裁剪、反转、镜像等方式强化数据集并进行预处理。使用百度街景进行交通信号灯的采集,使用labeling软件标注的数据集,创立VOC2007文件储存器,创建3个文件夹,Annotations文件夹存放标签文件,JPEGImages文件夹储存原始图像档案,ImageSets存放训练索引文件。1.3交通信号灯图片数据的采集与标注Yolov5目标检测模型需要标注的图片数据进行训练,为了提升目标检测模型的泛化能力,对新增的场景(区分机动车和非机动车、行人灯,并区分左转、直行、右转灯)进行训练和测试。1.3.1图片采集本文选取白天、夜间、恶劣天气3种不同情况下的马路交叉口。地图街景结合的方式采集交通灯类型有红、黄、绿色直行,左转,右转,行人灯和非机动车灯。对所收集到的图片进行归类、标记,建立了具有真实意义的交通信号灯图片资料库。采集图片2 500张,分别从时间维度、天气状况、采集类型、行车行人角度、指示灯类型、指示信号灯颜色类型等多个角度划分。1.3.2图片样本标注针对采集的数据进行软件标注,标注类型为红灯、黄灯、绿灯、直行、左转、右转、行人灯和非机动车灯。打开图片标注的Labeling工具,使用Python语言并在图形接口中使用Qt,以XML文件的形式存在PASCAL VOC(ImageNet),本插件支持YOLO。调出标注框,将鼠标拉至需要标注的红绿灯旁边,按住左键画框,圈住红绿灯后,红灯输入“red”,黄灯输入“yellow”,绿灯输入“green”后,完成标注,按快捷键D进入下一张图。每张图的红绿灯需要分开标注。2实验与分析2.1基于Yolov5模型目标检测的算法设计Yolov5是一种基于Yolov4的单阶段目标检测算法,通过对Yolov4进行改进,提高了运算速度和准确率。Yolov5官方代码中,标注了4种不同的目标检测网络,分别为Yolov5s、Yolov5m、Yolov5l、Yolov5x。Yolov5s网络最小、速度最快、AP精度最低,其他3个网络以Yolov5s网络为基础,继续扩大和深化,随着AP的准确率越来越高,速度的消耗也在不断增加。2.1.1Yolov5s的网络化模型构造输入端:在建模过程中,改进Mosaic数据增强、自适应锚框计算、自适应图片放大等方面。Backbone基准网络:结合其他几种新的探测方法,如Focus和CSP体系。Neck网络:在BackBone和最终Head输出层之间,目标探测网络插入,Yolov5增加FPN+PAN。Head输出层:在输入级中,与YOLOv4中的输出结构相同,对GIOU_Loss和DIOU_nms进行优化。Yolov5模型整体算法架构如图1所示。10.19301/j.cnki.zncs.2024.03.006.F001图1Yolov5s 模型整体算法架构2.1.2数据输入(1)Mosaic数据增强。Yolov5在其输入部分使用了与Yolov4相同的Mosaic数据加强方法。Mosaic数据加强方案的撰稿人是Yolov5的一名队员,随机缩放、随机裁剪、随机排列等方法,检测小型目标的效果非常好。(2)自适应锚框计算。Yolov5在Yolo算法中,为各种数据集均会设置一个开始的长度和宽度的锚框。在网络训练中,根据初始的锚框架,将预测块与现实中的groundtruth进行比较,通过逆向的方式进行迭代。Yolov3和Yolov4分别采用独立的计算初始锚框软件对不同的数据集进行训练。但在Yolov5中,这个特性被嵌入代码,在每次训练中,自适应计算不同训练集中的最佳锚框值。不能有效计算锚架时,可以在程序代码中关掉自动计算锚框功能。自适应的计算具体过程:获取数据集中所有目标的宽度与高度;将每个相片以相同的比例缩小,保证宽、高的最大值符合指定大小;将bboxes从一个相对坐标转换为一个绝对坐标,乘以缩放后的宽高;过滤bboxes,保持bboxes宽度和高度在2个像素以上;与v3和v4操作相同,通过k-means三方聚类,可以获得n个anchors;基因序列计算方式是随机改变anchors的宽度和高度,如果是高级的变异,会被分配给anchors,如果是低级的变异,直接无视,默认变异1 000次。通过anchor_fitness方法计算出适应性fitness,进行评价与评估。(3)自适应图片缩放。传统的目标检测算法中,图像的长度和宽度有差异,通常将图像压缩成一个标准的大小后,将其输入图像检测网络。实际使用项目时,照片的长宽比不同,缩放后两边的黑色边缘会有不同的尺寸,而填满越多,会产生大量的信息量,从而降低计算效率。在Yolov5的编码中,对datasets.py的letterbox功能进行了改动,使其最小化的黑色边缘被加入原来的图片。其步骤是:根据原始图像大小和输入的图像大小,求出缩放比率;按原图像尺寸与缩放比例计算缩放后的图像大小;计算黑色边填充值。2.1.3Backbone基准网络结构Focus结构:以Yolov5s结构为例,原始608×608×3的图像输入Focus结构,采用切片操作变成304×304×12的特征图,再经过一次32个卷积核的卷积操作,最终变成304×304×32的特征图。Yolov5s的Focus结构采用32个卷积核,而另外3个则采用了更多的次数。CSP结构:Yolov4的网络化架构采用CSPNet思想,采用CSP架构作为骨干网络。Yolov5与Yolov4区别是Yolov4中仅有骨干网采用CSP架构,而Yolov5中设计了两种CSP结构。以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。2.1.4Neck网络结构Yolov5目前的Neck和Yolov4均为FPN+PAN的架构,但是Yolov5刚推出时仅有FPN架构,后加入了PAN架构,并进行了改动。在Yolov4的Neck架构中,所有运算均是正常的卷积运算,而Yolov5的Neck架构则是通过参考CSPnet的CSP2架构来增强对网络特性的整合。Yolov5s模型Neck网络如图2所示。10.19301/j.cnki.zncs.2024.03.006.F002图2Yolov5s模型Neck网络2.1.5输出端(1)Bounding Box损失函数。目标检测任务的损失函数一般由Classificition Loss(分类损失函数)以及Bounding Box RegeressionLoss(回归损失函数)组成。Loss的回归损失函数的发展历程:SmoothL1 Loss→IoU Loss(2016)→GIoU Loss(2019)→DIoU Loss(2020)→CIoU Loss(2020)。在CIOU_Loss模型里,模型的3个主要参数是重叠面积、中心距离、宽度比例。(2)NMS非极大值抑制。目标检测的后处理过程中,针对目标框筛选,需要进行NMS操作。CIOU_Loss包含影响因子v,因此不存在groundtruth。Yolov4使用DIOU_nms的DIOU_Loss的方法,Yolov5使用权重nms的方法。各预测方块的置信程度依次递减;选择最具可信度的预测方块,并计算与其他预测框的IOU;根据步骤2中计算的IOU去除重叠度高,IOUthreshold阈值直接删除;剩下的预测框返回第一步,直至没有剩余。NMS每次只能处理一个分类,因此有N个分类时,将被执行N次。2.1.6训练策略多尺度训练:如果网络的输入是416×416,训练时会从0.5×416到1.5×416中任意取值,所取值均是32的整数倍;训练开始前会使用warm up进行训练,在模型预训练阶段,利用低的学习速率来进行预训练(例如4个epoch、10 000个step),根据预设的学习速率进行训练;使用cosine学习率下降策略;采用EMA更新权重,相当于训练时给参数赋予一个动量,更新更平滑;在混合准确度培训中采用amp,可以降低视频内存的使用,提高培训效率,但必须有GPU的支援。模型训练:将训练集合与测验集合进行分割,随机抽取2 000张图像,按照8∶2分为1 600张训练集,400张测试集,模型训练迭代次数为50次。2.2实验流程流程大纲如图3所示。10.19301/j.cnki.zncs.2024.03.006.F003图3流程大纲2.3实验结果AUC迭代指标如图4所示。10.19301/j.cnki.zncs.2024.03.006.F004图4AUC迭代指标2.4实验分析气候条件对图像的品质有很大的影响,如阴雨天、夜晚等,会对影像造成一定影响,部分图像曝光过强,部分亮度过低,在夜间还有光晕和其他灯光的干扰。在现实道路上,存在树木等高大物体对交通灯的遮挡、红色广告字体、前方车辆尾灯等情况,使该算法的可靠性和稳定性受到了极大考验。汽车上的信号灯检测和标识是为了确保在特定范围之内能够准确地检测和辨识出交通信号灯。由于交通信号灯在距离较近时图像较小、信号灯区域的像素数量少,可使用物体特点不明显,加大了检测和识别的难度。3结语针对交通信号灯的应用场景,提出了一种基于深度学习算法的Yolov5交通信号灯智能识别系统,实现多场景下的交通信号灯自动检测与识别。通过数据集的处理进行模型训练,调优调参,经过不断的调参实验与迭代模型训练,最终实现了交通信号灯目标检测与识别。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览