pytorch版本下的yolov3训练实现火焰检测

火灾检测——相关数据集 收集了火灾检测研究的主要数据集,包括数据集的简要信息,可供下载。 阅读详情

时隔好多好多日子了,一直没写博客(小声bb,最近忙着接私活儿)。马上就要开学了,害,回去就要加油干了!!!

本次教程写个pytorch版本的yolov3检测,用的火焰检测数据集,效果如下:

这就可以做个火警预测了,yolov3是真的香呀,这次用到的是github 的一个pytorch实现版本,效果上还是不错的。

那么, 接下来,就跟我一起来实操起来吧!!!

一、环境要求

老规矩,工欲善其事必先利其器,搭建环境!!

  • Python: 3.7.4
  • Tensorflow-GPU 1.14.0
  • Keras: 2.2.4
  • numpy:1.17.4

这里建议用anaconda来快速搭建一个虚拟环境,速度很快的!!!

二、数据集准备

从互联网上收集火焰图片,并用labelimg进行标注,得到标注图片以及标注的位置信息。

如下:

万事俱备,开始coding!!!!

三、Pytorch版本的YoloV3

Pytorch_Yolov3

1.安装模块

在requirements.txt中含有本次所需的python模块.

  • numpy
  • torch==1.2.0
  • torchvision==0.4.0
  • matplotlib
  • tensorflow==1.13.2
  • tensorboardX==2.0
  • terminaltables
  • pillow
  • tqdm

可用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt来安装所需的模块。

2.下载所需的权重文件

Linux平台下,cd weights/,之后运行bash download_weights.sh文件,即可下载所需的权重信息。

Windows平台下,可直接编辑download_weigths.sh文件,复制其中的模型链接,在游览器中打开下载。

下载完毕后,在weights文件的内容如下:

3.修改配置文件

Linux平台下,运行cd config/目录,之后运行 bash create_custom_model.sh <num-classes> 其中 为类别参数,根据你的需要修改,这里我修改为1.

Windows平台下,配置git的bin目录下的变量之后,运行sh.exe文件。之后cd config目录之后,运行sh create_custom_model.sh <num-classes>即可

执行完毕之后,修改custom.data,修改其配置信息即可。

4.配置本次yolov3的数据格式

重点来了,重点来了,重点来了!!!

在该github下,对自定义的数据,并未阐述,只是一笔带过。但该yolov3的版本所需的数据格式跟voc格式和coco格式都不大一样。每张图片对应一个txt标注信息。其第一列为类别信息,之后的四列为标准化的标注信息。其中 label 是类别在 data/custom/classes.names 的索引, <> 代表缩放后的比例系数

  • <1>*w = (xmax-xmin)/2 + xmin
  • <2>*h = (ymax-ymin)/2 + ymin
  • <3> = (xmax-xmin)/w
  • <4> = (ymax-ymin)/h

这里github未提供数据转换,这里先新建两个Annotations和JPEGImages的文件夹,将准备好的图片和xml标记信息放于其中。

然后运行voc2yolov3文件,生成train.txt和valid.txt文件信息,将数据集划分,即将图片路径保存在两个txt文件中。

之后运行voc_annotation.py对xml标记信息进行处理,处理成下列的txt文件形式

并记得修改classes.names的类别名,以及将图片复制到images文件中。即

好了,数据格式制作完成了!!!

下面可以开始训练了.

5.运行train.py

# 训练命令
python train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data --pretrained_weights weights/darknet53.conv.74
# 添加其他参数请见 train.py 文件
    
# 从中断的地方开始训练
python train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data --pretrained_weights checkpoints/yolov3_ckpt_99.pth --epoch 

若出现警告解决方案UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead.

在 model.py计算损失的位置 大概在 192 行左右添加以下两句:

obj_mask=obj_mask.bool() # convert int8 to bool

noobj_mask=noobj_mask.bool() #convert int8 to bool

运行过程如图所示:

可通过tensorboard来查看运行过程中的变化。tensorboard --logdir='logs\'

6.测试结果

