孟 瑶,杨怀卿,杨惠斐,杨 华
(山西农业大学信息科学与工程学院,山西 晋中 030801)
国内树木资源丰富,有多种植物的叶片可供家畜食用[1]。合理利用这些叶片能扩大家畜饲料选择范围,同时节约成本。为解决人工采集可作家畜饲料的植物叶片耗时耗力的问题,通常利用采摘机器人进行自动化采摘。植物叶片识别是自动化采摘的关键步骤,多数学者采用机器学习的方法对叶片进行识别,其中,卷积神经网络以其独特的读取方式而被广泛运用于植物叶片识别研究中。
国内外学者针对植物叶片识别进行了大量研究。Jeon等[2]使用Googlenet模型自动提取Flavia数据库的植物叶片特征并进行分类识别。Krizhevsky等[3]提出了包含7层隐藏层的AlexNet网络模型,在ImageNet数据集中失误率为15.4%。Rashad等[4]以10种不同的植物图像集作为实验对象,在对植物图像的识别过程中,提取到了部分植物叶片纹理特征,取得了较好的识别效果。于慧伶等[5]选取Flavia公共叶片数据集,考虑了叶片信息的边缘形状与内部纹理特征,构建了双路卷积神经网路结构,提高了植物叶片的识别准确率。孙颖异等[6]构建了一种基于残差连接的Alexnet卷积神经网络模型,对PlantVillage工程提供的12种植物叶片数据集进行分类和识别。张帅[7]通过8层卷积神经网络模型分别对PlantNet叶片库和自扩展的叶片图库中的图像进行训练和识别,取得较好的识别效果。杨天天等[8]对7种柳属植物叶片进行图像分析,通过对单一叶片相关特征融合比较进行识别。龚丁禧等[9]针对传统图像识别技术的不足,结合卷积神经网络技术,在Swedish叶片集上优化算法,该算法优于传统叶片识别算法。陶震宇[10]通过改进ResNet-50网络模型,根据农业害虫数据库提供的花生病害图像进行训练和识别,实现了对花生虫害的有效识别。边缘等[11]构建卷积神经网络模型对Flavia数据集中的植物叶片进行识别,准确率可达90%以上。李龙龙等[12]利用LBP算法通过度量和提取图像局部的纹理信息,不经过预处理操作进行识别。朱良宽等[13]利用CVL研究领域中的瑞典植物叶片集,提出一种融合DCGAN与迁移学习[14]的植物叶片识别方法。毕立恒等[15]为提高叶片图像识别率,采用改进神经网络算法[16-17]提高识别准确率。王艳等[18]及丁常宏等[19]利用深度学习相关算法[20-21]对中草药图像进行分类识别,取得不错的效果。尚建伟等[22]利用Res-Unet模型对德国波恩大学图像库提供的杂草数据进行识别,准确率可达98.67%。朱静等[23]通过叶片图像的形状和叶缘特征,对14种植物337份叶片样本的叶形测试准确率达92%。阚江明[24]提出一种基于植物叶片图像的自动识别方法,该方法对叶片图像进行预处理后进行识别,平均正确率为70.83%。
现有对植物叶片的识别方法,大多选取开源图像进行建模,并且部分学者在构建神经网络模型时,并未对图像进行预处理,使得模型训练时间过长,扩展性不强。笔者采用Alexnet模型构建可作家畜饲料的植物叶片识别模型,以人工采集植物叶片作为研究对象,采用灰度化处理和图像增强相关方法对叶片图像进行预处理,从而提高模型识别准确率,旨在实现对可作家畜饲料植物叶片的自动识别。
(1)使用智能手机,对单一背景下可作家畜饲料的植物叶片进行拍摄,构建图像数据库。拍摄时间集中为2020年7—8月,地点为山西农业大学植物园内。叶片图像主要有刺槐、金叶榆、山楂、泡桐、菊芋、毛梾、构树、桑树8个种类。图像数据库共计5136张植物叶片,分辨率为4032像素×3024像素,随机选取4104张图像样本作为训练集、1026张为测试集。
(2)考虑到自然环境对植物拍摄的影响,将室外采摘的植物叶片带回室内进行归类拍摄,光照为自然光+日光灯。将叶片平铺于A4纸上,在距离叶片正上方20~35 cm处进行拍摄,角度为80°—90°。可作家畜饲料的植物叶片图像集如图1所示。
图1 可作家畜饲料的植物叶片图像集合
1.2.1 图像灰度化 为更好抑制光照等因素对模型识别的干扰,需要将RGB彩色图像转换为灰度化图像。本研究中采用加权平均法进行灰度化处理。具体如式(1)。
其中,Y(x,y)是坐标为(x,y)的像素点的灰度值,红(R)、绿(G)、蓝(B)为3个颜色分量。叶片原始图像转灰度化效果图,如图2所示。
图2 叶片原始图像转灰度化图像效果图
1.2.2 数据增强 为了增加训练数据量,提高模型泛化能力,引入了OpenCV计算机视觉的数据增强方法。主要方法有2种。
(1)旋转(rotation)。通过旋转、镜像翻转扩充数据集,将原始数据集扩充到9600张。并按顺时针方向旋转90°—180°,所得到的叶片图像旋转效果图如图3所示。
图3 叶片图像旋转效果图
(2)对比度增强(contrast adjustment)。为了避免叶片受光不均匀而造成失真,对图像的亮度以及颜色进行调节,以此突出图像纹理特征。叶片对比度增强效果图如图4所示。
图4 叶片对比度增强效果图
1.2.3 卷积神经网络 CNN由输入层、多个卷积层、池化层、全连接层、输出层组成。由输入层读取预处理后的植物叶片图像,经过C1层提取出图像特征,然后由S1层对卷积操作过后的图像进行降维处理,减少原始图像带来的参数,进而通过全连接层将图像特征进行整合,再通过Softmax分类器对图片进行分类和识别,最后由输出层将最终结果展示。CNN工作基础结构如图5所示。
图5 卷积神经网络的工作基础结构图
1.2.4 Alexnet卷积神经网络模型 Alexnet是CNN中较为经典的网络模型,包含8层(5个卷积层和3个全连接层)。每一个卷积层中包含了激励函数ReLU(Rectified Linear Unit)以及局部响应归一化LRN(Local Responce Normalization)处理。使用ReLU激活函数降低训练时间,解决了梯度弥散问题,LRN局部响应归一化层抑制模型中反馈较小的神经元,增强模型泛化能力,并在全连接层后引入Dropout避免网络过拟合。该模型在图像分类和识别领域独具特色。Alexnet模型网络示意图如图6所示。
图6 Alexnet卷积神经网络示意图
在第1个卷积层中输入大小尺寸为224×224×3的图片,224个像素代表图片的长宽,RGB彩色图通道为3通道,采用了96个11×11×3尺寸大小的卷积核,在步数为4的像素设置下,对所输入的图像进行卷积操作。将输出作为第2个卷积层的输入,利用256个5×5×48尺寸大小的卷积核,在步数为1的像素设置下通过池化操作来降低参数量。紧接着第3个卷积层采用了384个3×3×256尺寸大小的卷积核,第4个采用了384个3×3×192尺寸大小的核,第5层采用256个3×3×192尺寸大小的卷积核,继而进行池化降维操作。第6、7、8层为模型的3个全连接层,第6、7层包含4096个通道,将之前学习到的图像特征相融合,在第8层设置为1000输出,通过Softmax进行分类识别。
1.2.5 基于Alexnet网络可作家畜饲料的植物叶片识别模型 为了对可作家畜饲料的植物叶片进行识别,将预处理后的数据图像输入到Alexnet模型中进行训练。经过模型中的卷积池化等操作,提取出待检测图像的特征,配合Softmax分类器对图像进行分类识别。利用梯度下降等算法对神经网络进行有监督学习训练,从而求得损失函数作为代价函数最小时所对应网络的参数,最后由输出层将结果展示。基于Alexnet网络可作家畜饲料的植物叶片的识别流程如图7所示。
图7 基于Alexnet网络可作家畜饲料的植物叶片识别流程
在Alexnet模型中,卷积层和池化层是重要组成部分,卷积运算[25]用式(2)表达。
采用卷积神经网络模型中的池化操作对卷积后的特征采样,因此,池化运算[25]如式(3)。
1.3.1 实验平台 实验在戴尔Inspiron5488版本电脑上运行,CPU为Intel Core i5-8265U,8 G内存;Win10 64位操作系统,开发工具为Pycharm 2019。
1.3.2 Alexnet模型训练 本次实验采用批量训练的方式,将数据集分为训练集、测试集。训练集分为4104张,测试集为1026张。模型学习率初始设置为0.0004,train batch及 test batch设置为 32。选用tensorflow作为主要的深度学习框架,通过tf.data模块将图像数据转化成tensorflow可读的数据结构,封装多线程使得训练加速。本研究将迭代轮数(epoch)设置为50轮次,每轮迭代完成之后,观察训练精度值是否提升从而保存当前模型。
为观察Alexnet模型在训练过程中损失函数和准确率的变化情况。模型会在训练完成后自动保存日志,并引入matplotlib库绘制损失函数及准确率变化曲线图。Alexnet模型对预处理前和预处理后的图像进行训练,所得的准确率和损失函数的指标值如图8所示。从图中可以看出,将预处理前的图像输入到模型中训练,随着输入图像个数的递减,损失函数呈缓慢下降趋势,准确率缓慢上升,模型训练时间相对较长;而将经过预处理后的图像输入到模型中训练,损失函数在第10轮迭代后有明显下降趋势,准确率在第10轮迭代后有明显提升,训练时间缩短,整体变化趋势上模型趋于稳定。
图8 图像预处理前后模型训练结果对比图
表1给出了8种可作家畜饲料的植物叶片在Alexnet模型中的识别准确率。将图像预处理前和预处理后的叶片识别率进行对比,Alexnet卷积神经网络模型对预处理后的可作家畜饲料的植物叶片识别准确率达到98.38%。
表1 植物叶片识别准确率
本研究构建了Alexnet可作家畜饲料的植物叶片识别模型。在实验室对采集的8种可作家畜饲料的植物叶片进行归类拍摄,共计5130张。然后采用图像预处理相关方法优化叶片数据集,进而构建Alexnet卷积神经网络模型,分别对预处理前和预处理后的植物叶片进行训练,识别率为78.52%和98.38%,表明该模型对图像预处理后的植物叶片识别率较好。后续还需开展以下研究:(1)文章只对单一背景下可作家畜饲料的植物叶片进行识别且种类较少,当背景复杂且种类较多时,该如何构建模型进行识别。(2)本研究在采集植物叶片图像时,拍摄背景单一且角度固定。当背景复杂且拍摄角度多变时,叶片会出现重叠,并且会有光照影响。在这种状态下,该如何对植物叶片图像进行处理以及构建模型。