项目简介
本项目基于PaddleX框架实现对城市和森林场景中火灾和烟雾的检测。通过优化模型精度和性能,可帮助用户更高效地解决实际火灾和烟雾检测问题。项目开放了烟雾和火灾数据集及预训练模型,并提供服务器Serving和Jetson NX边缘侧芯片的部署指南。
项目的主要特性和功能
- 数据准备:使用含6675张图片的VOC格式数据集,按9:1比例随机切分为训练集和验证集,包含图片和对应XML标注文件。
- 模型选择:提供五种目标检测模型,选用Faster RCNN算法进行火灾和烟雾检测。
- 模型训练:支持单卡和多卡GPU训练,有详细训练命令。
- 模型优化:通过骨干网络优化、训练策略调整等提升模型精度。
- 模型评估:计算不同置信度阈值下的图片级召回率和误检率,选择合适阈值用于预测。
- 模型预测:加载训练好的模型对验证集或测试集图片预测并可视化结果。
- 模型导出:将训练好的模型导出为包含网络结构、权重和配置文件的部署所需格式。
- 模型部署:提供服务器和边缘侧芯片的部署指南,支持实际应用场景部署。
安装使用步骤
环境准备
- 安装PaddlePaddle >= 2.1.0
- 安装Python >= 3.5
- 安装PaddleX >= 2.0.0
- 参考PaddleX安装文档解决安装问题
下载PaddleX源码
bash
cd PaddleX
git checkout develop
数据准备
- 下载并准备数据集,数据集包含6675张图片,按9:1比例随机切分为训练集和验证集。
- 数据集文件组织结构如下:
├── dataset │ ├── annotations │ │ ├── fire_000001.xml │ │ ├── fire_000002.xml │ │ ├── fire_000003.xml │ │ | ... │ ├── images │ │ ├── fire_000001.jpg │ │ ├── fire_000003.jpg │ │ ├── fire_000003.jpg │ │ | ... │ ├── label_list.txt │ ├── train.txt │ └── valid.txt
模型训练
- 单卡训练:
bash export CUDA_VISIBLE_DEVICES=0 # Windows和Mac下不需要执行该命令 python train.py
- 多卡训练(例如使用2张卡):
bash export CUDA_VISIBLE_DEVICES=0,1 # Windows和Mac下不需要执行该命令 python -m paddle.distributed.launch --gpus 0,1 train.py
模型评估
bash
python eval.py
模型预测
bash
python predict.py
模型导出
bash
paddlex --export_inference --model_dir=./output/deeplabv3p_r50vd/best_model/ --save_dir=./inference_model
模型部署
通过以上步骤,您可以顺利完成火灾烟雾检测系统的安装、训练、评估、预测和部署。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】