APP下载

基于数据增强的卷积神经网络火灾识别

2020-04-08宋晓茹陈超波

科学技术与工程 2020年3期
关键词:池化层卷积火灾

吴 雪, 宋晓茹, 高 嵩, 陈超波

(西安工业大学电子信息工程学院,西安 710021)

在现实生活中的各种灾害中,火灾是最常见的危害人类公共安全和社会发展的主要灾难之一。火灾的发生通常不可控且危害范围广。因此,发展一种快速有效的火灾探测技术具有极其重要的理论和现实意义,也成为现代监控技术的重要任务之一。

早期的火灾识别技术主要是采用传感器技术进行烟雾信号的采集并报警。杨帆等[1]设计了一种基于无线传感器网络和信息融合技术的森林火灾报警系统,利用传感器将采集到的环境温度和烟雾浓度等信息传给单片机进行处理。Chen等[2]根据火焰的特点,提出了一种基于多传感器数据融合的火灾探测技术,但传感器缺点是实时监测面积较小,在面积大的地方进行实行监测时,需要大量的传感器,且基于传感器的火焰探测技术在很大程度上易受外部因素的干扰,当外部环境发生改变时,会造成传感器的漏报误报现象。

近年来,随着计算机视觉技术和机器学习的快速发展,基于图像和机器学习的火灾识别技术[3]得到了广泛应用。Maruta等[4]提出了基于纹理分析和支持向量机的烟雾探测,利用纹理分析提取图像的特征向量,再使用SVM作为分类输出。邹婷等[5]和Prama等[6]利用小波变换提取的多种特征作为SVM的特征输入。Kandil等[7]提取火焰小波变换后的特征,使用BP神经网络进行火焰的识别。但以上基于传统机器学习的火灾识别方法的不足之处在于依赖大量的先验知识,需要手动提取图像特征,且易受外界干扰,在图片背景比较复杂或者发生改变时,会降低识别的准确率。深度学习[8]因具有避免手动提取、自学习特征的优点,极大的推动了人工智能的发展,已被广泛应用到图像检测与分割[9]、图像识别和语音识别[10]等领域中。近年来,卷积神经网络的发展非常迅速,Lecun等[11]提出LeNet5结构模型,将卷积神经网络应用到字符的识别中;Krizhevsky等[12]提出了一种经典的AlexNet结构卷积神经网络;Cha等[13]提出了使用卷积神经网络的深层架构来检测混凝土裂缝,避免了手动计算混凝土的缺陷特征;Deng等[14]提出了利用R-CNN进行快速准确的车辆检测框架,避免了传统的基于滑动窗口搜索[15]计算成本高、表示能力有限的缺点。相比于传统的机器学习图像识别算法,卷积神经网络具有无需手工提取特征,采用局部感知,共享参数的方法,大大减少了参数的数量等优点。但基于深度学习的图像识别都依赖于大量的数据样本,在无法获取到最够量的样本时易造成小样本过拟合问题的发生。

基于此,为减少背景复杂图像特征选取的盲目,解决耗时性问题,对不同类型的火灾和场景更具普遍性,利用卷积神经网络逐层学习出由浅到深的火焰特征。针对卷积神经网络小样本易出现过拟合的问题,引入数据增强方法,将原始的火灾图像进行旋转、翻转和平移,使得提取的特征能够具有一定的旋转平移不变性,通过增加样本多样性来减少过拟合的发生。

1 基于数据增强的CNN火灾识别方法

1.1 图像的数据增强

当使用深度学习的方法进行图像识别时,经常需要大量的训练数据,若数据集太少,则会出现过拟合的缺陷。为了能够在小样本数据集上进行卷积神经网络的训练识别,对图像引进增强变换,增加样本数据量。常用的数据增强变换方法有平移、旋转、镜像、随机裁剪、仿射变换、主成分分析(PCA)白化和小波变换等。为了保证在火焰背景复杂的情况下进行识别,主要采取了平移、旋转和翻转变换3种方法。

