数据集准备
在项目代码平级路径下创建数据集路径,包括.yaml的数据集配置文件
训练集,验证集,测试集路径如下:
包括图像和标注,图像和标注对应文件名相同
标注为.txt的yolo格式如下:
类别 x y w h (坐标值为归一化后的相对值)
.yaml的数据集配置文件如下:
训练模型
环境:python3.6 + torch1.6.0 + cu101 + CUDA10.0 + cudnn7.6.0
在train.py中指定配置参数
- weights指定初始化的权重参数,可以使用yolov5s在coco上的预训练权重,这里不指定,随机初始化
- cfg指定网络配置,这里使用yolov5s
- data指定数据集配置文件的路径
- epochs指定训练轮数
- batch-size指定批量大小
- 运行train.py开始训练
一个半小时训练结束
预测框损失=0.03735
置信度损失=0.05017
分类损失=0.002577
总损失=0.09009
训练日志
- 训练日志保存在runs/exp0/路径下
- weights路径下保存最后一轮的训练结果参数和验证结果最好的参数
- labels.png可视化数据集中各个类别目标的样本数量;目标的中心(x,y)的分布,颜色越深越密集;目标的宽高;
- precision-recall_curve.png可视化P-R曲线
- results.png可视化训练集和验证集上的损失,验证集上的准确率,召回率,mAP等
- results.txt保存训练过程中每个轮次的损失,评估指标值等
- test_batch0可视化验证集的第一个批次的真实标注和预测结果
- train_batch可视化训练集的前几个批次的预测结果
模型测试
在detect.py中指定以下参数
- weights指定训练好的权重参数,这里使用上步训练好的最佳参数
- source指定预测图像的路径
- output指定预测结果保存路径
- conf-thres指定置信度阈值
运行detect.py即可预测
其中一张测试结果如下:
整个项目代码:https://download.csdn.net/download/cyj5201314/19374462