APP下载

基于多路特征融合和深度学习的露霜图像分类

2018-10-24周忠义

计算机应用与软件 2018年10期
关键词:网络层卷积分类

周忠义 吴 谨 朱 磊

(武汉科技大学信息科学与工程学院 湖北 武汉 430081)

0 引 言

露霜影响着生态环境的很多方面,例如地表水循环、农作物收成和地表湿度等。露对昆虫和植被有积极作用,而霜冻现象会使部分农作物受到一些伤害,造成农作物落花、落叶,食用价值的损失或作物的全株死亡,因此露霜天气的识别和预测具有重要意义[1]。由于露霜特征易受温度和光照影响而消失,露霜在图像中的分布也无明显规律,传统基于特征变化检测的露霜识别算法特征提取难度较大,识别准确率不高[2]。

目前,深度学习在图像分类识别领域取得了越来越好的成绩。为了提高图像识别的准确率,越来越多的研究者开始利用深度卷积网络做特定场景下的图像分类识别研究。与传统依赖图像像素值处理的特征提取算法不同,深度卷积神经网络对像素相关性、形变、光照具有一定程度的自适应性,并且可在大量训练数据驱动下自适应地抽取特征进行自我学习,避免了显式的特征提取,具有更高的容错率和泛化能力[3]。

本文提出了一种基于多路特征融合和深度学习的露霜图像分类方法。本文的多路融合网络模型在ResNet-50模型[4]基础上增加了浅层网络层到深层网络层的多个通路,将具有更明显视觉信息的浅层特征和具有更明确语义分类信息的深层特征相结合,以多路特征融合的方式增强后续卷积运算的特征信息,提高网络的分类准确率。

1 算法基础

1.1 卷积神经网络的基本结构

卷积神经网络的基本结构如图1所示,主要包括特征提取部分与模式识别部分。特征提取部分由若干个卷积层和激活函数层交替而成,中间可能出现池化层(降采样层)。卷积层使用卷积核对上一层的输出特征进行卷积操作,卷积核类似于图像处理中使用的“滑动窗口”,卷积操作类似于卷积核与原始图像上相应大小的区域进行对应相乘,并以一定步长作用于整幅图像。一幅图像可以与多个卷积核进行卷积操作,研究表明,卷积操作可以提取到图像中更有区分力的特征。池化层将经过卷积运算的图像进行降采样操作,去除图像冗余信息。模式识别部分是分类器层,通常是多个感知器。图像经过卷积和降采样等操作后得到原始图像的特征,然后将这些特征以一维向量的形式输入到全连接层中,最后将输出结果输入到模式识别部分进行判决,使整个网络达到分类识别的目的。

图1 卷积神经网络基本结构

1.2 卷积神经网络的训练方法

卷积神经网络的训练分为前向传播和反向传播两个过程。

前向传播:

(1) 从训练图像集中随机选取样本(X,Y),其中X代表输入图像,Y表示图像实际类别。

(2) 通过卷积神经网络的逐层运算,最终得到的测试类别为O。其中网络执行的计算为交替执行的卷积和下采样操作,输出结果为:

O=fn(…(f2f1(XW(1))W(2)…)W(n))

(1)

式中:fn表示第n层网络的激活函数;W(n)表示第n层的卷积核或下采样矩阵。

反向传播:

(1) 计算实际输出O与相应的理想输出Y的差。

(2) 使用最小化误差的方法反向传播,不断调整各权值参数。

2 算法实现

为了达到较好的露霜图像分类效果,本文中多路融合网络模型在ResNet-50模型基础上增加了浅层网络层到深层网络层的3个通路。在网络基础模型的选取上,选择了网络层数较高的ResNet-50模型,而没有选择alexnet[5]和vgg-f[6]等模型。主要是因为alexnet只有8层卷积层,总网络层数相对偏低,在当年实现的top1-error还不够高,而vgg-f同样是8层网络结构。另外,考虑到网络的复杂性、训练速度和硬件条件,也没有选择ResNet-101和ResNet-152模型。由于基础模型经过了研究者们的广泛实验,具有一定的借鉴性,直接利用避免了主观经验的网络设计,有利于网络收敛。

图2 残差网络结构

ResNet以其核心算法命名,意为残差网络(Residual Network)。ResNet的主要优势在于残差路径,如图2所示。当卷积神经网络的网络层数增加时,可能出现网络性能退化等问题,而ResNet恰恰借助残差路径弥补了这一点[7]。这种在浅层网络层直接加入通路使得输入可以直达输出的思想使网络训练优化的目标由原来的拟合输出H(x)变成输出和输入的差H(x)-x,而拟合残差F(x)=H(x)-x会更容易,其中H(x)是原始的期望输出,x是输入。

2.1 ResNet-50模型

