一、YOLO v5训练安全帽检测数据集
1.1 下载数据集Safety-Helmet-Wearing-Dataset
1.2 环境准备
- 在pychram的terminal的conda环境下输入:pip install -r requirements.txt # install
requirements.txt的具体python、pytorch环境以及安装包
- 其中pycocotools 的Linux安装方式: pip install pycocotools; Windows: pip install pycocotools-windows。如果仍然出错可以参考这个教程。
1.3 将下载的voc类型转成coco类型
voc数据集的排列方式为:
├── VOC2028数据集根目录
│ ├── Annotations
│ │ ├── 00000.xml 单个图片的xml文件,包含具体xyhw坐标,标签类别信息,图像大小等信息
│ │ └── 00001.xml
│ └──ImageSets
│ │ ├──main
│ │ └──test.txt 所有测试集的文件名的文档
│ │ └──train.txt
│ │ └──trainval.txt
│ │ └──val.txt
│ └──JPEGImage 所有数据集的图片目录
coco数据集的排列方式为:
├── 数据集根目录
│ ├── train 训练集目录
│ │ ├── images 训练集图像目录
│ │ └── labels 训练集标签目录
│ └── val 验证集目录
│ ├── images 验证集图像目录
│ └── labels 验证集标签目录
- 使用项目的trans_voc2yolo.py,根据下载好的数据集地址修改路径,可得到coco数据类型,执行代码后会把coco类型的数据保存在当前项目下的my_yolo_dataset中。
1.4 根据数据集的分类类别(hat、person、dog)修改相应的helment.yaml文件,并将其保存在data目录下:
1.5 使用项目中的train.py,并修改相应路径。
本次在yolov5s的预训练权重基础上,使用下载好的数据集(coco类型),继续训练20个eopch。
此外,由于数据集不同,yolov5s.yaml文件的anchor对应三种尺寸特征图的先验框大小不同,因此,使用该参数可根据k-means算法生成先验框,自动调整anchor大小 。
1.6看训练完成后的结果:
召回率、精度、mAP 的计算
1.6 推理部分
使用detect.py,修改相关参数,得到预测的结果。
输入的原图
检测后的输入图