【YOLOV5】训练自己的数据集

1.使用VOC数据集
2.划分训练集,验证集、测试集
3.修改配置
3.1新建 data/yolo.yaml
加入train、test 地址
修改类别数量与名称
3.2修改模型参数
model/yolov5s.yaml 类别
yolov5可以自动计算anchor
4.下载预训练模型
5.修改train.py 的参数

6.训练

python train.py --img 640 --batch 16 --data data/yolo.yaml --cfg smodels/yolov5s.yaml --weights weights/yolov5s.pt
--epochs 300

7.可视化 tensorboard

tensorboard --logdir runs/~/
生成日志的文件夹上一层目录

8.测试 修改test.py 参数
python test.py --data data/yolo.yaml --weights runs/best.py #数据路径,训练好的权重路径,

tips:yolov5会自动计算anchor box
3.1中地址冒号后面需要加一个空格
9. 调参
9.1 置信度阈值 val.py line 89

  def run(conf_thres=0.3
)

9.2 nms的IoU阈值 train.py line413 默认0.6

val.run(iou_thres = 0.6
)

9.3 损失函数 loss.py line135

iou = bbox_iou(CIoU=False
)

使用其他函数在utils/metrics.py line 192所示,

def bbox_iou(GIoU/DIoU/CIoU=TRUE
)

9.4 NMS筛选算法
val.py line185 out=non_max_suppression()
utils/general.py line630 merge=FALSE,不使用merge-nms

9.5 超参数
data/hyps/hyp.scratch.yaml
lr0 初始学习率
lrf 最终学习率=lr0*lrf
momenrum 优化器SGD动量
iou_t已经在6.0注释掉,没有用
fl_gamma focal loss的系数,默认1.5,0是不使用

box:0.05, 预测框损失系数
cls:0.5, 类别损失系数
cls_pw:1, 分类BCEloss的正样本权重,
obj:物体损失系数 obj_pw :物体BCEloss中正样本权重
iou_t:0.2 iou训练阈值
anchor_t:4 anchor多尺度阈值
fl_gamma:0 focal loss 不使用
hsv_h,hsv_s,hsv_v 图像色调、饱和度、亮度
degress 图像旋转
translate 图像转换
scale 图像比例
shear 图像裁剪(度)
perspective :图像透视(分数)
flipud :上下翻转概率
fliplr :左右翻转概率
mosaic :马赛克增强概率
mixup :图像混合概率
copy_paste : 复制粘贴(概率)

参考链接:https://blog.csdn.net/qq_36756866/article/details/109111065
https://blog.csdn.net/qq_39542170/article/details/109242027

版权声明:本文为CSDN博主「ghostype」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ghostype/article/details/121993101

ghostype

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