基于改进ResNet玉米种子分类方法研究*

2021-05-11 13:38吕梦棋张芮祥贾浩马丽
中国农机化学报 2021年4期
关键词:玉米种子权值灰度

吕梦棋,张芮祥,贾浩,马丽

(吉林农业大学信息技术学院,长春市,130118)

通讯作者:马丽,女,1980年生,吉林长春人,硕士,副教授;研究方向为深度学习,图像处理。E-mail: mali@jlau.edu.cn

0 引言

种子的质量是影响农作物正常生长以及决定农作物收成的重要因素之一。作为以玉米为主要农作物的农业大国,玉米种子的质量问题一直是我们国家关注的焦点,与广大农民的幸福生活息息相关。近年来,国家推广了单粒播种以及精密播种技术,致使对种子的质量需求越来越高。种子质量的提高,避免了浪费农民的成本以及提高务农效率等有着明显的作用。据研究发现,玉米的发苗速率以及玉米种子活力深受玉米种子大小影响,因此玉米种子分类准确率的提高不仅能推动我国农业的发展,也可以为广大农民谋幸福、谋利益,对提高农作物产量有着重大意义。

传统人工的挑选易受到主观因素影响,存在着效率低、误差、大的缺点。机器视觉在种子的质量分级中属于研究热点。国外一些学者已经利用机器视觉对玉米、马铃薯等农作物的质量进行分类和识别,提高了农业智能化的水平。Jayas等[1]通过反复试验,使含有杂质的谷物识别率达到了90%。Elmasry等[2]对于不规则的马铃薯,在机器视觉的基础上实现实时检测。国内学者对于农作物特征提取分类、品种识别做了大量的研究,如王应彪等[3]基于OpenCV对玉米种子进行形状与特征的分级,提出了一种可以获取玉米种子外形等特征的算法,分类的结果优质种子、一般种子、和劣质种子正确率为90.5%、82.3%和92.3%。成芳等[4]在水稻品种识别的研究中使用了计算机视觉技术。闸建文等[5]建立了玉米品种的识别系统,利用机器视觉技术,经过研究,识别率达到了88%。近年来,深度学习作为机器视觉的一个分支学科取得了重大发展。2006年,Hinton等[6]首次提出深度学习的概念。2012年,Krizhevsky等[7]在ImageNet竞赛上取得冠军,把1 000类图像的Top-5分类错误率降低了10%。

深度学习在目前应用到的领域较多,例如在提取数据集的特征的时候,并且利用深度学习提取到的特征比利用人工算法提取到的特征具有更强的泛化性能。在研究的过程中,通过改变神经网络的结构,就改变了特征提取的方法,就可以达到不同的效果。利用这一特性,深度学习在农业领域应用广泛[8]。Karstoft等[9]利用卷积神经网络识别彩色图像中的植物种类,可以识别22种早期生长过程中的杂草和作物,准确率达到86.2%。Söderkvist[10]通过计算机视觉技术将不同叶片特征进行分类研究。Inkyu等[11]为了提高甜椒检测的准确率,提出了基于深度卷积神经网络Faster.R-CNN的模型,并在其他七类果品的检测中得到应用。Baigoti等阐述了CNN在果园水果检测当中的应用,提高了芒果、杏、苹果等水果的检测性能。龚丁禧等[12]提出了一种基于CNN的植物叶片识别方法。程曦等[13]基于深度卷积神经网络对粮害虫种类进行分类识别,准确率达到了97.61%。

在研究过程中发现,玉米品质检测的准确性和可行性与特征参数的有效性和精度有关。为了实现对玉米种子特征的精准分类,提出一种基于ResNet网络的细粒度图像分类方法对玉米种子进行精确分类。首先,针对玉米种子特征建立图像采集平台并对采集到的图片进行图像预处理,然后,构建基于ResNet的玉米种子的分类模型并优化整个网络,输入玉米种子图像输入到模型中进行训练,直到得到权值最好的分类模型,相同条件下还比较了VGG-13、AlexNet以及ResNet-50的结果,提出的方法不仅避免复杂的特征提取步骤,而且有效地提升玉米种子分类正确率,对玉米种子的智能分类具有重要意义。

1 数据采集与图像处理

1.1 数据来源及获取