叮咚,叮咚,马上大功告成了!!!

python detect.py --image_folder data/imgs/ --weights_path checkpoints/yolov3_ckpt_99.pth --model_def config/yolov3-custom.cfg --class_path data/custom/classes.names

运行上述,其会对data/imgs 文件下的图片进行预测,并将预测结果保存到output/imgs文件下

若是在 GPU 的电脑上训练,在 CPU 的电脑上预测,则需要修改 model.load_state_dict(torch.load(opt.weights_path, map_location='cpu'))

好了,大功告成了!!! 立下flag!!! 明天再更一个!!!

YOLO实现火焰检测 完整源码项目包获取→点击文章末尾名片!6.Tensorboard可视化。从中断的地方开始训练。 阅读详情

相关推荐

yolov5 烟雾和火焰检测

随着社会经济的高速发展,工业、企业园区,住宅日益增多,存在一些消防安全隐患,导致火灾事故屡屡发生。 针对住宅,工业园区,森林,加油站等室内外场景,深入了解,并通过目标检测算法,在图像中自动标注疑似烟雾、火焰,实现机器智能值守,具有重大意义。 运行环境是pytorch1.81 gpu,可以在免费云gpu上直接运行,一共三个压缩包 yolov5.zip.mp4(源码和运行配置word) fire_smoke_labels.zip.mp4(数据集的标签文件) s...

qq_34351067的博客 1万+

目标检测任务的标注标准(以火焰和烟雾的数据集标注为例)

目标检测任务的标注标准(以火焰和烟雾的数据集标注为例)对火焰和烟雾的数据集的标注工作1、容易标注的图片 注意 标注的边框在目标外,不要压线。2、小于10X10或者20X20像素的目标不方便标记可以忽略3、文件命名保持在6个字符以上4、宽高比 极端不是好样本5、对与边界模糊、连片的处理6、火焰的倒影之类的具备特征的也算是火焰7、对于模糊、遮挡、有拖影的样本 最好单独建立样本库,有选择的启用 对火焰和烟雾的数据集的标注工作 2021年8月20日,近期整理火焰烟雾数据集,标注工作总结如下: 1、容易标注的图

bicdnknjbv的博客 4298

Pytorch-YOLOV4-火焰目标检测

首先感谢大佬提供的代码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参

wenroudebaozi的博客 6297

100种目标检测数据集【voc格式yolo格式json格式coco格式】+YOLO系列算法源码及训练好的模型

本文介绍并分享了应用于各行业、各领域非常有用的目标检测数据集(感谢您的关注+三连,数据集持续更新中…),其中绝大部分数据集作者已应用于各种实际落地项目,数据集整体质量好,标注精确,数据的多样性充分, 训练模型拟合较好,具有较高的研究和使用价值,各数据集都有下载链接及作者训练好的模型+源码下载链接,同时也有对应的检测效果视频,请放心下载~【实际项目应用】:阳光厨房、明厨亮灶智能监控方案 【数据集说明】:老鼠检测数据集已更新到2018张,图片包含有白天和黑夜老鼠出没照片,标签包含voc(xml)和yolo格式

实力派,无需多言! 2万+

火焰检测 数据集

开源项目1: https://github.com/gengyanlei/fire-smoke-detect-yolov4/tree/master/yolov5 开源项目2: 火焰检测 python3 app.py rknn_version : 1.6.0 rk3399pro yolov5-v4.0 tag train inference https://github.com/airockchip/yolov5 GitHub - xiaqing10/yolov5_rknn 原文链接:htt...

jacke121的专栏 5489

PyTorch实现YOLOv3火焰检测完整项目

YOLOv3 的网络结构复杂,包含 Darknet-53 主干网络、FPN(特征金字塔网络)结构以及多个检测头(Head)。为了便于管理和扩展,应采用模块化设计方式,使用 PyTorch 的nn.Module和构建网络。在PyTorch中,数据加载通常通过继承类并实现__len__和方法来完成。以下是一个针对火焰检测数据集的简单实现示例:import osimport cv2。

weixin_32687875的博客 1166

