带标注的驾驶员安全带识别数据集,识别率99.5%,可识别有无系安全带,支持yolo,coco json,pascal voc xml格式
·
驾驶员安全带识别数据集:高精度目标检测实战指南
摘要:本文详细介绍了一个高质量的驾驶员安全带识别数据集,该数据集标注准确,识别率高达99.5%,支持YOLO、COCO JSON、Pascal VOC XML等多种格式。文章包含数据集介绍、标签说明、数据拆分、预处理方法、训练指标、模型训练步骤以及完整的验证测试代码,为计算机视觉开发者提供一站式解决方案。
一、数据集概述
本数据集专注于驾驶员安全带检测任务,包含大量真实场景下的驾驶员图像,每张图像都经过精确标注,可用于训练高精度的目标检测模型。数据集的主要特点包括:
- 高识别率:经过验证,模型在该数据集上训练后识别率可达99.5%
- 单一类别:专注于"未系安全带"检测,标签清晰明确
- 多格式支持:支持YOLO、COCO JSON、Pascal VOC XML三种主流标注格式
- 真实场景:采集自多种光照条件和驾驶环境,具有较好的泛化能力
二、数据集标签说明
数据集仅包含一个检测类别:
标签名称: noSeatbelt(未系安全带)
标签格式: names: ['noSeatbelt']
数据集示例图像:

三、数据集拆分与统计
| 数据集类型 | 图片数量 | 占比 | 用途说明 |
|---|---|---|---|
| 训练集 | 529张 | 69.8% | 用于模型参数训练和优化 |
| 验证集 | 151张 | 19.9% | 用于训练过程中的模型评估和超参数调整 |
| 测试集 | 76张 | 10.3% | 用于最终模型性能评估,不参与训练过程 |
| 总计 | 756张 | 100% | 完整数据集规模 |
四、数据预处理与增强
4.1 图像预处理
- 调整大小:所有图像统一拉伸至640×640像素,保持YOLO系列模型的输入要求
- 归一化:像素值归一化到[0,1]范围
- 格式转换:统一转换为RGB三通道格式
4.2 数据增强策略
本数据集在训练过程中未使用数据增强,主要基于以下考虑:
- 数据集本身已包含足够的多样性
- 避免过度增强导致模型学习到不真实的特征
- 保持测试环境与训练环境的一致性
五、训练指标与可视化
5.1 训练参数配置

5.2 训练过程可视化
以下图表展示了模型训练过程中的关键指标变化:
训练损失曲线:

精度-召回曲线:

混淆矩阵:

F1置信度曲线:

PR曲线:

六、数据集下载与使用
6.1 下载链接
其他格式需求:如需COCO JSON或Pascal VOC XML格式,请在文章下方留言,作者会及时提供。
6.2 YOLO模型训练步骤
- 下载数据集:点击上方链接下载YOLO格式数据集
- 解压文件:将下载的压缩包解压到当前工作目录
- 获取训练脚本:访问作者Git仓库获取训练代码:
- 复制训练脚本:将仓库中的训练模型脚本复制到数据集目录下
- 开始训练:根据使用的YOLO版本执行相应命令,例如使用YOLOv8:
python train_yolov8.py

七、模型验证与测试
7.1 验证测试代码
以下Python代码展示了如何使用训练好的模型进行推理和验证:
# 需要安装:pip install ultralytics opencv-python
from ultralytics import YOLO
import cv2
===================== 1. 加载训练好的YOLO模型 =====================
加载最佳模型权重(best.pt)
model = YOLO("best.pt")
===================== 2. 推理配置 =====================
image_path = "326_jpg.rf.8ad64cc0668df32c4e5f59b50e899e9c.jpg" # 测试图片路径
save_result = True # 是否保存标注后的图像
===================== 3. 执行推理 =====================
results = model.predict(
source=image_path,
conf=0.01, # 置信度阈值(低于该值忽略)
save=False, # 关闭默认保存,使用自定义保存
verbose=False # 关闭冗余日志输出
)
===================== 4. 解析推理结果 =====================
print("=" * 50)
print("YOLO 推理结果(目标区域 + 标注信息)")
print("=" * 50)
读取原始图像用于绘制检测框
img = cv2.imread(image_path)
遍历所有检测到的目标
for idx, result in enumerate(results):
boxes = result.boxes # 获取所有检测框
for box in boxes:
# ========== 提取目标区域坐标 ==========
# xyxy格式:左上角x, 左上角y, 右下角x, 右下角y
x1, y1, x2, y2 = box.xyxy[0].cpu().numpy()
width = x2 - x1 # 边界框宽度
height = y2 - y1 # 边界框高度
# ========== 提取标注信息 ==========
cls_id = int(box.cls[0]) # 类别ID
cls_name = model.names[cls_id] # 类别名称
confidence = float(box.conf[0]) # 置信度
# ========== 打印检测信息 ==========
print(f"目标 {idx + 1}:")
print(f" 标注类别:{cls_name}")
print(f" 置信度:{confidence:.2%}")
print(f" 目标区域坐标:")
print(f" 左上角 ({x1:.1f}, {y1:.1f})")
print(f" 右下角 ({x2:.1f}, {y2:.1f})")
print(f" 宽×高:{width:.1f} × {height:.1f}")
print("-" * 30)
# ========== 在图像上绘制检测框 ==========
# 绘制绿色边界框
cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
# 添加类别和置信度标签
cv2.putText(img, f"{cls_name} {confidence:.2f}",
(int(x1), int(y1) - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
===================== 5. 保存和显示结果 =====================
if save_result:
cv2.imwrite("yolo_result.jpg", img)
print("✅ 标注图片已保存为:yolo_result.jpg")
显示检测结果(可选)
cv2.imshow("YOLO Detection Result", img)
如需保持窗口显示,取消下面两行的注释
cv2.waitKey(0)
cv2.destroyAllWindows()
7.2 代码说明
- 模型加载:使用
YOLO("best.pt")加载训练好的最佳模型 - 推理配置:设置置信度阈值、是否保存结果等参数
- 结果解析:提取边界框坐标、类别信息和置信度
- 可视化:在原始图像上绘制检测框和标签
- 结果保存:将标注后的图像保存为
yolo_result.jpg
八、总结与建议
本数据集为驾驶员安全带检测任务提供了高质量的训练资源,具有以下优势:
- 高质量标注:所有图像都经过人工审核,标注准确度高
- 格式兼容性好:支持多种主流目标检测框架
- 训练结果可靠:在实际测试中达到99.5%的识别率
- 配套资源完整:提供完整的训练脚本和验证代码
使用建议:
- 建议使用YOLOv8或更新版本的YOLO模型进行训练
- 可根据实际需求调整数据增强策略
- 在部署前务必在真实场景中进行充分测试
- 关注模型在不同光照和角度下的表现
希望本数据集和配套代码能为您的计算机视觉项目提供有力支持!如有任何问题或需要其他格式的数据集,欢迎在评论区留言讨论。
yAllWindows()
更多推荐
所有评论(0)