YOLOv7快速上手训练自定义数据集

YOLOV4的作者团队联合几位大佬已经发布了YOLOv7,记录下如何自定义训练自己的数据集模型。快速上手,如果需要细节操作还是需要自己仔细研究的。本文的目的就是帮助大家快速上手,能跑出模型结果,调优问题需要大家自己研究了。

准备工作

YOLOv7模型下载

首先是YOLOv7的链接地址github-yolov7,下载完解压即可

图像标注软件

图像标注软件有很多labelmelabellmg都可以,标注生成标注文件,然后去制作成数据集格式,我这里采用传统的yolo格式,文件以txt结尾,也可以是xml结尾的那就做VOC数据集就行。

这是标注成的txt标注文件,0代表标签名,从0起步,文件名与图像名字一一对应。
在这里插入图片描述
一般会生成一个classes.txt文件,没有就自己做一个放到数据集里,和标签中第一个数字对应的,我的binding代表0,1代表 debinding。
在这里插入图片描述

数据集准备

传统数据集格式如下,完成后将数据集放至yolo文件夹下

dataset
     -images
     	--train    (放训练集图片)
     	--val        (放验证集图片)
     -labels
     	--train  (放训练集标签文件 .txt结尾,加一个classes文件,说明类型和标签的对应)
     	--val			(放验证集标签文件 .txt结尾,加一个classes文件,说明类型和标签的对应)

VOC格式如下

Annotations  (放标注文件 .xml后缀)
ImageSets   
	--Main   
		test.txt  (放测试集图片地址或者图片名字)
		train.txt
		trainval.txt
		val.txt
JPEGImages (放所有图片)

安装必要的包

将终端切换至YOLOv7目录下,输入 pip install -r requirements.txt 即可自动安装需要的包,注意GPU训练环境可能要自行去pytorch官网安装对应版本,否则可能会跑不动,版本不对也会有问题。这里建议重开一个虚拟环境来跑,减少问题。

快速设置

从github页面下载迁移训练模型, 放至文件夹下,可以自己开个权重文件夹放进去,weights。
在这里插入图片描述

yaml配置文件修改

在YOLO文件夹下找到data文件夹,新建一个.yaml配置文件。名字随意,我设置的是mytrain.ymal
在文件内写入以下配置即可

我的数据集名称 custom_dataset

train: ./custom_dataset/images/train     
val: ./custom_dataset/images/val
test:  # test images (optional)

nc: 2    #(类别数)
names: ['binding','debinding']      # 类别名字

cfg文件修改

在cfg下找到yolov7.yaml,双击打开修改类别为2

训练文件修改

训练文件第522开始是参数设置,可以在default里直接修改参数运行,也可以用终端调用参数的方式进行设置训练。
简单修改前6个参数即可,其他内容可以按需修改

    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default='weights/yolov7_training.pt', help='initial weights path')
    parser.add_argument('--cfg', type=str, default='cfg/training/yolov7.yaml', help='model.yaml path')
    parser.add_argument('--data', type=str, default='data/mytrain.yaml', help='data.yaml path')
    parser.add_argument('--hyp', type=str, default='data/hyp.scratch.custom.yaml', help='hyperparameters path')
    parser.add_argument('--epochs', type=int, default=300)
    parser.add_argument('--batch-size', type=int, default=8, help='total batch size for all GPUs')
    parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')

终端运行的方式
python train.py --workers 8 --device 0 --batch-size 8 --data data/mytrain.yaml --cfg cfg/training/yolov7.yaml --weights ‘yolov7_training.pt’ --hyp data/hyp.scratch.custom.yaml

之后就可以开始训练了

tensorboard: Start with 'tensorboard --logdir runs/train', view at http://localhost:6006/
hyperparameters: lr0=0.01, lrf=0.1, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.3, cls_pw=1.0, obj=0.7, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.2, scale=0.9, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.15, copy_paste=0.0, paste_in=0.15
wandb: Install Weights & Biases for YOLOR logging with 'pip install wandb' (recommended)

                 from  n    params  module                                  arguments                     
  0                -1  1       928  models.common.Conv                      [3, 32, 3, 1]                 
  1                -1  1     18560  models.common.Conv                      [32, 64, 3, 2]                
  2                -1  1     36992  models.common.Conv                      [64, 64, 3, 1]                
  3                -1  1     73984  models.common.Conv                      [64, 128, 3, 2]               
  4                -1  1      8320  models.common.Conv                      [128, 64, 1, 1]               
  5                -2  1      8320  models.common.Conv                      [128, 64, 1, 1]               
  6                -1  1     36992  models.common.Conv                      [64, 64, 3, 1]                
  7                -1  1     36992  models.common.Conv                      [64, 64, 3, 1]                
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值