SafetyHelmetWearing-Dataset
收藏SafetyHelmetWearing-Dataset(安全帽佩戴检测数据集)
简介
SHWD 数据集用于安全帽佩戴和人头检测,包含 7581 张图像,其中有 9044 个佩戴安全帽的对象(正样本)和 111514 个未佩戴安全帽的对象(负样本)。正样本来自谷歌或百度,手动标注使用 LabelImg 工具。部分负样本来自 SCUT-HEAD,并对原始数据进行了修正,使其可以直接加载为 Pascal VOC 格式。此外,还提供了一些使用 MXNet GluonCV 预训练的模型。
数据集和模型下载
数据集
模型
基准测试
| 模型 | darknet | mobile1.0 | mobile0.25 |
|---|---|---|---|
| map | 88.5 | 86.3 | 75.0 |
如何使用数据集
数据集标注为 Pascal VOC 格式:
---VOC2028
---Annotations
---ImageSets
---JPEGImages
任务包含两个对象类别:“hat”(正样本)和“person”(负样本)。
如何运行
依赖
确保安装了 MXNet、GluonCV 和 OpenCV。
使用预训练模型进行测试
有两种推理方式:
第一种方式
从链接下载模型:
运行 "python test_yolo.py" 并设置选项,如: --network: darknet/mobile1.0/mobile0.25 网络,默认 darknet53; --threshold: 过滤对象的置信度; --gpu: 使用 GPU 或 CPU,默认 GPU; --short: 原始图像的短边输入尺寸。
第二种方式,使用 mxnet symbol 进行推理
下载 symbol 模型:
运行 "python test_symbol.py"
注意事项
- 提供了三种不同大小的 yolo 模型,默认使用 darknet53。
- 参数 "short" 表示原始图像的短边输入尺寸,可根据需要调整。
- 超参数 "threshold" 表示检测的置信度,可根据不同任务调整。
如何训练
在 "train_yolo.py" 文件中设置数据集路径,例如:
train_dataset = VOCLike(root=D:VOCdevkit, splits=[(2028, trainval)]) val_dataset = VOCLike(root=D:VOCdevkit, splits=[(2028, test)])
然后设置训练选项并开始训练:
python train_yolo.py --batch-size 4 -j 4 --warmup-epochs 3
注意事项
- 训练 yolo 时常见的问题是梯度爆炸,尝试更多 epoch 进行预热或使用较小的学习率。
- 数据集加载在 CPU 上花费较多时间,如果有多个 CPU 核心,可以增加 "-j" 的数量以提高训练速度。
- 如果在 Windows 上训练,程序有时会卡住,请参考相关讨论。如果在 Linux 上训练,确保有足够的共享内存。




