使用Yolov5+Pytorch训练自定义目标检测模型

2023-11-16

一、简介

使用Pytorch、Yolov5和OpenCV,完成目标检测模型的训练和部署。

项目的两个功能:

(1)Yolov5离线文件夹:主要是为了照顾国内的网络环境。文件夹不仅包含了https://github.com/ultralytics/yolov5的完整文件,还提前下载了yolov5.pt文件。

(2)工作区:分为两个部分,第一个部分由三个文件夹组成,第二个部分由三个Python程序组成。

①dataset文件夹:自定义数据集的最终存放位置

②voc_dataset文件夹:pascal voc数据集存放位置

③yolo_dataset文件夹:yolo数据集临时存放位置

④preprocess.py:图片预处理程序

⑤voc_to_yolo.py:将pascal voc格式数据集转换为yolo格式数据集

⑥data_split.py:将存放在yolo_dataset文件夹的数据集切分为train、val和test数据集。

三个Python程序有非常详细的英文注释。

二、准备工作

1、安装Visual Studio Community 2022

安装软件,并勾选安装“使用C/C++桌面开发”选项。

2、安装Anaconda

安装完成后,运行Anaconda Prompt,依次运行以下代码。

conda create -n pytorch python>3.8
activate pytorch
pip install pytorch
pip install labelImg
pip install opencv-python
pip install pillow
pip install shutil
pip install xml
pip install yaml
pip install json
pip install glob

三、使用方法

1、【可选项】测试Yolov5运行环境,运行“test_installation.py”。

2、【可选项】把图片放到“voc_dataset”文件夹中,子文件夹需要命名为“类名字”。

3、运行“preprocess.py”程序,重命名图片、调整图片尺寸。

4、运行labelImg,具体的使用方法见GitHub - heartexlabs/labelImg: LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source data labeling tool for images, text, hypertext, audio, video and time-series data.或自行搜索。

5、【可选项】运行“voc_to_yolo.py”,将数据集从pascal voc格式转换为yolo格式。

6、运行“data_split.py”程序,将yolo_dataset划分为训练(train)、验证(val)和测试(test)。此外,你可以通过输入“Y/N”来确认是否要自动生成最终的数据集并移动到指定位置。

7、根据Yolov5官方指引,训练和部署自定义模型。

四、流程图

五、文件【百度网盘分享】

见本人博客文章末尾,使用Yolov5+Pytorch训练自定义目标检测模型 – 科创研学社

六、GitHub

https://github.com/icexiaoyou/Yolov5-Object-Detectionhttps://github.com/icexiaoyou/Yolov5-Object-Detection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Yolov5+Pytorch训练自定义目标检测模型 的相关文章

