news 2026/6/15 19:54:11

火焰识别,火焰检测,火灾检测,基于yolov5的火焰检测,可以检测视频和图片,视频实时检测,将训练好的模型部署到英伟达边缘计算 基于 YOLOv5 的高精度、高帧率火焰检测系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
火焰识别,火焰检测,火灾检测,基于yolov5的火焰检测,可以检测视频和图片,视频实时检测,将训练好的模型部署到英伟达边缘计算 基于 YOLOv5 的高精度、高帧率火焰检测系统

火焰识别,火焰检测,火灾检测,基于yolov5的火焰检测,可以检测视频和图片,也可视频实时检测,检测准确率高,帧率很高,有标注好的训练数据集可以自己重新训练。

可以将训练好的模型部署到英伟达边缘计算设备nano nx或实际场景中,如监控摄像头、无人机、消防设备等,实时检测火灾并发出警报,以提高消防安全性。

1

以下是基于 YOLOv5 的高精度、高帧率火焰检测系统的完整解决方案,包含:

  • ✅ 标注好的火焰数据集说明
  • ✅ 详细训练代码(支持自定义训练)
  • ✅ 视频/图片/摄像头实时检测
  • ✅ 模型导出与NVIDIA Jetson Nano/NX 部署脚本
  • ✅ 报警触发逻辑(声音/日志/推流)
  • ✅ UI 可选(命令行 + OpenCV 可视化)

🔥 一、火焰检测数据集说明(可直接训练)

项目内容
类别fire(火焰)、smoke(烟雾)——2 类(可扩展)
图像数量5,000+ 张(含白天/黑夜、室内/室外、不同火源)
标注格式YOLO.txt格式(LabelImg 标注)
目录结构
fire_dataset/ ├── images/train/ # ~4000 张 ├── images/val/ ├── labels/train/ ├── labels/val/ └── fire.yaml

|fire.yaml|

train:./images/trainval:./images/valnc:2names:['fire','smoke']

💡 若你已有自己的数据集,只需按此结构组织即可。


🧪 二、环境准备(训练端)

# 克隆 YOLOv5 官方仓库gitclone https://github.com/ultralytics/yolov5cdyolov5# 安装依赖(Python ≥3.8)pipinstall-r requirements.txt torch torchvision

▶️ 三、详细训练代码(YOLOv5)

1. 启动训练(命令行)

python train.py\--img640\--batch16\--epochs100\--data /path/to/fire_dataset/fire.yaml\--weights yolov5s.pt\--name fire_yolov5s\--cacheram\--workers4

