YoloV5目标检测模型训练

YoloV5目标检测模型训练

图片标注

使用labelimg进行图片标注

# 安装
pip install labelimg

# 启动(在image_root目录启动)
# image_root              // 数据标注根目录
# ├─images                // 图片存放目录
# ├─labels                // 标注结果存放目录
# └─labels.txt            // 预加载标签,一行一个

labelimg images labels.txt

Snipaste_2023-03-31_11-52-15.jpg

模型训练

以yolov5-7.0为例

1、从GitHub下载zip包或者克隆代码

2、准备数据集

# 数据集目录
# image_root              // 数据标注根目录
# ├─train                 // 训练集
# | ├─images              // 图片存放目录
# | └─labels              // 标注结果存放目录
# ├─val                   // 验证集
# | ├─images              // 图片存放目录
# | └─labels              // 标注结果存放目录
# └─data.yaml             // 数据集配置

data.yaml配置:
path: data/image_root  # dataset root dir  
train: train  # train images (relative to 'path') 118287 images  
val: val  # val images (relative to 'path') 5000 images  
# test: test-dev2017.txt  # 20288 of 40670 images, submit to   
  
# Classes  
nc: 2  # number of classes  
names: [
'class1',
'class2'
]

3、下载模型

Github releases下载预训练模型,可根据需要选择模型大小:yolov5s.pt、yolov5m.pt、yolov5l.pt、yolov5x.pt。将下载好的模型放在yolov5源码的models目录中,然后将选择的模型对应yaml文件中的nc修改为自己的分类数。

4、修改训练参数并启动训练

# 修改train.py中的parse_opt()函数
# 主要修改以下几个,其余根据需要修改
def parse_opt(known=False):  
	# 初始模型权重
    parser.add_argument('--weights', type=str, default=ROOT / 'models/yolov5m.pt', help='initial weights path')  
    # 模型配置
    parser.add_argument('--cfg', type=str, default=ROOT / 'models/yolov5m_2.yaml', help='model.yaml path')  
    # 训练数据集配置
    parser.add_argument('--data', type=str, default='image_root/data.yaml', help='dataset.yaml path')  
    # 超参配置
    parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')  
    # 训练迭代数
    parser.add_argument('--epochs', type=int, default=100, help='total training epochs')  
    # 训练批次大小
    parser.add_argument('--batch-size', type=int, default=12, help='total batch size for all GPUs, -1 for autobatch')  

5、根据训练结果修改超参

lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)  
lrf: 0.001  # final OneCycleLR learning rate (lr0 * lrf)

模型预测

使用detect.py预测

原链接:YoloV5目标检测模型训练


最后修改于 2023-09-21