保姆级官方yolov7训练自己的数据集及项目部署详解

目录
  • 前言
  • 第一步 数据集准备
  • 第二步 train.py载入自己的数据集并训练
  • 第三步 将训练好的pt文件做成接口调用
  • 总结

前言

首先,先说明我只是初步接触yolov7,写这篇文章的主要目的是可以让大家快速应用自己的数据集进行训练。没有接触过yolov5也没有关系,该篇文章会逐步进行演示如何训练。

第一步 数据集准备

首先确保你有labelimg标图软件,若无,需要自行去下一个并看一下标图教程。

当你已经标注完成,获得了img以及相对应的xml之后(如图)

接下来就是可选择项:是否需要图像增强来获取更多样本,如需要点击这里下载,直接用enhance_img.py去增强。之后我的习惯是每有一个项目需要训练,则会新建一个文件夹,项目存放的文件如图:

下面ImageSets\Main用于存放后续脚本文件划分训练集测试集的相对应的train.txt,test.txt。hyp.scratch.p5.yaml为yolov7的超参设置,可以直接从yolov7\data下面去拷过来放到你项目里。icon.yaml为你要所要训练的类别和相应的类,同时也会写上实际训练时训练数据和测试数据。该文件如下图。

Main.py就是划分你的数据为训练集和测试集.txt的脚本。整体新建的项目目录就是这样。下面说一下操作流程:1 首先确保是该项目目录方式 2 运行main.py脚本文件得到了ImageSets\Main下面的train.txt,test.txt。3 在yolov7的根目录下运行xml2txt脚本文件。main.py xml2txt.py文件点击这里下载 注意要将该文件的类和项目名改成自己的。如图:

此时,我们的数据准备阶段已经完成,项目目录如图:

第二步 train.py载入自己的数据集并训练

红色箭头和红框就是常见改动的地方,改动后就可以训练了。

第三步 将训练好的pt文件做成接口调用

在等待训练完成之后,就会在runs/train下面获得训练的best.pt,你可以拿着这个pt去做接口使用了。首先,在自己的项目里使用必须要确保yolov7根目录下的models和utils文件夹放到了你的项目根目录。然后下载model_import.py 点击这里下载 嵌入你的任何项目路径下调用predict函数就可以输出检出结果了。

总结

