⌈ 传知代码 ⌋ 2 行代码搞定火灾检测

2024-06-16 08:12

本文主要是介绍⌈ 传知代码 ⌋ 2 行代码搞定火灾检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 演示效果
  • 🍞三. 训练过程可视化
  • 🍞四. 核心逻辑
  • 🍞五. 使用方式
  • 🫓总结


💡本章重点

  • 2 行代码搞定火灾检测

🍞一. 概述

火灾是一种具有严重破坏性的灾害,给人类的生命财产安全带来了巨大威胁。随着人工智能技术的不断发展,利用深度学习算法进行火灾检测成为了可能。

本文提出了基于YOLOv7的火灾检测系统设计与实现。该系统利用YOLOv7深度学习模型,能够实时监测火灾并准确地进行定位。

  • 首先,介绍了YOLOv7模型的基本原理和结构,以及在火灾检测中的应用方式。

  • 其次,详细描述了火灾检测系统的设计思路和实现过程,包括数据集的准备、模型训练、推理过程等。在实验部分,使用了多种开源工具和库,如matplotlib、numpy、opencv-python、Pillow、PyYAML、requests、scipy等,以及torch和torchvision作为主要的深度学习框架。通过对公开的火灾检测数据集进行训练和测试,评估了系统的性能和效果。

  • 实验结果表明,该系统在火灾检测任务中表现出了较高的准确性和稳定性,能够有效地检测不同场景下的火灾,并准确地进行定位。

  • 最后,讨论了系统的局限性和未来的改进方向,为进一步完善火灾检测系统提供了参考。综上所述,本文提出的基于YOLOv7的火灾检测系统具有较高的实用性和应用前景,为提升火灾应对能力提供了有力支持。

技术特点

  • (1)YOLO v7算法实现,模型一键切换更新;
  • (2)检测图片、视频等图像中的火灾行为;
  • (3)摄像头监控实时检测。
  • (4)检测结果可视化功能;
  • (5)提供训练数据集和代码,可重新训练模型;

数据集展示

在这里插入图片描述
数据集采用了火灾数据集,数据集经过处理后可以直接使用

网络结构

在这里插入图片描述
Yolov7网络结构是由Input、Backbone、Neck、Prediction组成。Yolo75的Input部分是网络的输入端,采用Mosaic数据增强方式,对输入数据随机裁剪,然后进行拼接。

Backbone是Yolov5提取特征的网络部分,特征提取能力直接影响整个网络性能。Yolov7的Backbone相比于之前Yolov4提出了新的Focus结构。

Focus结构是将图片进行切片操作,将W(宽)、H(高)信息转移到了通道空间中,使得在没有丢失任何信息的情况下,进行了2倍下采样操作。


🍞二. 演示效果

在这里插入图片描述


🍞三. 训练过程可视化

在深度学习中,我们通常通过损失函数下降的曲线来观察模型训练的情况。而YOLOv7训练时主要包含三个方面的损失:矩形框损失(box_loss)、置信度损失(obj_loss)和分类损失(cls_loss),模型训练曲线图如下图所示。

在这里插入图片描述

般我们会利用召回率recall和精度precision,两个指标p和r都是简单地从一个角度来判断模型的好坏,为了综合评价目标检测的性能,一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值,可以得到在模型在不同的阈值下所计算出的p值和r值,一般情况下,p值和r值是负相关的,绘制出来可以得到如下图所示的曲线。

在这里插入图片描述


🍞四. 核心逻辑

model = torch.hub.load('./','custom','/home/baipengfei/yolov7/runs/train/exp/weights/best.pt',force_reload=True, source='local',trust_repo=True)
gr.Interface(inputs=["image"],outputs=["image"],fn=lambda img:model(img).render()[0]).launch()

🍞五. 使用方式

在这里插入图片描述

  1. 导入所需的库,包括 PyTorch 和 Gradio。执行pip install -r requirement.txt文件。

  2. 使用 PyTorch Hub 加载预训练的 YOLOv7 模型。

  3. 创建一个 Gradio 接口,指定输入为图像,输出为图像。

  4. 定义处理函数,该函数接受图像作为输入,通过加载的模型进行火灾检测,并返回检测结果。

  5. 启动 Gradio 接口,使其在浏览器中可见并等待用户上传图像进行测试。

  6. 运行main.py,将其中权重的路径修改为自己电脑路径即可开箱即用。


🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

这篇关于⌈ 传知代码 ⌋ 2 行代码搞定火灾检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065918

相关文章

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

代码随想录算法训练营:12/60

非科班学习算法day12 | LeetCode150:逆波兰表达式 ,Leetcode239: 滑动窗口最大值  目录 介绍 一、基础概念补充: 1.c++字符串转为数字 1. std::stoi, std::stol, std::stoll, std::stoul, std::stoull(最常用) 2. std::stringstream 3. std::atoi, std

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

麻了!一觉醒来,代码全挂了。。

作为⼀名程序员,相信大家平时都有代码托管的需求。 相信有不少同学或者团队都习惯把自己的代码托管到GitHub平台上。 但是GitHub大家知道,经常在访问速度这方面并不是很快,有时候因为网络问题甚至根本连网站都打不开了,所以导致使用体验并不友好。 经常一觉醒来,居然发现我竟然看不到我自己上传的代码了。。 那在国内,除了GitHub,另外还有一个比较常用的Gitee平台也可以用于

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

众所周知,配置即代码≠基础设置即代码

​前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代码和基础设施即代码作为DevOps的重要实践,在其中起到了关键性作用。 不少人将二者看作是一件事,配置即大代码是关于管理特定的应用程序配置设置本身,而基础设施即代码更关注的是部署支持应用程序环境所需的

53、Flink Interval Join 代码示例

1、概述 interval Join 默认会根据 keyBy 的条件进行 Join 此时为 Inner Join; interval Join 算子的水位线会取两条流中水位线的最小值; interval Join 迟到数据的判定是以 interval Join 算子的水位线为基准; interval Join 可以分别输出两条流中迟到的数据-[sideOutputLeftLateData,

Git代码管理的常用操作

在VS022中,Git的管理要先建立本地或远程仓库,然后commit到本地,最后push到远程代码库。 或者不建立本地的情况,直接拉取已有的远程代码。 Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它可以记录文件的修改历史,并且可以轻松地回滚到任何历史版本。 Git的基本概念包括: 仓库(Repository):Git使用仓库来存储文件的版本历史。一个仓库可以包含多个文件