目录
介绍
学习成果
目录
深度学习中的革命检测
火灾检测中的挑战
数据集概述
火和非火图像的组成
设置环境
数据准备
可视化图像的分布
创建图像发行的饼图
展示火和非火图像
通过增强技术增强培训数据
可视化增强图像
构建火灾检测模型
用优化器和损失功能编译模型
添加回调以进行最​​佳培训
模型拟合:培训卷积神经网络
评估模型
示例用法:预测新图像中的火
下载和加载图像
做出预测
结论
关键要点
常见问题
首页 科技周边 人工智能 火焰监护人:基于深度学习的火灾检测系统

火焰监护人:基于深度学习的火灾检测系统

Apr 18, 2025 am 10:54 AM

介绍

想象一下,在确保家人的安全时,要醒来烟味,心跳加速。早期检测至关重要,并且是一个深层学习驱动的火灾探测系统的“火焰监护人”,旨在使挽救生命的差异。本文指导您使用CNN和TensorFlow创建此技术,从数据收集和增强到模型构建和微调。无论您是技术爱好者还是专业人士,都可以发现如何利用尖端技术来保护生活和财产。

学习成果

  • 获得准备,组织和增强图像数据集的技能,以优化模型性能。
  • 了解如何构建和微调卷积神经网络以进行有效的图像分类任务。
  • 使用指标和可视化来评估和解释模型性能的能力。
  • 了解如何为实用应用部署和调整DL(深度学习)模型,以证明其在消防检测等现实世界中的实用性。

本文作为数据科学博客马拉松的一部分发表

目录

  • 深度学习中的革命检测
  • 火灾检测中的挑战
  • 数据集概述
  • 设置环境
  • 数据准备
  • 可视化图像的分布
  • 展示火和非火图像
  • 通过增强技术增强培训数据
  • 构建火灾检测模型
  • 模型拟合:培训卷积神经网络
  • 评估模型
  • 示例用法:预测新图像中的火
  • 常见问题

深度学习中的革命检测

最近,Thedeep Learning彻底改变了从医疗保健到金融的色彩丰富的领域,现在,它在安全和灾难运营方面取得了长足的进步。深度学习的一个特别激烈的操作是火灾发现领域。随着全球范围反射的增加频率和僵化性,开发有效且可靠的火灾发现系统比以往任何时候都更加关键。在这个全面的伴侣中,我们将引导您完成使用卷积神经网络(CNN)和TensorFlow创建重要的火灾发现系统的过程。该系统恰当地命名为“火焰监护人”。

火灾,无论是野火还是结构性火灾对生命,财产和环境构成重大威胁。早期发现对于减轻火灾的毁灭性影响至关重要。基于深度学习的火灾检测系统可以快速,准确地分析大量数据,在升级之前识别火灾事件。

火灾检测中的挑战

使用深度学习检测火提出了一些挑战:

  • 数据可变性:火影图像在颜色,强度和周围环境方面可能有很大差异。强大的检测系统必须能够处理此变异性。
  • 误报:将假阳性(错误地识别为火灾)最小化以避免不必要的恐慌和资源部署至关重要。
  • 实时处理:为了实际使用,系统应能够实时处理图像,并提供及时的警报。
  • 可伸缩性:系统应可扩展以处理大型数据集并在不同的情况下工作。

数据集概述

用于火焰监护人火灾检测系统的数据集包括分为两个类:“火”和“非火力”的图像。该数据集的主要目的是训练卷积神经网络(CNN)模型,以准确区分包含火的图像和那些没有火灾的图像。

火和非火图像的组成

  • 火灾图像:这些图像包含存在火灾的各种情况。该数据集包括野火,结构火和受控烧伤的图像。这些图像中的火可能在大小,强度和存在的环境上有所不同。这种多样性有助于模型学习火的不同视觉特征。
  • 非火图像:这些图像不包含任何火。它们包括各种场景,例如景观,建筑物,森林以及其他自然和城市环境,而没有任何火灾。包含多种非火图像可确保模型不能在非火灾情况下错误地识别火灾。

您可以从这里下载数据集。

设置环境

首先,我们需要使用必要的库和工具来建立自己的地形。我们将使用Google协作进行此设计,因为它为GPU支持提供了一个可访问的平台。我们以前已经下载了数据集并将其上传到驱动器上。

 #mount驱动器
