1.摘要

        针对森林火灾的特点,提出并设计一种基于卷积神经网络的森林火灾图像识别方法。通过实验,给出用于复杂背景下森林火灾识别的卷积神经网络结构,并对该结构进行训练和测试。结果表明,该方法具备较高的正确率,正确率达到 95% 。同时网络可自动提取特征,无需对输入图像进行复杂预处理,克服了传统算法许多固有的缺点,将其应用在森林火灾识别领域取得了很好的效果。最后,我们结合flaks框架构建了一个森林大火识别的API,在该系统下,我们通过后端调用模型,在页面中选择上传的图片,便可获得预测结果。

2. 模型设计

        在危害森林的自然灾害中,火灾是一种常见的形式。森林火灾的发生会对生态环境以及经济发展造成巨大破坏。森林火灾往往突发性强,波及范围很大,且处置极其困难。因此,对火灾实时监测以及及时预警就变得尤为重要。

        近年来基于卷积神经网络( CNN) 的深度学习已经在手写字符识别、行人检测、人脸识别等领域中都得到了成功应用。结合森林火灾的特点,本文采用深度学习中的卷积神经网络模型,设计一种深度卷积神经网络结构,可以实现火灾图像深层次特征自动提取,避免了传统方法中人工提取特征的复杂性和盲目性。

        用于复杂背景下的森林火灾识别的网络框架如图所示。将卷积层和池化层严格区分的情况下,模型结构可设计如下所示。

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

采用序列式模式的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'])

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

3.实验与应用

3.1 实验数据

实验中所使用的样本来自点火实验中所拍摄的现场图片以及网络上森林火灾的相关图片。训练集
中有 968 张森林背景图片,946 张复杂的森林火灾图片;测试集中有80 张森林背景图片,102 张复杂的森林火灾图片。训练集与测试集每一张图片均不重复。数据库中部分图片如图所示。

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

数据集下载链接:复杂背景下的森林火灾识别数据集-深度学习文档类资源-CSDN下载 

 3.2 实验过程与结果

卷积神经网络训练过程:

训练第一轮后:

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

 训练第二轮后:

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

训练5次的结果图:

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

 最终,30 次迭代后网络的分类正确率随迭代次数的增加而显著提高,最终达到 95% 。

3.3.应用实现

        系统后端采用 Flask 的 Web 框架来构建整个后端部分。后端使用 Python 作为程序设计语言,并通过keras.load()加载训练好的模型参数。现阶段多端开发主流设计模式是前后端分离的同步设计模式,而本系统功能的实现,根据系统设计的复杂程度,本系统采用前后端不分离的整体设计思想,方便快速实现整个应用实现。 

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

复杂背景下卷积神经网络在森林火灾识别中的研究与应用-代码实现-LMLPHP

 4.结束

        在对深度学习结构深入研究的基础上,针对复杂背景下森林火灾的特点,设计了一种基于深度卷积神经网络的火灾识别方法。该方法可以自动从所给图像中学习特征,避免了传统图像型方法必须人工提取复杂特征的情况,降低了算法对经验知识的依赖。同时该方法直接作用于二维彩色图像,不存在图像预处理过程中信息丢失的问题,保证了信息的完整性和准确性。池化的使用增强了网络的鲁棒性,使其能容忍一定程度上的图像畸变。在训练过程中,取得了很好的效果,训练约30次后,分类正确率达到 98% ,优于其它传统方法。实验表明该方法具有良好的应用前景。

数据集下载:

复杂背景下的森林火灾识别数据集-深度学习文档类资源-CSDN下载

 索要全部源码联系QQ525894654。

5.参考文献

[1]傅天驹, 郑嫦娥, 田野,等. 复杂背景下基于深度卷积神经网络的森林火灾识别[J]. 计算机与现代化, 2016.

[2]吴雪, 宋晓茹, 高嵩,等. 基于数据增强的卷积神经网络火灾识别[J]. 科学技术与工程, 2020, 20(3):5.

[3]安国平, 姜长生, 吴庆宪. 基于PCNN和SVM的图像识别方法研究[J]. 电光与控制, 2008, 15(10):5.

08-05 09:38