Yolov5代码:https://github.com/ultralytics/yolov5
数据集:https://www.flir.com/oem/adas/adas-dataset-form/
运行环境:pytorch1.9+CUDA10.2+Python3.9(RTX 2080Ti*)
使用其他环境容易出现训练时R/P/MAP均为0的情况
一、环境配置
1.1 创建虚拟环境yolov5
1|conda create -n yolov5 python=3.9
1.2 激活虚拟环境
1|source activate
2|conda activate yolov5
1.3 安装pytorch和cuda
1|conda install pytorch==1.9.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
1.4 安装requirements.txt
1|pip install -r requirements.txt
二、数据集准备
1.数据集下载及标签转换参考
2.文件夹位置
1|--dataset
2| --train
3| --images
4| --labels
5| --val
6| --images
7| --labels
3.训练
3.1 修改文件
/models/yolov5s.yaml,将nc = 80修改为nc = 3
data文件夹下新建一个FLIR.yaml
# download command/URL (optional)
# download: https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: dataset/train/ # 128 images
val: dataset/val/ # 128 images
# number of classes
nc: 3
# class names
names: [ 'person', 'bicycle', 'car' ]
3.2 开始训练
从零开始训练:python train.py --img 640 --epochs 300 --data data/FLIR.yaml --cfg models/yolov5s.yaml --weight " "
从预训练模型进行微调:python train.py --img 640 --epochs 300 --data data/FLIR.yaml --cfg models/yolov5s.yaml --weight weights/yolov5s.pt
4.遇到的错误及解决办法
4.1 数据集标签中有重复标签
解决方法:将重复标签进行删除
4.1 P/R/mAP均为0
解决办法:看了很多其他博客说是cuda与pytorch版本不匹配,一开始使用的是cuda11.3+pytorch1.8.0(换为cuda10.2+pytorch1.9.0)。
重新训练没有问题。