复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现
1.摘要
针对森林火灾的特点,提出并设计一种基于卷积神经网络的森林火灾图像识别方法。通过实验,给出用于复杂背景下森林火灾识别的卷积神经网络结构,并对该结构进行训练和测试。结果表明,该方法具备较高的正确率,正确率达到 95% 。同时网络可自动提取特征,无需对输入图像进行复杂预处理,克服了传统算法许多固有的缺点,将其应用在森林火灾识别领域取得了很好的效果。最后,我们结合flaks框架构建了一个森林大火识别的API,在该系统下,我们通过后端调用模型,在页面中选择上传的图片,便可获得预测结果。
2. 模型设计
在危害森林的自然灾害中,火灾是一种常见的形式。森林火灾的发生会对生态环境以及经济发展造成巨大破坏。森林火灾往往突发性强,波及范围很大,且处置极其困难。因此,对火灾实时监测以及及时预警就变得尤为重要。
近年来基于卷积神经网络( CNN) 的深度学习已经在手写字符识别、行人检测、人脸识别等领域中都得到了成功应用。结合森林火灾的特点,本文采用深度学习中的卷积神经网络模型,设计一种深度卷积神经网络结构,可以实现火灾图像深层次特征自动提取,避免了传统方法中人工提取特征的复杂性和盲目性。
用于复杂背景下的森林火灾识别的网络框架如图所示。将卷积层和池化层严格区分的情况下,模型结构可设计如下所示。
采用序列式模式的keras代码实现如下所示:
if K.image_data_format() == 'channels_first':input_shape = (3, img_width, img_height)
else:input_shape = (img_width, img_height, 3)
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Conv2D(64, (3, 3)))
model.add(Activation('sigmoid')) #Added
model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.summary()model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
3.实验与应用
3.1 实验数据
实验中所使用的样本来自点火实验中所拍摄的现场图片以及网络上森林火灾的相关图片。训练集
中有 968 张森林背景图片,946 张复杂的森林火灾图片;测试集中有80 张森林背景图片,102 张复杂的森林火灾图片。训练集与测试集每一张图片均不重复。数据库中部分图片如图所示。
数据集下载链接:复杂背景下的森林火灾识别数据集-深度学习文档类资源-CSDN下载
3.2 实验过程与结果
卷积神经网络训练过程:
训练第一轮后:
训练第二轮后:
训练5次的结果图:
最终,30 次迭代后网络的分类正确率随迭代次数的增加而显著提高,最终达到 95% 。
3.3.应用实现
系统后端采用 Flask 的 Web 框架来构建整个后端部分。后端使用 Python 作为程序设计语言,并通过keras.load()加载训练好的模型参数。现阶段多端开发主流设计模式是前后端分离的同步设计模式,而本系统功能的实现,根据系统设计的复杂程度,本系统采用前后端不分离的整体设计思想,方便快速实现整个应用实现。
4.结束
在对深度学习结构深入研究的基础上,针对复杂背景下森林火灾的特点,设计了一种基于深度卷积神经网络的火灾识别方法。该方法可以自动从所给图像中学习特征,避免了传统图像型方法必须人工提取复杂特征的情况,降低了算法对经验知识的依赖。同时该方法直接作用于二维彩色图像,不存在图像预处理过程中信息丢失的问题,保证了信息的完整性和准确性。池化的使用增强了网络的鲁棒性,使其能容忍一定程度上的图像畸变。在训练过程中,取得了很好的效果,训练约30次后,分类正确率达到 98% ,优于其它传统方法。实验表明该方法具有良好的应用前景。
数据集下载:
复杂背景下的森林火灾识别数据集-深度学习文档类资源-CSDN下载
索要全部源码联系QQ525894654。
5.参考文献
[1]傅天驹, 郑嫦娥, 田野,等. 复杂背景下基于深度卷积神经网络的森林火灾识别[J]. 计算机与现代化, 2016.
[2]吴雪, 宋晓茹, 高嵩,等. 基于数据增强的卷积神经网络火灾识别[J]. 科学技术与工程, 2020, 20(3):5.
[3]安国平, 姜长生, 吴庆宪. 基于PCNN和SVM的图像识别方法研究[J]. 电光与控制, 2008, 15(10):5.
复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现相关推荐
- 基于深度卷积神经网络的玉米病害识别
基于深度卷积神经网络的玉米病害识别 1.研究思路 算法模型是先将图像预处理,应用Tripletloss双卷积神经网络结构学习玉米图像特征,再使用SIFT算法提取图像纹理细节,最后通Softmax对图像 ...
- 基于深度卷积神经网络的农作物病害识别
基于深度卷积神经网络的农作物病害识别 1.研究思路 运用深度学习的方法,基 于ResNet-50以及 InceptionV3.MobileNet等神经网络,并在这些基础结构上改进部分模型.该研 究主要 ...
- 【Pytorch】基于卷积神经网络实现的面部表情识别
作者:何翔 学院:计算机学院 学号:04191315 班级:软件1903 转载请标注本文链接: https://blog.csdn.net/HXBest/article/details/1219812 ...
- 基于卷积神经网络的不良地质体识别与分类
在泛函分析中,卷积.旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积. 如果将参加卷积的一个函数看作区间的 ...
- 论文翻译:基于深度卷积神经网络的肉鸡粪便识别与分类
Recognition and Classification of Broiler Droppings Based on Deep Convolutional Neural Network 基于深度卷 ...
- 基于卷积神经网络的大豆病害识别
1.研究内容 植物已经成为一种重要的能源,是解决全球变暖问题的基础.然而,植物病害正威胁着这一重要来源的生计.卷积神经网络(CNN)在物体识别和图像分类问题上表现出了卓越的性能(超过了人类).本文介绍 ...
- 基于一维卷积神经网络的滚动轴承故障识别
基于一维卷积神经网络的滚动轴承故障识别 文章目录 基于一维卷积神经网络的滚动轴承故障识别 一.数据预处理 二.模型构建 三.模型训练 四.模型测试 总结 一.数据预处理 采用美国凯斯西储大学(CWRU ...
- 基于卷积神经网络的人脸表情识别应用--AR川剧变脸(一)
1.摘要 本项目将在Android上实现一种通过识别表情类别,从而给人脸戴上不同样式脸谱的AR软件,效果如下: 基于表情识别的脸谱换脸AR安卓APP效果演示 通过深度学习和Keras训练一个人脸表情识 ...
- 基于卷积神经网络的辛普森角色识别
摘 要 基于深度学习在图像分类领域的优异性能,本文研究基于图像识别技术的辛普森角色自动识别方法.首先采集18个角色的16503幅辛普森角色图像数据集,然后在CNN模型框架下,修改最顶端的全连接层与分类 ...
最新文章
- 4月第4周全球域名商TOP15:万网第四 增势减弱
- postgresql中DML操作
- this.getClass()和super.getClass()得到的是同一个类
- Fedora CentOS Red Hat中让vim支持语法高亮设置
- 在线求CR,你觉得我这段Java代码还有优化的空间吗?
- harmonyos2.0测评,爆料:荣耀30 Pro开始测试华为鸿蒙HarmonyOS 2.0
- PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理
- json-lib javabean转换为首字母大写的json串
- java jpanel对齐_java – 如何使用GridBagLayout在JPanel中对齐组件中心?
- android高德地图截屏,地图截图功能
- 阿酷三合一版_【3DMAX阿酷下载】3DMAX阿酷插件 v3.2 最终版-开心电玩
- 计算机学部毕业设计答疑记录,毕业论文指导记录怎么写?毕业论文指导记录12篇...
- ECMAscript6 初涉摘抄笔记
- 文本数据挖掘(Text Mining)
- VMware导致电脑蓝屏解决方案
- 问题:C-Kermitc Sorry, you must SET LINE or SET HOST first
- 高通骁龙600系列处理器
- linux内核是如何实现分页机制的
- 认识Linux系统以及Linux命令的使用(未完待续)
- 冯诺依曼对现代计算机主要贡献是,冯诺依曼的主要贡献