APP下载

基于卷积神经网络的植物叶片树种识别研究与实现

2020-03-18孔小莹边世正李瑞改

智能计算机与应用 2020年10期
关键词:池化准确率卷积

边 缘, 孔小莹, 张 莉, 边世正, 李瑞改

(东北林业大学 信息与计算机工程学院, 哈尔滨 150040)

0 引 言

树种识别一直是林学的热门研究内容[1]。由于叶片图像具有叶片形状特征多、辨识度高、区分度大、数据采集容易等优点,因此是当前树种识别领域常用的数据源。但人工树种识别存在着工作量大、工作效率低等问题,因此,本文采用模式识别与人工智能等领域的技术进行基于叶片图像的自动分类,具有相当大的应用前景。

由于深度学习领域大量研究者不断对已有算法进行优化,卷积神经网络算法的性能、准确率以及对不同问题的适应性均有提高,因而被大量应用在各个领域的图像分类问题上。在以往树种识别的研究中,有基于传统特征提取的分类器算法、基于人工神经网络的深度学习分类器算法以及传统特征提取与人工神经网络相结合的复合分类算法。唐钦设计的基于K-means和SVM传统分类器的复合算法在自采集的22种8 800张树叶样本数据集上取得了89.64%的识别率[2]。但是传统分类器算法需要复杂的特征提取,要求模型的使用者对识别任务的数据有深刻的理解,需要大量的先验知识和前期反复的数据分析、特征工程工作。且传统分类器算法可容纳的特征维度小、数量少,识别难度远远大于深度学习,在准确率方面也更容易遇到瓶颈。杨蒙蒙设计的Hu矩和灰度共生矩阵与BP神经网络结合的分类算法,在UCI数据库15种树叶样本数据集上取得了80.97的识别率[3]。然而人为提取特征输入神经网络的操作,所提取的特征不管从数量还是质量都远低于卷积神经网络自动提取的特征,没有有效发挥神经网络模型的优势,在准确率方面仍有较大的提升空间。赵鹏超等设计了一种浅层卷积神经网络,在自采集的4种树叶数据集上的识别率在95%以上[4]。由于其处理的分类任务种类少、样本数量不足、难度低,因此缺乏足够的说服力;也因为种类和样本数量的不足使得模型难以被有效应用在现实情境中。上述模型均为浅层网络模型,有一定的参考意义,也各自有其不足之处。在ILSVRC赛事的影响下,深度学习蓬勃发展,浅层的卷积神经网络已逐渐被深层卷积神经网络所取代[5]。深层卷积神经网络在模型可容纳的原始输入数据规模、所需训练的参数量、模型的训练难度以及实际的模型准确率等各方面的表现都优于浅层网络。

1 卷积神经网络

1.1 概念

卷积神经网络(Convolutional Neural Networks,CNN)是一种特殊的多层前馈神经网络[6]。卷积神经网络被广泛应用在以二维数据为输入的任务中,有着相对固定的网络结构。其起源于上世纪60年代Hubel和Wiesel等受猫的大脑视觉皮层系统启发[7]。视觉皮层的研究成果,为深入研究神经网络等相关内容提供了理论研究方向,为卷积神经网络此后的不断发展奠定了基础,CNN在1990年首次实现。LeCun等建立了反向传播算法训练的卷积神经网络模型LeNet[8]。该网络模型最初是为了研究识别手写的邮编数字,被作为经典的卷积神经网络被后人不断研究,并在此基础上优化。与传统分类算法相比,CNN可以不经过人工的预处理或预先提取特征,直接从原始数据中自动提取特征识别图像种类,对不同种数据都有很强的适应,使得特征提取工作不再完全依赖于相应行业专家丰富的专业知识与经验。同时CNN具有局部连接与权值分享的特点[9]。这二种特点对于降低网络模型的复杂度起到重要作用,很大程度上减小了模型所需的参数的规模和训练过程中的运算量,使得模型拥有更快的训练速度和较容易的训练难度。

1.2 网络结构

卷积神经网络由卷积层、池化层以及全连接层组成,网络结构示意如图1所示。不同于输入一维数据的传统神经网络,CNN模型以二维数据(即图像)作为输入,通过卷积层提取特征,减少参数数量;通过池化层降低卷积层输出特征图像的维数,即降维处理;最后提取到的特征图像输入到全连接层中进行分类。CNN具有强大的特征提取能力,参数较少,卷积层与池化层的网络结构可以被设计得很深。

图1 卷积神经网络结构示意图

1.3 卷积

卷积运算的原理是用一个卷积核,遍历原图像,得到特征图像。其中卷积核是一个预先设定好大小的权值矩阵w,卷积运算即卷积核与原图像局部的对应值乘积的和加上偏置b,经过激活函数计算得到输出的特征值,在卷积核遍历原图像后得到特征图像。

