基于YOLO11的交通违规检测系统(Python源码+数据集+Pyside6界面)
💡💡💡本文摘要:基于YOLO11的交通违规检测系统,阐述了整个数据制作和训练可视化过程

博主简介
AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者
深耕计算机视觉与深度学习领域,专注于目标检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。
🚀 核心专长与技术创新
-
YOLO算法结构性创新:于CSDN平台原创发布《YOLOv13魔术师》、《YOLOv12魔术师》等全系列深度专栏。系统性提出并开源了多项原创自研模块,在模型轻量化设计、多维度注意力机制融合、特征金字塔重构等关键方向完成了一系列突破性实践,为行业提供了具备高参考价值的技术路径与完整解决方案。
-
技术生态建设与知识传播:独立运营 “计算机视觉大作战” 公众号(粉丝1.6万),成功构建高质量的技术交流社群。致力于将复杂算法转化为通俗易懂的解读与可复现的工程代码,显著降低了计算机视觉的技术入门门槛。
🏆 行业影响力与商业实践
-
荣获腾讯云年度影响力作者与创作之星奖项,内容质量与专业性获行业权威平台认证。
-
全网累计拥有 7万+ 垂直领域技术受众,专栏文章总阅读量突破百万,在目标检测领域形成了广泛的学术与工业影响力。
-
具备丰富的企业级项目交付经验,曾为工业视觉检测、智慧城市安防等多个关键领域提供定制化的算法模型与解决方案,驱动业务智能化升级。
💡 未来方向与使命
秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。
原创自研系列, 25年计算机视觉顶会创新点
应用系列篇:
23、24年最火系列,加入24年改进点内涵100+优化改进篇,涨点小能手,助力科研,好评率极高
1.YOLO11介绍
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
结构图如下:
1.1 C3k2
C3k2,结构图如下
C3k2,继承自类C2f,其中通过c3k设置False或者Ture来决定选择使用C3k还是Bottleneck
实现代码ultralytics/nn/modules/block.py
1.2 C2PSA介绍
借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)
实现代码ultralytics/nn/modules/block.py
1.3 11 Detect介绍
分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):
实现代码ultralytics/nn/modules/head.py
2.交通违规检测系统
2.1 交通违规检测数据集介绍
关于数据集
概述
这是一个为现实世界交通违规检测精心整理的定制数据集。它整合了来自3个公开来源的数据,包含23个类别,并已转换为与YOLOv8/v9/v12兼容的YOLO格式,共提供5,254张训练图像和1,470张验证图像。
该数据集有助于训练一个能一次性检测所有必要目标的单一模型。
核心特点: 车辆类别通过ROI裁剪技术提取——每个车辆的边界框在增加30%的填充后被裁剪出来,并保存为单独的图像。这确保了车辆在画面中足够突出,并消除了行车记录仪画面与特写标志图像混合时常见的尺度不匹配问题。
类别 (共23类)
-
车辆: 人, 汽车, 卡车, 公交车, 摩托车
-
交通信号灯: 红灯, 绿灯
-
交通标志: 停车标志, 禁止驶入, 禁止超车, 禁止左转, 禁止右转, 禁止掉头, 禁止停车
-
限速标志: 限速20, 限速30, 限速40, 限速50, 限速60, 限速70, 限速80, 限速100, 限速120
nc: 23
names:
0: person
1: car
2: truck
3: bus
4: motorcycle
5: red light
6: green light
7: stop sign
8: no entry
9: no overtaking
10: speed limit 20
11: speed limit 30
12: speed limit 40
13: speed limit 50
14: speed limit 60
15: speed limit 70
16: speed limit 80
17: speed limit 100
18: speed limit 120
19: no left turn
20: no right turn
21: no stopping
22: no u-turn
细节图:

标签可视化分析

2.2 配置Traffic-Violation.yaml
ps:建议填写绝对路径
path: D:/YOLO11/data/Traffic-Violation
train: images/train
val: images/val
nc: 23
names:
0: person
1: car
2: truck
3: bus
4: motorcycle
5: red light
6: green light
7: stop sign
8: no entry
9: no overtaking
10: speed limit 20
11: speed limit 30
12: speed limit 40
13: speed limit 50
14: speed limit 60
15: speed limit 70
16: speed limit 80
17: speed limit 100
18: speed limit 120
19: no left turn
20: no right turn
21: no stopping
22: no u-turn
2.3 如何训练
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
model.train(data='data/Traffic-Violation.yaml',
cache=False,
imgsz=640,
epochs=200,
batch=8,
close_mosaic=10,
device='0',
optimizer='SGD', # using SGD
project='runs/train',
name='exp',
)
2.4 训练结果可视化结果
YOLO11n summary (fused): 113 layers, 3,060,845 parameters, 0 gradients, 6.3 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 46/46 3.6it/s 12.8s
all 1470 1592 0.904 0.848 0.907 0.795
person 50 50 0.789 0.822 0.889 0.777
car 172 172 0.74 0.715 0.812 0.7
truck 167 167 0.648 0.606 0.704 0.591
bus 95 95 0.623 0.558 0.649 0.574
motorcycle 50 50 0.824 0.46 0.743 0.637
red light 48 80 0.855 0.663 0.788 0.512
green light 56 80 0.908 0.812 0.885 0.573
stop sign 80 80 1 0.985 0.995 0.935
no entry 59 60 1 0.912 0.974 0.873
no overtaking 23 26 0.906 0.923 0.933 0.794
speed limit 20 56 56 0.978 0.982 0.993 0.866
speed limit 30 71 74 1 0.959 0.987 0.922
speed limit 40 53 55 0.954 0.945 0.983 0.885
speed limit 50 68 71 0.971 0.901 0.983 0.876
speed limit 60 76 76 0.961 0.934 0.975 0.881
speed limit 70 78 78 1 0.953 0.986 0.911
speed limit 80 56 56 0.98 1 0.995 0.883
speed limit 100 52 52 0.991 0.981 0.994 0.923
speed limit 120 60 60 0.965 0.916 0.99 0.92
no left turn 29 29 1 0.886 0.945 0.83
no right turn 33 33 0.902 0.939 0.969 0.903
no stopping 72 80 0.849 0.9 0.849 0.742
no u-turn 12 12 0.948 0.75 0.835 0.773
预测结果:
3. 交通违规检测系统设计
3.1 PySide6介绍
受益于人工智能的崛起,Python语言几乎以压倒性优势在众多编程语言中异军突起,成为AI时代的首选语言。在很多情况下,我们想要以图形化方式将我们的人工智能算法打包提供给用户使用,这时候选择以python为主的GUI框架就非常合适了。
PySide是Qt公司的产品,PyQt是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别。PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。
PySide目前常见的有两个版本:PySide2和PySide6。PySide2由C++版的Qt5开发而来.,而PySide6对应的则是C++版的Qt6。从PySide6开始,PySide的命名也会与Qt的大版本号保持一致,不会再出现类似PySide2对应Qt5这种容易混淆的情况。
3.2 安装PySide6
pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple
基于PySide6开发GUI程序包含下面三个基本步骤:
- 设计GUI,图形化拖拽或手撸;
- 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
- 打包发布;
3.3 交通违规检测系统设计
更多推荐



所有评论(0)