j交通违法行为检测数据集 训练无人机智能交通监控、城市安防、自动驾驶辅助等场景。深度学习YOLOV11模型如何训练交通违规检测数据集 识别检测电动车头盔佩戴 行人闯红灯 横穿马路车辆闯红灯检测数据集
无人机智能交通监控、城市安防、自动驾驶辅助等场景。深度学习YOLOV11模型如何训练交通违规检测数据集 识别检测电动车头盔佩戴 行人闯红灯 横穿马路车辆闯红灯检测数据集
文章目录

交通违规检测数据集
Yolo算法进行车辆、行人的交通违规检测任务,txt格式
7类,分别为:[‘Crossing_Violation’, ‘Crosswalk_Violation’, ‘Helmet_Violation’, ‘Normal’, ‘Passenger_Violation’, ‘Pedestrian_Violation’, ‘Trafficlight_Violation’]
训练集:4742张
验证集:390张

📊 数据集总体统计
| 项目 | 数值 |
|---|---|
| 总图像数量 | 5,132 张(训练集 4,742 + 验证集 390) |
| 图像尺寸 | 可变(常见为 1920×1080 或 1280×720,适用于监控与车载视角) |
| 类别数量 | 7 类 |
| 标注格式 | .txt(YOLO 格式,归一化坐标) |
| 适用任务 | 车辆与行人交通违规行为识别 |
| 可直接用于 | YOLOv5 / YOLOv8 / YOLOv11 等系列模型训练 |
—

🏷️ 类别定义与说明
| 类别编号 | 类别名称(英文) | 中文含义 | 备注 |
|---|---|---|---|
| 0 | Crossing_Violation | 横穿马路违规 | 行人或非机动车闯入禁止区域 |
| 1 | Crosswalk_Violation | 不走斑马线 | 行人未在斑马线上通行 |
| 2 | Helmet_Violation | 未戴头盔 | 骑电动车/摩托车未佩戴头盔 |
| 3 | Normal | 正常行为 | 无违规行为,作为负样本基准 |
| 4 | Passenger_Violation | 乘客违规 | 如副驾未系安全带、车窗探头等 |
| 5 | Pedestrian_Violation | 行人其他违规 | 如翻护栏、逆行等综合行为 |
| 6 | Trafficlight_Violation | 闯红灯 | 车辆或行人违反交通信号灯 |
—