定义输入矩阵X(n×n),卷积核为W(k×k),输出矩阵为Y,则卷积运算公式(1)为:

(1)

卷积核的权值通过反向传播算法训练,因此CNN具有学习图像特征的能力。

1.4 池化

卷积操作所提取出的原图像对应的特征图像实际上不需要经过池化操作即可用于全连接层分类。但碍于计算机能力的限制,直接输入到全连接层的特征图像数据量过大,需要训练大量参数,导致训练时间过长,训练难度陡升等问题。

为了解决数据量过大的问题,在卷积神经网络结构中添加了池化层。

池化层通过池化操作来减小数据量。池化操作利用了图像数据相邻像素之间有关联性的原理,通过预先设定好大小为n×n尺寸的正方形(以像素为单位)遍历图像,在原图像的每个正方形内分别计算其结果,计算方式有求平均值和最大值二种,最后输出一个由计算结果所组成的特征图像,图像的长宽均为原图像长宽除以n。2×2最大池化原理示意,如图2所示。

图2 2×2最大池化原理示意图

在实际应用中,常见的池化操作分为最大池化与平均池化二种。池化操作可以有效减小网络所需的参数量,同时最大限度保持特征的质量。在过往的研究中最大池化在很多实验中都取得了较好的效果。本论文采用的是2×2最大池化,一次池化操作可以将数据的规模缩小至原来的四分之一。

2 数据集与预处理

实验选用Flavia植物叶片数据集,如图3所示。该数据集共有32种植物类别,1 907个尺寸均为1600×1200样本图像,图像背景纯白无阴影。

图3 Flavia植物叶片数据集

树叶主要通过形态特征区分种类,颜色影响较小,RGB三通道图像极大地增多了数据量,增加了神经网络的负担,因此实验将Flavia的RGB叶片图像转换为灰度图,如图4所示,保留树叶形态特征、减少数据量,使数据集可以使用更为复杂的网络模型。

图4 RGB叶片图像转换灰度图例

RGB图像转换灰度图为公式(2):

L=R×0.299+G×0.587+B×0.114.

(2)

其中,R、G、B分别代表RGB图像的红、绿、蓝3个通道的图像,L代表灰度图。

对叶片数据标准化处理,使得神经网络在训练时加速收敛,如公式(3)所示:

(3)

其中,μ为样本数据的均值;σ为样本数据的标准差;x为图像矩阵;Xscale为标准化处理后得到的图像矩阵。

3 网络模型与训练

本实验软件环境为Windows 10 64位系统,采用Keras深度学习框架,使用Python作为编程语言。计算机内存为8GB,搭载Inter(R) Core(TM) i5-7400 CPU @ 3.00GHz x4处理器,同时使用Nvidia GTX1050显卡加速网络训练。

本文设计的网络模型共有7层卷积层,4层池化层以及2层全连接层,如图5所示。其中卷积层选用了11×11,5×5和3×33种尺寸的卷积核,池化层均选用2×2最大池化层,第一层全连接层设置了4 096个神经元,第二层全连接层输出32种植物叶片分类结果。

图5 本文设计的网络模型

本实验使用交叉验证对模型的性能进行验证,训练集与验证集比例设置为8∶2,共1 525张训练样本,以及382张测试样本,为了保障实验的准确性,训练样本与测试样本均随机选取。训练过程中采用了衰减的学习率,设置初值为0.001,每两轮若验证集loss值未下降,则学习率衰减为原来的一半。

4 结果与分析

经过多次交叉验证,模型识别的平均准确率为91.16%,最低准确率为90.31%,如图6所示;最高准确率为92.15%,如图7所示,模型的平均训练时间约为36~37 min。准确率受到随机选取的训练集样本因素的影响,同时Flavia数据集中不同示例图片中叶片方向的不一致也是可能影响模型识别准确率的因素之一。但多次实验中准确率均高于90%,能够达到林业相关应用领域中对树种识别技术的要求。

图6 准确率最低模型训练情况

图7 准确率最高模型训练情况

5 结束语

本文基于卷积神经网络设计了一种植物叶片树种分类算法,该算法利用不同尺寸的卷积核随网络深度由大尺寸到小尺寸进行卷积以识别局部特征,然后利用2×2最大池化核池化操作以降低数据规模并提高算法的鲁棒性,并在Flavia数据集上进行了模拟实验,模型准确率高于90%。表明本文算法是一种基于植物叶片进行树种分类的有效方法。

猜你喜欢

池化准确率卷积
基于高斯函数的池化算法
基于全卷积神经网络的猪背膘厚快速准确测定
卷积神经网络中的自适应加权池化
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察