随机推荐

  • stm32定时器外部计数模式 最大频率计算。

    本 外部时钟模式下 外部信号通过内部时钟 CK INT 采样得到 外部信号周期的计算方法是 2xTINT 20ns 这里的TINT是CK INT的周期时间 例如 内部时钟频率为72MHz 则TINT 13 89ns 这时外部信号的最高频率是
  • flask 第七章 简陋版智能玩具 +MongoDB初识和基本操作

    1 简陋版web智能玩具 FAQ py文件 import os from aip import AipSpeech AipNlp from uuid import uuid4 你的 APPID AK SK APP ID 16027160 A
  • Git命令查看以及修改用户名和密码

    一 查看 查看用户名 git config user name 查看密码 git config user password 查看邮箱 git config user email 查看配置信息 git config list 二 修改 修改用
  • ios删除分割线_iOS开发中隐藏导航栏的分割线

    iOS开发中经常会遇到需要隐藏导航栏的分割线的需求 之前已经有两种方法 方法一 直接设置navigationBar的ShadowImage和BackgroundImag 这样做可以一劳永逸 在当前导航控制器的所有子控制器页面看到的导航栏都是
  • js判断时间大小以及计算时间差

    有些时候我们需要使用JS判断一下不同格式的时间的大小该怎判断呢 例如 2019 06 26 14 00 00 这个格式的时间 如何判断是否大于现在的时间 function compareTimeNow time var strArray t
  • osgEarth的Rex引擎原理分析(十五)分页瓦片加载器在更新遍历时对请求处理过程

    目标 十四 中的34 osgEarthDrivers engine rex Loader cpp void PagerLoader traverse osg NodeVisitor nv for count 0 count lt merge
  • Java-基于SSM的智能仓储管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 智能仓储系统当然也不能排除在外 智能仓储系统是以实际运用为开发背景 运用软件工程开发方法 采用jsp技术构建的一个管理系统
  • React 项目中添加 react-redux 状态管理

    redux作为一个单独的库 他可以搭配 Angular vue react以及jQuery使用 今天我们再项目中搭配react redux来使用 Redux的核心概念其实很简单 将需要修改的state都存入到store里 发起一个actio
  • java中设计思想及设计原则及设计模式解析

    前言 在java开发过程中 或者各种语言在编程过程中 对基础知识的累计 这其中就会包含java的设计思想及设计原则及设计模式 我们想对当前的架构以及某些功能逻辑进行优化 及繁简 更加适合当前业务的开发 如何让人一看就能懂得代码 以及各种热门
  • 10071 - Back to High School Physics

    Back to High School Physics Time limit 3 000 seconds A partical 电 质点 has inital velocity and accerleration 初速度与加速度 If it
  • SQL6 查找学校是北大的学生信息

    描述 题目 现在运营想要筛选出所有北京大学的学生进行用户调研 请你从用户信息表中取出满足条件的数据 结果返回设备id和学校 示例 user profile id device id gender age university provinc
  • Linux--消息队列

    目录 一 线程和进程的概念 1 线程 2 进程 3 ipcs 二 消息队列代码 写消息 man msgget返回值问题 添加消息队列 man msgsnd 运行代码 运行结果图 进程和消息的状态 三 消息队列代码 读消息 b c读取消息 执
  • 微信公众号html教程,公众号排版简易教程

    微信公众号文章排版流程 1 将文章转换成Markdown格式 2 使用Typora渲染Markdown格式 3 使用印象笔记 生成图表 流程图 时序图等 并转换成图片 4 将Markdown格式转换为Html格式 5 将Html格式内容复制
  • 企业微信开始代开发应用 配置代开发应用回调URL

    用到的php版本是7 4 开发时间 2022 11 2 在做公司的项目时因为企业微信的更新 同一个服务器ip不能在多个企业项目中出现否则就会被判定为第三方服务商 所以新建应用时只能新建代开发应用 在配置回调的时候走了很多坑 在这里梳理一下
  • Dialog DA14585——基本硬件资源配置

    GPIO DA14585共有3中类型的封装 WLCSP34pin QFN40pin QFN48pin 除去专用的RST GND XTAL ANT VBAT脚后 分别有14 25 32个IO口可用 目前最常用的封装类型是QFN40 处理单元
  • ssh key创建本地和git的安全连接 && ssh key的创建与github/gitlab中ssh key的添加

    如未创建ssh key会报该问题 The authenticity of host can t be established Permission denied publickey ssh key的作用 创建本地和gitlab的安全连接 S
  • 从特效入手,深入了解CSS(二):鼠标 hover 特效

    不建议跳跃阅读 这篇文章将从头开始介绍如何实现一个特效 中间偶尔会穿插一些css3或平时接触不多的css属性 首先看一看这一期的特效 HTML部分 h1 Hover Me h1 CSS 部分 首先通过grid布局的place content
  • 一文搞定java8中的重要特性

    文章目录 Lambda表达式 函数式接口 四大内置函数接口 接口的默认方法和静态方法 方法引用 重复注解 更好的类型推断 拓宽注解的应用场景 Optional Stream Date Time API Base64 并行数组 并发性 JVM
  • Windows SDK与Platform SDK的区别

    原文URL http forums microsoft com MSDN ShowPost aspx PostID 1986681 SiteID 1 概述 Windows SDK已经取代了Platform SDK Platform SDK已
  • 使用Yolov5+Pytorch训练自定义目标检测模型

    一 简介 使用Pytorch Yolov5和OpenCV 完成目标检测模型的训练和部署 项目的两个功能 1 Yolov5离线文件夹 主要是为了照顾国内的网络环境 文件夹不仅包含了https github com ultralytics yo