本试验研究采用的玉米种子的样本均为农大108,玉米种子的样本集包括三种类型:大粒、中粒、小粒。由于后续研究需对采集的玉米种子图像进行特征提取,所以对于采集的图像质量要求较高。图像背景的选取会严重影响图像特征选取以及对比,本试验中所用到的玉米种子颜色为黄白色,所以选择黑色这一对比度大的颜色为背景。设备光源照在样品上可能会造成阴影,影响特征提取的精准度。所以选取环形光源和遮光罩减少外界影响。获取玉米种子的图像设备主要由CCD摄像机和遮光罩组成,如图1所示。该设备分辨率高、光照均匀、采集速度快,能够很好地满足玉米籽粒图像获取的要求。

图1 玉米种子图像获取组成示意图Fig. 1 Schematic diagram of corn seed image acquisition1.载物台 2.样品 3.暗箱 4.圆形光源 5.CCD摄像

先将玉米种子样品垂直于CCD摄像头放在黑色底板上,获取玉米籽粒图片。采集到的图像如图2所示。

图2 原始捕获图片Fig. 2 Original captured image

1.2 图像预处理

玉米种子图像采集的过程中受到环境影响使得采集到的图像存在清晰度不够、有噪声等问题,需要进行图像预处理消除无关信息[14]。样本集需要单个玉米种子图像,因此需要进行图像分割。

1.2.1 玉米种子图像灰度处理

在试验过程中CCD采集的图像是每个像素包含了红(R)、绿(G)、蓝(B)3个色值的24位真彩图像。为了提高数据提取效率,将采集到的玉米种子图像转化成灰度图像,同时采用了PAL公式,见转化方程(1)。

Grey=0.222R+0.707G+0.071B

(1)

经过灰度处理的玉米种子图片如图5所示,用此公式处理的图片可以清晰的看到种子边界及轮廓的细节增加了可见度方便对比试验。

图3 玉米种子灰度图Fig. 3 Gray scale of corn seed

1.2.2 图像增强

图像增强可以改善视觉效果,使得方便计算机的分析与控制。平时我们获取到的数据并不是都很清晰,因此需要利用灰度图像增强来突出一些重要的信息,减弱一些对试验来说不重要的信息,提高了图像的使用价值。灰度变换增强就是将图像的灰度范围扩展。用f(x,y)来表示图像上(x,y)处的像素变换前的灰度值,用g(x,y)来表示图像上(x,y)处的像素变换后的灰度值。图像上的像素的灰度值都扩大原来的n倍也就是n值化的方法。表达式如式(2)所示。

g(x,y)=n×f(x,y)

(2)

图像增强的结果示例如图4所示。

图4 玉米种子图像增强结果Fig. 4 Image enhancement results of maize seed

1.2.3 图像分割

本试验用到的玉米种子图像包含很多种子,因此首先需要进行图像分割将聚集的种子切割成方便观察的图片,然后再进行下一步的特征提取。由于本文中仅需要把玉米种子与黑色背景分开,所以简单的图像分割方法就可以满足需求。本试验采用迭代阈值法,选择一个初始阈值T,阈值T将图像灰度值划分成两部分,G为灰度值小于T的所有像素,如式(3)所示。

(3)

式中:g(i,j)——输出图像该点的灰度值;

f(i,j)——输入图像该点的灰度值;

T——所选阈值。

预处理后图像大小为96像素×96像素,分割后的结果如图5所示。

图5 部分数据集图片Fig. 5 Partial dataset images

经过图像处理后的玉米种子图像,将它整理并且建立玉米种子图像数据库,命名为CORNImage。该数据库包含5 000张大粒玉米种子图像、5 000张中粒玉米种子图像、5 000张小粒玉米种子图像。由于不同种类的玉米种子特征大小分类标准不同,本文所采用的农大108玉米种子经过创建的数据集以及结果分析,创建了玉米种子大中小分级标准表格,如表1所示。

表1 玉米种子分级标准Tab. 1 Corn seed grading standards

2 建立 ResNet分类模型

2.1 ResNet介绍

ResNet作为当前广泛的CNN特征提取网络,其主体思想是在输入通道和输出通道间增加联系的通道,即跳过连接[15],使得信息从输入直接输出,避免了信息的缺失,同时在训练网络时不需要学习全部的过程,只需要学习上一部分的输出残差,不仅节约了时间而且还降低了神经网络的学习难度。其中一部分的残差单元如图6所示。