图像的平移变换是将原始图像的坐标分别移动指定的距离,若将x0,y0分别表示像素点沿x轴和y轴移动的距离,a(x,y)和b(x,y)表示平移后的坐标,则图像的平移变换可以表示为

(1)

旋转变换是将像素点绕原点逆时针旋转一定的角度θ。可以表示为

(2)

翻转变换是指将图像沿着x轴或者y轴对称变换。为了保留更多的图片信息,将图片进行水平翻转,可以表示为

(3)

式(3)中:c和d分别表示沿x轴或者y轴的缩放倍数。当c=-1时,表示当前图像进行y轴翻转,当d=-1时,表示当前图像沿着x轴翻转。

火灾图片在经过平移,旋转和翻转后,数量增加到原来的3倍,扩充了样本数量,且在背景复杂的情况下,能够使得提取的特征具有平移和旋转等不变性,增加了鲁棒性。

1.2 卷积神经网络火灾识别的设计

卷积神经网络由输入层,卷积层,池化层,全连接层和最后的输出层组成(图1)。所建立的火灾识别模型如图2所示。该模型由一个输入层,3个卷积池化层,一个全连接层和一个两分类输出层组成。输入层由64×64像素的3通道样本图像组成;C1、C2、C3为卷积层,用于特征提取;S1、S2、S3为池化层,一般放在卷积层中间,用于压缩数据和参数的计算量,去掉冗余信息,减小过拟合。其中,C1层得特征图个数有32个,是由32个3*3大小的卷积核与输入层进行SAME卷积,再经过Relu激活函数得到的,经过S1下采样(选择最大池化)后,特征图数不变,图片大小变为32×32,最终得到32×32×32的特征图。C2层也由32个3*3的卷积核与前一层进行卷积运算,再使用Relu激活函数得到,特征图个数仍为32,再经过S2下采样(最大池化)后,图片大小变为16×16,最终得到16×16×32的特征图。C3层是由64个3*3的卷积核与前一层进行卷积运算再使用Relu激活函数得到,该层特征图个数为64,经过S3下采样后,图片大小变为8×8,最终得到8×8×64的特征图。fc1为隐藏层,该层的神经元个数设为1 024,与上一层是全连接,该层的作用是合并前面卷积层所提取到局部的,低级特征,获得关于图片的全局特征,激活函数仍为Relu。最后一层是输出层,选择softmax激活函数输出,与fc1之间也是全连接,由于本次识别只有两个结果,因此该层的神经元个数设置为2个。

图1 卷积神经网络结构

C1、C2、C3为卷积层;S1、S2、S3为池化层;fc1为隐藏层

1.3 卷积神经网络的算法

卷积神经网络的训练过程和传统的反向传播(BP)算法一样,分为由输入图片一级一级传播至输出层的前向传播过程和由输出值与实际值的误差反向更新权值的过程。但又因为卷积神经网络拥有其独特的卷积层和池化层,不同于传统的全连接神经网络结构,因此卷积层和池化层的计算有所不同。

卷积层是卷积神经网络的重要组成部分,主要用于表达图像的各个层次的特征。卷积神经网络的前向传播公式如式(4)所示:

(4)

(5)

已知卷积层的误差信号,可以用误差反向求梯度来更新权重和偏置值,权重求梯度公式在MATLAB中可表示为式(6),偏置的梯度公式如式(7)所示:

(6)

(7)

池化层在卷积神经网络中的主要作用是压缩数据量,减少信息的冗余。同理,假设池化层的前后都连着卷积层,则池化层的前向传播公式为

(8)

(9)

已知池化层的误差信号,根据误差更新池化层的权值β和偏置值b的梯度,公式如式(10)、式(11)所示:

(10)

(11)

2 实验仿真

2.1 实验数据

