基于卷积神经网络的植物叶片分类
2014-08-23龚丁禧曹长荣
龚丁禧,曹长荣
(厦门大学信息科学与技术学院,福建 厦门 361005)
0 引言
植物在人类生活中扮演着非常重要的角色,对各种植物分门别类地建立数据库,利用人工智能方法自动识别植物,对植物进行方便的管理和保护意义重大。
在植物形状分类学中,根据植物的花、叶的形状分为不同类别。在自然界中,通常花的形状结构是三维的,分析起来比较复杂,而叶片的形状结构一般都是近似二维的,比较容易处理。而且花期一般较短,不容易采集,叶片则一年四季都可以见到,较易采集。正是基于上述原因,叶片常被作为植物分类的依据。多年来,已经有许多植物学家和学者对基于叶片的植物识别进行了深入研究。Guyer等人[1]在1993年提取了17种叶片形状特征,并对40类植物进行分类。1998年,Im等人[2]使用分层的多边形来近似表示叶片形状,并将该方法用于多种枫树的分类。2000年,Oide和Ninomiya[3]将叶片形状作为神经网络的输入,并使用一个Hopfield网络和一个简单的感知器对大豆叶片进行分类。2001年,Soderkvist[4]使用叶片的几何特征,采用BP前馈神经网络对15种瑞典树木进行分类,实验用到的15种叶片组成的数据集后来成为一个标准数据集——Swedish叶片数据集,很多研究者利用该数据测试他们的方法。2007年,Ling等人[5]利用轮廓内最小距离改进形状上下文(Shape Context using Inner-Distance,SCID),然后使用动态规划对叶片形状进行匹配。2007年,Felzenszwalb等人[6]使用一个分层的形状树模型(shape-tree)作为形状描述子,能够很好地描述叶片的全局形状与局部纹理。2013年,Zhang等人[7]将监督局部投影分析(Supervised Locality Projection Analysis,SLPA)用于植物叶片的分类,获得了很好的分类结果。
尽管经过长足的发展,对植物分类方法的研究已经取得了许多鼓舞人心的进展,但是依然存在各种各样的问题。传统的植物叶片分类方法一般采用两步法(如图1所示):第一步,从输入的叶片图像中计算出人为设置的特征;第二步,根据得出的特征去训练一个分类器,用于测试数据的分类。这种方法表现的好坏很大程度上取决于人为选择的特征是否合理,而人在选择特征时往往都是靠经验,具有很大的盲目性。虽然现在利用人为设置的特征进行分类也取得了较好的结果,但是这些特征都是针对特定数据设计的,如果用同样的特征来处理不同的数据集,结果可能大相径庭,因此这种特征具有不可迁移性。为了解决上述问题,本文提出了一种可以直接在二维图像上进行自动特征学习与分类的方法,很好地解决了传统植物叶片分类方法存在的缺陷。
图1 传统植物叶片分类方法流程图
1 卷积神经网络CNN
1.1 CNN的发展历史
1959 年,Hubel和 Wiese[8]两位科学家在对猫的视觉实验中发现了猫的视觉系统是分级的,这种分级可以看成是逐层迭代、抽象的过程:瞳孔接收像素,方向选择性细胞抽象出边缘,对边缘进一步抽象得出形状,对形状进一步抽象得出是什么物体。高级特征是低层特征的组合与抽象,越高级的特征越能体现人类的语义信息。图2对这种逐步抽象的分层模型进行了展示,后来研究者提出了一个新名词来命名这种模型——即“深度学习模型”。
图2 深度学习模型示意图
1980年,Kunihiko Fukushima提出的Neocognitron首次引进了CNN的概念[9],这也是首个深度学习模型。之后,在实践和理论分析中,很多学者为CNN的发展做出了重大贡献。1988年,LeCun[10]等人将BP算法引入 CNN。2003 年,Behnke[11]写了一本关于CNN的著作,对 CNN进行了总结。同年,Simard[12]等人对 CNN 进行了简化。2011 年,Cireşan[13]等人进一步对CNN进行了改进,并实现了它的GPU版本,之后,他们利用该CNN框架对多个图像数据库进行实验,获得了有史以来的最好结果。
1.2 CNN基本框架
CNN是一个多层的神经网络,由多个卷积层、子采样层交替组成,而每层由多个独立神经元组成,它的基本框架如图3所示。
CNN的基本原理及其原理推导可以在文献[11]中查阅。下面对图3的CNN框架作简要分析。
图3 CNN基本框架图
图3的CNN框架由2个卷积层、2个子采样层交替组成。C标识的为卷积层,也称为特征提取层,每个神经元的输入与前一层的局部感受野(receptive field)[8]相连,并提取该局部的特征,一旦该局部特征被提取后,它与其他特征间的位置关系也随之确定下来。C层中有多个不同的二维特征图,一个特征图提取的是一种特征,这表示提取多种不同的特征。在提取特征时,同一个特征图的权值是共享的,即使用相同的卷积核,不同的特征图使用不同的卷积核。C层将不同的局部特征保存下来,使得提取出的特征具有了旋转、平移不变性。S标识的层是子采样层,也称为特征映射层,它负责将C层获得的特征进行子采样,使提取的特征具有缩放不变性。S层只是做简单的缩放映射,需要训练的神经元权值相对较少,计算也比较简单。在CNN的末层一般接上几个全连接层,最终输出节点个数就是分类目标个数,训练的目的就是使CNN的输出尽可能与原始的标签相近。
图4 植物叶片识别CNN框架
2 基于CNN的植物叶片分类方法
首先,假设输入的叶片图像大小都是64×64的灰度图像,在此基础上设计的植物叶片识别CNN框架如图4所示。
有关植物叶片识别CNN框架的详细描述如下:
(1)输入。当原始图像不是灰度图像时,首先进行灰度化;当大小不是64×64时,采用双线性插值算法对图像进行缩放,以保证满足输入要求。
(2)C1层。C1是一个特征提取层,它获得12个60×60大小的二维特征图。实际上,它是通过一个5×5大小的卷积核来获得的。卷积核的大小决定一个神经元感受野的大小,当卷积核过小时,无法提取有效的局部特征,而当卷积核过大时,提取的特征的复杂度可能远远超过卷积核的表示能力。因此,设置适当的卷积核,对于提高CNN的性能至关重要,同时也是CNN参数调谐的难点。在C1中使用了5×5大小的卷积核,用5×5大小的卷积核去卷积64×64大小的图片,即遍历每一个5×5大小的单元,最终获得(64-5+1)×(64-5+1)=60×60大小的一个特征图。其中,同一个特征图使用的5×5的卷积核都是一样的。如图5所示,特征图1和特征图2提取的是2种不同的特征,虚线和实线分别表示不同的卷积核;从特征图1来看,这表示使用相同的卷积核从局部图块1和局部图块2提取了一种特征分别放在同一个特征图的不同的神经元中;从局部图像块1来看,表示使用不同的卷积核在同一个局部图块提取了2种特征分别放在不同特征图的神经元中。卷积得到的结果并不是直接存储在C1层,而是先通过一个激活函数进行计算,再作为C1层某个神经元的特征值,激活函数一般取Sigmoid函数。在实际操作中,卷积的时候还要加上一个偏置项。对于图像块x,采用卷积核w进行卷积,偏置项为b,输出为y的卷积运算为:
图5 卷积运算示意图
C1需要训练的参数数目:12×(5×5+1)=312个,而输入层和 C1的连接数:312×(60×60)=1123200条。
(3)S1层。S1是子采样层,它获得12个30×30大小的特征图。它是通过将C1中所有互不重叠的2×2的子块x求和,再乘以一个权重w,加上一个偏置项b得到的。子采样计算过程为:
因为C1中特征图大小为60×60,最终获得的子采样结果就是30×30的特征子图。接下来每个子采样层使用的缩放因子都是2,这样做的原因是要控制缩放下降的速度,因为缩放是指数级缩放,缩小的速度太快也意味着提取图像特征更加粗糙,将会失去更多图像细节特征。在CNN中,一般取缩放因子为2就已经够了。每一个子采样特征图需要训练2个参数,S1共有12×2=24个参数需要训练。
(4)C2层。C2也是一个特征提取层,它跟C1有类似的地方,同时也有一定的差别。C2使用的卷积核大小也是5×5,所以它获得的特征图大小为(30-5+1)×(30-5+1)=26×26。由于通过C1和S1的处理,实际上S1的每一个神经元覆盖的感受野已经相当于原始图像的10×10(C1的卷积核大小是5×5,S2的采样子块大小为2×2,5×5×2×2=10×10)。现在C2又经过一个5×5大小的卷积核提取S1的特征,它的感受野进一步扩大,相当于原始图像的50×50。C2的特征图共有24个,比C1翻了一倍,C1通过输入层一张图片获得12个映射平面,现在C2需要从S1的12个特征图映射出24个特征图,这里需要一定的技巧。C2中的每个特征图在作卷积时,是由S1中几个特征图或者全部特征图组合成输入,然后再做卷积得到。不是一直将S1的全部特征图作为输入的原因是:不完全的连接机制使连接的数量保持在合理的范围之内;同时,最重要的是它破坏了网络的对称性,不同的组合抽取的自然是不同的特征。本文采用的策略是:倘若S1的特征图编号是C2特征图编号的因子,那么它们是有连接的,比如S1中的特征图1连接到C2中的所有特征图,S1中的特征图2连接到C2中所有编号为偶数的特征图。S1中的特征图3连接到C2中所有编号能整除3的特征图,依次类推。对于第 j个特征图C2j,j∈{1,2,...,24},有:
其中,M={i,j mod i==0},i∈{1,2,...,12}。在接下来的子采样层,使用相同的组合策略。
(5)余下的卷积层与子采样层。这些层的工作原理与前面的层是一样的,只是随着深度的增加,提取的特征更加抽象,也更具有表达能力。经过C1,S1,C2,S2数层卷积与采样,提取的特征已经很具有表达能力,然而它们的抽象能力依然不够。在实验中,当使用仅有C1,S1,C2,S2的卷积神经网络时,获得的正确分类精度只有约40%。而采用图4的卷积神经网络框架,正确分类精度大幅上升,这说明深度对卷积神经网络的性能影响很大,不充分的深度会削弱卷积神经网络的特征提取能力。
(6)输出层。输出层是与S3的一个全连接层。S3有24×5×5=600个神经元,每一个神经元都与输出的一个神经元相连,输出层共有15个神经元(即叶片种类数目),所以共有600×15=9000个连接。这里可以将S3看作一个600维的线性向量,而S3到输出层的映射相当于使用该向量进行分类,这个分类器共有9000个参数,因此具有很强的描述能力。
3 实验结果及分析
为了验证本文方法的有效性,在Swedish叶片数据集上进行了一系列实验,并与前人的多项研究成果进行了对比。Swedish叶片数据集[4]是从15种瑞典植物分离出来的叶片,每种叶片含有75个样本,共有1125个样本。原始的数据集中叶片含有叶柄,这可能会影响分类算法的鲁棒性,因为在采集叶片的时候可能因为采集者的操作导致叶柄长短不一,它提供的判定信息不能作为分类依据。因此在进行分类前,先将叶柄去除,以排除叶柄的干扰。图6是去除叶柄前后的数据对比。
图6 Swedish叶片数据集中的典型叶片
在进行本次实验时,实验环境如表1所示。
表1 实验环境
因为图4的卷积神经网络只接受64×64大小的灰度图片,而Swedish叶片数据集中的图片是大小不一的高清彩色图像。所以,首先需要对图片进行灰度化;然后,对图片进行尺寸缩放,由于Swedish里的叶片数据并没有诸如光照变化、旋转、叶片扭曲等复杂场景,它几乎是在同一光照下采集的尺度视角近乎没有变化的叶片图像,这里没有使用复杂的算法进行归一化,而采用双线性插值进行几何缩放,将所有图片统一缩放到64×64之后,再输入到卷积神经网络。这也考虑到CNN本身对于尺度、旋转不敏感,在这里省略了过多的预处理步骤。
在实验中,将整个Swedish叶片数据集看成一个整体,然后采用10折交叉验证,获得的正确分类精度为99.56%,将该结果与前人的研究在该数据集上的表现进行对比的结果如表2所示,本文获得的分类结果是最好的。
表2 与前人的研究成果对比
4 结束语
在对CNN深入研究基础上,提出了一种可以直接作用于灰度图像上的叶片识别方法。传统叶片识别方法依据经验人为地从叶片图像中提取特征,再在该特征上进行分类识别,存在盲目性、操作复杂和分类精度低等缺陷,基于CNN的植物叶片识别方法不存在上述缺点,并且实验结果证明了该方法在叶片分类时高效可靠。
下一步将并行化实现基于CNN的叶片识别框架,以加快CNN的训练速度。同时,笔者正在采集更多的叶片数据来训练本文的CNN,以使它能识别更多的植物,最终期望能够将本文的方法和应用进行推广,形成一个实用的自动叶片识别产品。
:
[1]Guyer D E,Miles G E,Gaultney L D,et al.Application of machine vision to shape analysis in leaf and plant identification[J].Transaction of the ASABE,1993,36(1):163-171.
[2]Im C,Nishida H,Kunii T L.Recognizing plant species by leaf shapes-a case study of the Acer family[C]//Proceedings of 14th International Conference on Pattern Recognition.Brisbane,IEEE.1998,2:1171-1173.
[3]Oide M,Ninomiya S.Discrimination of soybean leaflet shape by neural networks with image input[J].Computers and Electronics in Agriculture,2000,29(1-2):59-72.
[4]Söderkvist O J O.Computer Vision Classification of Leaves from Swedish Trees[D].Linkoping:Linkoping University,2001.
[5]Ling H,Jacobs D W.Shape classification using the innerdistance[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(2):286-299.
[6]Felzenszwalb P F,Schwartz J D.Hierarchical matching of deformable shapes[C]//IEEE Conference on Computer Vision and Pattern Recognition(CVPR’07).2007:1-8.
[7]Zhang Shan-wen,Lei Ying-ke,Dong Tian-bao,et al.Label propagation based supervised locality projection analysis for plant leaf classification[J].Pattern Recognition,2013,46(7):1891-1897.
[8]Hubel D H,Wiesel T N.Receptive fields of single neurones in the cat’s striate cortex[J].The Journal of physiology,1959,148(3):574-591.
[9]Kunihiko Fukushima.Neocognitron:A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position[J].Biological Cybernetics,1980,36(4):193-202.
[10]LeCun Y,Boser B,Denker J S,et al.Backpropagation applied to handwritten zip code recognition[J].Neural Computation,1989,1(4):541-551.
[11]Behnke S.Hierarchical Neural Networks for Image Interpretation[M].Berlin Heidelberg:Springer,2003.
[12]Simard P,Steinkraus D,Platt J C.Best practices for convolutional neural networks applied to visual document analysis[C]//Proceedings of the 7th International Conference on Document Analysis and Recognition(ICDAR).2003:958-962.
[13]Cireşan D C,Meier U,Masci J,et al.Flexible,high performance convolutional neural networks for image classification[C]//Proceedings of the 22nd International Joint Conference on Artificial Intelligence,Volume 2.AAAI Press,2011:1237-1242.