电脑基础 · 2023年3月28日

yolov7训练自己的数据集

yolov7训练自己的数据集

  • 一.安装yolov7并配置
    • 1.安装Anaconda
    • 2.创建虚拟环境
    • 3.下载yolov7源码
    • 4.下载权重
    • 5.安装依赖
  • 二.运行目标检测
  • 三.训练自的数据集
    • 1.创建所需文件
    • 2.下载labelImg标注工具
    • 3.配置训练的相关文件
  • 四.正式训练
  • 五.使用自己的权重

一.安装yolov7并配置

1.安装Anaconda

miniconda清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

Miniconda3-py38_4.9.2-Windows-x86_64.exe:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Windows-x86_64.exe

2.创建虚拟环境

在开始中找到Anaconda并打开
yolov7训练自己的数据集
1.创建

conda create -n yolov7 python=3.7 -y

2.激活

conda activate yolov7

yolov7训练自己的数据集
3.退出环境

conda deactivate

3.下载yolov7源码

方法一:yolov7官网:https://github.com/WongKinYiu/yolov7
yolov7训练自己的数据集
方法二:打开cmd输入以下命令

git clone https://gitee.com/YFwinston/yolov7.git
cd yolov7

4.下载权重

方法一:百度网盘下载https://pan.baidu.com/s/1DbG5bI_Sm1U62poE9yb5dQ
提取码:cvss
方法二:官网下载(速度很慢不推荐)
打开官网后往下划找到Testing
yolov7官网:https://github.com/WongKinYiu/yolov7
yolov7训练自己的数据集
权重下载完成后将其拖入下载好的yolov7文件夹中
yolov7训练自己的数据集

5.安装依赖

打开yolov7文件夹后确认文件夹中是否有 requirements.txt 文档
在文件夹上方输入cmd按下回车打开如图
yolov7训练自己的数据集
在打开的cmd中输入以下命令(可能需要安装一会)

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

二.运行目标检测

打开yolov7所在文件夹
拍摄一张自己的帅照放入 inference文件夹中的images文件夹中
yolov7训练自己的数据集
在yolov7文件夹中打开cmd并激活yolov7环境然后运行运行detect.py进行检测

conda activate yolov7
python detect.py --weights yolov7x.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg

horses.jpg可更改为自己的图片名

如果报错:ModuleNotFoundError: No module named 'cv2’在cmd中输入

pip install opencv-contrib-python

yolov7训练自己的数据集
运行的结果在 runs/detect 文件夹中
yolov7训练自己的数据集

三.训练自的数据集

1.创建所需文件

yolov7训练自己的数据集
如图我们在yolov7下创建datasets文件夹然后创建images 和labels文件夹,一个是拿来放图片的,一个是拿来存images文件夹中处理jpg图片之后的txt数据
yolov7训练自己的数据集
将自己所需要训练的图片放进 images/train和val下两个文件夹中放入差不多数量的图片

2.下载labelImg标注工具

参考::::labelImg使用教程
先打开Anaconda
yolov7训练自己的数据集
输入以下命令安装

pip install labelImg

安装成功后cmd中输入labelImg即可打开

labelImg

yolov7训练自己的数据集
yolov7训练自己的数据集
yolov7训练自己的数据集
按下w选中你要标注的物体即可

3.配置训练的相关文件

总共有两个文件需要配置,一个是/yolov7/cfg/training/yolov7.yaml,这个文件是有关模型的配置文件;一个是/yolov7/data/coco.yaml,这个是数据集的配置文件。
1.第一步,复制yolov7.yaml文件到相同的路径下,然后重命名,我们重命名为yolov7-xxx.yaml(起一个你想要的名字)然后打开
yolov7训练自己的数据集
2.复制coco.yaml文件到相同的路径下,然后重命名,我们命名为xxx.yaml。(起一个你喜欢的名字)打开后进行更改如下图
yolov7训练自己的数据集
ok

四.正式训练

此时我们在yolov7文件夹路径下cmd,并且激活虚拟环境,输入指令

conda activate yolov7

激活环境后输入

python train.py --weights yolov7x.pt --cfg cfg/training/yolov7-xxx.yaml --data data/xxx.yaml --batch-size 8 --epoch 300 --device 0

注意一定要将xxx改为自己的文件名称
这里我们使用gpu进行训练若用cpu去掉 --device 0 即可

对参数解释

–cfg 接受模型配置的参数
–data 接收数据配置的参数
–device 0 训练类型,我是一块GPU 所以用0
–batch-size 8 GPU内存大小决定
–epoch 训练次数,建议300
–weights 训练的权重

yolov7训练自己的数据集

五.使用自己的权重

跟detect一样,进入虚拟环境输入权重路径和图片路径就ok了,指令如下

我是把best.pt直接拉到了yolov7文件夹路径下面,你们刚刚训练出来的在runs/train/circle/weights/best.pt
命令如下

python detect.py --weights best.pt --source xxx --device 0

注意将xxx换成自己的图片路径
ok
yolov7训练自己的数据集