yolov5代码

一:运行train.py

在train.py文件,在前面的地方,加入os.environ["GIT_PYTHON_REFRESH"] = "quiet" 

在我下载的yolov5的代码里,我并没有看见import os

训练YOLOv5模型遇到的问题及解决办法

二:划分数据集

建立datasets文件夹,放入images和Annotions文件夹,里面放好图片和标注的文件(txt),在建立一个空的文件夹ImageSets,放入一会儿划分的数据集

具体如何划分:

【yolov5】将标注好的数据集进行划分(附完整可运行python代码)

但这几行代码需要修改,

  • file_path: 图片所在位置,就是image文件夹
  • xml_path: 标签所在位置,就是Annotation文件夹
  • new_file_path: 划分后三个文件的保存位置,就是ImageSets文件夹
  • 最后一行是设置划分比例,这里的比例分配大家可以随便划分,我选取的是7:1:2。

三:修改配置文件

1.修改数据集配置文件

在data文件夹下,建立自己数据的yaml文件,按照自己的数据集修改

注意:冒号后面需要加空格,否则会被认为是字符串而不是字典。

2.修改模型配置文件

在models文件夹下,有不同网络模型大小的结构,因为使用的是 yolov5s.pt 这个预训练权重,所以yolo5s.yaml文件进行修改,先复制一份,再重新命名。

nc:类别个数

四:训练模型

打开train.py,在参数这,进行修改

-weight : 先选用官方的yolov5s.pt权重,当自己的训练完成后可更换为自己的权重

--cfg: 选用上一步model目录下我们刚才改好的模型配置文件

parser.add_argument("--cfg", type=str, default=ROOT / "models/yolo5s.yaml", help="model.yaml path")

--data: 选用上一步data目录下我们刚才改好的数据集配置文件

parser.add_argument("--data", type=str, default=ROOT / "data/.。。.yaml", help="dataset.yaml path")

--epoch: 指的就是训练过程中整个数据集将被迭代多少轮,默认是100,显卡不行就调小点

parser.add_argument("--epochs", type=int, default=100, help="total training epochs")

-batch-size: 一次看完多少张图片才进行权重更新,默认是16,显卡不行就调小点

--workers: dataloader的最大worker数量,一般用来处理多线程问题,默认是8,显卡不行就调小点

然后就可以运行train.py文件了,训练结果会保存在 runs 的 train文件 里。

五:启用tensorboard查看参数

  yolov5里面有写好的tensorbord函数,可以运行命令就可以调用tensorbord,然后查看tensorbord了。首先打开pycharm的命令控制终端,输入如下命令,就会出现一个网址地址,将那行网址复制下来到浏览器打开就可以看到训练的过程了

tensorboard --logdir=runs/train

但是出现了问题:

按 ctrl+c 终端可进行再次输入,目前还没找到解决方法

六:结果分析

  • box_loss: 推测为GIoU损失函数均值,越小方框越准;
  • obj_loss: 推测为目标检测loss均值,越小目标检测越准;
  • cls_loss: 推测为分类loss均值,越小分类越准;
  • precision: 准确率(找对的/找到的);
  • recall: 召回率(找对的/该找对的);
  • mAP@0.5 & mAP@0.5:0.95: 就是mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。(0.5是iou阈值=0.5时mAP的值),mAP只是一个形容PR曲线面积的代替词叫做平均准确率,越高越好。

yolov5训练相关参数解释

目标检测---教你利用yolov5训练自己的目标检测模型

七:Val

修改data:

parser.add_argument("--data", type=str, default=ROOT / "data/coco.yaml", help="dataset.yaml path")

修改weights:

parser.add_argument("--weights", nargs="+", type=str, default=ROOT / "runs/train/exp2/weights/best.pt", help="model path(s)")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值