【保姆级教程】YOLOv3图像目标检测:训练自己的数据集

一、YOLOv3图像目标检测原理

二、YOLOv3代码及预训练权重下载

2.1 下载yolov3代码

这里使用的是B站大佬Bubbliiiing复现的yolov3代码
仓库地址: https://github.com/bubbliiiing/yolo3-pytorch

2.2 下载模型预训练权重unet_resnet_medical.pth

链接:https://pan.baidu.com/s/1IhWYvEvIwGL6MrcIvYJroA
提取码:d3ob
将下载的权重文件放到model_data文件夹下。

三、labelimg图像标注及格式转换

3.1 安装labelimg标注软件

pip install labelimg

使用Anaconda Prompt启动labeimg标注工具
在这里插入图片描述

3.2 图像标注

在这里插入图片描述

3.3 数据集划分

xml格式标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
修改model_data/voc_classes.txt文件,改为自己使用的类别
在这里插入图片描述
修改voc_annotation.py117行,图片格式改为自己实际用到的图片格式。
在这里插入图片描述
运行voc_annotation.py
VOCdevkit\VOC2007\ImageSets\Main路径下会生成划分数据集的txt文件,在项目根目录下会生成2007_train.txt2007_val.txt文件。
注意这里只支持xml格式的标签,不支持json格式的标签。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、YOLOv3网络训练和测试

4.1 训练

运行train.py,根据自己的实际情况,修改一下参数。
在这里插入图片描述

4.2 测试

修改yolo.py中代码,“model_path” : ‘logs/best_epoch_weights.pth’,“classes_path” : ‘model_data/voc_classes.txt’,
运行predict.py文件。
读者需要根据自己的情况修改模型权重和测试图片的地址。
读者可以通过修改mode参数,实现下面5种模式:

#   'predict'           表示单张图片预测,如果想对预测过程进行修改,如保存图片,截取对象等,可以先看下方详细的注释
#   'video'             表示视频检测,可调用摄像头或者视频进行检测,详情查看下方注释。
#   'fps'               表示测试fps,使用的图片是img里面的street.jpg,详情查看下方注释。
#   'dir_predict'       表示遍历文件夹进行检测并保存。默认遍历img文件夹,保存img_out文件夹,详情查看下方注释。
#   'export_onnx'       表示将模型导出为onnx,需要pytorch1.7.1以上。

设置mode = “predict”模式,测试一张自己手动输入路径的图像,结果如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【博弈论3——二人博弈的纳什均衡】

1.俾斯麦海之战 2. 零和博弈的定义 零和博弈(Zero-Sum Game)是一种博弈论的基本概念,指的是在博弈过程中,博弈参与者之间的收益和损失之和总是一个常数,特别是总和为零。即博弈一方的收益必然等于另一方的损失&#x…

贪吃蛇:从零开始搭建一个完整的小游戏

目录 导语: 一、游戏框架 二、蛇的实现 三、绘制游戏界面 四、食物 五、移动蛇 六.得分系统,是否吃到食物 七、检查碰撞 八、处理按键事件 九、得分系统 十、游戏状态管理 导语: 贪吃蛇这个经典的小游戏,我上学的时候就…

QT记事本