ResNet-50模型如图3所示。以Conv卷积层计算共50层,本文将一个Conv卷积层、BatchNorm批量归一化层和ReLU激活函数层依次连接的结构称为CBR结构,而图中的残差网络结构称为Unit结构,该结构包含两个CBR结构。整个网络主要是多个Unit结构的串联。

图3 ResNet-50网络模型

在深度训练中,特征信息维度不断下降,实验中抽取了基于原图大小的4个分辨率的结霜图像特征进行分析,如图4所示。可以发现越靠近网络的输入部分,视觉纹理特征越明显。

图4 ResNet-50各分辨率节点结霜图像特征

在图3中,Unit结构里存在两条路径,不存在CBR结构的另一条路径即是残差路径。图中Conv+BatchNorm代表一个Conv层和BatchNorm层的依次连接结构。input代表输入图像,在深度训练中一般将图像统一放缩到指定的大小,ResNet-50默认输入图像的维度为224×224×3。Pool代表降采样层,主要目的是防止过拟合和降低计算量。Softmax层用于根据类别信息进行分类。

2.2 多路融合网络模型

本文在ResNet-50网络的基础上增加了3个浅层网络层到深层网络层的训练通路。训练通路分别处于3个典型的分辨率节点,特征最终融合至原图1/32分辨率的网络节点。另外,在网络的输出部分加入了两个全连接层,多路融合网络结构如图5所示。

图5 多路融合网络结构

多路融合网络的设计思路来源于文献[8]中提出的一种RefineNet的网络模型。该模型综合了浅层的视觉特征信息和深层的语义特征信息,并进行上采样等操作将深度训练的特征还原到一定的分辨率之内,起到了良好的图像分割效果。但是,露霜图像分类不需要将深层的语义分类信息还原到一定的分辨率之内,只用根据分类标签朝着指定的类别学习训练即可。因此实验只利用了其中用于综合多路特征的网络结构。

图5中从input到res2cx直至res5cx等网络层分别对应ResNet-50网络中自上而下训练的对应名称网络层。图中虚线对应框代表相应层计算所需要的参数,数字部分代表相应层的维度信息。My_copy_layer网络层用于特征抽取,即将上层训练结果直接输入下一层。dagnn.Sum层用于融合抽取的特征,其中dagnn代表matconvnet框架中的dagnn网络,在图中分别代表网络层的类型,例如dagnn.Conv就是Conv卷积层。

如图6所示,实验中输入图像到多路融合网络观察到不同分辨率网络节点的分类特征有从细节到语义的变化。在网络自上而下的训练过程中分辨率不断下降,浅网络层具有高分辨率,更接近于输入,具有更明显的视觉信息,而深网络层距离输出较近,具有更明确的分类信息。本网络以多路特征融合的方式增强后续卷积运算的特征信息,图6中Multi-Path Fusion结构信息见图5。

图6 多路特征融合

2.3 算法训练流程

该算法的核心在于初始网络设计部分,由于matconvnet框架对各个网络层有明确的训练定义,对训练主函数有比较好的集成,实验能够直接利用。本文只用将初始设计的网络模型输入matconvnet框架,然后利用该框架读取图像集训练即可。模型的定义和图像集格式都必须满足matconvnet的默认规则来设计。训练的相关核心代码大部分已由matconvnet框架集成,在此不再赘述。整个训练流程如图7所示。

图7 网络训练流程图

用于特征抽取的My_copy_layer网络层的核心代码定义如下:

My_copy_layer.m

%网络层类定义,继承自dagnn.ElementWise(框架集成)

classdef My_copy_layer

%属性定义

properties

end

%成员函数定义

methods

%前向传播训练,输入直接输出

function outputs=forward(obj,inputs,params)

outputs=inputs;

end

%反向传播训练,实现参数传递

function[derInputs, derParams]=backward(obj, inputs, params, derOutputs)

derInputs=derOutputs;

derParams={};

end

%加载参数和预初始化部分网络参数

function obj = DropOut(varargin)

obj.load(varargin{:});

end

function obj=reset(obj)

reset@dagnn.ElementWise(obj);

end

end

end

3 实验与分析

3.1 数据集

数据集基于文献[9]中露霜图像自动化采集设备所拍摄的露霜图像数据集,图像采集设备如图8所示。该设备属于气象站自动化露霜观测设备,露霜图像的拍摄大多在夜间拍摄,设备每隔10分钟周期性抓拍,并且只在抓拍期间提供LED照明。

图8 基于玻璃载体的露霜自动化观测设备

本文首先对图8设备采集的图像进行了预处理。将检测结露结霜现象的玻璃片区域图像分割出来用于本实验的深度训练,如图9所示。

图9 气象设备拍摄的露霜图像

分割的玻璃片区域图像由于并不规则,尺寸大小也不尽相同,在实验中统一缩放至224×224大小。

实验训练图像集已人工进行预分类,具备类别信息。各类别的样本数量分布如表1所示。

