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官网下载合适版本:
在这里插入图片描述
修改requirement.txt文件,将torch相关的注释掉:

在这里插入图片描述
在yolov7项目文件夹下运行

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

4.下载权重

可以在yolov7项目页面下载
在这里插入图片描述
不方便的话这里也可以
https://download.csdn.net/download/qq_41776136/86177947
下载后将.pt文件放到yolov7目录下
在这里插入图片描述
运行detect.py测试环境配置是否正常,没有报错就ok

二、训练自己的数据集

1.训练集格式

在这里插入图片描述
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.训练结果

结束训练后会在如下图目录中保存训练结果
在这里插入图片描述

三、测试自己的训练结果

1.修改detect.py

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

2.运行

运行detect.py即可,测试结果将在yolov7/runs/detect下
在这里插入图片描述

四、可能遇到的问题:

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文件

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
要使用YOLOv7训练自己的数据集,您需要执行以下步骤: 1. 准备数据集:首先,您需要准备一个包含训练图像和相应标注文件的数据集。标注文件应该是YOLO格式(.txt),每个文件对应于一个图像,并包含每个对象的类别和位置信息。 2. 下载YOLOv7代码:您需要从YOLOv7的GitHub存储库中下载代码。您可以使用以下命令克隆存储库: ``` git clone https://github.com/WongKinYiu/yolov7.git ``` 3. 配置YOLOv7:在下载代码后,您需要编辑“yolov7.cfg”文件来配置YOLOv7模型的参数,如类别数量和输入图像的大小等。 4. 转换数据集YOLOv7需要将数据集转换为Darknet格式,因此您需要使用提供的脚本将数据集转换为Darknet格式: ``` python3 train.py --img 640 --batch 16 --epochs 10 --data ./data/custom.data --cfg ./models/yolov7.cfg --weights yolov7.pt --name yolov7-custom ``` 其中,--data参数指定您的自定义数据集的路径,--cfg参数指定您的自定义配置文件,--weights参数指定预训练模型的路径,--name参数指定模型的名称。 5. 训练模型:使用以下命令开始训练模型: ``` python3 train.py --img 640 --batch 16 --epochs 10 --data ./data/custom.data --cfg ./models/yolov7.cfg --weights yolov7.pt --name yolov7-custom ``` 6. 测试模型:训练完成后,您可以使用以下命令对模型进行测试: ``` python3 detect.py --weights ./runs/train/yolov7-custom/weights/best.pt --img 640 --conf 0.5 --source ./data/samples/ ``` 其中,--weights参数指定训练好的模型的路径,--img参数指定输入图像的大小,--conf参数指定置信度阈值,--source参数指定要检测的图像文件夹。 希望这些步骤可以帮助您训练自己的YOLOv7模型。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是吧这都有重名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值