一、项目背景与应用价值
工地、工厂、电力等场景中,安全帽佩戴是安全生产核心要求。传统人工巡检效率低、易漏检,基于 YOLOv11 的实时目标检测可实现7×24 小时自动监测,及时预警未佩戴行为,降低安全事故风险。
- 模型:YOLOv11n(轻量化,速度快、适合边缘部署)
- 类别:2 类(helmet 佩戴、no_helmet 未佩戴)
- 部署:云服务器训练,本地高性能电脑步骤完全一致
二、环境准备(云服务器 / 本地通用)
# 创建虚拟环境(可选) conda create -n yolov11 python=3.9 conda activate yolov11 # 安装ultralytics(官方YOLOv11库) pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 验证安装 yolo --version- 云服务器:推荐 GPU 显存≥8GB(如 RTX 3090/4090、T4、A10)
- 本地电脑:NVIDIA 显卡 + CUDA 环境,CPU 仅用于测试
三、YOLO 标准数据集目录规范
严格按 YOLO 格式组织,路径错误会导致训练失败。
四、编写 data.yaml 配置文件
创建并编辑配置
进入在当前目录下直接输入:vi /mnt/data.yaml
按i进入编辑模式,把下面内容完整粘贴进去:
# 数据集根路径 path: /mnt/dataset # 训练/验证图片相对路径 train: images/train val: images/val # 类别数量 nc: 2 # 类别名称 names: 0: helmet 1: no_helmet编辑结束后,按ESC,输入:wq保存退出。
五、启动模型训练(核心命令)
训练命令
yolo detect train model=yolo11n.pt data=/mnt/xxx(自己数据集文件夹)/data.yaml epochs=100 batch=16 imgsz=640 device=0参数说明
model=yolo11n.pt:使用轻量化预训练模型epochs=100:训练轮数,充足轮数保证精度batch=16:批次大小,根据显存调整imgsz=640:输入尺寸,兼顾精度与速度device=0:使用第一张 GPU
训练输出与模型保存
训练日志包含 mAP、Precision、Recall、Loss 曲线等指标
训练结束训练好的模型位置存在于:runs/detect/train/weights/best.pt
六、模型验证
训练完成后,在验证集评估模型效果。
yolo detect val model=runs/detect/train/weights/best.pt data=/mnt/data/data.yaml验证输出指标:
- mAP@0.5:目标检测核心精度
- Precision/Recall:精确率与召回率
- F1-score:综合评价指标
七、常见问题与优化建议
- 路径报错检查
data.yaml中path为绝对路径,图片与标签文件名一一对应。 - 显存不足减小
batch(如 8、4)或降低imgsz(如 480)。 - 精度偏低扩充数据集、增加训练轮数、清洗错误标注、使用 yolo11s/m/l 更大模型。
- 类别混淆确保标注规范,避免 helmet 与 no_helmet 标注错误。
八、总结
本文完整实现基于 YOLOv11 的安全帽佩戴检测,从环境配置到训练验证全流程可复现。训练高效,可直接用于工地安防监控,也可导出 ONNX/TensorRT 部署到摄像头、边缘盒子。