Yolo v5 训练自己的数据从训练到调参实战详解

主要分3章,第一章先跑通模型代码,熟悉yolo v5的输入和输出;第二章训练自己的数据;第三章讲解模型参数部分


一、跑通模型

1、代码下载

2、环境配置

conda create -n 【环境名自定义】 python = 3.6
activate 【环境名自定义】

进入pytorch官网,选择复制对应版本的pytorch安装命令
pip install

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

然后缺什么库下载什么库就行了。具体查看根目录下的 requirements.txt
在这里插入图片描述

3、参数路径调整

源代码中好像没有权重和视频,如果没有自动下载的话请自行下载并保存到相应位置
这部分主要需要确认权重路径、和数据(图像或视频)路径
视频的话改为路径下指定视频名即可
在这里插入图片描述
在这里插入图片描述
这里的路径也需要改!
在这里插入图片描述

运行之前配置一下 Edit Configurations --> 选择 detect -->在Parameters 里输入 --view-img 可实时观看检测情况
ps:也可以不配置,此步骤可略过
在这里插入图片描述
在这里插入图片描述

3、运行detect.py文件

训练结束后可在根目录下的run文件夹查看检测结果
在这里插入图片描述
在这里插入图片描述

二、训练自己的数据

1.数据准备

1.1准备数据样本和标签

  • 数据标签格式
    *

  • 用到的工具:labelImg

a.安装labelImg

pip install labelImg

b.选择文件路径、选择保存路径、选择yolo模式。并在 View中选择 自动保存模式
在这里插入图片描述

2、路径创建与修改

2.1样本数据读取路径修改

# 新建文件夹 #
文件夹名称自定义,如mydata1,下所属文件夹按以下格式创建
mydata1下文件目录如下,分别将前面准备好的【训练样本】放到images下的train,【测试样本】放到images下的val;【训练标签】–> labes下的train,【测试标签】–> labels下的val
在这里插入图片描述

2.2新建并修改配置文件.yaml

  • 在根目录data下新建xxx.yaml文件
    在这里插入图片描述
  • 复制粘贴参数内容如下,路径自定义为你数据路径,类的数量名称自定义并按0、1、2、3对应排列
    在这里插入图片描述

2.3修改train.py文件中的data路径参数

指定自己创建的xxx.yaml文件路径
在这里插入图片描述

3、常用参数调节

高亮部分都是初步训练时常用可修改的,具体内容看后面的解释
parser.add_argument(’–weights’, type=str, default=ROOT / 'yolov5s.pt’, help=‘initial weights path’) #选择预训练权重模型,若default为空则用程序自带初始权重
parser.add_argument(’–cfg’, type=str, default=‘yolov5s.yaml’, help=‘model.yaml path’) #选择神经网络模型
parser.add_argument(’–data’, type=str, default=ROOT / ‘data/mydata.yaml’, help=‘dataset.yaml path’) #样本数据路径,进入到mydata.yaml文件里修改修改
parser.add_argument(’–hyp’, type=str, default=ROOT / ‘data/hyps/hyp.scratch.yaml’, help=‘hyperparameters path’) #超参数:动量、衰减率等。一般用不到
parser.add_argument(’–epochs’, type=int, default=400) #训练几轮,设定epoch数量
parser.add_argument(’–batch-size’, type=int, default=32, help=‘total batch size for all GPUs, -1 for autobatch’) #每批次的数据量,default=-1时自动调节大小
parser.add_argument(’–imgsz’, ‘–img’, ‘–img-size’, type=int, default=640, help=‘train, val image size (pixels)’)#训练集和测试集图片的像素大小,640*640
parser.add_argument(’–device’, default=’’, help=‘cuda device, i.e. 0 or 0,1,2,3 or cpu’) #用于设置运行 pytorch 框架的使用设备,是用 GPU cuda,还是 cpu
parser.add_argument(’–workers’, type=int, default=0, help=‘max dataloader workers (per RANK in DDP mode)’) #多线程:这里建议 default 设置为 0。
parser.add_argument(’–project’, default=ROOT / ‘runs/train’, help=‘save to project/name’) #用于指定训练好的模型的保存路径。
parser.add_argument(’–freeze’, type=int, default=24, help=‘Number of layers to freeze. backbone=10, all=24’) #冻结层数设置

4、train.py

运行train.py训练即可
训练结束后会在根目录下生成一个run文件夹,里面存放训练结果和权重
在这里插入图片描述

三、可修改的参数部分详解

1.总述

参数部分代码如下:

'''*****************超参数修改*****************'''
def parse_opt(known=False):
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')  #选择预训练权重模型,若default为空则用程序自带初始权重
    # parser.add_argument('--weights', type=str, default='', help='initial weights path')
    # parser.add_argument('--cfg', type=str, default='', help='model.yaml path')         #选择神经网络模型
    parser.add_argument('--cfg', type=str, default='yolov5s.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default=ROOT / 'data/mydata.yaml', help='dataset.yaml path')  #样本数据路径,进入到mydata.yaml文件里修改修改
    parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch.yaml', help='hyperparameters path') #超参数:动量、衰减率等。一般用不到
    # parser.add_argument('--epochs', type=int, default=300)
    parser.add_argument('--epochs', type=int, default=400)    #训练几轮,设定epoch数量
    parser.add_argument('--batch-size', type=int, default=32, help='total batch size for all GPUs, -1 for autobatch')  #每批次的数据量,default=-1时自动调节大小
    parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='train, val image size (pixels)')#训练集和测试集图片的像素大小,640*640
    parser.add_argument('--rect', action='store_true', help='rectangular training') 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值