YOLOV7训练自己的数据集

前言

电脑基本配置:
1.系统:WIndows11
2.虚拟环境:Anconda
3.编辑器:vscode
4.GPU:gtx1070

一、环境配置

yolov7项目github地址:https://github.com/WongKinYiu/yolov7
如果不方便使用,可以下载下面的
csdn上的副本:https://download.csdn.net/download/qq_41776136/86177947

1.虚拟环境的创建

官方推荐使用docker,但本人电脑是windows无法安装nvidia-docker,因此还是利用conda创建虚拟环境

conda create -n yolov7 python=3.8  

2.获取yolov7项目文件

在合适的目录下执行

git clone https://github.com/WongKinYiu/yolov7.git

3.安装所需的包

提前安装GPU版本的pytorch,在pytorch官网下载合适版本:
YOLOV7训练自己的数据集_第1张图片
修改requirement.txt文件,将torch相关的注释掉:

YOLOV7训练自己的数据集_第2张图片
在yolov7项目文件夹下运行

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

4.下载权重

可以在yolov7项目页面下载
YOLOV7训练自己的数据集_第3张图片
不方便的话这里也可以
https://download.csdn.net/download/qq_41776136/86177947
下载后将.pt文件放到yolov7目录下
YOLOV7训练自己的数据集_第4张图片
运行detect.py测试环境配置是否正常,没有报错就ok

二、训练自己的数据集

1.训练集格式

YOLOV7训练自己的数据集_第5张图片
images和labels 分别存放图片与标签txt文件

2.修改yaml

在yolov7/data文件夹下新建yourdataset.yaml文件,并写入

train: ./VOCdevkit/images/train # train images
val:  ./VOCdevkit/data/images/val # val images
test:  ./VOCdevkit/data/images/test # test images (可选的)

# Classes
nc: 1  # number of classes
names: ['classname']  # class names

3.修改train.py的参数

主要修改参数:
1)–weights:替换为你下载的预训练权重
2)–data:修改为自己创建的额的yourdataset.yaml
在这里插入图片描述

4.训练结果

结束训练后会在如下图目录中保存训练结果
YOLOV7训练自己的数据集_第6张图片

三、测试自己的训练结果

1.修改detect.py

1.将–weights指定为自己训练好的权重。
2.将–source指定为自己要测试的数据

2.运行

运行detect.py即可,测试结果将在yolov7/runs/detect下
YOLOV7训练自己的数据集_第7张图片

四、可能遇到的问题:

1.运行detect.py遇到的问题:

1.subprocess.CalledProcessError: Command ‘git tag’ returned non-zero exit status 128?
答:注意参数是否正确
2.ImportError: The _imaging extension was built for another version of Pillow or PIL:Core version: “9.2.0” Pillow version: 9.2.0
答:重新安装较低版本的Pillow,例如7.1.2

2.运行train.py遇到的问题:

1.‘gbk’ codec can’t decode byte 0xae in position 450: illegal multibyte sequence(只会在windows下出现)
答:将train.py中第64行的代码

    with open(opt.data) as f:

改为

    with open(opt.data,encoding='utf8') as f:

3.CUDA out of memory

答:调低batch-size

4._pickle.UnpicklingError: STACK_GLOBAL requires str

答:可能之前用过这个数据集,删掉.labels.cache文件

你可能感兴趣的:(YOLO系列,机器学习,人工智能,python,深度学习)