Yolov3实现实时视频检测(pytorch含代码)

最近在做火焰检测,需要实时检测监控视频,所以就尝试了一下通过python编写代码,将opencv和pytorch版yolov3结合起来,实现实时检测监控视频。效果如下: 一、配置环境 所需环境如下: Python: 3.7.4 Tensorflow- 1.14.0 Keras: 2.2.4 numpy:1.17.4 我的操作系统是Ubuntu16.04,windows系统同样可以实现此算法这里建议使用anaconda来快速搭建一个虚拟环境。具体过程可以参考我的另一博客。配置相关环境 有了相关的环境后你需要

qq_51331745的博客 1万+

火焰目标检测数据集(已经标注)

该数据集包含1500+张图片,同时使用labelme标注工具进行标注(包含xml坐标信息的标注),适用于yolo v5等目标检测算法进行火焰检测。

基于YOLOv11的火焰识别系统实战:训练、优化与部署

目标检测是计算机视觉中的核心任务,旨在从图像或视频中精准定位并分类目标物体。YOLO系列算法凭借其将检测转化为回归问题的独特设计,实现了端到端的高效推理,成为工业落地最广泛的目标检测框架之一。YOLOv11作为该系列的最新版本,通过引入C3k2模块与C2PSA注意力机制,在保持高速度的同时进一步强化了小目标与复杂背景下的特征提取能力。火焰识别正是对实时性与鲁棒性要求极高的典型场景,其难点在于火焰形态多变、易与红色物体混淆、并常以小目标形式出现,对检测算法的精度与召回提出了双重考验。本文基于YOLOv11展开

weixin_29058331的博客 84

yolov5数据集:火焰检测(1类别,包含训练集、验证集)

项目包含:火焰检测(1类别,包含训练集、验证集),数据保存按照YOLOV5文件夹保存,可直接用作目标检测数据集,无需额外处理。 图像分辨率为300-800的大分辨率RGB图片,数据集为生活中的火焰检测,边界框标注清晰,图像完整。 【数据集介绍】火焰检测,1类别:fire 【数据总大小压缩后】591 MB(数据分为分为训练集和验证集) 训练集datasets-images-train:8236张图片和8236个标签txt文件组成 验证集datasets-images-val:2059张图片和2059个标签txt文件组成 【txt类别文本文件】1 类别txt文本信息 为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行可视化图像!!

火焰识别3k张VOC已标注数据集

本数据集包含的火焰类别有“蜡烛火苗”、“森林大火”、“城市火灾”等,适用于做火焰识别的目标检测初学者或者与火焰识别有关的项目用户进行学习训练使用。

yolov3训练实现火焰检测(pytorch)

前言 最近因为某些原因所以弄了个火焰检测,所以就上网找了一些攻略,发现这个博主写的确实挺详细的,所以就fork他的代码跑了一下,不跑不知道,bug有一堆,没有不尊敬的意思,是因为时效性的问题,很多数据包更新会导致bug。于是耐下心慢慢debug,最后还是顺利的跑通了。 不得不说yolov3还是蛮厉害的。 先献上博主链接:pytorch版本下的yolov3训练实现火焰检测_Mind_programmonkey的博客-优快云博客 大家也可以看看他是如何实现的,虽然有bug,感谢该博主的贡献。 然后献上我的gi

weixin_47349091的博客 4101

明火烟雾AI识别数据集828张720p

明火烟雾AI识别数据集828张720p

YOLOv5实现火焰和烟雾检测

YOLOv5火焰和烟雾识别

小秋的博客 7240

目标检测-火焰检测数据集-3000张图-+对应VOC/COCO/YOLO三种格式标签+支持GPU(GPUs)/CPU/Mac三平台YOLO11一键训练脚本

