基于卷积神经网络的花生种子筛选识别算法
2020-03-12张永超赵录怀卜光苹
张永超,赵录怀,卜光苹
(1.西安交通大学 城市学院,陕西 西安 710018;2.西安交通大学 电气学院,陕西 西安 710048)
0 引言
种子对农业生产的重要性不言而喻。为了增加花生生产的丰收率和提高其种植效率,有必要准确、快速地识别出完好和破损两类花生种子。
韩仲志等研究了基于外观特征识别不同品种、品质的花生种子,采用图像识别法,识别率和准确率分别达91.2%和93.0%[1]。王润涛等曾提出了基于机器视觉、图像处理、神经网络法的大豆籽粒精选技术,测试准确率为92%,筛选效率每分钟300粒[2]。赵吉文等学者根据西瓜籽的特征,用灰度带比例作为分类特征参数的方法,分选出合格的瓜籽,该分选技术能使识别率达95%[3]。Dan Mn等研究使用1个彩色VGA传感器检测和去除单个具有小局部缺陷或缺陷的谷粒,斑点检测是由颜色信息和一个简单的非线性空间滤波器的组合来完成的,该滤波器可以检测沿图像线的像素强度的微小下降,系统准确率为89%,每秒筛选180粒[4]。赵志衡等用实测结果证明采用卷积神经网络识别算法的色选系统较为稳定,该方法对花生分类的准确率达到98.18%,平均检测1幅单粒花生图像的时间为18 ms[5]。
本文提出了基于卷积神经网络(convolutional neural network, CNN)的花生种子筛选方法,根据实际需求,只要筛选出花生是否适合作为种子,剔除不适合作为种子的破损(果皮受损、果仁受损等)种子,使花生种子筛选分类简单、准确率高、速度快。
1 CNN对图像的处理
CNN的独特优势在于通过局部感知野和权值共享两种途径,可以极大地减少参数的数目,从而简化复杂的问题。神经元对图像进行局部感知,并且在高层中将局部信息进行综合性处理,故为局部感知野,其原理是局部像素间空间距离近则相关性强;在卷积操作中将权重参数看作提取特征值的方式,且与位置无关,故称为权值共享,其原理是图像中不同部分的局部特征值统计特性一致[6]。
CNN的核心结构由卷积层、池化层和全连接层构成[7],其中卷积层是用于对CNN特征值的提取。卷积操作方法为上一层的局部感受野和卷积层中每个神经元进行像素相连的加权求和,其计算公式为:
(1)
式(1)中:Xjl代表第l层中的第j特征图;f(x)表示激活函数;Xil-1为图像的输入;Wjli是卷积核的权值;bjl是偏置。
卷积核中Wjli的初始值一般为随机生成;bjl的初始值一般为0,然后通过反向传播的方式进行训练调整。卷积核的尺寸为运算的区域大小,而其中权值的大小表明了与特征提取的相关性大小。
池化层的主要作用是对输入进来的特征图像进行浓缩,减小特征图像的尺寸,满足提取主要特征值的目的,从而简化处理复杂度;通常用平均值采样和最大值采样两种方式提取。本文的网络结构采用最大值采样方式。
2 基于CNN的花生筛选识别算法构建
2.1 数据采集及预处理
本文以花生种子作为研究对象,根据是否完好将花生分为2类:完好的花生、破损花生。采集700张花生图像,每粒花生图像的分辨率为28×28像素,学习速率η=0.1。按上述特征进行分类并手工添加标签,然后将这些图像分为训练图像和测试图像,占比分别为80%和20%,即分别为560张和140张,且训练集和测试集花生图像按上述2类(完好花生、破损花生)呈均匀分布。训练集里部分花生图像如图1所示。
由于花生种皮的颜色特征不同,果肉和果皮的颜色特征也不同,纹理特征也各有差异,根据人类视觉特性,故引入了Gabor滤波器,Gabor变换已被证明是在2D测不准的情况下,对信号空间域和频域的最好的说明[8]。由Gabor函数形成的二维Gabor滤波器具有优异的过滤性能,并且具有类似于生物视觉系统的特性。它具有易于调整方向和径向的频带宽,并且容易调节在时域和频率的中心频率。此域能获得最佳分辨率[9]。
图1 完好花生和破损花生的图像
对完好花生和破损花生分别采用颜色特征提取和纹理特征提取进行预处理。由试验显示可知,完好花生和破损花生的颜色特征和纹理特征均存在较大的差异,故综合多方面的特征特性对种子进行筛选。
2.2 CNN的构建
CNN的总体结构包含输入层、卷积层、池化层、全连接层和输出层[10]。建立如图2所示的两层卷积CNN,网络中各层参数如表1所示。
卷积运算处理的图像数据通常都是以矩阵形式有序储存的,且这些图像之间耦合性低,卷积运算部分对硬件设备要求高,故需选运算速度快、图像吞吐量大、数据存储空间大的硬件设备。在此基础上采用Matlab R2018b脚本语言进行深度学习编程。
2.3 评价指标
使用准确率(accuracy)指标来评价所提出分类算法的性能,定义如下:
(2)
将所建立的CNN在硬件平台上训练花生种子图像库,在迭代60次后训练集准确率稳定达到95.21%,测试60次后测试集准确率为87.05%,网络准确率结果如图3所示。
表1 CNN的参数
图2 CNN的结构图
图3 表1和图2图像训练测试结果
3 基于CNN的花生种子筛选及应用优化
为了进一步提高CNN对花生种子筛选的准确率,提高收敛速度以满足快速性,让最终优化网络简单可行,并且这种优化策略可以进一步扩展到相关的其他网络学习算法中,故需要在两个卷积层的基础上对所建立的CNN进行优化[11]。
3.1 线性修正单元(ReLU)
因为线性模型对网络表达的力度不足,激活函数通常需非线性函数,故本文加入非线性因素[12]。函数的选择主要有以下3种。
Singoid函数:
(3)
Tanh函数:
(4)
ReLU函数:
y=max(0,x)
(5)
由于ReLU函数较另外两个函数具有更快的收敛速度,可以缓解梯度下降问题,并加速训练,且ReLU函数max(0,x)中的x取极大值时不会饱和,有助于网络持续学习,因此本文CNN结构中激活函数采用ReLU[13]。
3.2 L2 regularization
overfitting是指当图像模型过分复杂时,可以很好地“记忆”每一个训练图像中随机的部分但忘记去“学习”训练图像中通用的趋势。为了避免overfitting且提高泛化能力,本文采用L2 regularization的方法,其原理是在损失的函数中加入刻画图像模型复杂程度的指标[14]。L2 regularization就是在代价函数后面再加上1个正则化项:
(6)
式(6)中:C0代表原始的代价函数;式中第2项是L2 regularization项,表示所有参数ω平方的和除以训练集的样本大小n;λ是正则项参数,权衡正则项与C0项的比重;另外一个系数1/2是为了简化结果,因为后面那一项求导后会产生一个2,故与1/2相乘刚好凑整。L2 regularization能避免overfitting,推导如下。
(7)
(8)
可见L2 regularization项对b的更新没有影响,但是对于ω的更新有影响:
(9)
(10)
图4 ReLU+L2 regularization优化前后准确率对比
3.3 拓展数据集
简单方法是拓展训练集数据时将每个训练图像由一个像素来替代,不论是上一个像素,还是下一个像素,或者左右的像素都适用;其他的方法是改变亮度、改变分辨率、旋转图片、位移图片、扭曲图片等。本文把700张花生图像人为增加到1500张花生图像(好坏数目均匀),使用3.2中一样的CNN进行训练,因为我们是在训练原来的2.14倍的数据,所以进一步减少了overfitting的风险。训练结果为97.83%的准确率,如图5所示。
3.4 插入额外的全连接层
因拓展后的网络帮助还是不够理想,需进一步插入1个额外的全连接层进行优化。插入额外的全连接层获得98.37%的训练准确率,训练结果如图6所示。
图5 拓展数据集优化前后准确率对比
图6 插入额外的全连接层优化前后准确率对比
3.5 Dropout
加入Dropout的CNN识别率高,本文采用这种方法可以有效地防止过拟合并提高网络的泛化能力[16]。
Dropout的原理是在对网络进行训练时能随机地移除单独的激活值,让训练模型对于个别损失更强大些,因此较少依赖训练数据的性质。Dropout是一种非常有效的提高泛化能力、降低过拟合的方法,执行Dropout 较容易,并且通常能带来更快的学习。本文取0.5的默认值,在测试阶段,Dropout应该被关闭,权重要调整到相应大小,只需要对1个模型进行Dropout优化以降低误差[17]。结果得训练集98.85%的准确率,如图7所示。
实验数据结果表明:加入Dropout的CNN模型的筛选准确率高于原CNN的筛选准确率。
图7 Dropout优化前后准确率对比
3.6 组合网络
组合网络与随机森林或者adaboost的集成方法类似,可利用这个方法创建神经网络;组合网络仿真实验可以验证在组合网络环境下能否解决干扰问题及控制问题,能够准确分析网络控制参数,能有效提高组合网络的控制能力和筛选的准确率[18]。
筛选的准确性靠组合网络的抗干扰能力和控制结构来保障,在满足组合网络实际需求的前提下可以缩短准确性筛选时间[19]。优化网络的准确率为99.42%,如图8所示。
图8 组合网络优化前后准确率对比
4 优化结果
优化完成的网络训练准确率为99.42%,与训练准确率为95.21%的未优化网络的训练结果对比如图9所示。
用优化前后的CNN对600张花生种子图像测试60次后测试准确率分别为87.05%和98.21%,测试结果对比如图10所示。
图9 最终优化前后训练准确率对比
图10 最终优化前后测试准确率对比
优化方案为:两个卷积层+线性修正单元(ReLU)+L2 regularization+拓展数据集+插入额外的全连接层+Dropout+组合网络。对优化前后的准确率进行对比,可知最终优化后的准确率有明显提高,在60次测试后准确率达到98.21%。
优化前的CNN测试600张花生种子图像共用时18.41 s,1幅图像的筛选时间平均为30.68 ms;优化后的CNN测试600张花生种子图像用时平均为9.85 s,每张花生图像的筛选时间平均为16.4 ms/粒,表明提高了运算速度。
5 结论
本文提出了基于CNN的花生种子的筛选方法,与基于颜色值的图像分类算法和基于深度学习的图像分类算法相比,具有准确率高、速度快、分类简单的优点。CNN优化方案为两个卷积层+线性修正单元(ReLU)+L2 regularization+拓展数据集+插入额外的全连接层+Dropout+组合网络。通过优化进一步提高了筛选花生种子的准确率,且提高了网络的运算速度。仿真实测数据表明优化后的CNN的筛选准确率为98.21%,筛选速度为16.4 ms/粒,表明该系统准确率高、筛选速度快。