0

0

使用PaddleDetection2.0自定义数据集实现火焰识别预测

P粉084495128

P粉084495128

发布时间:2025-07-22 17:26:22

|

524人浏览过

|

来源于php中文网

原创

该项目利用PaddleDetection2.0中的YOLOv3(主干为mobilenetv3轻量化模型)实现火焰识别目标检测,mAP达81.94%,可部署于森林防火监控。流程包括自定义数据集解压、环境准备、按9:1划分数据集,基于特定配置文件训练,还进行了模型评估、预测及效果可视化。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

使用paddledetection2.0自定义数据集实现火焰识别预测 - php中文网

摘要

本项目旨在使用PaddleDetection2.0中的YOLOv3(主干网络为mobilenetv3的轻量化模型),通过少量代码实现火焰识别的目标检测,后期可部署用于监控森林防火等,mAP值达到81.94%

使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网

按以下几个步骤来介绍项目实现流程。

  1. 自定义数据集解压;
  2. 准备环境;
  3. 自定义数据集划分;
  4. 模型训练:训练的配置文件说明;

5.1 模型评估和预测:评估模型效果;

5.2 效果可视化:使用训练好的模型进行预测,同时对结果进行可视化。

1数据解压

将完成标注的火焰图片(VOC数据集)进行解压。

In [2]
!unzip -oq /home/aistudio/huo.zip -d work/

2准备环境

目前代码的版本是release/2.0,需要使用PaddlePaddle2.0.2版本。

In [3]
! git clone https://gitee.com/paddlepaddle/PaddleDetection.git

3自定义数据集的划分

将数据集按照9:1的比例进行划分,并生成train.txt和val.txt进行训练

In [4]
import randomimport os#生成train.txt和val.txtrandom.seed(2020)
xml_dir  = '/home/aistudio/work/Annotations'img_dir = '/home/aistudio/work/JPEGImages'path_list = list()for img in os.listdir(img_dir):
    img_path = os.path.join(img_dir,img)
    xml_path = os.path.join(xml_dir,img.replace('jpg', 'xml'))
    path_list.append((img_path, xml_path))
random.shuffle(path_list)
ratio = 0.9train_f = open('/home/aistudio/work/train.txt','w') 
val_f = open('/home/aistudio/work/val.txt' ,'w')for i ,content in enumerate(path_list):
    img, xml = content
    text = img + ' ' + xml + '\n'
    if i < len(path_list) * ratio:
        train_f.write(text)    else:
        val_f.write(text)
train_f.close()
val_f.close()#生成标签文档label = ['fire']with open('/home/aistudio/work/label_list.txt', 'w') as f:    for text in label:
        f.write(text+'\n')
In [5]
%cd PaddleDetection

4 模型训练

新版本的PaddleDetection中训练方式依旧延续了之前的形式,用户在选择好模型后,只需要改动对应的配置文件后,只需要运行train.py文件,即可实现训练,但是在新的版本中,配置文件采用了更加耦合的设计

本项目中,使用YOLOv3模型里的yolov3_mobilenet_v3_large_ssld_270e_voc.yml进行训练

4.1配置文件示例

我们使用configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml配置进行训练。 在PaddleDetection2.0中,采用了模块解耦设计,用户可以组合配置模块实现检测器,并可自由修改覆盖各模块配置

使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网

Shakespeare
Shakespeare

一款人工智能文案软件,能够创建几乎任何类型的文案。

下载
配置文件结构说明

4.2配置文件详细说明

从上图看到yolov3_mobilenet_v3_large_ssld_270e_voc.yml配置需要依赖其他的配置文件。在该例子中需要依赖:

  '../datasets/voc.yml',  '../runtime.yml',  '_base_/optimizer_270e.yml',  '_base_/yolov3_mobilenet_v3_large.yml',  '_base_/yolov3_reader.yml',

  '_base_/optimizer_270e.yml',主要说明了学习率和优化器的配置。在其他的训练的配置中,学习率和优化器是放在了一个新的配置文件中。  '../datasets/voc.yml'主要说明了训练数据和验证数据的路径,包括数据格式(coco、voc等)  '_base_/yolov3_reader.yml', 主要说明了读取后的预处理操作,比如resize、数据增强等等  '_base_/yolov3_mobilenet_v3_large.yml',主要说明模型、和主干网络的情况说明。  '../runtime.yml',主要说明了公共的运行状态,比如说是否使用GPU、迭代轮数等等
使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网
配置文件结构说明

4.3执行训练

执行下面命令开始进行训练

In [6]
!python tools/train.py -c configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml --eval --use_vdl=True --vdl_log_dir="./output"

4.4效果可视化

当打开use_vdl开关后,PaddleDetection会将训练过程中的数据写入VisualDL文件,可实时查看训练过程中的日志。记录的数据包括:

  1. loss变化趋势
  2. mAP变化趋势

使用如下命令启动VisualDL查看日志

# 下述命令会在127.0.0.1上启动一个服务,支持通过前端web页面查看,可以通过--host这个参数指定实际ip地址visualdl --logdir output/

浏览器输入提示的网址,效果如下:

使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网

5 模型评估和预测

5.1 模型评估

python -u tools/eval.py -c configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml \
-o weights=output/yolov3_mobilenet_v3_large_ssld_270e_voc/best_model.pdparams
In [7]
!python -u tools/eval.py -c configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml  -o weights=output/yolov3_mobilenet_v3_large_ssld_270e_voc/best_model.pdparams

5.2 模型预测

在执行tools/infer.py后,在output文件夹下会生成对应的预测结果

python tools/infer.py -c configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml \  
-o weights=output/yolov3_mobilenet_v3_large_ssld_270e_voc/best_model.pdparams \
--infer_img=dataset/113.jpg
In [8]
!python tools/infer.py -c configs/yolov3/yolov3_mobilenet_v3_large_ssld_270e_voc.yml -o weights=output/yolov3_mobilenet_v3_large_ssld_270e_voc/best_model.pdparams --infer_img=dataset/113.jpg
  • 结果展示

使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网


原图

使用PaddleDetection2.0自定义数据集实现火焰识别预测 - php中文网


预测图

相关专题

更多
golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

75

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

28

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

59

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

36

2025.11.27

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

4

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

26

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

31

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

6

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

63

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.7万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号