图6 ResNet残差单元Fig. 6 ResNet residual unit

2.2 ResNet网络的改进设计

与标准ResNet网络不同,我们在原有的基础上加入了跳跃连接,将卷积层之后加上了归一化操作和Relu激活函数,并在每个模块结束后加入了Dropout以此构建新的网络,此改进可以多次重复使用玉米特征,减少传输的时间,提高网络学习效率。改进后的残差单元如图7所示。

图7 改进后的残差单元Fig. 7 Improved residual unit

2.3 CORN分类网络架构

深度学习模型存在多种变形,本文采用卷积神经网络模型,卷积网络通过卷积层和权值共享大大减少了神经网络隐层中的权值,使训练速度加快[16],并且少量的参数更易调整和维护,对分类结果也会提高。目前用于图像分类的网络结构有AlexNet、VGGNet、ResNet等。通过查阅资料分析上述模型的参数量、可用性以及训练模型时计算资源需求量、模型的易用性等因素,选择ResNet-50为基本模型。该模型一共包含了50层,结构如表2所示。

表2 ResNet-50网络深度结构图Tab. 2 Resnet-50 depth of the network structure

文中CORNImage数据集图像经过与训练处理后大小为96×96×3,其中3为通道数,表明该图像是彩色图像,将其作为conv层的输入,conv卷积层的卷积核数目为64,卷积核大小为7×7,步长为2,数据经过conv卷积后得到的数据为48×48×64,输出数据的维度是64维。之后,数据经过池化层,多个含有1×1的ResNet-blocks,最终由FC层得到网络的输出。输出分类层的神经节点数根据实际的训练集来确定softmax[17],如式(4)所示。

yi=argmax(Wxi+bi)

(4)

当式(4)中

CORN分类模型使用的训练样本的类别是3个,所以最后一层全连接层的神经元节点数为3。

2.4 网络优化设计

2.4.1 损失函数

本文使用细粒度图像分类试验构建的玉米种子图像数据集进行测试,为了使训练的玉米种子分类模型具有更高的泛化能力,试验过程中用到了pairwise confusion loss损失函数,这一过程可以对细粒度图像为端到端的卷积神经网络训练提供更为有效的惩罚目标函数[18]。对于包含N类的数据集上的神经网络和其参数θ,数据x的条件概率pθ(y|x),pairwise confusion loss如式(5)所示。

Lp(x1,x2;θ)=∑i(pθ(yi|x1)-pθ(yi|x2))2

(5)

式中:x1、x2——训练集合中的随机采样。

对包含k个样本S=[S1,S2]优化目标见式(6)。

(6)

式中:λ*——权值,取λ*为0.1。

2.4.2 优化网络参数

激活函数对于整个神经网络来说十分重要,在反向传播过程中,更新主要取决激活函数的导数(图8)。

(a) sigmoid函数 (b) tanh函数 (c) relu函数图8 三种激活函数Fig. 8 Three activation functions

如果有大于5或者小于-5的数据经过sigmoid函数时,sigmoid函数时会把其压缩到1或0,这样会导致梯度产生饱和效应;在sigmoid向下平移和伸缩后获得tanh函数,值域范围介于+1和-1之间;在快要饱和时,sigmoid与tanh函数会变化缓慢,因此在进行反向传播时容易产生梯度弥散,当输出为正时,Relu函数的导数为1。对于激活函数的选取,本文采用Relu激活函数,由于其函数的导数是1,在学习过程中会生成稀疏网络,使反向传播的更新速度大于一般的函数,其表达式如式(7)所示。Relu激活函数具有收敛速度快以及稀疏激活性的优点[19]。

(7)

2.4.3 Dropout优化

为了防止出现过拟合问题,文中采用了Dropout策略。为了避免过拟合的现象发生,在神经网络训练的过程中随机抛弃隐藏层神经节点的输出值,物理意义相当于断开该网络连接[20],因此在反向传播更新权值参数时,不需要更新与该节点相连的权值。试验中Resent网络在卷积层及残差块之后都采用了Dropout策略,Dropout参数设置为0.25。

2.5 模型训练

在进行网络训练的试验过程中,用到了Mini-batch SGD,该方法从玉米种子的图像数据集中每一次取出1个mini-batch的数据进行学习。该方法既具备了Batch Gradient Descent能收敛到全局最优值或局部最优值的特性,又可以保证了Stochastic Gradient descent的在线更新的优点。训练的具体步骤如下。

