2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > YOLOv7模型推理和训练自己的数据集

YOLOv7模型推理和训练自己的数据集

时间:2018-09-25 17:19:11

相关推荐

YOLOv7模型推理和训练自己的数据集

前段时间YOLOv7发布,一直没时间去复现,今天正好有时间,简单复现下。

1.必要环境

我的环境是:Windows10+python3.9.7+CUDA11.1+CUDNN8.1.1+torch1.8。此环境配置不再多说,网上有很多的教程。本篇主要记录YOLOv7的使用。

2.YOLOv7安装

2.1进入github官网下载源码和权重文件:

/WongKinYiu/yolov7

2.2打开工程,在终端输入命令,安装依赖包

pip install -r requirements.txt

我这边在安装依赖包时没有发生错误,若发生错误,请自行百度

3.使用YOLOv7官方模型进行推理

打开detect.py文件,修改权重文件的路径,以及修改推理图片的路径。右键运行就ok,结果会在runs/detect中展现

推理结果十分优异,远超YOLOX的性能。

4.训练自己的数据集

首先工程文件夹设置:

将图片放入images中,xml文件放入Annotations。

先使用txt_write.py文件划分数据集。该文件内容参考本人另一篇YOLOX文章中。

其次使用txt_yolo_label.py文件,数据集转换到yolo数据集格式,转换后可以看到VOCData/labels下生成了每个图的txt文件 。

接着修改cfg/training中你下载的对应模型的yaml文件,我这边下载的yolov7.pt文件,在此更改yolov7.yaml文件,将nc数量变为自己数据集中对应的种类数。

再在data文件夹中备份一份coco.yaml文件,重命名为myvocdataset.yaml,将内容改为如图,其中路径记得改为自己的路径。

train: E:/python_practice/object_detection/yolov7-main/VOC/train.txtval: E:/python_practice/object_detection/yolov7-main/VOC/val.txtnc: 2 #类别,改成自己的names: ['screen','sign']#类别名称

紧接着打开train.py文件,修改如下项:

从上到下,依次是权重文件,cfg配置文件,voc数据文件,超参数文件,和训练轮数。超参数可不修改,其他改为自己所对应的文件。batch-size依据电脑实力更改,我这边配置一般,batch较小,建议将dataloader workers默认设为0,关闭其多线程处理。点击右键运行该文件,程序完美运行。

如出现如下错误:

Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

在train.py中添加如下代码:

import osos.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'

为了演示yolov7算法,在此就训练了两轮便停止训练,使用训练两轮的模型进行推理。结果如图。

因为只训练了两轮,效果很差,仅识别出框。

到此,YOLOv7复现完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。