YOLOV7详细解读(四)训练自己的数据集

简介: YOLOV7详细解读(四)训练自己的数据集

前言


继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。

YOLOV7主要的贡献在于:


1.模型重参数化


YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。


2.标签分配策略


YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。


3.ELAN高效网络架构


YOLOV7中提出的一个新的网络架构,以高效为主。


4.带辅助头的训练


YOLOV7提出了辅助头的一个训练方法,主要目的是通过增加训练成本,提升精度,同时不影响推理的时间,因为辅助头只会出现在训练过程中。


一、下载整个项目


通过git 下载

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

或者直接下载压缩包


二、安装所需环境


建议使用conda虚拟环境

conda  create  --name  yolov7_env python=3.7 
conda activate yolov7_env
pip install -r requirements.txt

三、准备数据集


生成训练、验证的TXT文件:

import os
def get_txtdata(path):
    VOCdevkit_path = path
    file_names = os.listdir(VOCdevkit_path+"/images")
    train_num = 400
    train_path = os.path.join(VOCdevkit_path,'train.txt')
    val_path = os.path.join(VOCdevkit_path,'val.txt')
    train_file = open(train_path, 'w')
    val_file = open(val_path, 'w')
    for name in file_names[0:train_num]:
        img_path = os.path.join(VOCdevkit_path+"/Images",name)
        train_file.write(img_path + '\n')
    train_file.close()
    for name in file_names[train_num:]:
        img_path = os.path.join(VOCdevkit_path+"/Images",name)
        val_file.write(img_path + '\n')
    val_file.close()
if __name__=="__main__":
    VOCdevkit_path = 'dataset2'
    get_txtdata(VOCdevkit_path)

如图所示:


images:图片文件


labels:标签文件


train.txt:训练数据集的位置


val.txt:验证数据集的位置

7.png

四、配置文件


在data目录下新建一个yaml配置文件,按如图所示格式输入自己训练数据的信息


name:类别名字


nc:类别数量


train:训练集文件位置


val:验证集文件位置

8.png

names:
- balls
- person
nc: 2
train: dataset2/train.txt
val: dataset2/val.txt

五、下载权重文件


如下图所示,官网下载,但是速度会比较慢。


项目已经上传到网盘,可以通过网盘下载(链接在评论中)。

9.png

六、开始训练


修改模型名字和配置文件位置

10.png

python3 train.py

七、推理


模型路径和图片路径需要换成自己的

11.png

python3 detect.py

12.png

附录:遇到的问题


运行train.py的时候报错

subprocess.CalledProcessError: Command 'git tag' returned non-zero exit status 128.

解决:


这是由于网络波动或者防火墙无法连接到github下载权重文件。


手动下载权重文件,并修改名字yolo7.pt–>yolov7.pt

parser.add_argument('--weights', type=str, default='yolov7.pt', help='initial weights path')
目录
相关文章
|
5月前
|
监控 计算机视觉 知识图谱
YOLOv10的改进、部署和微调训练总结
YOLOv10在实时目标检测中提升性能与效率,通过无NMS训练解决延迟问题,采用一致的双任务和效率-精度驱动的模型设计。YOLOv10-S比RT-DETR-R18快1.8倍,YOLOv10-B比YOLOv9-C延迟减少46%。新方法包括一致性双标签分配,优化计算冗余和增强模型能力。实验结果显示YOLOv10在AP和延迟上均有显著改善。文章还提供了部署和微调YOLOv10的示例代码。
673 2
|
机器学习/深度学习
CNN模型识别cifar数据集
构建简单的CNN模型识别cifar数据集。经过几天的简单学习,尝试写了一个简单的CNN模型通过cifar数据集进行训练。效果一般,测试集上的的表现并不好,说明模型的构建不怎么样。# -*- coding = utf-8 -*-# @Time : 2020/10/16 16:19# @Author : tcc# @File : cifar_test.py# @Software : pycha...
62 0
|
算法 Go 计算机视觉
【YOLO系列】YOLOv8算法(尖端SOTA模型)
Ultralytics YOLOv8 是由 Ultralytics开发的一个前沿 SOTA 模型。它在以前 YOLO 版本的成功基础上,引入了新的功能和改进,进一步提升了性能和灵活性。YOLOv8 基于快速、准确和易于使用的理念设计,使其成为广泛的物体检测、图像分割和图像分类任务的绝佳选择。
2924 0
【YOLO系列】YOLOv8算法(尖端SOTA模型)
|
1月前
|
数据可视化 计算机视觉
训练数据集(一):真实场景下采集的煤矸石目标检测数据集,可直接用于YOLOv5/v6/v7/v8训练
本文介绍了一个用于煤炭与矸石分类的煤矸石目标检测数据集,包含891张训练图片和404张验证图片,分为煤炭、矸石和混合物三类。数据集已标注并划分为训练和验证集,适用于YOLOv5/v6/v7/v8训练。数据集可通过提供的链接下载。
53 1
训练数据集(一):真实场景下采集的煤矸石目标检测数据集,可直接用于YOLOv5/v6/v7/v8训练
|
XML 数据挖掘 数据格式
|
5月前
|
计算机视觉
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
|
存储 大数据 Linux
基于 YOLOv8 的自定义数据集训练
基于 YOLOv8 的自定义数据集训练
每日训练(五)
每日训练五,题目来源:牛客、力扣
每日训练(五)