基于深度学习的交通信号灯识别系统演示与介绍(YOLOv8/v5/v11模型+Pyqt5界面+训练代码+数据集)
1.前言
随着城市化进程的加速和机动车保有量的急剧增加,交通拥堵和安全问题已成为全球性挑战。交通信号灯作为道路交通管理的核心要素,其准确识别对于智能交通系统和自动驾驶车辆至关重要。有效的交通信号灯识别技术不仅能提升道路通行效率,还能显著降低交通事故发生率。因此,开发高精度、实时性的交通信号灯识别系统已成为交通领域研究的热点。
2.项目演示
2.1 登陆界面

登陆界面比较有特色,界面左侧增加了信号灯的一个动画效果。
2.2 用户注册

注册的时候输入用户名、密码,另外还可以设置用户的头像信息,如果头像不选择,则默认使用默认头像。
2.3 主界面

主界面大体分为3个区域,左边侧边栏是功能选择,中间是识别结果展示,右边是结果详细信息展示。
2.4 识别结果界面

选择图片后结果会显示到中间的图像区域中,下边的列表会列出每一个识别的目标信息,选择表格的不同行数,会单独对当前选择的目标进行展示。如下图所示:

2.5 模型选择
我们可以选择其他已经训练号的权重模型文件,方便用新的模型进行系统的检测识别。

2.6 技术栈
语言: python3.10
前端界面: pyqt5
数据库: sqlite(存放用户信息)
模型 :yolov5、yolov8、yolov11
3.YOLO模型对比和识别效果解析
3.1 yolov5、yolov8、yolov11模型对比
如下表格是Ultralytics官方在 COCO数据集 上进行训练后得到的结果对比:

表格中可以看到检测精度上(mAPval)yolo11拿到了最好的结果:39.5,yolov5nu结果最差。同时yolo11的检测速度也是最快的,只有56毫秒左右,而且yolo11n拥有最轻量的参数和更低的计算量。简单总结:
- YOLO11n 全面领先 :在精度、速度、模型大小和计算量上均表现最优,适合对 实时性和准确性要求高 的任务。
- YOLOv8n 精度较高但较慢 :适合对精度要求稍高但能接受稍慢推理速度的场景。
- YOLOv5nu 轻量但精度较低 :适合资源受限但对精度要求不高的应用。
3.2 数据集分析


数据集中训练集和验证集一共大概两万多张,数据集目标类别主要是三类:红灯、绿灯、黄灯。其中红灯数据集最多,黄灯数据集最少。数据集配置代码如下:
names:
- green
- red
- yellow
nc: 3
path: yolo_traficlight/train_data
test: test/images/
train: train/images/
val: valid/images/

3.3 训练结果

绿灯、红灯和黄灯的混淆矩阵显示中,三种类别识别准确度分别是:96%,96%,94%。

F1指数(F1 Score)是统计学和机器学习中用于评估分类模型性能的核心指标,综合了模型的精确率(Precision)和召回率(Recall),通过调和平均数平衡两者的表现。
当置信度为0.451时,所有类别的综合F1值达到了0.94(蓝色曲线)

[email protected]:是目标检测任务中常用的评估指标,表示在交并比(IoU)阈值为0.5时计算的平均精度均值(mAP)。其核心含义是:只有当预测框与真实框的重叠面积(IoU)≥50%时,才认为检测结果正确。
图中可以看到综合[email protected]达到了0.974(97.4%),几乎识别都是准确的。
项目演示视频:
https://www.bilibili.com/video/BV1Lsb6z8EnW/
YOLOv5/v8/v11项目合集下载:https://mbd.pub/o/bread/mbd-YZWWlp9taw==
YOLOv8/v5项目完整资源下载:https://mbd.pub/o/bread/mbd-YZWWlp9tZg==
YOLOv11项目完整资源下载:https://mbd.pub/o/bread/mbd-YZWWlp5xZA==
结束语
以上便是博主开发的基于深度学习的交通信号灯识别系统的全部内容,由于博主能力有限,难免有疏漏之处,希望小伙伴能批评指正
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

浙公网安备 33010602011771号