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

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

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工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++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代理商的美联储委员会会议 Sep 16, 2025 pm 08:34 PM

该项目被称为“硅中的FOMC”,以数字方式重现联邦公开市场委员会(美国中央银行的决策部门)的会议,AI代理代表实际的董事会成员。研究小组为INDI提供了每个代理数据

预建存储舱去除企业AI缩放瓶颈 预建存储舱去除企业AI缩放瓶颈 Sep 16, 2025 pm 04:42 PM

与此同时,传统存储协议正被更新的技术所取代,这些新技术更能满足可扩展、高性能驱动的AI工作负载需求。面向AI的存储解决方案正越来越多地选择对象存储,而非传统的块存储和文件存储。这一转变颇具讽刺意味,因为对象存储最初是作为一种可扩展、持久且低成本的平台而开发的,主要用于常规的备份、归档、媒体内容以及云规模的数据湖。然而,与在大规模并行处理需求下不堪重负的传统文件和块存储系统不同,对象存储提供了AI应用所需的横向扩展能力和性能表现。MinIO 成立于十多年前,是对象存储市场早期的领军企业。该公司将对

Darwin AI奖庆祝史诗人工智能失败 Darwin AI奖庆祝史诗人工智能失败 Sep 16, 2025 pm 09:31 PM

阅读了不断扩展的提名人名单的介绍,其中包含包装构成法庭裁决的法律档案,归因于真正的作者的假牌书以及使用AI的Airbnb主持人制作图像,暗示客人造成了损害,他们造成了损害。

Waymo涉及摩托车死亡的Waymo,显然没有过错 Waymo涉及摩托车死亡的Waymo,显然没有过错 Sep 15, 2025 pm 07:51 PM

一辆没有任何乘客的Waymo车辆沿着坦佩(Tempe)的亚利桑那州立大学(Arizona State University)附近的农村路(Rural Road)行驶,当时它开始放慢脚步以右转到停车场,这很想准备拿起下一个骑手。 Waymo确认转弯信号

AI和(DIS)能力:通过技术解锁人类潜力 AI和(DIS)能力:通过技术解锁人类潜力 Sep 15, 2025 pm 07:43 PM

这种转变的心理影响是深远的。多年来,辅助技术一直繁琐,污名化和僵化,使用户成为一种尺寸合适的模具。但是AI正在重写这个故事,提供个性化的解决方案t

AI聊天机器人正在悄悄地造成隐私噩梦 AI聊天机器人正在悄悄地造成隐私噩梦 Sep 16, 2025 pm 05:57 PM

有趣的是,新的研究表明,当今AI聊天机器人最常见的用途之一是情感和心理健康支持。许多用户发现,他们可能会犹豫与朋友,家人,o讨论深刻的个人问题更容易开放

特斯拉的全自动驾驶软件是一团糟。应该合法吗? 特斯拉的全自动驾驶软件是一团糟。应该合法吗? Sep 24, 2025 pm 11:39 PM

这是否可以实现还有待观察,但是Forbes对最新版本的FSD的评估发现它仍然容易出错。在洛杉矶,住宅区和高速公路的90分钟试驾期间,具有T的2024型Y

拉里·埃里森(Larry Ellison)在AI比赛中排名亿万富翁名单:8个有趣的事实 拉里·埃里森(Larry Ellison)在AI比赛中排名亿万富翁名单:8个有趣的事实 Sep 14, 2025 pm 07:18 PM

该公司在第1季度的2026年收入电话会议期间宣布了359%的订单积压涨幅,当天的股票价值触发了36%的高峰。这一里程碑推动了埃里森(Ellison)的所有者(该公司40%的股份的所有者)登上了福布斯亿万富翁

See all articles