news 2026/5/2 21:45:07

非机动车头盔佩戴检测数据集 电动车头盔佩戴检测数据集 智慧交通管理 自动识别未戴头盔、违规载人、无牌电动车等违法行为 城市安防监控 在重点路口部署 AI 摄像头,实时预警高风险行为 交管执法辅助

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
非机动车头盔佩戴检测数据集 电动车头盔佩戴检测数据集 智慧交通管理 自动识别未戴头盔、违规载人、无牌电动车等违法行为 城市安防监控 在重点路口部署 AI 摄像头,实时预警高风险行为 交管执法辅助

非机动车车牌数据集(可识别车牌区域)、

电动车、头盔、车牌、骑行人员数据集
已标注标签为电动车,头盔,未戴头盔,车牌及骑行人
可用于训练yolo模型
已划分训练集验证集
有多人和单人,类别齐全,角度多样化,清晰度高
数据集数量足够用于yolo训练 亲测有效
注:训练后可以识别电动车 头盔(戴头盔 未带头盔) 车牌区域(只能提取出车牌的区域 不能直接识别车牌号码) 骑行人员 乘坐人员


1

1

以下是非机动车场景多目标检测数据集


📊 非机动车场景多目标检测数据集概览表

项目内容
数据集名称非机动车场景多目标检测数据集(含电动车、头盔、车牌、骑行人员)
总图像数量足量(具体数量未公开,但“足够用于 YOLO 训练”,通常 ≥ 5,000 张)
图像格式JPG / PNG(高清晰度,分辨率适配目标检测)
标注格式YOLO 格式(.txt文件,归一化坐标:class x_center y_center width height
数据划分已科学划分为训练集(train)验证集(val)(比例通常为 8:2 或 9:1)
兼容框架YOLOv5 / YOLOv6 /YOLOv8/ YOLO11 等全系列通用
采集场景城市道路、路口、小区、校园等真实交通环境
图像特点- 多角度(正面、侧面、斜视)- 多人/单人场景- 光照多样(白天、傍晚、阴天)- 高清晰度,目标清晰可辨

🗂️ 类别定义与说明表

类别ID类别名称(英文标签)中文含义功能说明
0electric_bike电动车检测非机动车主体(含车体)
1helmet戴头盔骑行人员佩戴头盔的头部区域
2no_helmet未戴头盔骑行人员未佩戴头盔的头部区域
3license_plate车牌区域仅定位车牌位置,不识别字符内容(需配合 OCR 模型)
4rider骑行人员驾驶电动车的人员(主骑手)
5passenger乘坐人员电动车上的乘客(如后座儿童、成人)

共 6 个类别,覆盖非机动车交通监管核心要素
“头盔”与“未戴头盔”分开标注,便于安全合规判断
车牌仅作区域检测,输出 bounding box,不包含 OCR 功能


📁 推荐目录结构(标准 YOLO 格式)

non_motor_vehicle_dataset/ ├── images/ │ ├── train/ # 训练图像 │ └── val/ # 验证图像 ├── labels/ │ ├── train/ # 训练标签(.txt) │ └── val/ # 验证标签(.txt) └── data.yaml # YOLO 配置文件

📄 示例data.yaml配置文件

# non_motor_vehicle_dataset/data.yamltrain:./images/trainval:./images/valnc:6names:['electric_bike','helmet','no_helmet','license_plate','rider','passenger']

🌐 典型应用场景

应用领域具体用途
智慧交通管理自动识别未戴头盔、违规载人、无牌电动车等违法行为
城市安防监控在重点路口部署 AI 摄像头,实时预警高风险行为
交管执法辅助为交警提供违章证据(如截图+车牌区域定位)
保险风控分析骑行安全行为,用于电动自行车保险定价
科研与竞赛多目标、多状态(戴/未戴头盔)检测 benchmark


以下是针对非机动车场景多目标检测数据集(含电动车、头盔、车牌区域、骑行人员等 6 类)的完整 YOLOv8 训练代码,特别优化了车牌区域定位精度,包含数据配置、训练脚本、增强策略、评估与推理示例,可直接运行。


✅ 一、环境准备

# 安装依赖(Python ≥ 3.8)pipinstallultralytics opencv-python numpy matplotlib tqdm# 可选:升级 PyTorch(GPU 用户)pipinstalltorch torchvision --index-url https://download.pytorch.org/whl/cu118

✅ 二、数据集目录结构(YOLO 格式)

确保你的数据组织如下:

non_motor_vehicle_dataset/ ├── images/ │ ├── train/ # 训练图像(JPG/PNG) │ └── val/ # 验证图像 ├── labels/ │ ├── train/ # 对应 .txt 标签 │ └── val/ └── data.yaml # 配置文件

✅ 三、data.yaml配置文件

# non_motor_vehicle_dataset/data.yamltrain:./images/trainval:./images/valnc:6names:['electric_bike','helmet','no_helmet','license_plate','rider','passenger']

⚠️ 路径使用相对路径,与训练脚本同级。


✅ 四、YOLOv8 完整训练脚本(重点优化车牌定位)

保存为train_non_motor_vehicle.py

# train_non_motor_vehicle.pyfromultralyticsimportYOLOimporttorchimportos# 检查数据路径dataset_path="non_motor_vehicle_dataset"ifnotos.path.exists(dataset_path):raiseFileNotFoundError(f"数据集路径{dataset_path}不存在!")device='cuda'iftorch.cuda.is_available()else'cpu'print(f"🚀 使用设备:{device}")# 加载模型(推荐 yolov8s,平衡精度与速度;若追求车牌精度可用 yolov8m)model=YOLO('yolov8s.pt')# 开始训练 —— 特别优化小目标(车牌)检测results=model.train(data=os.path.join(dataset_path,'data.yaml'),epochs=150,# 建议 120~200 轮(小目标收敛慢)imgsz=1280,# ✅ 关键!提升小目标(车牌)分辨率batch=16,# 1280 输入下显存占用高,RTX 3060 建议 batch=16name='non_motor_yolov8s_1280',# 实验名称device=device,# 🔍 针对车牌(小目标)的数据增强策略hsv_h=0.015,hsv_s=0.7,hsv_v=0.5,degrees=10.0,# 小角度旋转(模拟视角变化)translate=0.2,# 更大平移(让车牌出现在不同位置)scale=0.8,# 缩放范围更大mosaic=1.0,# ✅ 强烈启用!将小车牌拼接到新背景mixup=0.1,# 辅助提升泛化flipud=0.0,# 不上下翻转fliplr=0.5,# 左右翻转(合理)# 训练策略patience=30,# 早停:30 轮无提升save_period=10,workers=8,cache=False# 若内存充足可设 True)print("✅ 训练完成!")print(f"最佳模型: runs/detect/non_motor_yolov8s_1280/weights/best.pt")

✅ 五、关键优化点说明(提升车牌定位精度)

策略作用
imgsz=1280提高输入分辨率,使小车牌在特征图中占据更多像素,避免被忽略
mosaic=1.0将 4 张图拼接,增加小目标出现频率和上下文多样性
更大的translatescale模拟车牌在图像中不同位置和尺度
使用 YOLOv8s/m 而非 n更深的网络对小目标特征提取更强
避免过度裁剪确保原始标注中车牌未被截断(数据质量是前提)

💡实测建议

  • 若 GPU 显存不足,可先用imgsz=640训练,再用best.pt作为预训练权重,在imgsz=1280下微调(fine-tune)。

✅ 六、模型评估

# 在验证集上评估yolo detect val\model=runs/detect/non_motor_yolov8s_1280/weights/best.pt\data=non_motor_vehicle_dataset/data.yaml

关注license_plate类别的 AP@0.5,高质量数据集通常可达90%+


✅ 七、推理示例(提取车牌区域)

# infer_license_plate.pyfromultralyticsimportYOLOimportcv2 model=YOLO('runs/detect/non_motor_yolov8s_1280/weights/best.pt')# 推理图像results=model.predict(source='test_ebike.jpg',conf=0.4,# 车牌可适当降低置信度(如 0.3~0.4)iou=0.45,# NMS IoU,避免重叠框save=True)# 提取车牌区域并保存forrinresults:boxes=r.boxes img=r.orig_img# 原始图像 (H, W, C)fori,boxinenumerate(boxes):cls=int(box.cls[0])ifmodel.names[cls]=='license_plate':xyxy=box.xyxy[0].cpu().numpy().astype(int)x1,y1,x2,y2=xyxy plate_crop=img[y1:y2,x1:x2]cv2.imwrite(f'plate_{i}.jpg',plate_crop)print(f"✅ 车牌区域已保存: plate_{i}.jpg")

✅ 八、后续 OCR 集成建议(完整车牌识别系统)

  1. 车牌区域检测→ 本模型输出
  2. 字符识别→ 接入 OCR 模型:
    • 开源方案:EasyOCRPaddleOCRMMOCR
    • 示例:
      importeasyocr reader=easyocr.Reader(['en'])# 中文可加 'ch_sim'result=reader.readtext('plate_0.jpg')print("识别结果:",result)

📌 注意:非机动车车牌格式与机动车不同(如“京·A12345”),需确保 OCR 模型支持相应字符集。


✅ 九、部署建议

场景方案
边缘设备(Jetson)导出 TensorRT:yolo export model=best.pt format=engine imgsz=1280
Web API用 FastAPI 封装检测 + OCR
批量处理遍历视频帧,提取所有车牌区域用于归档

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 13:05:56

什么是射频组合功率

文章目录如何计算射频组合功率射频组合功率和实际发射功率、天线增益有什么关系天线越多,功率越大,信号越强么射频组合功率是指一台AP中多路射频的发射功率聚合,是AP天线的输入功率。射频组合功率经过天线增益后,再减去线路损耗即…

作者头像 李华
网站建设 2026/4/24 11:01:24

豆包真正的对手不是DeepSeek,而是千问

AI应用的终极战场正在悄然到来。根据新京报发布的最新榜单,截至2025年11月,中国AI应用月活排名前三为豆包(2.72亿)、DeepSeek(1.63亿)和夸克(9546万),腾讯元宝以5305万位…

作者头像 李华
网站建设 2026/4/30 16:26:42

深入理解 MD5:原理、应用场景、代码实现及安全性分析

在软件开发中,我们经常听到 MD5 这个词。无论是用于数据库中的密码存储,还是下载文件时的完整性校验,MD5 似乎无处不在。虽然现在有了更安全的算法(如 SHA-256、Bcrypt),但在很多非高安全级别的场景下&…

作者头像 李华
网站建设 2026/5/1 9:46:17

【新】基于SSM的高校自助洗衣系统【源码+文档+调试】

💕💕发布人: 星河码客 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。javaweb,ssm,springboot等项目&…

作者头像 李华
网站建设 2026/4/26 19:41:50

阿里领导给的Java八股文,包括15条技术线,已助1900人进入大厂

为了更高的薪水跳槽无可厚非,但你要把握好一个度。举个例子,如果你每次都只是为了能增长3%的年薪,而频繁地换工作。当HR看到你的简历时,你会被认为是一个对公司没有忠心、对自己的事业没有远见的人如何准备?除了平时的…

作者头像 李华