基于深度学习的棉花品种识别
2022-08-18李海涛罗维平
李海涛,罗维平
基于深度学习的棉花品种识别
李海涛,罗维平*
(武汉纺织大学 机械工程与自动化学院,湖北 武汉 430200)
棉花作为我国最主要的农产品之一,不仅具有不错的观赏价值,更重要的还是工业原料。棉花的花型不同于其他花卉种类,且不同种类其纤维长度还有所差异。为了解决棉花人工区分效率低的问题,本文基于深度学习方法,以棉花原始的图像数据作为研究对象,通过多层网络学习棉花的特征信息,更加精确区分不同类型的棉花种类。试验结果表明:本文所提出的卷积神经网络CNN-CSC模型相较于传统机器学习方法识别精度提升大约15%,平均精度达到89.17%,为棉花的自动化管理提供了一种有效的手段。
深度学习;卷积神经网络;图像识别;棉花识别
0 引言
棉花作为我国最主要的农产品之一,其花型美观,结实结絮,具有不错的观赏价值。对棉花种类通过人工进行区分,不仅效率低且识别困难。因此通过计算机技术辅助识别,成为一种有效的处理方法。目前图像识别技术及其相关理论发展迅速,图像识别技术已成为国际人工智能领域研究最热点的方向之一[1]。在国内外植物信息学领域中,基于图像识别技术对植物进行识别与分类成为研究的热门。
由于机器学习等关键技术的不断发展,近年来我国学者和研究机构在植物信息识别中也取得重大突破。张帅等[2]分别对单一背景和复杂背景下的植物叶片图像进行训练和识别,采用CNN+SVM和CNN+Softmax方法,得到单一背景下图像识别率为91.11%,复杂背景下图像识别率为34.38%。袁培森[3]等提出了一种基于卷积神经网络的端到端菊花花型和品种识别系统,该系统分为离线和在线两种阶段,识别率达到98%。胡锦涛等[4]提出了一种自动预测棉花发育期的深度学习模型,通过卷积神经网络结合迁移学习提高了棉花发育期识别精度。王见等[5]通过将迁移模型的特征提取与极限学习机结合的方法训练网络,进行棉花识别研究。在ResNet-50迁移模型准确率达到93.68%,但在训练过程中出现了过拟合。沈萍等[6],通过基于深度学习的方法在ImageNet数据集上完成了花卉识别试验,与传统神经网络相比评价识别准确率提升了10%左右。
当下,随着人工智能领域的兴起以及计算机计算能力的提升,深度学习 (deep learning)技术在模式识别、自然语言处理以及图像处理等方向焕发了强大的活力[7]。深度学习具有强大的特征提取能力,深度学习框架能够在有限的样本数据输入的情况下,获得更高层次的输入数据信息。目前,深度学习仍然是未来研究的热点之一,通过不断的研究该技术将得到更深层次的发展[8]。
本文以棉花的图像数据作为研究对象,对棉花的不同类型手动分类和标注,在此基础上构建棉花数据集的卷积神经网络模型,该卷积神经网络对棉花花型实现智能识别和分类。
1 系统模型与工作流程
1.1 模型建立
卷积神经网络(Convolutional Neural Network, CNN),作为第一个真正成功地采用多层次结构网络的深度学习方法,具有对平移、比例缩放、倾斜或其他形式的变形不变性等特点[9]。卷积神经网络整体架构分为4层:第1层是输入层,第2层为卷积层,第3层为池化层,第4层为全连接层。CNN通过对现有模型训练卷积网络,从而得出输入与输出之间的非线性关系。
(1)输入层:将要进行识别的样本对象作为输入数据传入卷积神经网络中,若为图像输入时采样其像素值,进而转换成向量输入。
(2)卷积层:对输入数据进行特征提取,为得到计算机更容易读懂的特征。卷积核(filter)是卷积神经网络中的重要权重参数,当卷积核采用较小的长和宽时,就能提取数量更多的特征。其具体过程如公式(1)所示:
本文模型采用ReLU函数作为激活函数其表达式为公式(2),通过激活函数使得网络具有非线性。与sigmoid等激活函数相比,ReLU函数计算量少,反向传播时梯度不易消失,且Relu函数使得一部分神经元输出为0,增加了网络的稀疏性,能有效缓解模型过拟合发生。
(3)池化层:池化层一般为下采样,对通过上一层卷积操作输入的特征图进行压缩,有效减少网络中数据的计算量,利用最有价值的特征[10]。使得整个网络有较好的鲁棒性。本文采用最经典的池化方法最大池化,其以2x2窗口,步长为2的函数表示为公式(3)。
(4)全连接层:全连接层一般堆叠在卷积层之后,通过一组权重参数将卷积层的输出与隐藏层联系到一起,全连接层本质上是一个多层感知器[11],通过级联多个变换来实现输入到输出的映射。
1.2 系统处理流程
CNN-CSC模型识别棉花种类的流程如下:第一步加载棉花图像数据,第二步对棉花图像进行预处理得到227*227像素图片,第三步将经过预处理后的图像的RGB三通道像素值转换为tensor形式,第四步将tensor数据传入CNN-CSC模型进行训练,最后根据模型的分类结果完成不同棉花种类的识别。
1.3 仿真实验平台
仿真平台为64为Window10操作系统,硬件环境为内存16G,AMD Ryzen 5 5600x 6-Core Processor,GPU NVIDIA GeForce RTX 3070。选用深度学习架构为tensorflow V2.0框架[12]。
2 CNN-CSC系统实现
2.1 图像预处理
为解决训练数据集数量不足的情况,在图像预处理阶段采用:亮度随机变换,随机翻转,对比度随机变换,随机剪裁等随机变换方法来增加训练数据集的大小。预处理后图像大小为227*227像素。
2.2 CNN-CSC系统网络框架
本文构建的棉花种类识别网络模型CNN-CSC如图1所示。该模型包含1个输入层,卷积层1后接池化层1,卷积层2后接池化层2,卷积层3、4、5后接池化层3,最后接到全连接层和Softmax分类层。每一层网络的具体参数规格如表1所示,其中输入层输入经过预处理后的棉花图像数据,像素大小为227*227*3;卷积层作用就是通过卷积操作对输入图像进行特征提取。卷积层1共有64个卷积核,卷积核的大小设定为5*5,卷积核切片步长设定为1。
经过卷积层1后,输出64维数据像素大小为223*223*64;池化层的作用就是一个降采样的过程,池化层1的卷积核的大小设定为3*3,卷积核切片步长设定为2。经过池化层1后,输出64维数据像素大小为111*111*64;将池化层1中的数据输入到卷积层2,卷积层2包含128个卷积核,核的大小设定为3*3,卷积核切片步长设定为1,使用零填充p=1。经过卷积层2后,输出128维数据像素大小为111*111*128;池化层2的卷积核的大小设定为3*3,卷积核切片步长设定为2。经过池化层2后,输出数据像素大小为55*55*128。卷积层3、4、5均采用256个3*3卷积核,卷积核切片步长设定为1,使用零填充p=1。池化层3的卷积核的大小设定为3*3,卷积核切片步长设定为2。经
图1 棉花种类识别的卷积神经网络CNN-CSC模型
过池化层3后,输出数据像素大小为27*27*256。使用以此作为全连接层1的输入;全连接层采用Re LU激活函数,其中全连接层1包括512个神经元,全连接层2包括3个神经元。
分类层的设计,根据识别任务的具体要求确定softmax分类层中神经元数量,如公式(4)所示。
本文CNN-CSC模型训练集中样本的种类为3种,所以将分类层神经元个数设定为3个。全连接层2的输出数据作为softmax分类层的输入,经过softmax分类层后输出花型种类的概率,最终完成花型种类识别。CNN-CSC模型结构参数如表1所示。
表1 CNN-CSC模型结构参数
2.3 系统的训练过程
由于深度学习需要大量的高质量标记数据,而在本研究棉花数据集图像数量不足的情况下,采用迁移学习预训练的ImageNet对模型进行初始化。ImageNet项目是目前计算机视觉系统识别中最大的数据库,其中包括大约1500万张图像被人工筛选与手动注释包含2.2万多个类别。作为一个大型公开数据集,其对于初学者深度学习提供了重要的数据支撑。首先在ImageNet数据集上预训练CNN-CSC模型,屏蔽掉模型的输出层,训练网络剩余的模型参数,最后应用到本文的棉花数据集上[13]。棉花图像数据集较小,且数据相似度不高,重新训练的过程就变得非常关键。在第一次迭代训练中,先固定1-4层的权重,重新训练第5层;在第二次迭代训练中,固定1-3层的权重,重新训练4-5层;最后一次迭代训练中,固定1-2层权重,重新训练3-5层。通过以上迭代训练,能够在小样本数据集上加速网络的收敛过程,并作用于最后棉花种类识别精度的测试。
训练过程步骤如下:
(1)首先系统采用kaiming正态分布初始化权重,前向传播的时候,每一层的卷积计算结果的方差为1。反向传播的时候,每一层的继续往前传的梯度方差为1(因为每层会有两个梯度的计算,一个用来更新当前层的权重,一个继续传播, 用于前面层的梯度的计算。)
(2)每次从训练数据采样一个batch的样本,对样本进行预处理后作为网络训练的输入。
(3)在前向传播过程中,输入的训练样本数据经过多层卷积层的卷积和池化处理,提取特征向量,将特征向量传入全连接层中,得出输出值。
(4)求出目标值与实际输出值之间的偏量e。当达到设定的迭代次数时,训练完成,否则继续进行训练。
(5)在反向传播过程中,将误差一层层返回,计算网络层中神经元的误差和误差梯度。
(6)进行权值更新,然后再进入第二步,循环训练。
图2 CNN-CSC的训练流程图
3 实验结果与分析
本文数据集共6720张棉花图像,共分为3种类型:粗绒棉、细绒棉、长绒棉。整个数据集中6000张棉花图像构建训练集,360张构建验证集,另外360张构建测试集。所有棉花图像数据都根据其不同类型进行人工标注和分类,其中三种类型的棉花的训练集、验证集和测试集的图片数量分别为2000张、120张、120张。
图3 预处理后棉花图像
图4 特征响应图
系统中dropout参数设置为0.25,卷积层初始学习率设置为0.01当系统损失在当前学习率不再下降时将学习率手动缩小10倍,迭代次数设置为30 000次,当使用验证集验证系统时每12张图片比较系统精度并保存模型中的所有参数。
为了更好地评价该系统在棉花种类识别方面的精度和性能,选择典型机器学习方法支持向量机(SVM)与本文卷积神经网络进行比较。SVM方法需要手动提取具体图片的特征,再将提取到的形状、纹理等特征构成分类器的输入,最后输入到SVM中完成棉花种类的识别。
测试集在两种模型中的识别结果如表2所示,在本系统中棉花种类识别的准确度达到88.24%,识别精度为89.47%,召回率和F1值分别87.71%和87.97%。相较于SVM方法,系统整体的性能和稳定性均明显提高,其中识别精度大约提升15%。试验结果说明本文建立的卷积神经网络模型在棉花的识别上具有更高的识别精度,能更好完成棉花种类的识别。
本文所使用的方法在识别棉花种类识别上有以下优越性:(1)相较于人工特征提取,基于深度学习的棉花种类识别方法能够自动学习特征提取的过程,能有效提高模型整体准确度;(2)基于深度学习的方法更容易观察并获取棉花图片中更加细粒度的差别,用于区分不同的花型;(3)基于深度学习的方法在模型训练好后,可以对不同场景条件下(光照、拍摄角度、遮挡等)获取的样本都能有效的进行识别。
表2 基于卷积神经网络CNN-CSC与支持向量机SVM方法识别准确度对比
4 结论
本文基于卷积神经网络构建了一个8层的深度学习棉花种类识别系统CNN-CSC,实现了三种棉花花型的识别。首先采集并标注棉花花型和类别数据集,然后探讨棉花图像预处理的思路和预处理的必要性。在ImageNet数据集上预训练卷积神经网络CNN-CSC模型,通过三次迭代训练有针对性的学习棉花图像的特点,能够在样本数据不足的情况下,提高网络的收敛速度,并作用于最后棉花种类识别精度的测试。并且通过试验与SVM方法进行对比,证明了在棉花种类的识别方面基于深度学习的方法优于传统的机器学习分类方法, 证明了深度学习方法在棉花种类识别中具有更好的分类性能。
本文所构建的8层深度学习棉花种类识别系统依然存在不足之处,在数据集收集方面本文共有三类棉花种类图片共6720张,样本数据并不充足无法满足更加深层的模型需求。后期进一步收集不同场景的棉花图像扩充数据集,能够有利于提高模型识别性能。同时,研究使用更复杂、更深层的网络模型进行图像识别会使识别精度得到进一步提高,这也是未来基于深度学习方法在植物识别领域的研究方向之一。
[1] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[A]// Proceedings of the IEEE conference on computer vision and pattern recognition[C]. 2016. 770-778.
[2] 张帅, 淮永建. 基于分层卷积深度学习系统的植物叶片识别研究[J]. 北京林业大学学报, 2016, 38(09): 108-115.
[3] 袁培森, 黎薇, 任守纲, 等. 基于卷积神经网络的菊花花型和品种识别[J]. 农业工程学报, 2018, 34(05): 152-158.
[4] 胡锦涛, 王苗苗, 李涛, 等. 基于深度学习的棉花发育期自动观测[J]. 安徽农业科学, 2019, 47(11): 237-240 +243.
[5] 王见, 田光宝, 周勤. 基于迁移学习的棉花识别[J]. 浙江农业学报, 2020, 32(08): 1457-1465.
[6] 沈萍, 赵备. 基于深度学习模型的花卉种类识别[J]. 科技通报, 2017, 33(03):115-119.
[7] 孙志远,鲁成祥,史忠植,等. 深度学习研究与进展[J]. 计算机科学,2016,43(2):1-8.
[8] KIM J, LEE J K, LEE K M. Deeply-recursive convolutional network for image super-resolution[A].Proceedings of the IEEE conference on computer vision and pattern recognition[C]. Las Vegas, NV, SUA: IEEE, 2016. 1637- 1645.
[9] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[J]. Advances in neural information processing systems, 2012, 25 (2) :1097-1105.
[10] Xie G S, Zhang X Y, Yang W. LG-CNN:From local parts to global discrimination for fine-grained recognition[J]. Pattern Recognition, 2017, 71:118-131
[11] Cheng X, Zhang Y, Chen Y. Pest identification via deep residual learning in complexbackground[J]. Computers & amp; Electronics in Agriculture, 2017, 141:351-356
[12] Abirami K Rama, ManojKumar M, Insaf Mohammed, et al. Deep learning based Food Recognition using Tensorflow[J]. Journal of Physics: Conference Series, 2021, 1916(1).
[13] 张建华, 孔繁涛, 吴建寨, 等. 基于改进VGG卷积神经网络的棉花病害识别模型[J]. 中国农业大学学报, 2018, 23(11):161-171.
Cotton Variety Identification based on Deep Learing
LI Hai-tao, LUO Wei-ping
(School of Mechanical Engineering and Automation, Wuhan Textile University, Wuhan Hubei 430200, China)
Cotton, as one of the most major agricultural products in our country, not only has a good ornamental value, but also is more important and an industrial raw material. The flower type of cotton is different from those of other floral species, and the fiber lengths of the different species also differ. To solve the problem of low efficiency of artificial discrimination of cotton, in this paper, based on deep learning method, the original image data of cotton is used as a research object to learn the characteristic information of cotton through multi-layer network and distinguish different types of cotton species more precisely. Test results: the cnn-csc model of the convolutional neural network proposed in this paper improves the identification accuracy by approximately 15% and the average accuracy reaches 89.17% compared to traditional machine learning methods, which provides an effective means for automated management of cotton.
deep learning; convolution neural network; image recognition; cotton recognition
TP391
A
2095-414X(2022)04-0022-05
通讯作者:罗维平(1967-),女,教授,研究方向:检测技术与智能控制、信号与信息处理,先进技术工业制造等.