从Google.Colab Import Drive
drive.mount('/content/drive')

#Importing必要的库
导入numpy作为NP
导入大熊猫作为pd
导入matplotlib.pyplot作为PLT
进口海洋作为SNS
导入plotly.extress为px
导入plotly.graph_objects作为go
从plotly.subplots导入make_subplots
导入操作系统
导入TensorFlow作为TF
来自Tensorflow.keras.preprocessing导入图像
来自tensorflow.keras.preprocessing.image导入成像的Atagenerator


#setting样式网格 
sns.set_style('darkgrid')
登录后复制

数据准备

我们需要一个带有火和非火语脚本图片的数据集,以训练我们的算法。将创建一个空白的数据帧和一个函数来添加Google驱动器中的图像。

 #创建一个空数据框
df = pd.dataframe(columns = ['path','label'])

#功能将图像添加到数据框
def add_images_to_df(目录,标签):
    对于dirname,_,在OS.Walk(目录)中的文件名:
        用于文件名中的文件名:
            df.loc [len(df)] = [os.path.join(dirname,filename),标签]

#添加火图像
add_images_to_df('/content/drive/mydrive/fire/fire_dataset/fire_images','fire')

#添加非火图像
add_images_to_df('/content/drive/mydrive/fire/fire_dataset/non_fire_images','non_fire')

#洗牌数据集
df = df.sample(frac = 1).Reset_index(drop = true)
登录后复制

可视化图像的分布

可视化火灾和非火力图像的分布有助于我们更好地了解数据集。我们将绘图用于交互式图。

创建图像发行的饼图

现在让我们创建一个用于图像分布的饼图。

 #创建散点图
无花果= px.scatter(
    data_frame = df,
    x = df.index,
    y ='label',
    颜色='label',
    title =“火和非火图像的分布”
)

#更新标记大小
图.update_traces(Marker_Size = 2)