到此这篇关于保姆级官方yolov7训练自己的数据集及项目部署的文章就介绍到这了,更多相关yolov7训练自己的数据集内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于yolov5的一些简单说明(txt文件、训练结果分析等)

    目录 一.yolo中txt文件的说明: 二.yolo跑视频.图片文件的格式: 三.yolov5训练结果不好的原因: 四.yolov5训练结果(train文件)分析 总结 一.yolo中txt文件的说明: 二.yolo跑视频.图片文件的格式: 三.yolov5训练结果不好的原因: 1. 欠拟合: 在训练集上表现很差,测试集上表现也很差的现象可能是欠拟合导致的,是因为泛化能力太强,误识别率较高解决办法: 1)增加数据集的正样本数, 增加主要特征的样本数量 2)增加训练次数 3)减小正则化参数 2.

  • C#使用TensorFlow.NET训练自己的数据集的方法

    今天,我结合代码来详细介绍如何使用 SciSharp STACK 的 TensorFlow.NET 来训练CNN模型,该模型主要实现 图像的分类 ,可以直接移植该代码在 CPU 或 GPU 下使用,并针对你们自己本地的图像数据集进行训练和推理.TensorFlow.NET是基于 .NET Standard 框架的完整实现的TensorFlow,可以支持 .NET Framework 或 .NET CORE , TensorFlow.NET 为广大.NET开发者提供了完美的机器学习框架选择. Sc

  • 对sklearn的使用之数据集的拆分与训练详解(python3.6)

    研修课上讲了两个例子,融合一下. 主要演示大致的过程: 导入->拆分->训练->模型报告 以及几个重要问题: ①标签二值化 ②网格搜索法调参 ③k折交叉验证 ④增加噪声特征(之前涉及) from sklearn import datasets #从cross_validation导入会出现warning,说已弃用 from sklearn.model_selection import train-test_split from sklearn.grid_search import Gri

  • Tensorflow 训练自己的数据集将数据直接导入到内存

    制作自己的训练集 下图是我们数据的存放格式,在data目录下有验证集与测试集分别对应iris_test, iris_train 为了向伟大的MNIST致敬,我们采用的数据名称格式和MNIST类似 classification_index.jpg 图像的index都是5的整数倍是因为我们选择测试集的原则是每5个样本,选择一个样本作为测试集,其余的作为训练集和验证集 生成这样数据的过程相对简单,如果有需要python代码的,可以给我发邮件,或者在我的github下载 至此,我们的训练集,测试集,验证

  • Django项目uwsgi+Nginx保姆级部署教程实现

    写在最前: 非常抱歉的是,因为突如其来的疫情,我的hadoop系列断更了,很难受,因为我的分布式环境在学校,我的笔记本配置带不起来,代码跑不起来我是不敢写博客的,然后寒假在家写代码也没啥意思,看了非常多的书,把计网和操作系统重新学了一遍.因为实习的需要,未来我更多的技术可能在Python这块,但是java相关的内容我也会努力保持更新,同时也会出更多的入门教程给大家谢谢大家. 背景: 最近在学习django的过程中,用django做了一个小demo,所以试试看能不能部署到服务器上,自己顺便也熟悉一

  • 关于Pytorch的MNIST数据集的预处理详解

    关于Pytorch的MNIST数据集的预处理详解 MNIST的准确率达到99.7% 用于MNIST的卷积神经网络(CNN)的实现,具有各种技术,例如数据增强,丢失,伪随机化等. 操作系统:ubuntu18.04 显卡:GTX1080ti python版本:2.7(3.7) 网络架构 具有4层的CNN具有以下架构. 输入层:784个节点(MNIST图像大小) 第一卷积层:5x5x32 第一个最大池层 第二卷积层:5x5x64 第二个最大池层 第三个完全连接层:1024个节点 输出层:10个节点(M

  • keras-siamese用自己的数据集实现详解

    Siamese网络不做过多介绍,思想并不难,输入两个图像,输出这两张图像的相似度,两个输入的网络结构是相同的,参数共享. 主要发现很多代码都是基于mnist数据集的,下面说一下怎么用自己的数据集实现siamese网络. 首先,先整理数据集,相同的类放到同一个文件夹下,如下图所示: 接下来,将pairs及对应的label写到csv中,代码如下: import os import random import csv #图片所在的路径 path = '/Users/mac/Desktop/wxd/fl

  • 对python中数据集划分函数StratifiedShuffleSplit的使用详解

    文章开始先讲下交叉验证,这个概念同样适用于这个划分函数 1.交叉验证(Cross-validation) 交叉验证是指在给定的建模样本中,拿出其中的大部分样本进行模型训练,生成模型,留小部分样本用刚建立的模型进行预测,并求这小部分样本的预测误差,记录它们的平方加和.这个过程一直进行,直到所有的样本都被预测了一次而且仅被预测一次,比较每组的预测误差,选取误差最小的那一组作为训练模型. 下图所示 2.StratifiedShuffleSplit函数的使用 官方文档 用法: from sklearn.

  • Pytorch使用MNIST数据集实现基础GAN和DCGAN详解

    原始生成对抗网络Generative Adversarial Networks GAN包含生成器Generator和判别器Discriminator,数据有真实数据groundtruth,还有需要网络生成的"fake"数据,目的是网络生成的fake数据可以"骗过"判别器,让判别器认不出来,就是让判别器分不清进入的数据是真实数据还是fake数据.总的来说是:判别器区分真实数据和fake数据的能力越强越好:生成器生成的数据骗过判别器的能力越强越好,这个是矛盾的,所以只能

  • PyTorch加载自己的数据集实例详解

    数据预处理在解决深度学习问题的过程中,往往需要花费大量的时间和精力. 数据处理的质量对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练, 更会提高模型性能.为解决这一问题,PyTorch提供了几个高效便捷的工具, 以便使用者进行数据处理或增强等操作,同时可通过并行化加速数据加载. 数据集存放大致有以下两种方式: (1)所有数据集放在一个目录下,文件名上附有标签名,数据集存放格式如下: root/cat_dog/cat.01.jpg root/cat_dog/cat.02.jpg ...

  • Keras官方中文文档:性能评估Metrices详解

    能评估 使用方法 性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置 性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练. 可以通过字符串来使用域定义的性能评估函数 model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['mae', 'acc']) 也可以自定义一个Theano/TensorFlow函数并使用之 from keras import metri

随机推荐

其他