Pytorch-YOLOV4-火焰目标检测

2023-10-27

首先感谢大佬提供的代码bubbliiiing

0.效果展示

在这里插入图片描述 在这里插入图片描述

1.所需环境

torch==1.2.0

2.注意事项

代码中的yolo4_weights.pth是基于608x608的图片训练的,代码中的默认anchors是基于608x608的图片的。
注意不要使用中文标签,文件夹中不要有空格!
在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件

3.小技巧的设置

train.py文件下:
1、mosaic参数可用于控制是否实现Mosaic数据增强。(这种方式并不是所有数据集都适用,可根据实际情况自行调整)
2、Cosine_scheduler可用于控制是否使用学习率余弦退火衰减。
3、label_smoothing可用于控制是否Label Smoothing平滑。

4.文件下载

1.训练所需的yolo4_weights.pth可在百度网盘中下载。
链接: 这里 提取码: 11su
yolo4_weights.pth是coco数据集的权重。
yolo4_voc_weights.pth是voc数据集的权重。
2.数据集为自己爬取到的3300张包含火焰的图片和3300张不含火焰的图片以及极市平台的样例集(100张有火焰的图片),链接有两种,有积分的支持一下(CSDN),没有的也不强求(百度盘)。
CSDN
百度盘 提取码:490b
我自己标注的图片质量不好,就不放出来丢人了,大家有需要自行下载并标注,标注推荐使用labelImg,反正我用起来挺方便的。

5.训练步骤

1、本文使用VOC格式进行训练。
2、训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
3、训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
4、在训练前利用voc2yolo4.py文件生成对应的txt。
5、再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。注意不要使用中文标签,文件夹中不要有空格!

classes = ["fire"]

6、此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置
7、在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件,示例如下:

classes_path = 'model_data/customdata_classes.txt'    

model_data/new_classes.txt文件内容为:

fire

8、运行train.py即可开始训练。

6.预测步骤

使用自己训练的权重

a、按照训练步骤训练。
b、在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类

_defaults = {
    "model_path": 'model_data/Epoch50-Total_Loss1.5336-Val_Loss5.0895.pth.pth',
    "anchors_path": 'model_data/yolo_anchors.txt',
    "classes_path": 'model_data/customdata_classes.txt',
    "model_image_size" : (608, 608, 3),
    "confidence": 0.5,
    "cuda": True
}

c、运行predict.py,输入

img/fire.jpg

可完成预测。

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

Pytorch-YOLOV4-火焰目标检测 的相关文章

