RK3588 火焰烟雾检测
以下内容均来自于我的github,源码见github地址:
https://github.com/sakura-kun-c/rk3588_fire_smoke_detect
1. 简介
基于 YOLOV6,在RK3588上实现的明火烟雾检测模型
演示视频如下:
fire_demo6_result
1.1 数据集来源
训练数据集20500张,其中真实数据集约15000张,合成烟雾数据集约5000张,数据集均来源于网上搜集,并进行部分重新标定。
点击进入数据集参考网址1
点击进入数据集参考网址2
1.2 训练代码及版本
点击进入YOLOV6源码地址 ,预训练模型及代码版本号选择:0.3.0
1.1.1 训练命令示例
Note: 注意训练适配 rknn 的模型时,不要开启 --fuse_ab
python tools/train.py --batch 32 --epochs 100 --conf configs/yolov6n_finetune.py --data data/dataset.yaml --device 0
1.1.2 测试训练后的模型效果
python tools/infer.py --weights ./weights/last_ckpt.pt --yaml ./data/dataset.yaml --source ./test_data/img/ --save-dir ./test_data/results/
1.1.3 查看训练loss曲线示例
tensorboard --logdir ./runs/train/exp/
1.1.4 导出适配rknn的onnx模型示例
python deploy/RKNN/export_onnx_for_rknn.py --weight ./yolov6n.pt
1.1.5 导出rknn模型
导出教程参考 rknn_model_zoo
1.3 版本说明
版本号 | 日期 | 功能说明 |
---|---|---|
v1.0.0 | 2025-06-01 | 支持图片/本地视频流火焰烟雾检测 |
1.4 模型评估
模型 | 召回率 | 误检率 |
---|---|---|
yolov6sInt8.rknn | 95% | / |
[名词解释]
- 图片级别召回:只要在有目标的图片上检测出目标(不论框的个数),该图片被认为召回
- 图片级别误检:只要在无目标的图片上检测出目标(不论框的个数),该图片被认为误检
2. 使用
2.1 编译项目
cmake -S . -B build && cmake --build build
2.2 执行
./build/main <rknn_model_path> <input_data_dir> <input_type> [save_video]
参数说明:
<rknn_model_path>:RKNN 模型文件路径(如:./weights/yolox_ss_fire_fp.rknn)
<input_data_dir>:输入图像或视频所在目录(如:./test_data/)
<input_type>:img:输入为图像;video:输入为视频
[save_video](可选):仅video模式需要,用于保存推理结果视频(输入任意字符即可保存)
执行推理后的图片/视频结果会放到工作目录的results
目录下
示例:
./build/main ./weights/300_epoch_v6s_int8.rknn ./test_data/ img
./build/main ./weights/300_epoch_v6s_int8.rknn ./test_data/ video 1
3. 后续规划
当前版本只是较为基础的版本,后续将尝试集成其他模型(如:安全帽、人员倒地检测模型),并集成8路以上摄像头进行实时视频检测, 同时每路摄像头都将检测若干个模型。欢迎各位大佬进行交流。