基于
YOLO
框架
实时
交通标志
识别
算法
研究
系统
实现
金晓康
SOFTWARE软 件2023第 44 卷 第 1 期2023 年Vol.44,No.1基金项目:金华市公益性技术应用研究项目(2022-4-060,2022-4-063);金华市教育科学规划研究课题(JB2022007,JB2023034);金华高等研究院院设科研项目(GYY202101)资助作者简介:金晓康(1993),男,浙江金华人,硕士,讲师,研究方向:计算机视觉、高性能计算。通讯作者:沈才有(1968),男,浙江金华人,本科,中学高级教师,研究方向:网络安全。基于 YOLO 框架的实时交通标志识别算法研究与系统实现金晓康1 吴瑶2 施莹娟1 沈才有1(1.金华高等研究院,浙江金华 321013;2.金华职业技术学院信息工程学院,浙江金华 321013)摘要:道路交通标志识别受限于所处复杂的自然场景以及种类繁多等因素,目前少有实时性、准确性、稳定性等各方面均衡的识别系统。利用在工业中应用广泛的 YOLO 算法对交通标志进行识别,以满足实时性和稳定性;利用大规模的自标数据集对深度网络重新训练,提升其泛化能力,保证识别准确性;将训练完成的深度网络部署在嵌入式设备 Jetson TX2 上,利用跨平台框架 Qt 实现交互式界面,使系统具备可应用性。该系统是一个通用平台,可支持不同高精度且高实时的网络模型的替换使用。关键词:智能交通系统;交通标志识别;深度网络;大规模数据集;嵌入式中图分类号:U463.6;TP18;TP391.41 文献标识码:A DOI:10.3969/j.issn.1003-6970.2023.01.005本文著录格式:金晓康,吴瑶,施莹娟,等.基于YOLO框架的实时交通标志识别算法研究与系统实现J.软件,2023,44(01):020-023Research and System Implementation of Real-time Traffic Sign Recognition Algorithm Based on YOLO FrameworkJIN Xiaokang1,WU Yao2,SHI Yingjuan1,SHEN Caiyou1(1.Jinhua Advanced Research Institute,Jinhua Zhejiang 321013;2.College of Information Engineering,Jinhua Polytechnic,Jinhua Zhejiang 321013)【Abstract】:Restricted by complex natural scenes and the variety of traffic sign,there are few traffic sign recognition systems that are balanced and practical in terms of real-time,accuracy,adaptability,stability,etc.This paper exploits YOLO algorithm,which is widely used in industry,to recognize traffic signs to satisfy real-time and stability requirements.The deep network is re-trained by using a large-scale self-labeled traffic sign dataset to improve its generalization ability and ensure the recognition accuracy.The trained deep network is deployed on the embedded device Jetson TX2,and the cross-platform framework Qt is used to realize the interactive interface,so that the system is fully applicable.This system is a general-purpose platform that supports the replacement of different high-precision and high-real-time deep network models.【Key words】:intelligent transportation system;traffic sign recognition;deep network;large-scale data set;embedded基金项目论文0 引言道路交通标志检测和识别是智能交通系统的研究热点1,是智能辅助驾驶系统的重要技术组成。交通标志蕴含许多重要的交通信息,如道路状况变化、速度限制、驾驶行为限制等。通过对交通标志的检测和识别,可以有效指导驾驶员规范驾驶车辆,降低交通事故的发生率,还能有助于交通标志的日常维护,同时也是无人车研究的关键和基础2。因此,对交通标志识别的研究具有极大的价值和意义。深度学习是目前最受关注的方向之一,在语音3、图像4和自然语言处理5等领域取得了公认的成果。但在实际项目应用中却遇到了较大困难,其原因是深度21金晓康吴瑶施莹娟等:基于 YOLO 框架的实时交通标志识别算法研究与系统实现学习会耗费大量的计算及存储资源,导致它很难在边端进行模型训练和推理。而智能交通系统通常部署在车载移动设备环境下,要求实时处理能力强,在资源有限的本地仍然能进行交通标志识别。综合考虑了在移动设备上的系统需要有很高的稳定性、适用性和实时性,选择轻量级 YOLOv3-Tiny 模型6作为基础网络模型,并利用中国交通标志数据集重新训练7,达到拟合的效果。将训练好的模型部署到NVIDIA TX2 移动平台上,最终实现基于 YOLOv3-Tiny算法的实时交通标志识别系统。系统具有良好的交互式界面,功能包括图像识别、视频识别、相机识别以及其他车载功能,该系统支持主流的网络模型进行替换。1 基于 YOLOv3-Tiny 的交通标志识别算法YOLOv3 算法是工业界应用的最为广泛的目标检测算法之一。而 Tiny 版本则是由 YOLOv3 网络框架精简得到,精度不高但速度快。在真实场景中,更注重网络模型的轻量化和实时处理性能8。因此我们以 YOLOv3-Tiny 算法为基础网络,重新训练后构建一个高实时性、高稳定性、高准确性的交通标志识别模型。1.1 YOLOv3-Tiny 算法框架YOLO 系列算法将目标检测任务作为回归问题来解决,其思想是将整张图像作为网络的输入,通过网络结构的前向推理,最终在网络的输出层得到目标的边界框和所属的类别。YOLOv3 算法构造了一个全新的网络结构来实现回归的任务,引入了残差的思想来加深网络,旨在能够提取到表达能力更强的深度特征,从而实现更高精度的分类效果。YOLOv3-Tiny 算法是由 YOLOv3 算法精简得到,大幅地减少了网络层数,仅保留了 2 个独立的预测分支,使得它的推理速度加快了 3 倍多。在 YOLOv3-Tiny 算法主干网络部分,包含 10 个卷积层和 6 个池化层,主要用于特征提取。在 YOLOv3-Tiny 检测部分,分别利用 1313 和 2626 两种不同尺度的特征图进行回归和分类,每个尺度上都有 3 个锚框来预测目标的类别和尺度。锚框的大小主要是由真实值利用 K-means 算法聚类产生的。鉴于中国交通标志的大小比一般目标更小,在处理输入图像时,我们采取了更大的网格划分,使得包围框能在更小的区域寻找到目标。1.2 YOLOv3-Tiny 算法框架本文在 YOLOv3-Tiny 框架的基础上重新训练,用以实现实时的交通标志识别,为部署到移动端奠定了算法基础。算法的流程如图 1 所示。网络的输入为一幅固定的图像,划分成 SS 的网格,每个网格对应着 B 个检测框以及位置的置信度 C,可以表示为 5 元组(x,y,w,h,C),其中(x,y)表示目标的中心点坐标,w 和 h 对应长和宽。位置置信度 C 是由检测框中包含目标的概率和准确度共同决定。在经过网络的前向推理后,将会预测得到目标物体的位置信息及类别概率(x,y,w,h,C,classes),其中 classes 表示为分类的类别概率。而网络的输出向量维度将由网络的划分来决定,最终的输出向量为 SSB(4+1+classes)。此外,YOLOv3-Tiny 网络采用二值交叉熵损失函数。1.3 交通标志训练数据集深度学习取得的成功归因于模型的质量、计算能力的提高和大规模标记的数据。自从自动驾驶技术逐步发展以来,模型的特征表示能力和 GPU 硬件的计算能力都有了显著的提高。但交通标志数据集的发展却相对缓慢,主要困难在于:(1)交通标志随拍摄的时间图像差异较大;(2)交通标志的形状比例随拍摄角度、距离影响图像差异较大;(3)拍摄不稳定使得图像模糊;(4)长时间的日晒雨淋使得交通标志污损及褪色等。因此,我们采用的数据集是由团队成员在 2020 年提出的中国交通标志数据集 CCSTDB9,该数据集主要由城市道路数据与高速道路数据两大类组成,细分为警告标志、禁令标志和指示标志三类,一共包含了两万余张标定的图像,主要来源于在真实场景下采集的图像,利用纯手工标定形成。利用这样的大型交通标志数据集,大大地提高了训练模型的鲁棒性和准确性,为系统的准确识别提供了充足的数据基础。图 1 实时的交通标志识别算法流程图Fig.1 Flow chart of real-time traffic sign recognition algorithmk 个检测框YOLOv3-Tiny前向推理22软 件第 44 卷 第 1 期SOFTWARE2 系统设计2.1 开发工具及环境本系统基于 Darknet 的深度学习框架下,采用 Qt和 C+混合实现,其中 C+用于模块化封装所有的功能。Qt 是一款跨平台的图形用户界面编程程序框架,我们用于开发交互界面,实现系统与用户的友好交互。本系统采用机架式GPU服务器对YOLOv3-Tiny模型进行重新训练。训练使用的CPU型号为Intel Xeon E5系列,2.3GHz,内存32G,GPU型号为TITAN X,且保证恒温恒湿的环境。此外,由于需要在移动端进行数据处理,将训练完成的模型进行部署移植。车载处理器是一块高性能、低功耗的 NVIDIA Jetson TX2 实时人工智能性能的嵌入式设备,模型可以直接在板上边缘设备上完成图像采集、智能处理整个计算的过程,极大节省了运行时间。2.2 功能模块本系统以 YOLOv3-Tiny 算法实现交通标志识别为核心,其他功能模块为辅助,实现了界面美观,操作简单的交互效果。整个系统分为 6 个模块,分别为图像识别模块、视频识别模块、相机识别模块、视频播放模块、交通标志大全介绍模块以及退出系统模块,每个模块都各具功能,形成了功能完善,功能突出的系统。(1)图像识别模块:输入任意大小的图像,通过训练完成的网络模型进行识别,通过 GPU 加速处理后,得到对图像中交通标志的识别结果。网络自动将任意大小的图像改变大小从而适应网络输入层,通过模型前向推理的操作,最后回归得到目标的所在位置和交通标志的类别信息;(2)视频识别和相机识别模块:视频识别模块是读取本地视频文件进行识别,而相机识别模块是调用前端的摄像头实时拍摄的视频进行识别,两者的流程相似。先将视频以及前端相机中的TS格式的视频流进行解封装,得到ES格式的视频流,然后利用GPU对ES流进行硬件解码,得到YUV格式的图像,最后调用深度网络对其进行识别;(3)视频播放模块:作为一个视频播放器为本地车载视频提供播放的功能,具有快进、快退、暂停以及音量加减等功能;(4)标志大全模块:是帮助驾驶者了解全国最新最全的交通标志大全及含义