基于YOLO11的交通违规检测系统(Python源码+数据集+Pyside6界面)

简介: 本文基于YOLO11构建交通违规检测系统,涵盖23类目标(车辆、信号灯、标志等),详解数据制作(ROI裁剪优化尺度)、模型改进(C3k2、C2PSA、轻量Detect头)及训练可视化全过程,并集成PySide6实现GUI应用,助力工业落地。

 💡💡💡本文摘要:基于YOLO11的交通违规检测系统,阐述了整个数据制作和训练可视化过程

image.gif

                                                          博主简介

image.gif

AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者

深耕计算机视觉与深度学习领域,专注于目标检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。

💡 未来方向与使命

秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。


1.YOLO11介绍

Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。

image.gif

image.gif

结构图如下:

image.gif

1.1 C3k2

C3k2,结构图如下

image.gif

C3k2,继承自类C2f,其中通过c3k设置False或者Ture来决定选择使用C3k还是Bottleneck

image.gif

实现代码ultralytics/nn/modules/block.py

1.2 C2PSA介绍

借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)

image.gif

实现代码ultralytics/nn/modules/block.py

1.3 11 Detect介绍

分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):

image.gif

实现代码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

image.gif

细节图:

image.gif

标签可视化分析

image.gif

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

image.gif

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',
                )

image.gif

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

image.gif

image.gif

预测结果:

image.gif

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

image.gif

基于PySide6开发GUI程序包含下面三个基本步骤:

  • 设计GUI,图形化拖拽或手撸;
  • 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
  • 打包发布;

3.3 交通违规检测系统设计

image.gif

目录
相关文章
|
21天前
|
机器学习/深度学习 编解码 运维
红外小目标检测新突破!异常感知检测头AA-YOLO:节俭又鲁棒,小样本也能精准识别
本文提出AA-YOLO:首个将统计异常检验嵌入YOLO检测头的方法,通过指数分布建模背景,显式识别小目标为统计异常,显著降低误报率;仅需10%数据即达90%全量性能,参数比EFLNet少6倍,轻量高效;在噪声、跨域、跨模态下鲁棒性强,且可无缝适配各类YOLO及实例分割网络。
283 5
|
25天前
|
网络协议 编译器 C语言
C语言深度解析:内存对齐与结构体填充的底层逻辑
C语言中,内存对齐是CPU硬件强制要求的底层规则,直接影响结构体大小、访问性能与硬件兼容性。合理排列成员可减少填充、节省内存;滥用`#pragma pack`则易致崩溃或性能暴跌。嵌入式、网络协议与跨平台开发必备核心知识。(239字)
216 14
|
27天前
|
机器学习/深度学习 人工智能 边缘计算
转行AI需谨慎:那些半途而废的人,都忽略了这几点。
2025年AI岗位需求暴增543%,但超六成转行者半年内放弃。本文揭示五大陷阱:盲目跟风忽视赛道适配、混淆工具使用与真实能力、碎片化学习缺实战闭环、急功近利轻视伦理、为高薪而非兴趣出发,并指出科学路径才是破局关键。(239字)
482 12
|
19天前
|
人工智能 边缘计算 开发框架
2026年入局AI晚不晚?答案是:现在就是最好的时机
2026年AI已迈入“技术爆发+应用红利”黄金期:巨头筑基降低门槛,算力成本下降、工具成熟;超级个体10天可开发爆款AI应用;CAIE认证等路径让零基础者快速入局。AI不是短跑,而是马拉松——现在,正是普通人抓住红利的最佳时机。(239字)
556 10
|
23天前
|
机器学习/深度学习 开发者 内存技术
阶跃星辰 Step 3.5 Flash 预训练/中训练/训练框架全部开源!
阶跃星辰开源Step 3.5 Flash——迄今最强开源Agent基座模型,含Base/Midtrain权重及Steptron全栈训练框架,支持预训练、SFT与强化学习,专为智能体设计。已登OpenRouter榜首,获社区广泛好评。(239字)
363 22
|
18天前
|
缓存 JSON API
玩转纳斯达克与纽交所:美股数据 API 对接全指南
本文手把手教你用StockTV API对接美股(NYSE/NASDAQ)实时行情、专业K线及IPO数据,支持WebSocket极速推送、多维技术指标与全交易所覆盖,助你快速构建低延迟量化交易或金融App。(239字)
|
24天前
|
人工智能 搜索推荐 数据库
语义重构与信任锚点:Geo优化中知识图谱的战略价值与构建路径
本文探讨AI搜索时代下Geo优化的核心——知识图谱构建,解析于磊老师首创的“两大核心+四轮驱动”方法论,涵盖人性化Geo、内容交叉验证及E-E-A-T实体化等实践路径,助力企业提升AI索引精度与获客效率。(239字)
95 18
|
21天前
|
机器学习/深度学习 编解码 算法
SPMamba-YOLO:多尺度增强+全局建模,水下目标检测精度飙升4.9%!
本文提出SPMamba-YOLO水下目标检测模型:创新融合SPPELAN(增强多尺度特征与感受野)、PSA注意力(抑制背景、提升小目标判别)及Mamba状态空间模块(建模长程依赖),在URPC2022上mAP@0.5达82.5%,超越YOLOv8n 4.9%。
227 2
|
17天前
|
Arthas 人工智能 Java
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent
Arthas Agent 是基于阿里开源Java诊断工具Arthas的AI智能助手,支持自然语言提问,自动匹配排障技能、生成安全可控命令、循证推进并输出结构化报告,大幅降低线上问题定位门槛。
656 64
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent

热门文章

最新文章