采用的火灾样本数据集来自一位挪威的教授,其中含有110张正样本的火灾图片和510张复杂背景图片的负样本。为了减小正负样本不均衡的缺点和卷积神经网络在小样本数据集时容易产生过拟合的问题,使用平移,翻转和旋转3种方法对正样本进行数据增强,图3所示为其中一个样本进行增强后的结果。进行数据增强方法后,设置70%的样本为训练集,30%为测试集。实验操作系统为windows10 64bit,CPU参数为Intel(R) Core(TM) i5-5200 CPU @2.20 GHz 2.20,内存为4.00GB,使用pycharm、tensorboard作为实验仿真平台。

2.2 仿真结果分析

2.2.1 未进行数据增强的实验仿真

首先使用原始数据集进行仿真,即正样本图像只有110张,背景图像个数不变。由于样本数据集的大小不一致,在做训练之前,先对输入的火灾图片做数据预处理,统一图片大小为64×64像素。再运用图2所示的模型进行火灾图像的训练。实验权值采用批量更新,设置batch_size值为32,反向更新的学习率为0.000 1,在实验中加入dropout的方法,设置keep_prob的值为0.5,训练过程中所使用的参数如表1所示。

图3 进行数据增强的图片

表1 模型参数设置

对该模型的权值进行随机初始化,然后对该网络进行训练和测试,经过2 000次迭代后,训练集和测试集的识别正确率对比曲线如图4所示,loss损失对比曲线如图5所示。

蓝线为测试集;红线为训练集

蓝线为测试集;红线为训练集

经过两次实验比较,可以看出,原始小样本训练集和测试集都有较高的识别率,测试集在95%左右,训练集从第780步开始就已经达到100%的识别率,并且识别率一直保持不变。但由图5可知,虽然在480步之前,训练集和测试集的误差都在逐渐减小,但在480步之后,测试集的loss损失值突然增大,导致网络无法收敛。说明虽然加入了dropout方法,但仍出现了过拟合情况。

2.2.2 进行数据增强后的实验仿真

为比较出进行数据增强后网络的性能,使用进行数据增强后的数据集做仿真实验,设置70%为训练集,30%为测试集。训练的其他参数同未进行数据增强设置的网络参数一样。然后对该网络随机初始化,进行训练和测试,经过2 000次迭代后,进行数据增强后的识别率对比如图6所示,loss损失值对比如图7所示。由图7可知,随着epoch的值的增加,网络逐渐收敛。训练集正确率在0.871 2~0.904 2,测试集正确率在0.901 8~0.925 1。训练集的平均Loss损失值在收敛到0.19左右,测试集的平均Loss损失值收敛到0.20左右。实验仿真对比结果如表2所示。

蓝线为测试集;红线为训练集

蓝线为测试集;红线为训练集

表2 仿真结果对比

2.3 数据增强改善过拟合的原因分析

基于卷积神经网络的图像识别获得较高的识别率,根本原因在于卷积神经网络模型的深度,深度越深,其表达能力越强,但会使得模型参数量增多,因此,需要海量的有标签样本支撑训练,如果数据集太少,将导致深度模型记忆住有限的训练数据集,而不能泛化到测试集,从而出现过拟合情况。数据增强方法的本质是增加了训练样本的个数,因此可以改善过拟合情况的发生,对样本不充足时,使用卷积神经网络具有一定重要的意义。

3 结论

依据火焰发生时背景复杂性的特点和卷积神经网络无需手工提取特征但依赖于大量样本的特点,提出了基于数据增强的卷积神经网络火焰识别的方法。在使用卷积神经网络进行火焰图片识别之前,先使用数据增强的方法对原始的图片进行平移,翻转和旋转,增加样本图像的鲁棒性,再使用卷积神经网络进行火焰低级特征和高级特征的提取,最后利用softmax分类器输出识别结果。通过仿真实验结果表明,该方法的确避免了卷积神经网络因数据集太小而导致发散的现象,使得网络收敛,火焰的识别率达到了0.925 1。

猜你喜欢

池化层卷积火灾
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
卷积神经网络的分析与设计
从滤波器理解卷积
基于全卷积神经网络的SAR图像目标分类*
基于傅里叶域卷积表示的目标跟踪算法
掌握火灾逃生知识
离奇的火灾