2. Python 脚本训练(train_fire.py

# train_fire.pyimporttorchfromyolov5importtrainif__name__=='__main__':train.run(imgsz=640,batch_size=16,epochs=100,data='/path/to/fire_dataset/fire.yaml',weights='yolov5s.pt',name='fire_yolov5s',cache='ram',workers=4,device=0# GPU ID)

✅ 训练完成后,最佳模型保存在:runs/train/fire_yolov5s/weights/best.pt


🎥 四、火焰检测推理系统(支持图片/视频/摄像头)

将以下代码保存为fire_detection.py

# fire_detection.pyimportcv2importtorchimportnumpyasnpimportargparseimporttimeimportosfrompathlibimportPath# 报警函数(可替换为短信/邮件/声光报警)deftrigger_alarm(frame,save_dir="alarms"):os.makedirs(save_dir,exist_ok=True)timestamp=time.strftime("%Y%m%d_%H%M%S")cv2.imwrite(f"{save_dir}/alarm_{timestamp}.jpg",frame)print(f"🔥 火灾警报!已保存截图:{save_dir}/alarm_{timestamp}.jpg")# 可添加:播放警报音、发送 HTTP 请求等defdetect(source,weights,conf_thres=0.5,alarm_threshold=1):""" :param source: 图片路径 / 视频路径 / '0'(摄像头) :param weights: 模型路径(.pt) :param conf_thres: 置信度阈值 :param alarm_threshold: 触发报警的最小火焰数量 """model=torch.hub.load('ultralytics/yolov5','custom',path=weights,force_reload=True)model.conf=conf_thres# 判断输入类型is_camera=source=='0'is_video=source.endswith(('.mp4','.avi'))ifis_cameraoris_video:cap=cv2.VideoCapture(0ifis_cameraelsesource)fps=cap.get(cv2.CAP_PROP_FPS)or30frame_time=1.0/fpswhileTrue:ret,frame=cap.read()ifnotret:breakstart_time=time.time()results=model(frame)detections=results.xyxy[0].cpu().numpy()fire_count=0for*xyxy,conf,clsindetections:ifint(cls)==0:# class 0 = firefire_count+=1x1,y1,x2,y2=map(int,xyxy)cv2.rectangle(frame,(x1,y1),(x2,y2),(0,0,255),2)cv2.putText(frame,f"Fire{conf:.2f}",(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,0,255),2)# 报警逻辑iffire_count>=alarm_threshold:trigger_alarm(frame)# 显示状态status="🔥 DANGER!"iffire_count>=alarm_thresholdelse"✅ SAFE"cv2.putText(frame,f"Status:{status}| Fire:{fire_count}",(10,30),cv2.FONT_HERSHEY_SIMPLEX,0.8,(0,255,0),2)# 控制帧率elapsed=time.time()-start_time delay=max(1,int((frame_time-elapsed)*1000))cv2.imshow("Fire Detection",frame)ifcv2.waitKey(delay)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()else:# 单张图片检测img=cv2.imread(source)results=model(img)results.render()cv2.imshow("Result",results.ims[0])cv2.waitKey(0)cv2.destroyAllWindows()if__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('--source',type=str,default='0',help='image/video/camera')parser.add_argument('--weights',type=str,default='best.pt',help='model path')parser.add_argument('--conf',type=float,default=0.5,help='confidence threshold')args=parser.parse_args()detect(args.source,args.weights,args.conf)

运行示例:

# 摄像头实时检测python fire_detection.py --source0--weights runs/train/fire_yolov5s/weights/best.pt# 视频检测python fire_detection.py --source test.mp4 --weights best.pt# 图片检测python fire_detection.py --source test.jpg --weights best.pt

🚀 五、部署到 NVIDIA Jetson Nano/NX

步骤 1:在 Jetson 上安装依赖

# 安装 JetPack(含 CUDA/TensorRT)# 安装 OpenCV(通常已预装)sudoaptinstallpython3-opencv# 安装 PyTorch(Jetson 版本)wgethttps://nvidia.box.com/shared/static/...# 从 NVIDIA 官网下载 wheelpip3installtorch-*.whl

步骤 2:导出为 TensorRT(加速推理)

# export_to_trt.pyfromyolov5.models.experimentalimportattempt_loadfromyolov5.utils.torch_utilsimportselect_deviceimporttorch device=select_device('0')model=attempt_load('best.pt',map_location=device)model.eval()# 导出 ONNXdummy_input=torch.randn(1,3,640,640).to(device)torch.onnx.export(model,dummy_input,"fire.onnx",opset_version=12)# 然后使用 trtexec 转 TensorRT(Jetson 上执行):# /usr/src/tensorrt/bin/trtexec --onnx=fire.onnx --saveEngine=fire.engine

步骤 3:Jetson 上运行轻量推理(使用 TensorRT)

推荐使用 TensorRT-YOLOv5 项目加载.engine文件,实现>20 FPS @ Jetson Nano


⚙️ 六、性能优化建议

场景建议
高帧率使用yolov5nyolov5s+imgsz=416
高精度使用yolov5m+imgsz=640+ TTA(测试时增强)
夜间火焰在训练集中加入红外/低光照样本
减少误报增加smoke类别,结合火焰+烟雾联合判断

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:36:49

探讨雷达在智能家居与消费电子领域的应用

在智能家居与消费电子领域,实现精准、可靠且无需接触的感知是提升产品智能化水平的关键。雷达技术,特别是毫米波雷达,在该领域的应用正展现出其独特的技术优势与不可替代性。以下将结合深圳市飞睿智能有限公司的产品资料,分析其优…

作者头像 李华
网站建设 2026/6/15 1:21:59

sudo setenforce 0的庖丁解牛

sudo setenforce 0 是 临时禁用 SELinux(Security-Enhanced Linux)强制模式 的命令。它常用于快速解决权限问题,但背后涉及 Linux 安全模型、风险权衡、运维规范 三大层面。一、SELinux 是什么? ▶ 1. 核心定位 MAC(Ma…

作者头像 李华
网站建设 2026/6/15 13:52:03

学长亲荐2026研究生AI论文网站TOP9:开题报告文献综述神器

学长亲荐2026研究生AI论文网站TOP9:开题报告文献综述神器 2026年研究生AI论文网站测评:选对工具,事半功倍 在研究生阶段,撰写开题报告和文献综述是科研工作的基础环节,也是许多学生面临的一大挑战。随着AI技术的不断进…

作者头像 李华
网站建设 2026/6/15 16:40:31

基于协同过滤算法的音乐推荐播放器 计算机毕业设计选题 计算机毕设项目 前后端分离【源码-文档报告-代码讲解】

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

作者头像 李华
网站建设 2026/6/15 11:25:33

自从进了这个京东捡漏群,拿了很多低价商品!

很遗憾地说,这不是一篇告诉你京东plus怎么充值,哪款电商平台适合购物,这篇文章仅推荐优惠群。声明一下:一、本人已从京东离职。二、以下内容,100000%基于个人观点。我无法保证信息百分百准确,但我能保证的是…

作者头像 李华