图.add_trace(go.pie(values = df ['label']。value_counts()。
登录后复制

火焰监护人:基于深度学习的火灾检测系统

展示火和非火图像

现在让我们编写用于显示火和非火图像的代码。

 Def Visualize_images(标签,标题):
    data = df [df ['label'] ==标签]
    图片= 6#设置图片的数量
    图,ax = plt.subplots(int(pics // 2),2,无花果=(15,15))
    plt.suptitle(标题)
    ax = ax.ravel()
    对于范围((图片// 2) * 2)的i
        路径= data.sample(1).loc [:,'path']。to_numpy()[0]
        img = image.load_img(路径)
        img = image.img_to_array(img) / 255
        ax [i] .imshow(img)
        ax [i] .axes.xaxis.set_visible(false)
        ax [i] .axes.yaxis.set_visible(false)
visualize_images('fire','带火的图像')
visualize_images('non_fire',“无火的图像”) 
登录后复制

火焰监护人:基于深度学习的火灾检测系统

火焰监护人:基于深度学习的火灾检测系统

通过显示一些来自火灾和非火灾类别的示例图像,我们将了解我们的模型将使用的内容。

通过增强技术增强培训数据

我们将采用图像添加方法来改善我们的培训数据。应用任意图像适应(类似于回旋,无人机和剪切)被称为加法。通过生成更健壮和不同的数据集,此过程增强了模型概括为新图像的能力。

来自tensorflow.keras.models导入顺序
来自tensorflow.keras.layers导入conv2d,maxpool2d,扁平,密集

Generator = Imagedatagenerator(
    rotation_range = 20,
    width_shift_range = 0.1,
    height_shift_range = 0.1,
    shear_range = 2,
    zoom_range = 0.2,
    recale = 1/255,
    验证_split = 0.2,
)
train_gen = generator.flow_from_dataframe(df,x_col ='path',y_col ='label',images_size =(256,256),class_mode ='binary',subset ='训练')
val_gen = generator.flow_from_dataframe(df,x_col ='path',y_col ='label',images_size =(256,256),class_mode ='binary',subset ='验证')
class_indices = {}
对于train_gen.class_indices.keys()中的键:
    class_indices [train_gen.class_indices [键]] =键
    
打印(class_indices)
登录后复制

可视化增强图像

我们可以可视化训练集产生的一些增强图像。

 sns.set_style('dark')
图片= 6#设置图片的数量
图,ax = plt.subplots(int(pics // 2),2,无花果=(15,15))
plt.suptitle(“训练集中生成的图像”)
ax = ax.ravel()
对于范围((图片// 2) * 2)的i
    ax [i] .imshow(train_gen [0] [0] [i])
    ax [i] .axes.xaxis.set_visible(false)
    ax [i] .axes.yaxis.set_visible(false)
登录后复制

火焰监护人:基于深度学习的火灾检测系统

构建火灾检测模型

我们的模型将对应几个卷积层,每个卷积层随后是最大池子播种机。卷积层是CNN的核心结构块,使模型可以从图像中学习特征的空间尺度。最大池层有助于降低点图的维度,从而使模型更有效。我们还将在模型末端添加完全连接的(厚)。这些层有助于结合卷积层学到的功能,并做出最终的括号决定。该事件子播种将具有具有Sigmoid激活函数的单个神经元,该神经元的概率得分表明图像是否包含火。定义模型电枢后,我们将发布一个摘要,以查看每个子播种机中的结构和参数数量。此步骤对于确保正确配置模型很重要。

来自tensorflow.keras.models导入顺序
来自tensorflow.keras.layers导入conv2d,maxpool2d,扁平,密集

型号=顺序()
model.Add(conv2d(过滤器= 32,kernel_size =(2,2),activation ='relu',input_shape =(256,256,3)))))))))
model.Add(maxpool2d())
model.Add(conv2d(filters = 64,kernel_size =(2,2),activation ='relu'))
model.Add(maxpool2d())
model.Add(conv2d(filters = 128,kernel_size =(2,2),activation ='relu'))
model.Add(maxpool2d())
模型add(Flatten())
ADD(密集(64,激活='relu'))
ADD(密集(32,激活='relu'))
ADD(密集(1,激活='Sigmoid'))
model.summary()
登录后复制

用优化器和损失功能编译模型

接下来,我们将使用ADAM优化器和二进制交叉渗透损失函数进行编译。 Adam Optimizer的效率和自适应学习率广泛用于深度学习。二进制跨凝结适用于我们的二元分类问题(火与非火灾)。

我们还将指定其他指标,例如曲线(AUC)下的准确性,召回和区域,以评估模型在训练和验证过程中的性能。

添加回调以进行最​​佳培训

回调是TensorFlow中的一个强大功能,使我们能够监视和控制训练过程。我们将使用两个重要的回调:

  • 早期踩踏:当验证损失停止改善,防止过度拟合时,停止训练。
  • REDUCELRONPLATEAU:降低验证损失高原时的学习率,帮助模型收敛到更好的解决方案。
 #compiling模型
来自Tensorflow.keras.metrics导入召回,AUC
来自tensorflow.keras.utils导入plot_model

model.compile(优化器='adam',loss ='binary_crossentropy',metrics = ['fecuctiacy',召回(),auc()),)

#定义回调
从tensorflow.keras.callbacks进口早期踩踏,还原
早期_Stoppping =早期踩踏(Monitor ='Val_loss',耐心= 5,Restore_best_weights = true)
redy_lr_on_plateau = reducelronplateau(Monitor ='val_loss',因子= 0.1,耐心= 5)
登录后复制

模型拟合:培训卷积神经网络

模型拟合是指训练数据集上的机器学习模型的过程。在此过程中,该模型通过调整其参数(权重和偏见)以最大程度地减少损耗函数来了解数据中的基本模式。在深度学习的背景下,这涉及到训练数据的几个时代和后退传球。

 model.fit(x = train_gen,batch_size = 32,epochs = 15,validation_data = val_gen,callbacks = [forath_stopppping,redion_lr_on_plateau])
登录后复制

评估模型

训练后,我们将在验证集上评估模型的性能。此步骤有助于我们了解模型对新数据的推广程度。我们还将可视化培训历史,以了解损失和指标如何随着时间的流逝而发展。

 eval_list = model.evaluate(val_gen,return_dict = true)
对于eval_list.keys()中的公制:
    打印(公制F”:{eval_list [metric] :. 2f}”)
   
eval_list = model.evaluate(val_gen,return_dict = true)
对于eval_list.keys()中的公制:
    打印(公制F”:{eval_list [metric] :. 2f}”)
登录后复制

火焰监护人:基于深度学习的火灾检测系统

示例用法:预测新图像中的火

最后,我们将演示如何使用训练有素的模型来预测新图像是否包含火。此步骤涉及加载图像,预处理以匹配模型的输入要求,并使用模型进行预测。

下载和加载图像

我们将从Internet下载示例图像,并使用TensorFlow的图像处理功能加载它。此步骤涉及调整图像并标准化其像素值。

做出预测

使用训练有素的模型,我们将对已加载的图像进行预测。该模型将输出概率分数,我们将进行四舍五入以获得二进制分类(火灾或非火灾)。我们还将使用类索引将预测映射到其相应的标签。

 #下载图像
!
#加载图像
img = image.load_img('preadive.jpg')
IMG

img = image.img_to_array(img)/255
img = tf.image.resize(img,(256,256))
img = tf.expand_dims(img,axis = 0)

打印(“图像形状”,img.shape)

预测= int(tf.Round(model.predict(x = img))。numpy()[0] [0])
打印(“预测值是:”,预测”,预测标签为: 
登录后复制

火焰监护人:基于深度学习的火灾检测系统

火焰监护人:基于深度学习的火灾检测系统

结论

开发基于深度学习的火灾探测系统,例如“火焰监护人”,体现了深度学习在应对现实世界挑战时的变革潜力。通过精心遵循每个步骤,从数据准备和可视化到模型构建,培训和评估,我们创建了一个可靠的框架来检测图像中的火灾。该项目不仅强调了技术复杂性涉及深度学习,而且还强调了利用技术对安全和灾难预防的重要性。

正如我们得出的那样,很明显,DL模型可以显着增强火灾检测系统,从而使其更高效,可靠和可扩展。尽管传统方法具有其优点,但深度学习的融合却引入了新的精致和准确性。开发“火焰监护人”的旅程既具有启发性和有意义,展现了现代技术的巨大能力。

关键要点

  • 了解数据处理和可视化技术。
  • 理解适当的数据收集和增强确保有效的模型培训和概括。
  • 实施模型构建和模型评估。
  • 理解诸如早期和还原的回调,以优化培训并防止过度拟合。
  • 学习的建筑卷积神经网络使用CNN进行火灾检测。

常见问题

Q1。什么是“火焰监护人”?

答:“火焰监护人”是一种使用卷积神经网络(CNN)和Tensorflow的火灾检测系统,以高精度识别图像中的火灾。

Q2。为什么早期火灾检测很重要?

答:早期的火灾检测对于防止广泛损害,挽救生命并减少火灾的环境影响至关重要。快速反应可以显着减轻野火和结构火的毁灭性影响。

Q3。使用深度学习构建火灾检测系统涉及哪些挑战?

A.挑战包括处理数据可变性(颜色,强度和环境的差异),最大程度地减少误报,确保实时处理能力以及可伸缩性处理大型数据集。

Q4。图像增强如何有助于训练模型?

A.图像增强通过应用旋转,变焦和剪切等随机转换来增强训练数据集。这可以通过将其暴露于各种场景,改善其稳健性来更好地推广模型。

Q5。哪些指标用于评估模型的性能?

答:使用准确性,回忆和曲线下的面积(AUC)等指标评估该模型。这些指标有助于评估模型如何区分火灾和非火图像及其整体可靠性。

本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。

以上是火焰监护人:基于深度学习的火灾检测系统的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

最佳AI艺术生成器(免费付款)创意项目 最佳AI艺术生成器(免费付款)创意项目 Apr 02, 2025 pm 06:10 PM

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

开始使用Meta Llama 3.2 -Analytics Vidhya 开始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) 最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) Apr 02, 2025 pm 06:09 PM

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

顶级AI写作助理来增强您的内容创建 顶级AI写作助理来增强您的内容创建 Apr 02, 2025 pm 06:11 PM

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

向员工出售AI策略:Shopify首席执行官的宣言 向员工出售AI策略:Shopify首席执行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

AV字节:Meta' llama 3.2,Google的双子座1.5等 AV字节:Meta' llama 3.2,Google的双子座1.5等 Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

10个生成AI编码扩展,在VS代码中,您必须探索 10个生成AI编码扩展,在VS代码中,您必须探索 Apr 13, 2025 am 01:14 AM

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

选择最佳的AI语音生成器:评论的顶级选项 选择最佳的AI语音生成器:评论的顶级选项 Apr 02, 2025 pm 06:12 PM

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。

See all articles