随机推荐

  • 基于Matlab的深度学习LSTM模型时间序列多步预测——多对单

    LSTM在时间序列预测方面的应用非常广 但有相当一部分没有考虑使用多长的数据预测下一个 类似AR模型中的阶数P 我基于matlab2021版编写了用LSTM模型实现多步预测时间序列的程序代码 可以自己调整使用的数据 阶数 序列数据是我随机生
  • java ---- 逻辑控制

    目录 一 顺序结构 二 分支结构 1 if 结构 2 switch结构 三 循环结构 1 while结构 2 休息并继续 3 for结构 4 do while结构 四 输入和输出 3个输出 从键盘输入 循环输入 一 顺序结构 按照代码书写的
  • 9.荔枝派 zero(全志V3S)-移植最新版Uboot

    上面是我的微信和QQ群 欢迎新朋友的加入 1 获取源码 https gitlab denx de u boot u boot 文件拉下来要花点时间 将老版本的配置文件拷贝过来 编译 生成UBoot的bin文件和设备树文件 make ARCH
  • 二、TCP/IP协议之网络接口层(MAC地址、CSMA/CD、ARP协议)

    2 2 网络接口层 2 2 1 相关介绍 TCP IP模型的网络接口层实际上没有规定任何具体的协议 各物理网络可以使用自己的物理层协议和数据链路层协议 仅仅提供一个各种网络和TCP IP接口的要求 在TCP IP模型中 网络接口层对应ISO
  • git 命令行 创建分支_从命令行创建Git补丁

    git 命令行 创建分支 如果您不想执行常规的提交 请求 请求流程 Git修补程序是将更改应用于项目的一种简便方法 补丁是包含等效Git提交差异的文件 您可以使用git diff创建修改后的工作状态补丁 diff输出采用正确的补丁格式 gt
  • Python vitualenv环境下用pyinstaller打包exe程序,及报错解决:No module named ‘sklearn.metrics,xgboost.libpath

    问题 之前直接用命令打包 默认的是系统的python环境 没有用到虚拟环境 打包出来会特别大一个多G 1 cd E Users 13626 PycharmProjects pythonProject3 venv Scripts 虚拟环境项目
  • Hadoop分布式集群时间同步(ntp)配置

    目录 时间服务器配置 必须root用户 1 查看所有节点ntpd 时间服务器 服务状态和开机自启状态 2 修改hadoop102的ntp conf配置文件 3 重新启动ntpd服务并设置开机自启 配置其他服务器 1 关闭所有节点上的ntpd
  • vm options什么意思_什么是锂电池保护板,保护板的基础知识和不良分析!

    点击上面 电动知家 可以订阅哦 锂电池保护板是对串联锂电池组的充放电保护 在充满电时能保证各单体电池之间的电压差异小于设定值 一般 20mV 实现电池组各单体电池的均充 有效地改善了串联充电方式下的充电效果 同时检测电池组中各个单体电池的过
  • SiriKit 新变化:让 Intent 更强大

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者 wiilen iOS 开发者 来源丨老司机技术周报 ID LSJCoding Sessio
  • mysql 视图的作用

    转自 http blog csdn net fm0517 article details 5625949 视图是从一个或几个基本表 或视图 导出的表 它与基本表不同 是一个虚表 数据库只存放视图的定义 而不存放视图对应的数据 这些数据仍存放
  • JS赋值运算符详解

    赋值运算符左侧的操作数必须是变量 对象属性或数组元素 也称为左值 例如 下面的写法是错误的 因为左侧的值是一个固定的值 不允许操作 1 100 返回错误 赋值运算有以下两种形式 简单的赋值运算 把等号右侧操作数的值直接复制给左侧的操作数 因
  • [下载演讲稿]数字藏品与元宇宙存储—数字新世界的“土壤”

    和上次 下载 元宇宙存储 演讲稿 相比 增加了 1 两厅印发的 关于推进实施国家文化数字化战略的意见 对数字藏品的发展有积极促进作用 2 NFT和数字藏品的分类 新玩法 高质量体验 守诺 受朱嘉明老师 朱嘉明 数字经济和非同质时代 NFT
  • Java BigInteger的使用

    前言 在Java中 由CPU原生提供的整型最大范围是64位 long 型整数 使用 long 型整数可以直接通过CPU指令进行计算 速度非常快 但是如果我们使用的整数范围超过了 long 型怎么办 这个时候 就只能用软件来模拟一个大整数 j
  • unity 3D RPG高级教程(十)

    目录 声明 1 Action Button 快捷栏按键 2 Stats Info 显示 Player 相关信息 3 Change Animator 切换动画控制器 4 Item Tooltip 物品信息显示栏 5 Loot Items 掉落
  • misc.func.php,完美解决 discuz 您的管理面板已经锁定!

    出现 对不起 由于您多次输入错误密码 所以管理面板暂时锁定 您现在无法进入管理面板 15 分钟以后 锁定会自动解除 的提示 是出于安全的考虑 在您连续输入五次密码 仍然没有成功登陆的情况下所提示的 并且会在 15 分钟内禁止此 IP 再次登
  • mysql怎样设置默认值约束_MySQL默认值约束怎么用

    本篇文章将介绍default 默认约束 如何使用和改动后的效果 常用数据库约束 default 默认约束 not null 非空约束 指定某列不为NULL unique 唯一约束 指定某列和几列组合的数据不能重复 primary key 主
  • 【C/C++多线程编程之九】pthread读写锁

    多线程编程之读写锁 Pthread 是 POSIX threads 的简称 是POSIX的 线程标准 pthread读写锁把对共享资源的访问者分为读者和写者 读者只对共享资源进行读访问 写者只对共享资源进行写操作 在互斥机制 读者和写者都需
  • 详解Nodejs中的模块化

    Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境 它允许开发者使用JavaScript在服务器端运行代码 在Nodejs中 模块化是一种组织和重用代码的重要方式 模块化允许我们将代码拆分成小块 使得代码结构更清晰
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    Windows10访问Ubuntu子系统 WSL 的桌面环境 文章目录 Windows10访问Ubuntu子系统 WSL 的桌面环境 Why Linux Why WSL 开启WSL Ubuntu换源 更新与升级 安装桌面环境xubuntu
  • Pytorch-YOLOV4-火焰目标检测

    首先感谢大佬提供的代码bubbliiiing 0 效果展示 1 所需环境 torch 1 2 0 2 注意事项 代码中的yolo4 weights pth是基于608x608的图片训练的 代码中的默认anchors是基于608x608的图片