YOLOv5复现步骤及cmd命令(自用)

下载安装Git(超详细超简单)_git下载-CSDN博客

如何通过cmd命令查看本机是否安装了Git或Git的版本号_查看git版本-CSDN博客

pycharm 设置为git默认编辑器_Pycharm自带Git实现版本管理-CSDN博客

git 工具下载(小白所以没用过,但不用不行)

1.清理缓存(下载超时失败后)

pip cache purge

2.conda创建环境

win+r:打开命令输入cmd

虚拟环境创建:conda create --name yolo python=3.9,输入y

查看已经创建的所有环境:conda info -e

查看当前环境下的list: 1)激活当前环境 conda activate yolo(yolo为自己起的环境名字) 2) conda list 

退出激活环境:conda deactivate 

2.官网下载YOLOv5(zip文件)

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

3.依赖包下载

下载后解压,在解压文件夹输入cmd,激活创建的环境;

1)激活刚才创建的环境:conda activate yolo;2)下载依赖包:pip install -r requirements.txt   (一般都得用镜像源:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple)可以conda list查看环境下的下载列表

4.detect 测试

在pycharm中打开yolov5文件:

选择interpret setting为建立的yolo环境运行detect.py测试——成功显示:

5. 数据集标注(公开的可能无需标注)

yolov5官网用户数据集训练的指导:官网有标注工具,没学会https://docs.ultralytics.com/yolov5/tutorials/train_custom_data/#23-organize-directoriesicon-default.png?t=O83Ahttps://docs.ultralytics.com/yolov5/tutorials/train_custom_data/#23-organize-directories

 注:yolov5数据label中为class  x_center  y_center width  height; txt文件

数据集标注

labelme或者labelimg,(这里采用labelme)下载地址:https://github.com/labelmeai/labelme解压,打开下载位置文件夹(操作同上)设置虚拟环境   

conda create --name=labelme python=3.9
conda activate labelme
激活labelme虚拟环境:conda activate labelme;

下载: pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple     

使用labelme:Labelme安装与使用教程:为机器学习提供精准标注数据-百度开发者中心 (baidu.com)           

win+r  输入cmd ; 激活labelme环境;输入labelme可直接打开:

标注好保存格式为jons文件,转txt方式参考:【Yolov5】1.认真总结6000字Yolov5保姆级教程(2022.06.28全新版本v6.1)_yolov5教程-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/m0_53392188/article/details/119334634

YOLO v5 实现目标检测(参考数据集&自制数据集) - 知乎 (zhihu.com)icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/269587479

注意:数据集的label是一张图对应一个txt文件,并且label名字与image应该相同。

(官网指导)数据集文件和model文件的目录格式:

数据集和yolo文件夹并列存放 

6.代码解读

【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)-腾讯云开发者社区-腾讯云 (tencent.com)icon-default.png?t=O83Ahttps://cloud.tencent.com/developer/article/2054281YOLOv5 模型结构详细讲解_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1zB4y1L7Ay?p=2&spm_id_from=pageDriver&vd_source=36a3ea40fdb2ee3d82d19f88b0e532f0YOLOv5之autoanchor看这一篇就够了 - 知乎 (zhihu.com)icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/5440660756. Windows系统上训练PASCAL VOC数据集._哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1sHHSetEA3/?p=6&spm_id_from=pageDriver&vd_source=36a3ea40fdb2ee3d82d19f88b0e532f0

以下为个人标注版yolov5s.yaml文件如下:(模型的主要结构;注意:自添加的注释会导致报错) 

# Ultralytics YOLOv5 🚀, AGPL-3.0 license

