本发明属于图像识别领域,具体涉及一种基于深度学习的卷积神经网络多尺度分类方法。
背景技术:
随着人类社会的发展进步,火灾成为了不可忽视的多发性问题。从一次次的火灾事件中就足以见识到它具有很强的危害性,也说明了火灾早期探测是预防火灾、及时扑灭火灾、减少火灾损失的有效手段,发现越早,扑救越及时,形成灾祸的可能性就越小,所以很有必要去寻找方法有效控制火灾。火灾的预防和检测是人类与火灾斗争过程中关注的焦点。
近些年来,随着数字通信技术、计算机技术的发展,数字图像处理技术在各个领域获得了广泛的应用,并且取得了不错的效果。因此人们提出了利用图像处理技术进行火灾的监控与报警。
基于图像处理的视频火焰检测系统较之传统的火灾监控设备具有识别速度快,适应能力强,误报率低,使用方便等优点。一个完整的火灾识别系统主要包括以下六个环节:图像获取、图像预处理、火灾图像分割、火灾图像特征提取、火灾跟踪、火焰识别。每一个环节都需要大量的研究人员投入精力去寻找最优方案,使得系统能够更好的应用于生活实践中。该类技术主要涉及将火灾的视觉特征转变为图像信息,再通过计算机图像处理急速自动识别火情,实现监控、识别、报警等步骤。目前阶段,对于火灾火焰图像的识别主要是针对火焰图像所具备的红外辐射特性、可见光辐射特性、色谱特性和蔓延增长趋势等多方面的特征信息来进行的。当基于火焰图像的红外辐射特性、可见光辐射特征进行火灾图像识别时,周围环境中的光源,例如路灯、车灯、太阳光等,甚至墙壁、地板对光的反射都将构成干扰光源,上述干扰光源中的红外光、可见光、紫外光辐射将干扰火焰识别,导致误报警。因此,在基于图像的火焰识别中,如何排除环境中的干扰光源是基于火焰的火灾图像识别的重要问题。
纵观基于视觉的火焰火灾图像识别技术发展过程,可概括出排除干扰光源的技术手段主要包括:设置光学滤波器、多波段识别、设置亮度值阈值、多特征融合。现对多特征融合方法进行说明:多特征融合算法包括了基于线性特征依赖模型的多特征融合算法,基于稀疏表示理论的多特征融合算法和基于深度学习理论的多特征融合算法。此处使用的是基于深度学习理论的多特征融合算法,它的目的是将多个卷积神经网络得到的不同特征进行融合得到一个特征矩阵。
基于图像处理的火灾探测系统是一种以计算机为核心,结合数字图像处理技术而研制的火灾自动报警系统。它利用摄像头对现场进行监视,对摄取的视频信号由图像采集卡捕捉为数字图像并输入计算机,根据图像特征进行处理和分析,从而达到探测火灾的目的。数字图像处理部分的软件是火灾探测系统的核心,它对数字图像首先进行分割,然后利用图像特性对这些物体加以识别或分类检测出图像中的物体。图像分割处理是将图像中的目标与背景进行分离,以找出图像中需要进行处理的部分。在提取了图像中的目标之后,要对目标进行分析,以判断该目标是早期火灾现象还是其它的干扰现象,即为数字图像处理。目前火焰的图像特征主要分为颜色特征、边缘不规则特征、高度变化特征、尖角特征等静态特征和面积增长特征、相关性特征、边缘变化特征等动态特征两类。
技术实现要素:
本发明所要解决的技术问题是:如何在有限的训练数据集下生成大量图像并且提高识别火灾图像的准确率。
为实现上述目的,本发明采用的技术方法是:一种基于多尺度特征学习网络的火灾图片分类方法,包括了以下步骤:
步骤(1).构建训练集和测试集图片,并且给每张图片添加正负标签。
步骤(2).利用多尺度方法中的下采样运算方法将火灾图像划分为不同尺度的图像块集合,并且实现了图像增强。
步骤(3).分别构建多个尺度的卷积神经网络模型,每个卷积神经网络模型对应着一个尺度的火灾图像。
步骤(4).利用多个尺度的火灾图像作为训练数据,对图像像素值进行归一化处理,再分别代入上一步的卷积神经网络模型中进行特征提取。
步骤(5).将所提取的多尺度的火灾图像的特征进行融合,利用融合的特征对图像进行分类并与标签进行比对,再通过比对的结果对卷积神经网络模型进行训练调整。
步骤(2)中利用下采样运算将图像下采样到多个尺度,公式如下:
ip=p(i,s)
其中,p(.)表示下采样函数,i表示输入的图像,s表示下采样参数。
对下采样后的图像ip进行转换,转换为多级的图像块in,公式如下:in=t(ip,d)
其中t(.)表示转换函数,d表示转换参数
t(.)公式如下:
其中a11,a12,…add表示图像中的多个图像块,cat(.)表示矩阵联结函数。
步骤(3)中构建的卷积神经网络模型是采用的残差神经网络,残差神经网络可以解决在加深网络层的情况下产生的梯度消失的问题,网络含有残差块和卷积块该网络通过恒等映射层增加网络的深度并且不会增加误差。
步骤(5)中还包括了利用预测得到的概率结果和真实标签比对结合得到二分类交叉熵损失函数,该损失函数用于模型的优化,交叉熵作为损失函数的好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。二分类交叉熵损失函数的公式为:
log(yt|yp)=-[yt*log(yp) (1-yt)log(1-yp)]
其中x,y分别为样本和样本对应的标签,yt为样本的真实标签,yp为yt=1的概率。
相对于现有技术,本发明具有以下优点:
本发明将多尺度特征学习网络应用于火灾图片分类中,这在一定程度上扩充了训练集的数量,还可以提取不同尺度的图片特征,提升了网络训练的效果和图片分类的准确度。
相比于传统烟雾火灾报警器的实时性慢,误报率高和环境适应能力差等不足之处,基于深度学习的火灾检测系统能够更及时有效的发现险情并及时处理,图像型火灾烟雾探测器也避免了视频型烟雾检测器的抗干扰能力不高的缺点。
本发明利用了resnet网络结构可以加速深度卷积神经网络的训练的优点,模型的准确率也有非常大的提升。resnet有2个基本的模块,一个是identityblock,输入和输出的维度是一样的,所以可以串联多个;另一个是convblock,输入和输出的维度是不一样的,所以不能连续串联,它的作用就是为了改变特征向量的维度。因为cnn最后都是要把图像一点点的转换成很小但是很深的特征图,一般是用统一的比较小的核(一般都是用3*3),但是随着网络深度的增加,输出的通道也增大,所以有必要在进入identityblock之前,用convblock转换一下维度,这样后面就可以连续接identityblock。
附图说明
图1为本发明的基于多尺度特征学习网络的图片分类方法的流程图;
图2为多尺度分类效果图;
图3为resnet50网络的残差单元;
图4为convblock的网络结构;
图5为identityblock的网络结构;
图6为加入spp层之后的卷积神经网络结构;
图7为sigmoid激活函数曲线;
图8为网络分类效果图。
具体实施方式
下面结合附图和实例对本发明的方法作进一步详细的说明。需要注意的是,以下实施例用于解释本发明,但不用来限制本发明的范围。
如图1所示,本发明的基于多尺度特征学习网络的火灾图片分类方法,包括了以下步骤:
步骤1:搜集带有火灾的图片和不带有火灾的图片,构建待输入到卷积神经网络模型的训练集和测试集,训练集和测试集都包含了两部分,一部分是带有火灾的图片称为正样本,另一部分是不带有火灾的图片称为负样本,搜集方式有网页搜索,日常拍照等等。
步骤2:将图像处理为多尺度图像块,如图2所示
利用下采样运算将图像下采样到多个尺度,公式如下:
ip=p(i,s)
其中,p(.)表示下采样函数,i表示输入的图像,s表示下采样参数。
对下采样后的图像ip进行转换,转换为多级的图像块in
公式如下:in=t(ip,d)
其中t(.)表示转换函数,d表示转换参数,
t(.)公式如下:
其中a11,a12,…add表示图像中的多个图像块,cat(.)表示矩阵联结函数。
步骤3:分两步构建一个卷积神经网络模型。
第一步是配置卷积神经网络模型的层,包括有输入层,卷积层,全连接层,输出层等。每个层包含一个或多个ltu,ltu是一个人工神经单元,输入和输出都是数字,并且每个输入都有一个对应的权重。ltu会加权求和所有的输入,然后根据求值结果应用一个信号函数。
第二步,编译卷积神经网络模型,在模型中添加损失函数,优化器,度量器等。对于不同尺度的卷积神经网络模型,只需要将输入层的尺寸修改就可以得到对应的卷积神经网络模型。
步骤4:将训练集的图片输入到卷积神经网络模型里,对每个样本进行归一化操作,具体过程如下:设mina和maxa分别是属性a的最小值和最大值,将a的一个样本x通过最大最小标准化映射到区间[0,1]的值x’,公式如下:
经过归一化处理后的数据加快了梯度下降求解最优解的速度,还有可能提高精度,训练集输入网络的图像都是rgb图像,每个像素点的范围在[0,255],所以上述公式可以表达成
步骤5:
5.1训练resnet50卷积神经网络并提取不同模块特征实现特征融合。
以tensorflow为后端,keras作为前端构建卷积神经网络,resnet50一共包括了49个卷积层和一个全连接层,需要注意的是,激活层和池化层并没有计算在内。
该网络有两种基本模块,一个是convblock,如图4所示,输入和输出的维度是不一样的,所以不能连续串联,它的作用本来就是为了改变特征向量的维度。另一种是identityblock,如图5所示,输入和输出的维度是一样的,所以可以串联多个;网络使用了一种连接方式叫做“shortcutconnection”,图3是这个resnet50网络结构采用的连接方式。它对每层的输入做一个reference(x),学习形成残差函数,而不是学习一些没有reference(x)的函数。这种残差函数更容易优化,能使网络层数大大加深。图中的残差块中它有二层,如下表达式:
f=w2σ(w1x)
其中σ代表非线性函数relu,x表示输入的样本,w1,w2分别代表了残差网络的第一层和第二层的权重。
然后通过一个shortcut模块和第2个relu,获得输出y=f(x,{wi}) x,当需要对输入和输出维数进行变化时(如改变通道数目),可以在shortcut时对x做一个线性变换ws,如下式:y=f(x,{wi}) wsx
5.2训练分类器,对网络结构参数进行优化调整
将训练集图片在经过卷积层,最大池化层,激活层后提取到的特征输入到spp(spatialpyramidpooling)层中,分别进行特征融合然后输出预测结果。这里采用了迁移学习的方法,将resnet50最后一层全连接层改成自己需要的神经元个数,其余层不变,其中激活函数形式如图7所示。
引入spp层的目的是为了不管输入尺寸大小如何,spp层可以产生固定大小的输出,同时使用了多个窗口,也可以使用同一图像不同尺寸作为输入,得到同样长度的池化特征,这也是实现多尺度特征学习的重要一步。如图6所示,最后的卷积层输出256个特征图,对每个特征图进行最大池化操作得到一个输出,然后将这256个池化结果组成一个256维的向量。对于图中4×256-d,是通过将一个特征图等分为4块,对每个小块进行maxpooling操作得到的,所以从每个特征小块得到一个输出,一个特征图就有4个输出,256个特征图就有4×256个维度。同理可知将一个特征图等分为16份就可得到16个256维向量。经过上述三个步骤就可以得到21个256维向量。对于任何输入尺寸图像,经过卷积之后,再用spp层处理,都会得到这个固定维度的特征向量。这个向量维度固定之后,后面的神经元就确定了因此后面的全链接层就可以固定了。
优化调整:resnet50网络反向传播采用的是adam算法,它的计算效率较高,能够适应较大的数据集,在自适应学习率梯度下降方法中效果较好,是一种使用多的优化算法。
adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代的更新神经网络的权重。adam优化算法的基本机制和传统的随机梯度下降算法不同,后者是保持单一的学习率来更新所有的权重,在过程中并不会改变。而前者通过计算梯度的一阶矩估计和二阶矩估计为不同参数独立设计不同的自适应学习率。
adam算法的更新公式为:
其中t表示次数,
其中β1,β2是常数,控制指数衰减,gt为一阶导。
5.3用训练好的网络进行分类并输出分类结果
将测试集中的图片输入到已经训练好的神经网络中,就可以得到分类结果,若是预测图片为有火就输出1,反之输出0。最后在测试集中得到的97.5%的准确率,如图8所示。
1.一种基于多尺度特征学习网络的火灾图片分类方法,其特征在于,包括以下步骤:
步骤(1).构建训练集和测试集图片,并且给每张图片添加正负标签;
步骤(2).利用多尺度方法中的下采样运算方法将火灾图像划分为不同尺度的图像块集合,并且实现图像增强;
步骤(3).分别构建多个尺度的卷积神经网络模型,每个卷积神经网络模型对应着一个尺度的火灾图像;
步骤(4).利用多个尺度的火灾图像作为训练数据,对图像像素值进行归一化处理,再分别代入上一步的卷积神经网络模型中进行特征提取;
步骤(5).将所提取的多尺度的火灾图像的特征进行融合,利用融合的特征对图像进行分类并与标签进行比对,再通过比对的结果对卷积神经网络模型进行训练调整。
2.根据权利要求1所述的火灾图片分类方法,其特征在于:
所述步骤(2)中利用下采样运算将图像下采样到多个尺度,公式如下:
ip=p(i,s)
其中,p(.)表示下采样函数,i表示输入的图像,s表示下采样参数;
对下采样后的图像ip进行转换,转换为多级的图像块in,公式如下:
in=t(ip,d)
其中t(.)表示转换函数,d表示转换参数,
t(.)公式如下:
其中a11,a12,ladd表示图像中的多个图像块,cat(.)表示矩阵联结函数。
3.根据权利要求1所述的火灾图片分类方法,其特征在于:
所述步骤(3)中构建的卷积神经网络模型是采用的残差神经网络,残差神经网络用于解决在加深网络层的情况下产生的梯度消失的问题,该网络含有残差块和卷积块,该网络通过恒等映射层增加网络的深度并且不会增加误差。
4.根据权利要求1所述的火灾图片分类方法,其特征在于:
所述步骤(5)中还包括了利用预测得到的概率结果和真实标签比对结合得到二分类交叉熵损失函数,该损失函数用于卷积神经网络模型的优化。
5.根据权利要求1所述的火灾图片分类方法,其特征在于:
所述步骤(5)中还包括了引入spp层,引入spp层的目的是为了不管输入尺寸大小如何,spp层均能产生固定大小的输出,同时使用了多个窗口,使用同一图像不同尺寸作为输入,得到同样长度的池化特征,这也是实现多尺度特征学习的重要一步。
技术总结