当前位置:   article > 正文

训练属于自己的Yolov5模型,从打标签到训练全过程_标签训练

标签训练

yolov5模型结构:
20201109151413529.png

1、下载yolov5

下载链接:https://github.com/ultralytics/yolov5
目录结构如下:

卷 OS 的文件夹 PATH 列表
卷序列号为 0000001E 1A52:341F
C:\USERS\User\DOWNLOADS\YOLOV5-MASTER
│  .dockerignore
│  .gitattributes
│  .gitignore
│  .pre-commit-config.yaml
│  CONTRIBUTING.md
│  detect.py
│  Dockerfile
│  export.py
│  hubconf.py
│  LICENSE
│  README.md
│  requirements.txt
│  setup.cfg
│  train.py
│  tutorial.ipynb
│  val.py
│  
├─.github
│  │  dependabot.yml
│  │  FUNDING.yml
│  │  
│  ├─ISSUE_TEMPLATE
│  │      bug-report.yml
│  │      config.yml
│  │      feature-request.yml
│  │      question.yml
│  │      
│  └─workflows
│          ci-testing.yml
│          codeql-analysis.yml
│          greetings.yml
│          rebase.yml
│          stale.yml
│          
├─data
│  │  Argoverse.yaml
│  │  coco.yaml
│  │  coco128.yaml
│  │  GlobalWheat2020.yaml
│  │  Objects365.yaml
│  │  SKU-110K.yaml
│  │  VisDrone.yaml
│  │  VOC.yaml
│  │  xView.yaml
│  │  
│  ├─hyps
│  │      hyp.finetune.yaml
│  │      hyp.finetune_objects365.yaml
│  │      hyp.scratch-high.yaml
│  │      hyp.scratch-low.yaml
│  │      hyp.scratch-med.yaml
│  │      hyp.scratch.yaml
│  │      
│  ├─images
│  │      bus.jpg
│  │      zidane.jpg
│  │      
│  └─scripts
│          download_weights.sh
│          get_coco.sh
│          get_coco128.sh
│          
├─models
│  │  common.py
│  │  experimental.py
│  │  tf.py
│  │  yolo.py
│  │  yolov5l.yaml
│  │  yolov5m.yaml
│  │  yolov5n.yaml
│  │  yolov5s.yaml
│  │  yolov5x.yaml
│  │  __init__.py
│  │  
│  └─hub
│          anchors.yaml
│          yolov3-spp.yaml
│          yolov3-tiny.yaml
│          yolov3.yaml
│          yolov5-bifpn.yaml
│          yolov5-fpn.yaml
│          yolov5-p2.yaml
│          yolov5-p34.yaml
│          yolov5-p6.yaml
│          yolov5-p7.yaml
│          yolov5-panet.yaml
│          yolov5l6.yaml
│          yolov5m6.yaml
│          yolov5n6.yaml
│          yolov5s-ghost.yaml
│          yolov5s-transformer.yaml
│          yolov5s6.yaml
│          yolov5x6.yaml
│          
└─utils
    │  activations.py
    │  augmentations.py
    │  autoanchor.py
    │  autobatch.py
    │  benchmarks.py
    │  callbacks.py
    │  datasets.py
    │  downloads.py
    │  general.py
    │  loss.py
    │  metrics.py
    │  plots.py
    │  torch_utils.py
    │  __init__.py
    │  
    ├─aws
    │      mime.sh
    │      resume.py
    │      userdata.sh
    │      __init__.py
    │      
    ├─flask_rest_api
    │      example_request.py
    │      README.md
    │      restapi.py
    │      
    ├─google_app_engine
    │      additional_requirements.txt
    │      app.yaml
    │      Dockerfile
    │      
    └─loggers
        │  __init__.py
        │  
        └─wandb
                log_dataset.py
                README.md
                sweep.py
                sweep.yaml
                wandb_utils.py
                __init__.py
                

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141

2、安装所需依赖包

这里直接使用pip进行安装,所需依赖包都在./requirement.txt中,只需在cmd中进入当前目录,运行下面代码即可自动安装

pip install requirement.txt
  • 1

3、测试环境是否能运行

3.1 下载预训练好的模型

https://github.com/ultralytics/yolov5/releases,可根据自己的电脑配置和需求,选择对应模型,后缀名为.pt,不同版本的速度和精度会有所不同。下载完后可在yolov5-master目录下新建一个目录weights用于保存模型。
image.png

3.2 运行detect.py

在cmd中运行./detect.py,用默认提供的图片进行识别,默认图片保存在./data/images,输入以下命令即可。(还有更多参数可见附录)

python detect.py --weights yolov5s6.pt --source ./data/images/bus.jpg
  • 1

运行成果后会在./runs/detect/exp1目录下生成检测结果图片
bus.jpg

4、训练自己的数据集

4.1 搜集数据并进行标注

在这里我将教会模型识别人参的性状,首先我上网爬取了149张人参的图片并使用labelImg
进行标注(可自行上网查找并安装)。在这里我将图片保存在./data/images/renshen/images目录下,将标签存放在./data/images/renshen/labels目录下。
标注前图片:
000000.jpg
标注后图片:
image.png
labelImg标注软件可将所标注区域的矩阵保存为yolo模型认识的标签。

4.2 划分数据集

打完标签以后,可运用脚本或者手动将数据集分为训练集、验证集、测试集,由于数据量少,我在这里只分了训练集和测试集,文件目录树如下

├─train
│  ├─images
│  └─labels
└─valid
    ├─images
    └─labels
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.3 训练前配置

自行建立一个配置文件,在这里我命名为renshen.yaml,输入以下内容

path: ./data/images/renshen  # dataset root dir
train: train/images  # train images (relative to 'path') 
val: valid/images  # train images (relative to 'path') 
#test: test-dev2017.txt  

nc: 1    #有几类就写几
names: ["人参"]   #此处为具体类别,如果是中文,则需要修改一些编码,此处忽略。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.4 进行训练

输入以下代码并运行

python train.py --img 640 --batch 16 --epochs 5 --data ./data/data.yaml --cfg ./models/yolov5s.yaml --weights ./weights/yolov5s6.pt

# epochs 训练次数
# img  输入图片大小
# data 模型配置
# cfg 训练数据配置
# ... 更多参数见附录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果出现以下错误,参考文章https://blog.csdn.net/weixin_51697369/article/details/120101292解决:

OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\....
  • 1

模型训练完成后会在./runs./train./exp1目录下生成训练结果,在这里我使用了tensorboard进行了可视化展示,训练完成的模型会保存在./runs./train./exp1/weights文件夹下。
image.png

4.5 测试模型

训练完成后,我随意找了一张模型没有见过的图片进行探测,这里依然用官方提供的detect.py脚本进行测试,输入以下代码

python detect.py --weights ./runs/train/exp3/weights/best.pt --source ./data/images/renshen/images/000298.jpg
  • 1

检测结果如下,由于使用了中文,可能遇到了编码问题,暂时还未解决。
rs.jpg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/83287
推荐阅读
相关标签
  

闽ICP备14008679号