# Parameters
nc: 80 # number of classes    coco数据集有80类
depth_multiple: 0.33 # model depth multiple     调节网络模块层数
width_multiple: 0.50 # layer channel multiple   网络输出通道数调整channel
anchors:
#这个参数是怎么实现的?
  - [10, 13, 16, 30, 33, 23] # P3/8  小目标检测
  - [30, 61, 62, 45, 59, 119] # P4/16
  - [116, 90, 156, 198, 373, 326] # P5/32  大目标检测

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [
    [-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2  #-1表示从前向传递,1表示重复次数为1;
                                            #输出channel为64,k=6*6,stride=2,padding=2
    [-1, 1, Conv, [128, 3, 2]], # 1-P2/4  #以下默认无padding ;
                                          #P2/4 :表示输出特征图变为原来的0.25
    [-1, 3, C3, [128]],                  #c3是单独的模型
    [-1, 1, Conv, [256, 3, 2]], # 3-P3/8
    [-1, 6, C3, [256]],
    [-1, 1, Conv, [512, 3, 2]], # 5-P4/16
    [-1, 9, C3, [512]],
    [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
    [-1, 3, C3, [1024]],
    [-1, 1, SPPF, [1024, 5]], # 9             ##yolov5改进SPP——SPPfast
  ]

# YOLOv5 v6.0 head
head: [
#neck:
    [-1, 1, Conv, [512, 1, 1]],
    [-1, 1, nn.Upsample, [None, 2, "nearest"]],
    [[-1, 6], 1, Concat, [1]], # cat backbone P4
    [-1, 3, C3, [512, False]], # 13

    [-1, 1, Conv, [256, 1, 1]],
    [-1, 1, nn.Upsample, [None, 2, "nearest"]],
    [[-1, 4], 1, Concat, [1]], # cat backbone P3
    [-1, 3, C3, [256, False]], # 17 (P3/8-small)

    [-1, 1, Conv, [256, 3, 2]],
    [[-1, 14], 1, Concat, [1]], # cat head P4
    [-1, 3, C3, [512, False]], # 20 (P4/16-medium)

    [-1, 1, Conv, [512, 3, 2]],
    [[-1, 10], 1, Concat, [1]], # cat head P5
    [-1, 3, C3, [1024, False]], # 23 (P5/32-large)
#detector:
    [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
                                   ##检测层挂在17,20,23层后面
  ]

7.自数据集训练

仍参考这篇:【Yolov5】1.认真总结6000字Yolov5保姆级教程(2022.06.28全新版本v6.1)_yolov5教程-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/m0_53392188/article/details/119334634(1)将自建数据集文件夹按如下格式安置:数据集和模型文件夹在project中是并列关系(5.数据标注中也说了)

注意:数据集images和labels文件夹下的train和val文件夹下直接放图和txt文件,不要有多余的文件夹等级 ,如上右图所示。

(2)修改yaml文件

修改data中的yaml文件——数据集决定:以coco128.yaml为例,修改数据集路径+数据集类别标签

修改model中的yaml文件——模型的超参数:以yolov5s.yaml为基准主要修改对应数据集的类别

其他的也可以修改,暂时没有修改,跑起来再说// 

(3)修改train.py

本节参考连接:选择权重(先选择了yolov5s)、之前修改的yaml文件、修改训练的超参数epoch,batch_size,输入图像的分辨率resize大小。硬件不行,先跑这些

参考:

YOLOv5训练自己的数据集(超详细完整版) - 文章 - 开发者社区 - 火山引擎 (volcengine.com)

半小时搞定Yolov5安装配置及使用(详细过程) - 木子欢儿 - 博客园 (cnblogs.com)

教程:超详细从零开始yolov5模型训练_yolo训练-CSDN博客

yolov5—四万字深入浅出yolov5训练全过程!从未见过注释比代码还多的源码解析-CSDN博客

基于yolov5及yolov5-lite的视觉识别模型训练_yolov5lite-CSDN博客

6. Windows系统上训练PASCAL VOC数据集._哔哩哔哩_bilibili

【Yolov5】1.认真总结6000字Yolov5保姆级教程(2022.06.28全新版本v6.1)_yolov5教程-CSDN博客

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值