● 数据集介绍:火焰检测数据集,真实场景高质量图片数据,涉及场景丰富,比如室内厨房明火、室外草地野火、工业园区油火、火焰烟雾遮挡、火焰烟雾严重遮挡数据等,划分为 "fire"、"smoke" 两个类别;; ● 适用实际项目应用:火焰检测项目,以及作为通用灾害检测数据集场景数据的补充; ● 标注说明:采用 labelimg 标注软件进行标注,标注质量高,提供 VOC(xml)、COCO (json)、YOLO (txt) 三种常见目标检测数据集格式,可以直接用于如 YOLO 等的算法训练; ● 附赠训练示例:提供 YOLO11 一键训练脚本,提供 GPU(GPUs)、CPU、Mac(M芯片) 多平台训练方案支持,提供博主训练结果日志供参考; 注意:由于数据集资源比较大,所以托管在我的百度网盘,所以这里的资源格式是 PDF,内附数据集基本情况介绍以及数据集获取方式!

allegro转AD-(附工具)

本文介绍了将Allegro的.brd文件转换为Altium Designer可用的.alg文件的操作流程。首先需要下载专用转换工具,然后通过运行.bat脚本将.brd文件转换为.alg格式。最后在Altium Designer中使用导入向导完成文件转换,生成可用的PCB设计文件。整个过程简单快捷,只需三个步骤即可实现Allegro到Altium Designer的工程文件转换。

weixin_50120208的博客 1717

基于yolov3和pythorch框架的火焰识别检测算法

本人属于小白吧,这也是第一次写博客,就当是自己实现算法的一个记录吧,我会详细的从环境的配置到算法实现都说明一下,希望对大家能有帮助。 本火焰识别算法采用的是pytorch版本的yolov3检测,有yolov3基于的是Darknet-53网络结构,在图像识别领域应用特别广。 本算法识别的效果如下: 下面开始实际操作啦 一、配置环境 算法所需环境如下: Python: 3.7.4 Tensorflow-GPU 1.14.0 Keras: 2.2.4 numpy:1.17.4 我的操作系统是Ubuntu16.

qq_51331745的博客 6360

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

Yolov3的Pytorch版本实现火焰检测

YOLOV3-Fire-Detection Yolov3的Pytorch版本实现火焰检测,其具体效果如下: Requirements 环境:windows10 编程语言:python 编程工具:pycharm 所需的包:requirements.txt Train 1.安装包 本次所需的包在requirements.txt中,通过 pip install -r requirements.txt 即可。 2.所需权重文件 $ cd weights/ $ bash download_weigh

毕业作品网站 1027

游戏开发实战:5种AOI算法对比(九宫格 vs 灯塔 vs 十字链表)

本文深入对比了游戏开发中五种主流AOI算法(九宫格、灯塔、十字链表等)的性能与适用场景,帮助开发者根据项目规模选择最优解决方案。通过详细的技术分析和实战数据,揭示不同算法在万人同屏等极端场景下的表现差异,为MMORPG等大型多人在线游戏提供关键性能优化指南。

weixin_29268385的博客 474

(赛事-2022)[re:Invent 2018]-002:通过分析log多次迭代优化奖励函数后- 最快7.6s / 圈

Deepracer training 流程

Rainbow 4711

YOLOv5火焰烟雾检测

YOLOv5火焰烟雾检测

weixin_46556352的博客 5080

00 — Intel xe SVM 内核实现精读系列专栏导读

本文系统介绍了Intel Xe GPU的共享虚拟内存(SVM)实现机制。第一部分通过概念地图阐述SVM的六个核心概念及其关系;第二部分通过三个测试用例解析SVM关键功能:fault生命周期验证、madvise与VRAM迁移、跨GPU一致性;第三部分深入内核实现,包括初始化/销毁流程、Page Fault处理、MMU Notifier失效路径、异步垃圾回收、VRAM迁移机制、madvise实现原理,以及与ROCm SVM的对比。文章建议按功能模块顺序学习,从基本概念到测试用例,再深入内核实现细节,最后对比不同

图形/计算GPU的驱动与虚拟化技术分享园地 1671
上一篇: [实战]200类鸟类细粒度图像分类
下一篇: yolov4训练自己的数据集实现安全帽佩戴检测
mind_programmonkey
mind_programmonkey 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 4435粉丝 1111原创
评论 111
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值