1) 首先,初始化网络的权值W,如果权值大于平均值2个标准偏差的值需要丢弃重新选择,直到生成的权值服从具有指定平均值和标准差的正态分布。其中偏置b设置为常量。

2) 从之前创建的玉米种子测试集中随机选取一个batch的训练样本,对训练的样本进行图像预处理后输入到卷积神经网络中并训练样本通过卷积神经网络进行前向传播,计算得到输出值。

3) 计算实际的输出值与预测的输出值之间的误差值。如果迭代次数达到预定值,则停止训练,否则继续进行训练。

4) 为了一步一步的得到新的卷积神经网络的权值参数,试验中过程中按照极小化误差的方式将误差进行反向传播。

5) 返回步骤2,继续训练,训练流程图如图9所示。

图9 训练流程图Fig. 9 Training flowchart

3 试验结果与分析

本文将3个类别,每个类别的5 000个玉米种子图像输入卷积神经网络训练,在训练过程中使用上文提到的卷积神经网络结构,并在训练过程中使用卷积、池化和误差反向传播不断更新卷积神经网络的各个权值,多次迭代后,使得网络误差最小,得到权值最好的卷积神经网络。然后使用2 000个玉米种子的测试样本测试本文的神经网络。为了与本文算法做比较,在试验条件相同的情况下,本文还采用了AlexNet的结果、VGG-16的结果和ResNet作为比较。

测试结果如表3以及表4所示,给出了3种类别的种子在AlexNet、VGG-16、ResNet和本文改进后的深度神经网络上错误样本识别情况以及识别率。表5给出了四种算法的训练和识别过程消耗的时间复杂度。

表3 四种不同算法在三类种子中的识别情况Tab. 3 Recognition of four different algorithms in

表4 四种不同算法在三类种子中的识别率Tab. 4 Recognition rate of four different algorithms in

表5 四种算法训练的时间复杂度Tab. 5 Time complexity of the training of four algorithms

由表3可见,在测试集上小种子分类错误的样本最多为120个,中种子的错误分类样本为53个,大种子错误分类样本的数量为96个,识别率也是符合的依次递增。由表4可以清晰的看到改进后的ResNet对大种子、中种子、小种子的识别率分别为96.4%、93.5%、92.3%显著高于AlexNet、VGG-16、ResNet。

由表5可以看出,改进后的ResNet的训练时间为89 h,识别时间为1.016 s,相比AlexNet的训练时间、识别时间显著减少了197 h、0.36 s,相比VGG-16的训练时间、识别时间减少了108 h、0.24 s,相比改进前的ResNet训练时间、识别时间减少了56 h、0.093 s。这些对比足可以看出改进后的ResNet在玉米种子质量的分类过程中的可行性和有效性。

4 结论

本文提出了一个深度卷积神经网络用于玉米种子品质的分级,通过对ResNet网络的改进,构建了玉米种子分质分级的识别模型,与AlexNet、VGGNet以及改进之前的ResNet模型的识别效果相比,改进的ResNet最少可以提升2.14%,提升效果比较明显。

1) 由于采集到的玉米种子图像大小不一,数据清晰度不满足试验条件,试验采用迭代阈值法同时扩展灰度范围进行图像处理,分割后的图像大小为96像素×96像素且符合试验所需清晰度。

2) 试验结果表明,本文使用的细粒度图像分类,使训练模型具有更高的泛化能力,使用Mini-batch SGD进行模型训练,按照极小化误差的方式将误差进行反向传播,逐步更新卷积神经网络的权值参数得到一个具有最小计算误差以及最佳权重的分类模型,该模型的训练时间、识别时间分别为89 h、1.016 s,均低于其他算法。在分类过程中对大、中、小种子的识别率分别为96.4%、93.5%、92.3%,明显高于其他的算法。

猜你喜欢
玉米种子权值灰度
不同条件下对济宁地区玉米种子萌发特性的研究
一种融合时间权值和用户行为序列的电影推荐模型
采用改进导重法的拓扑结构灰度单元过滤技术
影响玉米种子发芽率的因素及对策
基于灰度拉伸的图像水位识别方法研究
CONTENTS
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
基于灰度线性建模的亚像素图像抖动量计算