QT记事本 1.概述 2.界面  2.1 界面布局  2.2 UI美化stylesheet   2.2.1 准备   2.2.2 stylesheet   2.2.3 效果 2.3 窗口大小调整与子控件自适应 3.信号与槽  3.1 简述  3.2 信号与槽设置   3.2.1 UI控件设置   3.2.2 UI转到槽(自动连接&am…

Jamba LLM模型:破解大型上下文窗口挑战的AI新星

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

JBPM学习(三):管理流程定义,java集合面试题

Test public void findAll() { // 查询 List list processEngine.getRepositoryService()// .createProcessDefinitionQuery()// .orderAsc(ProcessDefinitionQuery.PROPERTY_KEY)//排序条件 //.count()查询出总数量 //.page(0, 100)分页,取出前100条记录 …

flask-(数据连接池的使用,定制命令,信号的使用,表关系的建立和查询)

文章目录 连接池实例flask定制命令flask 缓存的使用flask信号的使用sqlalchemy原生操作sqlalchemy操作表flask orm操作表一对多的增加和跨表查询 (一对一只需要关联字段加上 ,uniqueTrue)多对多关系的增加和查询多对多基本的增删改查 连接池 import pymy…

axios封装,请求取消和重试,请求头公共参数传递

axios本身功能已经很强大了,封装也无需过度,只要能满足自己项目的需求即可。 常规axios封装,只需要设置: 实现请求拦截实现响应拦截常见错误信息处理请求头设置 import axios from axios;// 创建axios实例 const service axios…

Qt主窗口 之:状态栏(QStatusBar)

成员函数 原文链接:https://blog.csdn.net/techenliu/article/details/133687883 1)void setText(const QString &text) 设置状态栏的文本。参数text是要显示的消息文本。 2)QString text() const 返回当前状态栏的文本。 3&#xff0…

【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏

漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin LearnDash LMS 4.10.2及之前版本存在安全漏洞&#x…

The Morning Star

题目描述 本题有多组数据。 给定 n 个点,第 i 个点的坐标为 xi​,yi​。 现需要将星星和指南针放在任意两个点上,使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向,求一共几种放法。&#xff08…

遥感动态监测技术

很多人对动态监测和动态检测两个名词有疑惑。我们可以这样理解,动态监测是一个广义的名词,泛指数据预处理、变化信息发现与提取、变化信息挖掘与应用等,以对整个流程的叙述。动态检测是一个狭义的名词,主要指部分数据预处理、变化…

C++list的模拟实现

为了实现list&#xff0c;我们需要实现三个类 一、List的节点类 template<class T> struct ListNode {ListNode(const T& val T()):_pPre(nullptr),_pNext(nullptr),_val(val){}ListNode<T>* _pPre;ListNode<T>* _pNext;T _val; }; 二、List的迭代器…

JAVAEE之CSS

1.CSS 是什么&#xff1f; 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离. 1.1 CSS和HTML的区别 CSS&#xff0c;全称为层叠样式表(Cascading Style Sheets)&#xff0c;是…

RocketMQ(版本4.9.4)+RocketMQ_Dashbord环境搭建(生产者、消费者的前置环境搭建)

一、官方网站下载 RocketMQ源码包 https://rocketmq.apache.org/zh/docs/4.x/introduction/02quickstart 二、把rocketMQ上传到Linux环境下解压&#xff0c;编译&#xff0c;执行以下命令&#xff08;需要提前装jdk和maven并配置好环境变量&#xff09; unzip rocketmq-all-4…

学习java第二十九天

如何通过注解配置文件&#xff1f; Configuration 用于指定当前类是一个 spring 配置类&#xff0c;当创建容器时会从该类上加载注解&#xff0c;value 属性用于指定配置类的字节码。 ComponentScan 用于指定 Spring 在初始化容器时要扫描的包。basePackages 属性用于指定要扫…

AtCoder Beginner Contest 347 (ABCDEF题)视频讲解

A - Divisible Problem Statement You are given positive integers N N N and K K K, and a sequence of length N N N, A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\ldots,A_N) A(A1​,A2​,…,AN​). Extract all elements of A A A that are multiples of K K K, divi…

计算机的组成原理

1.简单常识介绍 1.1认识一下计算机的真实相貌 1.2怎么通过电信号传二进制 工作原理 cpu的针脚也就跟我们的手指一样用来接收高低电频&#xff0c;来判断2进制数据 cpu和数据交互的原理 2.计算机系统 软件介绍 硬件的发展历史 电子管时代 晶体管时代 中小规模集成电路 大规模…

C#(winform) 调用MATLAB函数

测试环境 VisualStudio2022 / .NET Framework 4.7.2 Matlab2021b 参考&#xff1a;C# Matlab 相互调用 Matlab 1、编写Matlab函数 可以没有任何参数单纯定义matlab处理的函数&#xff0c;输出的数据都存在TXT中用以后期读取数据 function [result,m,n] TEST(list) % 计算…

Uibot6.0 (RPA财务机器人师资培训第6天 )发票验真机器人案例实战

类似于小北的这篇博客&#xff1a;Uibot (RPA设计软件&#xff09;Mage AI智能识别&#xff08;发票识别&#xff09;———课前材料五_uibot 添加mageai-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135591297?spm1001.2014.3001.5501训练网站&#xff1a;泓江…

Vue3之defineModel

随着vue3.4版本的发布&#xff0c;defineModel也正式转正了。它可以简化实现父子组件之间的双向绑定&#xff0c;也是目前官方推荐的双向绑定实现方式。 1.vue3.4的实现双向绑定 大家应该都知道v-model只是一个语法糖&#xff0c;实际就是给组件定义了modelValue属性和监听up…