🔢 数据集划分情况
| 数据集类型 | 图像数量 | 占比 | 用途 |
|---|---|---|---|
| 训练集(train) | 4,742 张 | ~92.4% | 模型学习特征与规则 |
| 验证集(val) | 390 张 | ~7.6% | 超参数调优与性能评估 |
⚠️ 注意:测试集未提供,建议从训练集中划分出独立测试集(如 5%)用于最终评估。
✅ YOLO 训练配置文件示例(data.yaml)
# data.yamltrain: ./dataset/images/train val: ./dataset/images/val # 类别数量nc:7# 类别名称(按索引顺序)names:['Crossing_Violation','Crosswalk_Violation','Helmet_Violation','Normal','Passenger_Violation','Pedestrian_Violation','Trafficlight_Violation']💡 使用建议
- 应用场景:智能交通监控、城市安防、自动驾驶辅助系统。
🚦 交通违规检测数据集 + YOLOv11 训练方案
✅ 支持:车辆 & 行人 违规行为识别
✅ 标签格式:txt(YOLO 格式)
✅ 类别数:7
✅ 可直接用于 YOLO 系列模型训练
✅ 提供完整Python训练脚本
📊 数据集概览
| 项目 | 内容 |
|---|---|
| 总类别数 | 7 类 |
| 类别名称 | ['Crossing_Violation', 'Crosswalk_Violation', 'Helmet_Violation', 'Normal', 'Passenger_Violation', 'Pedestrian_Violation', 'Trafficlight_Violation'] |
| 图像总数 | 5132 张 |
| - 训练集 | 4742 张 |
| - 验证集 | 390 张 |
| 标签格式 | .txt 文件(每行:class_id center_x center_y width height,归一化) |
| 应用方向 | 智能交通监管、AI 视频分析、违章自动抓拍 |
🔍 类别含义详解
| 类别英文名 | 中文解释 | 典型场景 |
|---|---|---|
Crossing_Violation | 跨越道路中心线/双黄线 | 机动车压线变道、逆行 |
Crosswalk_Violation | 不礼让斑马线 | 车辆在行人过街时未停车让行 |
Helmet_Violation | 未佩戴头盔 | 电动车骑乘人员无头盔 |
Normal | 正常状态 | 合规通行,作为背景参考 |
Passenger_Violation | 乘客违规 | 副驾未系安全带、车窗探头等 |
Pedestrian_Violation | 行人违规 | 闯红灯、翻护栏、非斑马线横穿 |
Trafficlight_Violation | 闯红灯 | 机动车或非机动车红灯通行 |
⚠️ 注意:该数据集可能是以“图像级分类+目标定位”形式标注,也可能为“逐目标检测框+类别”,请确认是否每个对象都有独立边界框。以下按标准目标检测任务设计。
🗂️ 推荐目录结构
traffic_violation_dataset/ ├── images/ │ ├── train/ # 4742 张 │ └── val/ # 390 张 ├── labels/ │ ├── train/ # 对应的 .txt 标签文件 │ └── val/ ├── traffic.yaml # YOLO 配置文件 └── train.py # 训练主程序🛠️ YOLO 配置文件:traffic.yaml
# traffic.yamltrain: ./traffic_violation_dataset/images/train val: ./traffic_violation_dataset/images/val nc:7names:['Crossing_Violation','Crosswalk_Violation','Helmet_Violation','Normal','Passenger_Violation','Pedestrian_Violation','Trafficlight_Violation']✅ 将此文件保存在项目根目录下。
🚀 YOLOv11 完整训练代码:train.py
# train.pyfrom ultralytics import YOLO import os import time # ======================= 参数配置 ======================= MODEL_NAME ="yolov11s.pt"# 推荐使用 yolov11n/s/m;小显存选 n,精度高选 m/l CONFIG_FILE ="traffic.yaml"# 数据集配置路径 EPOCHS =100 BATCH_SIZE =16# 若显存不足可设为 8 或 4 IMG_SIZE =640# 输入尺寸(可调整为 1280 提升小目标检测能力) PROJECT_NAME ="traffic_violation_detection" EXPERIMENT_NAME ="exp_traffic_yolo11" DEVICE =0if os.environ.get("CUDA_AVAILABLE")else"cpu"# 自动选择 GPU/CPU# 检查配置文件是否存在ifnot os.path.exists(CONFIG_FILE):raise FileNotFoundError(f"[ERROR] 找不到配置文件: {CONFIG_FILE}")# ======================= 加载模型 =======================print("🚀 加载 YOLOv11 模型...") model = YOLO(MODEL_NAME)# 自动下载预训练权重# ======================= 开始训练 =======================print("🔥 开始训练交通违规检测模型...") start_time = time.time() results = model.train( data=CONFIG_FILE, epochs=EPOCHS, batch=BATCH_SIZE, imgsz=IMG_SIZE, device=DEVICE, project=PROJECT_NAME, name=EXPERIMENT_NAME, exist_ok=True, patience=30,# 早停机制:验证损失连续30轮不降则停止 save=True, save_period=10,# 每10轮保存一次检查点 cache=False,# 设置为 True 可加快加载速度(需足够内存) workers=4,# 优化器设置 optimizer='AdamW', lr0=0.001,# 初始学习率 lrf=0.01,# 最终学习率 = lr0 * lrf momentum=0.937, weight_decay=0.0005,# 数据增强策略(适合交通场景) hsv_h=0.015,# 色调扰动 hsv_s=0.7, hsv_v=0.4, degrees=10.0,# 轻微旋转模拟摄像头角度变化 translate=0.2, scale=0.5, shear=2.0, flipud=0.0,# 上下翻转不合理(天空/地面不对称) fliplr=0.5,# 左右翻转增强 mosaic=1.0,# Mosaic 增强提升小目标和遮挡鲁棒性 mixup=0.1,# MixUp 缓解过拟合 copy_paste=0.1,# 对 Helmet_Violation 等稀疏类有帮助)# ======================= 输出训练耗时 ======================= training_time =(time.time()- start_time)/60print(f"✅ 训练完成!总耗时: {training_time:.2f} 分钟")print(f"📍 模型保存路径: {results.save_dir}")# ======================= 验证模型性能 =======================print("🔍 开始验证...") metrics = model.val()print(f"[email protected]: {metrics.box.map50:.4f}")print(f"[email protected]:0.95: {metrics.box.map:.4f}")print(f"Precision: {metrics.box.p:.4f}")print(f"Recall: {metrics.box.r:.4f}")# 显示各类别 AP @0.5print("\n📊 各类别 [email protected]:")for i, cls_name inenumerate(model.names):print(f" {cls_name}: {metrics.box.maps[i]:.4f}")# ======================= 导出 ONNX 模型(便于部署) =======================print("📦 导出 ONNX 模型...") onnx_path = model.export(format="onnx", dynamic=True, simplify=True)print(f"ONNX 模型已保存至: {onnx_path}")🧪 推理示例代码:inference.py
# inference.pyfrom ultralytics import YOLO import cv2 # 加载训练好的模型 model = YOLO("traffic_violation_detection/exp_traffic_yolo11/weights/best.pt")# 单张图片推理 image_path ="test.jpg" results = model(image_path, conf=0.4, iou=0.5, imgsz=640)# 可视化结果for r in results: im_array = r.plot()# 绘制检测框和标签 im = cv2.cvtColor(im_array, cv2.COLOR_RGB2BGR) cv2.imshow("Traffic Violation Detection", im) cv2.waitKey(0) cv2.imwrite("result_detected.jpg", im)# 打印检测详情for r in results: boxes = r.boxes for box in boxes: cls_id =int(box.cls[0]) conf =float(box.conf[0]) class_name = model.names[cls_id]print(f"检测到违规行为: {class_name} (置信度: {conf:.2f})")🎯 应用场景建议
| 场景 | 实现方式 |
|---|---|
| 🚦 电子警察系统升级 | 替代传统触发式抓拍,实现全天候 AI 主动识别 |
| 🏙️ 智慧路口管理平台 | 接入多个摄像头,统计违规类型分布与热点区域 |
| 🛵 电动车头盔佩戴监管 | 重点识别 Helmet_Violation,联动广播提醒 |
| 🚶 行人闯红灯预警 | 检测 Pedestrian_Violation + Trafficlight_Violation 联合判断 |
| 📊 交通治理数据分析 | 导出 CSV 报表,辅助交管部门制定政策 |
⚠️ 注意事项与优化建议
| 问题 | 解决方案 |
|---|---|
Normal 类干扰检测 | 在推理阶段可只关注前6个“违规”类,或将 Normal 视为负样本 |
| 小目标难检(如远处头盔) | 使用更高分辨率输入(如 imgsz=1280)或添加超分模块 |
| 类别不平衡 | 对 Helmet_Violation、Passenger_Violation 使用 Copy-Paste 增强 |
| 标注模糊 | 检查 .txt 文件是否为每辆车/人单独标注,避免整图打标 |
| 实时性要求高 | 导出为 TensorRT,在 Jetson 设备上运行 |