-
植物可以通过根、茎、叶、花和果实等器官的形态纹理特征进行识别。与其他植物器官相比,叶片生存时间更长,纹理、颜色和形态结构各异,可以作为区别植物物种的主要依据。随着计算机视觉领域技术的不断发展,基于机器视觉的叶片图像识别已经成为主流方法。魏蕾等[1]对植物叶片图像进行预处理,选取了10个叶片形状特征参数,然后运用支持向量机(SVM)进行建模识别,识别率达到95.8%。张宁等[2]通过提取叶片的几何、纹理特征,提出了克隆选择算法融合K近邻判别分析的叶片识别方法,在100种植物叶片数据库中识别率为91.37%。王丽君等[3]提取叶片的颜色、形状、纹理特征,运用SVM实现识别,对50种植物叶片样本图像的识别率达到91.41%。张天天等[4]针对7种柳属(Salix)植物叶片测量出有效的数字化植物指标,利用叶片相关特征进行多特征融合,综合识别率达到90.8%。
在叶片图像特征分析与识别过程中,特征的选择基本是由人工分析决定,因而会导致同样特征识别不同植物数据集的差异性。随着深度学习的兴起及不断发展,卷积神经网络(CNN)模型可以自主学习特征、减少人工干预,提高图像识别的效率,相关的方法也被逐步应用到叶片识别领域,张帅等[5]构建了一个8层的深度学习叶片识别系统,应用SVM和Softmax分类器,识别率能够达到91.11%和90.90%。基于卷积神经网络的植物识别方法减少了人工干预的问题,并且达到了不错的分类效果,但Lee等[6]运用反卷积操作分析卷积神经网络叶片识别模型时,发现卷积层对植物叶片图像的特征响应强烈区域均在叶片边缘形状区域,而对叶片其他特征的响应相对较弱,导致了相似边缘形状叶片的错误分类识别。纹理特征是植物叶片种类的显著特征,利用植物叶片纹理特征可以弥补相似边缘形状叶片的识别缺陷。针对植物叶片识别问题,本文设计了一种双路卷积神经网络模型,两路特征分别提取叶片形状和局部纹理信息,通过网络输出得到叶片识别分类结果。
-
选取Flavia公共叶片数据集并扩充了具有复杂背景信息的植物叶片数据对方法进行验证。Flavia数据集是由Wu等[7]收集的叶片图像库,植物类别数量为32种,共有1 907个,图像背景均为白色,叶片为自然色没有阴影的叶片样本。扩充的植物叶片数据,补充了中国一些常见的植物叶片图像,植物类别数量为44种,共计2 816张叶片图像。
图 1为Flavia数据集的叶片图像样本。图 1a的叶片图像样本完整地展示了叶片形状。由于数据集中图像样本大小不同,为捕捉所有图像样本中的叶片边缘形状信息,对所有图像样本进行比较分析,将数据集原始叶片图像调整为229×229像素。图 1b是对应叶片的纹理图像样本。为了突出叶片纹理特征细节,首先对图像进行两倍放大,然后对叶片图像进行锐化处理及中心区域剪裁,获得大小为229×229像素的叶片纹理图像。
图 2为扩充植物叶片图像样本及分割后的植物叶片图像样本。首先对叶片图像样本去非绿背景,然后对叶片图像进行腐蚀重建操作;利用Sobel算法计算重建图像的梯度幅值;对基于开闭的重建图像计算局部最大值,得到前景标记;应用阈值分割进行二值化处理,计算二值图像的欧式距离,并对其进行分水岭变换得到背景标记;提取变换矩阵中距离中心点附近的分割块作为目标叶片所在位置,分割出单个叶片图像。最后,对分割出的叶片图像进行大小调整与叶片纹理特征图像剪裁。
-
由图 1可以观察出,数据集中存在叶片形状相似而纹理不同,叶片纹理相似而形状不同的叶片图像样本,这导致单叶片图像或单叶片纹理图像输入模型的识别错误。而以叶片图像与相应叶片纹理图像作为输入,通过提取并融合两种叶片特征,可以改善单一图像输入模型的识别误差。
-
卷积神经网络是一种前馈式神经网络[8-9],具有局部连接、权值共享的优点,可以降低模型中参数选择的复杂度和权值数量,并且提高网络的泛化性能。利用图像直接作为输入,避免了传统图像识别算法中复杂的特征提取和数据重构过程[10]。
每层神经网络由多个二维平面组成,每个二维平面由多个独立神经元组成。二维平面中包括数据输入层、对位移鲁棒的卷积层、提取特征的池化层、用作分类的全连接层等模块组成,模型一般采用卷积层和池化层交替构成深度学习结构。卷积层和池化层相当于一个特征提取操作,针对叶片图像识别分类任务,得到各层对于叶片图像不同的表达形式,利用大量的参数学习得到对图像的深层次的理解和特征表示。
卷积神经网络的训练过程分为前向传播阶段和反向传播阶段[11]。在前向传播阶段,上一层的计算输出被作为当前层的计算输入,并通过激活函数逐层传递,从数据集中取出一个样本xi并输入网络中,逐层计算得到相应实际输出Op。整个网络的实际输出可表示为:
$$ {\mathit{\boldsymbol{O}}_p} = {f_n}\left( { \cdots \left( {{f_2}\left( {{f_1}\left( {\mathit{\boldsymbol{x}}{\mathit{\boldsymbol{w}}_1}} \right){\mathit{\boldsymbol{w}}_2}} \right) \cdots } \right){\mathit{\boldsymbol{w}}_n}} \right) $$ (1) 当前层输出可表示为:
$$ {\mathit{\boldsymbol{x}}^m} = f\left( {{\mathit{\boldsymbol{w}}^m}{\mathit{\boldsymbol{x}}^{m - 1}} + {\mathit{\boldsymbol{b}}^m}} \right) $$ (2) 式中:n为网络的层数;w1, w2, …, wn表示训练完成的权值矩阵;wm为训练完成的、当前网络层的权值矩阵;bm为当前网络的偏置;f()是网络激活函数,其作用是在卷积操作完成之后对计算输出进行调整压缩。
在反向传播阶段,卷积神经网络与传统的BP神经网络算法类似,利用误差函数进行反向传播,计算网络实际输出Op与理想输出Y的差(误差E),作为每个神经元灵敏度,利用随机梯度下降法对卷积参数和偏置进行优化调整。灵敏度δ定义如下:
$$ \frac{{\partial \mathit{\boldsymbol{E}}}}{{\partial \mathit{\boldsymbol{b}}}} = \frac{{\partial \mathit{\boldsymbol{E}}}}{{\partial \mathit{\boldsymbol{u}}}}\frac{{\partial \mathit{\boldsymbol{u}}}}{{\partial \mathit{\boldsymbol{b}}}} = \delta $$ (3) 式中:b为神经元的基,E为误差,u为一个节点的全部输入。
由于神经元灵敏度和误差E对一个节点全部输入u的导数是相等的,因此可以推出第m层的灵敏度δm公式:
$$ {\mathit{\boldsymbol{\delta }}^m} = {\left( {{\mathit{\boldsymbol{w}}^{m + 1}}} \right)^{\rm{T}}}{\mathit{\boldsymbol{\delta }}^{m + 1}}\circ {f^\prime }\left( {{\mathit{\boldsymbol{u}}^m}} \right) $$ (4) 式中:$\circ $示每个元素相乘。
输出层的神经元灵敏度δM公式为:
$$ {\mathit{\boldsymbol{\delta }}^M} = {f^\prime }\left( {{\mathit{\boldsymbol{u}}^M}} \right)\circ \left( {{\mathit{\boldsymbol{y}}^i} - {\mathit{\boldsymbol{t}}^i}} \right) $$ (5) 式中:ti为第i个样本的期望输出,yi为第i个样本的实际输出。
最后,运用函数对每个神经元进行权值更新,对于第m层,通过该层的输入与该层的灵敏度的叉乘得到误差对于该层每一个权值的导数。之后,乘以一个负学习率就得到了该层神经元的权值更新,公式为:
$$ \frac{{\partial \mathit{\boldsymbol{E}}}}{{\partial {\mathit{\boldsymbol{w}}^m}}} = {\mathit{\boldsymbol{x}}^{m - 1}}{\left( {{\mathit{\boldsymbol{\delta }}^m}} \right)^{\rm{T}}} $$ (6) $$ \Delta {\mathit{\boldsymbol{w}}^m} = - \eta \frac{{\partial \mathit{\boldsymbol{E}}}}{{\partial {\mathit{\boldsymbol{w}}^m}}} $$ (7) 式中:η为每一个权值对应的一个特定的学习率。
采用局部连接与权值共享进一步减少了训练参数和计算的复杂度。局部连接是指每种卷积核只与图像中某一特定部分进行卷积操作,并且在其他层中将这些局部的卷积特征关联在了一起,这样即保证了图像像素在空间上的关联性,又降低了训练参数的数量。权值共享则是每种卷积核共享相同的权值,通过增加卷积核的种类来提取图像多方面的特征。
-
目前流行的深度学习框架有TensorFlow、Caffe、Theano、Torch和PyTorch等,这些主流框架各有所长。TensorFlow支持C、C++以及Python等编程语言,其Python库中提供了大量辅助函数来简化构建图的工作。TensorFlow是一个使用图来表示计算任务的深度学习框架,图中的节点被称之为op。一个op获得零个或多个张量,每个张量是一个类型化的多维数组。这种形式可以高效地构建深层神经网络,并且可以方便地修改网络结构。本文依据卷积神经网络原理以及TensorFlow框架构建了双路卷积神经网络叶片识别模型。
-
图 3是模型结构流程图。叶片图像和叶片纹理图像分别输入两条特征提取路径,对两条路径提取的形状特征向量X(x1×1×1, x1×1×2, …, x1×1×n)和纹理特征向量Y(y1×1×1, y1×1×2, …, y1×1×n)进行相加,得到融合特征向量$\mathit{\boldsymbol{Z}}\left( {\mathit{\boldsymbol{Z}} = \sum\limits_1^n {{x_{1 \times 1 \times n}}} + {y_{1 \times 1 \times n}}} \right)$。将Z输入到全连接层,通过全连接层把表示图像局部的特征描述符通过线性变换影射为表示图像整体的特征描述符。最后,分类层对得到的特征描述符进行分类,分类层的神经元数量设置为叶片植物种类数量。
图 4为双路卷积神经网络模型结构细节。模型包含两条卷积神经网络路径,其中一条网络以叶片图像输入,作为学习叶片边缘形状相关特征的路径,另一条网络以相应叶片纹理图像输入,作为学习其纹理特征的路径。形状特征路径参考AlexNet的网络结构,运用7层卷积层、4层池化层的卷积神经网络结构,采用11×11、5×5以及3×3的卷积核,其中,大尺寸卷积核可以带来更大的视觉感受,可以学习植物叶片图像边缘形状特征;通过逐步减小卷积核尺寸,可以减少模型训练过程中的参数量与训练时间。纹理特征路径包含6层卷积层、4层最大池化层,此路径通过6个3×3卷积核提取叶片纹理图像的纹理细节特征。由于特征过多容易引起过拟合,所以图 4中MaxPooling层为最大值池化层。采用最大值池化算法将特征图上的特征进行精简。对于形状特征路径MaxPooling 1层,采用3×3的池化因子,得到96个精简特征描述符,减少了训练过程中产生的特征参数量。
-
实验软件环境为Ubuntu 16.04 LTS 64位系统。采用TensorFlow深度学习框架,选用Python作为编程语言。计算机内存为16GB,搭载Intel ®CoreTM i7-7700K CPU @ 4.20 GHz x8处理器,并采用Nvidia GTX1080Ti显卡加速图像处理。
如图 5所示,属于这5种相似形状的植物叶片图像为容易误分类样本,植物叶片形状分为矛尖形、线形、心形、掌形、长椭圆形。每种植物叶片形状所包含的植物种类数目见表 1。
表 1 相似叶片形状植物种类数目
Table 1. Similar leaf shape plant species number
相似叶片形状Similar blade shape 植物种类数Plant species Flavia数据集Flavia dataset 扩充数据集Augmented dataset 矛尖形Spear-shape 5 7 线形Linear shape 4 9 心形Heart-shape 2 3 掌形Hand-shape 6 8 长椭圆形Oblong shape 11 17 实验数据样本采用Flavia叶片数据集与扩充植物叶片数据集,得到单一背景叶片图像1 907张与复杂背景叶片图像2 816张。通过对数据集原始叶片图像预处理,生成训练样本与测试样本为分辨率229×229的带标签叶片图像。为避免某种形状叶片样本在测试集与训练集中的不均匀分布,对每种形状植物叶片随机选取70%为训练样本,30%为测试样本。针对两个样本集分别得到1 335张、1 910张作为训练集,572张、846张作为测试集。
为了优化样本集,提高样本训练质量,叶片图像在训练之前先进行数据增强。通过对叶片图像与相应叶片纹理图像进行平移、旋转和缩放等操作生成更多图像以扩充训练数据集。采用批量训练的方法将训练集与测试集分为多个批次,每个批次训练32张图片。当训练完所有训练集图片后对测试集进行测试,每次测试图片为26张。遍历一次训练集中的所有图片作为一次迭代,共迭代100次。采用随机梯度下降优化算法优化模型,设置初始学习率为0.01,为防止过拟合,将正则化系数设为0.005,学习率分阶段逐步减小为原来的0.1倍。
为了验证模型的有效性,分别选取Top-1、Top-3参数进行分析,其中Top-1为识别结果中最高植物叶片种类为正确植物叶片的概率,Top-3为前3种植物叶片种类中包含正确植物叶片的概率。双路卷积神经网络在单一背景叶片和复杂背景信息叶片图像下,Top-1识别率分别提升到99.28%和97.31%,Top-3识别率达到99.97%和99.74%。为了验证双路网络模型的优越性,用基于单路卷积神经网络的识别模型、基于多尺度距离矩阵加SVM的识别模型、基于曲率直方图加SVM的识别模型对植物叶片的识别结果进行了对比分析(表 2)。
表 2 不同叶片识别模型识别率与标准差
Table 2. Recognition rate of different identification model
% 识别方法Rcognition method 识别率Recognition rate 标准差Standard deviation Top-1 Top-3 Top-1 Top-3 双路卷积神经网络模型(单一背景叶片图像) Two-way CNN model (single background leaf image) 99.28 99.97 0.18 0.10 双路卷积神经网络模型(复杂背景叶片图像) Two-way CNN model (complex background leaf image) 97.31 99.74 0.20 0.14 单路卷积神经网络模型(单一背景叶片图像) One-way CNN model (single background leaf image) 96.22 99.46 0.26 0.21 单路卷积神经网络识别(叶片纹理图像)One-way CNN model (leaf texture image) 88.19 97.80 1.68 0.37 多尺度距离矩阵+SVM Multi-scale distance matrix+SVM 82.55 95.12 1.61 1.10 曲率直方图+SVM Curvature histogram + SVM 82.84 94.62 1.63 0.21 从表 2可以看出:利用单叶片图像输入的卷积神经网络模型,在识别率与标准差上明显优于基于叶片图像特征的SVM多分类识别模型;但对于相似形状植物叶片的识别性能不强,错误样本基本为相似形状的植物叶片。利用叶片图像与叶片纹理图像输入的双路卷积神经网络识别模型,在两个数据集上得到的识别率与标准差相较单路卷积网络识别模型有着明显的提高,分类结果证明了叶片边缘形状特征与叶片纹理特征可以相互融合补充,提高识别率。而在Flavia数据集上双路卷积神经网络的识别效果要优于扩充植物叶片数据集,其原因是复杂背景植物叶片样本在单叶片分割的过程中会损失部分叶片特征,影响了识别的准确率。
-
在对植物叶片识别的研究中得知,单一背景叶片图像在卷积层中的特征响应区域为叶片边缘形状部分,致使相似边缘形状叶片样本的错误识别。双路卷积神经网络可以直接从叶片图像与叶片纹理图像中学习复杂的图像特征,具有很好的健壮性,对图像平移、缩放、倾斜或其他形式的变形具有高度不变性。
实验结果表明,基于双路卷积神经网络的植物叶片识别模型学习了叶片边缘形状特征与纹理特征,利用融合特征对植物叶片种类进行识别,有效避免了相似叶片边缘形状干扰,提高了识别准确率。下一步工作将集中在叶片纹理图像的提取方法上。改进植物叶片在复杂背景中的分割方法,减少植物叶片特征损失,提升模型对复杂背景叶片图像的识别率。
Plant leaf recognition model based on two-way convolutional neural network
-
摘要:
目的针对卷积神经网络识别植物叶片过程中,叶片边缘形状对卷积层的过度作用而导致相似边缘形状叶片识别错误的问题,提出了一种双路卷积神经网络的植物叶片识别模型。 方法模型考虑了叶片信息的边缘形状与内部纹理特征,构建了双路卷积神经网路结构,其中形状特征路径运用7层卷积层的网络结构,前3层采用大尺寸11×11及5×5的卷积核提取大视野特征,完成叶片形状特征提取,另外4层卷积层采用3×3小尺寸卷积核提取叶片细节特征;纹理特征路径采用6个3×3卷积核的卷积层,提取叶片纹理图像细节特征;然后通过特征融合层将两类特征相加为融合特征,并利用全连接层对植物叶片种类进行识别。 结果实验结果表明,双路卷积神经网络模型与单路卷积神经网络和图像处理分类识别模型相比,在Flavia叶片数据集与扩充植物叶片数据集上,Top-1识别准确率分别提高到了99.28%、97.31%,Top-3识别准确率分别提高到了99.97%、99.74%,标准差较其他识别与分类模型下降到0.18、0.20。 结论本文提出的叶片识别模型能有效避免相似叶片边缘形状干扰而导致识别错误的问题,可以提高植物叶片的识别准确率。 Abstract:ObjectiveAiming at the problem that the leaf edge shape has an excessive effect on the convolution layer during the process of identifying the leaf of convolutional neural network, which leads to the error recognition of similar edge shape leaves, a plant leaf recognition model of two-way convolutional neural network was proposed. MethodThe model considers the edge shape and internal texture features of the blade information to construct a two-way convolutional neural network structure. Wherein, the shape feature path used a network structure of 7 layers of convolution layers, the first three layers used large-size 11×11 and 5×5 convolution kernels, extracting large field of view features to complete blade shape feature extraction, the other 4 layers of convolution layer used a 3×3 small size convolution core, extracting blade detail features. The two types of feature linear transformations were merged into one-dimensional feature vectors through a fully connected layer. Finally, the fully connected layer identified the plant leaf species. ResultThe experimental results showed that the two-way convolutional network model was compared with the single-channel convolutional network and the image recognition classification recognition model. On the Flavia leaf dataset and the expanded complex background leaf dataset, the accuracy of Top-1 recognition increased to 99.28% and 97.31%, respectively. The accuracy of Top-3 recognition increased to 99.97% and 99.74%, respectively. The standard deviation decreased to 0.18 and 0.20 compared with other identification and classification models. ConclusionThe blade recognition and classification model proposed in this paper can effectively avoid the problems caused by the similar blade edge shape interference and improve the recognition accuracy of leaf plant species. -
Key words:
- plant identification /
- blade image /
- feature fusion /
- convolutional neural network
-
表 1 相似叶片形状植物种类数目
Table 1. Similar leaf shape plant species number
相似叶片形状Similar blade shape 植物种类数Plant species Flavia数据集Flavia dataset 扩充数据集Augmented dataset 矛尖形Spear-shape 5 7 线形Linear shape 4 9 心形Heart-shape 2 3 掌形Hand-shape 6 8 长椭圆形Oblong shape 11 17 表 2 不同叶片识别模型识别率与标准差
Table 2. Recognition rate of different identification model
% 识别方法Rcognition method 识别率Recognition rate 标准差Standard deviation Top-1 Top-3 Top-1 Top-3 双路卷积神经网络模型(单一背景叶片图像) Two-way CNN model (single background leaf image) 99.28 99.97 0.18 0.10 双路卷积神经网络模型(复杂背景叶片图像) Two-way CNN model (complex background leaf image) 97.31 99.74 0.20 0.14 单路卷积神经网络模型(单一背景叶片图像) One-way CNN model (single background leaf image) 96.22 99.46 0.26 0.21 单路卷积神经网络识别(叶片纹理图像)One-way CNN model (leaf texture image) 88.19 97.80 1.68 0.37 多尺度距离矩阵+SVM Multi-scale distance matrix+SVM 82.55 95.12 1.61 1.10 曲率直方图+SVM Curvature histogram + SVM 82.84 94.62 1.63 0.21 -
[1] 魏蕾, 何东健, 乔永亮.基于图像处理和SVM的植物叶片分类研究[J].农机化研究, 2013, 35(5): 12-15. doi: 10.3969/j.issn.1003-188X.2013.05.003 Wei L, He D J, Qiao Y L. Plant leaves classification based on image processing and SVM[J]. Journal of Agricultural Mechanization Research, 2013, 35(5):12-15. doi: 10.3969/j.issn.1003-188X.2013.05.003 [2] 张宁, 刘文萍.基于克隆选择算法和K近邻的植物叶片识别方法[J].计算机应用, 2013, 33(7): 2009-2013. doi: 10.11772/j.issn.1001-9081.2013.07.2009 Zhang N, Liu W P. Plant leaf recognition method based on clonal selection algorithm and K nearest neighbor[J]. Journal of Computer Applications, 2013, 33(7): 2009-2013. doi: 10.11772/j.issn.1001-9081.2013.07.2009 [3] 王丽君, 淮永建, 彭月橙.基于叶片图像多特征融合的观叶植物种类识别[J].北京林业大学学报, 2015, 37(1):55-61. doi: 10.13332/j.cnki.jbfu.2015.01.006 Wang L J, Huai Y J, Peng Y C. Method of identification of foliage from plants based on extraction of multiple features of leaf images[J]. Journal of Beijing Forestry University, 2015, 37(1): 55-61. doi: 10.13332/j.cnki.jbfu.2015.01.006 [4] 杨天天, 潘晓星, 穆立蔷.基于叶片图像特征数字化信息识别7种柳属植物[J].东北林业大学学报, 2014, 42(12):75-79. doi: 10.3969/j.issn.1000-5382.2014.12.016 Yang T T, Pan X X, Mu L Q. Identification of seven Salix species using digital information analysis of leaf image characteristics[J]. Journal of Northeast Forestry University, 2014, 42(12):75-79. doi: 10.3969/j.issn.1000-5382.2014.12.016 [5] 张帅, 淮永建.基于分层卷积深度学习系统的植物叶片识别研究[J].北京林业大学学报, 2016, 38(9):108-115. doi: 10.13332/j.1000-1522.20160035 Zhang S, Huai Y J. Leaf image recognition based on layered convolutions neural network deep learning[J]. Journal of Beijing Forestry University, 2016, 38(9):108-115. doi: 10.13332/j.1000-1522.20160035 [6] Lee S H, Chan C S, Wilkin P, et al. Deep-plant: plant identification with convolutional neural networks[C]//Proceedings of 2015 IEEE International Conference on Image Processing (ICIP). Quebec: IEEE, 2015: 452-456. [7] Wu S G, Bao F S, Xu E Y, et al. A leaf recognition algorithm for plant classification using PNN (probabilistic neural network)[C/OL]//Proceedings of 2007 IEEE International Symposium on Signal Processing and Information Technology. New York: IEEE, 2007[2018-02-27]. https://ieeexplore.ieee.org/document/4458016. [8] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe: ACM, 2012: 1097-1105. [9] 卢宏涛, 张秦川.深度卷积神经网络在计算机视觉中的应用研究综述[J].数据采集与处理, 2016, 31(1):1-17. http://d.old.wanfangdata.com.cn/Periodical/sjcjycl201601001 Lu H T, Zhang Q C. Applications of deep convolutional neural network in computer vision[J]. Journal of Data Acquisition and Processing, 2016, 31(1):1-17. http://d.old.wanfangdata.com.cn/Periodical/sjcjycl201601001 [10] Lecun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. doi: 10.1109/5.726791 [11] Bouvrie J. Notes on convolutional neural networks[EB/OL]. (2006-11-22)[2015-10-11]. http://cogprints.org/5869/1/cnn_tutorial.pdf. -