表1 各分类样本图像数目 幅

实验的露霜训练图像集如图10所示。

图10 露霜图像训练样本

3.2 实验参数设置

本文的实验环境为Windows 7操作系统,MATLAB 2016,matconvnet框架,机器内存12 GB。利用数据集分别在alexnet、vgg-f、ResNet-50和多路融合网络4种模型上进行实验,并对matconvnet中的深度训练参数做了设置。实验中alexnet和vgg-f模型比较相似,因此采用了同样的训练参数,后两者网络同样如此,如表2所示。

表2 实验深度训练参数

表2中:learningRate为网络学习率,可以用于调节收敛速度,实验中分别取值0.1和0.000 1时效果都不太好,当为0.1时网络并不收敛,而取值后者时网络收敛太慢,需要耗费很大的训练时间;weightDecay是权值衰减参数,是放在正则项前面的一个系数,weightDecay参数使用的目的是防止过拟合,该参数实验中使用了matconvnet框架的默认值;batchSize在网络层较多时可以相应减小,该参数代表一次迭代更新权值参数时读取图片数量,该值越大对存储器容量要求越高,由于网络层数更多的残差网络计算数据量更大,本文相应调小了该值。另外,网络中权值参数的初始化均采用均值为0,方差为0.01的高斯分布,偏置初始化为0。

3.3 结果与分析

为了分析多路融合网络的性能和收敛性,在实验参数epoch取值为150时,观察到多路融合网络的最后一层softmax多分类层的代价函数随训练迭代次数的变化曲线如图11所示。可以看出,训练前期softmax分类器代价函数的值下降得很快,但有较大波动,说明网络正快速优化,但并未稳定。当迭代训练次数大于50次以后,代价函数的值已经几乎不再变化,代价函数已接近最优。

图11 多路融合网络softmax代价函数的迭代曲线

另外,多路融合网络的top1-error在训练过程中也在不断下降,如图12所示。可以观察到,在训练的前期阶段,多路融合网络的top1-error下降得很快,前期同样有较大波动,当网络训练到50次时top1-error已基本不再变化。该函数曲线同softmax代价函数的变化趋势基本相符,表明此时网络已基本收敛。继续训练发现,网络的top1-error会有轻微波动,属于正常的识别误差波动。由图12可以得出,多路融合网络在网络刚开始训练阶段,网络的top1-error约为25%。

图12 多路融合网络top1-error的迭代曲线

为了测试网络的分类效果,实验选取了多路融合网络训练到100次时的模型,对测试集的2 400幅图像样本进行分类,分类数据如表3所示。

表3 多路融合网络的分类结果 幅

实验结果表明,多路融合网络正确分类了2 381幅图像,分类准确率达到99.2%。另外可以发现,结露图像错误分类为未结露霜的图像最多,反映了某些结露图像中露水并不明显。

实验中分别在4个迭代训练次数点的网络模型上做了露霜图像的分类实验,得出的平均分类准确率如表4所示。

表4 不同模型和epoch下的平均分类准确率 %

比较后发现,当训练到30次时,由于网络并未完全收敛,多路融合网络的分类准确率没有ResNet-50高;当训练超过100次后,各个网络的分类准确率都基本不再变化。最终,多路融合网络相比ResNet-50增加了1.3%的分类准确率。另外,由于alexnet和vgg-f网络层数较低,分类准确率还不够高,基于总网络层更多的残差网络分类效果会更好。

在识别阶段,也统计了2 400幅测试样本的识别时间。多路融合网络的识别时间为81 s,ResNet-50模型需要78 s,alexnet和vgg-f的识别时间均为16 s,就单幅图像的露霜识别速率而言,多路融合网络识别时间约为33 ms。可以得出,为了取得更好的分类效果,网络更复杂,运算代价也会更高。由于GPU已广泛应用于神经网络的计算,这个速率将来会更快。

本文实验结果表明:基于深度学习的方法对露霜图像的分类取得了较好的分类效果,通过多路特征融合的方式增强后续卷积运算的特征信息,进一步提高了网络的分类准确率。

4 结 语

本文提出了一种基于多路特征融合和深度学习的露霜图像分类算法,将深度训练中的浅层特征和深层特征进一步综合,增强后续卷积运算的特征信息,提高了网络的分类准确率。另外,基于深度学习的方法相比传统基于特征变化的露霜检测算法,避免了显式的特征提取,具有更高的容错率和泛化性,在分类准确率上更有优势。实验结果表明,基于多路特征融合和深度学习的方法对露霜图像分类的准确率达到了99.2%。该项研究对露霜特征研究、气象站自动化准确预测和识别露霜天气具有重要意义。

猜你喜欢

网络层卷积分类
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
按需分类
教你一招:数的分类
论物联网安全威胁及其应对策略
说说分类那些事
物联网技术在信息机房制冷系统中的应用
给塑料分分类吧