1 项目说明
据统计,2021年全国共接报火灾74.8万起,直接财产损失高达67.5亿元。火灾已经成为危害人们生命财产安全的一种多发性灾害。
针对住宅、加油站、公路、森林等火灾高发场景,应用飞桨PaddleX的目标检测技术,可以自动检测监控区域内的烟雾和火灾,帮助相关人员及时应对,最大程度降低人员伤亡及财物损失,效果如图所示。
希望通过梳理优化模型精度和性能的思路能帮助用户更高效地解决实际火灾和烟雾检测应用中的问题。开放烟雾和火灾数据和预训练模型,并提供服务器Serving和Jetson NX边缘侧芯片的部署指南。
全部代码和线上实训链接:
基于PP-YOLOv2的火灾/烟雾检测 - 飞桨AI Studio
方案难点:
- 推理速度要求高: 在烟雾和火灾检测场景,希望模型能在火情发生的第一时间即做出响应,对模型推理速度有较高的要求;
- 干扰样本多,容易造成误检: 生活中有很多物体和烟火是非常接近的,很难区分(比如:云朵、红色的灯光等),容易造成模型误检。
更多技术交流和支持需求欢迎扫码入群
2 安装说明
下载PaddleX源码
本项目中已经帮大家下载好了最新版的PaddleX,无需下载,只需安装环境~
如仍需安装or安装更新,可以执行以下步骤
# 项目已提供PaddlePaddleX,无需执行此步骤
# !git clone https://github.com/PaddlePaddle/PaddleX.git -b develop
!unzip -q PaddleX.zip
# 安装环境
%cd /home/aistudio/PaddleX
!git checkout develop
!pip install -r requirements.txt
!python setup.py install
3 数据准备
本案例使用数据集包含MIT协议互联网下载图片和MIT协议公开数据集,共有6675张图片,分别检测烟雾和火灾,示例图片如下图所示:
数据集图片格式是VOC数据格式,VOC数据是每个图像文件对应一个同名的xml文件,xml文件内包含对应图片的基本信息,比如文件名、来源、图像尺寸以及图像中包含的物体区域信息和类别信息等。
xml文件中包含以下字段:
-
filename,表示图像名称。
-
size,表示图像尺寸。包括:图像宽度、图像高度、图像深度。
<size> <width>500</width> <height>375</height> <depth>3</depth> </size>
-
object字段,表示每个物体。包括:
标签 说明 name 物体类别名称 pose 关于目标物体姿态描述(非必须字段) truncated 如果物体的遮挡超过15-20%并且位于边界框之外,请标记为 truncated
(非必须字段)difficult 难以识别的物体标记为 difficult
(非必须字段)bndbox子标签 (xmin,ymin) 左上角坐标,(xmax,ymax) 右下角坐标,
将这6675张图片按9:1比例随机切分,切分后包含6008张图片的训练集和667张图片的验证集,提供处理好的数据集,下载地址。包含以下文件夹和文件:images
,annotations
,labels.txt
,