yolov7训练自己的数据集

Posted 我把把C

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yolov7训练自己的数据集相关的知识,希望对你有一定的参考价值。

yolov7训练自己的数据集

一.安装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并打开

1.创建

conda create -n yolov7 python=3.7 -y

2.激活

conda activate yolov7


3.退出环境

conda deactivate

3.下载yolov7源码

方法一:yolov7官网:https://github.com/WongKinYiu/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文件夹中

5.安装依赖

打开yolov7文件夹后确认文件夹中是否有 requirements.txt 文档
在文件夹上方输入cmd按下回车打开如图

在打开的cmd中输入以下命令(可能需要安装一会)

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

二.运行目标检测

打开yolov7所在文件夹
拍摄一张自己的帅照放入 inference文件夹中的images文件夹中

在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


运行的结果在 runs/detect 文件夹中

三.训练自的数据集

1.创建所需文件


如图我们在yolov7下创建datasets文件夹然后创建images 和labels文件夹,一个是拿来放图片的,一个是拿来存images文件夹中处理jpg图片之后的txt数据

将自己所需要训练的图片放进 images/train和val下两个文件夹中放入差不多数量的图片

2.下载labelImg标注工具

参考::::labelImg使用教程
先打开Anaconda

输入以下命令安装

pip install labelImg

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

labelImg




按下w选中你要标注的物体即可

3.配置训练的相关文件

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

2.复制coco.yaml文件到相同的路径下,然后重命名,我们命名为xxx.yaml。(起一个你喜欢的名字)打开后进行更改如下图

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 训练的权重

五.使用自己的权重

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

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

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

注意将xxx换成自己的图片路径
ok

以上是关于yolov7训练自己的数据集的主要内容,如果未能解决你的问题,请参考以下文章

YOLOv7 pytorch

[课程][原创]yolov7训练自己数据集实例分割模型

yolov7: 从搭配环境到训练自己的数据集

Yolov7训练自己的数据集(超详细教程)

yolov7训练自己的数据集及报错处理

YOLOv7训练自己的数据集(超详细)