祝诗平 卓佳鑫 黄 华,2 李光林
(1.西南大学工程技术学院,重庆400716;2.堪萨斯州立大学工程学院,曼哈顿KS 66502)
小麦是最重要的粮食作物之一[1],广泛种植于世界各地,其产量和贸易量在近几年不断攀升。在流通过程中,外观品质是影响小麦价格的重要因素之一。目前,针对小麦外观品质的检测主要分为高光谱检测[2-3]和图像检测[4],两种方法各具优势。高光谱检测时间长、消耗大,无法满足实际检测需求。在图像检测方面,研究人员通过线性判别模型、人工神经网络、支持向量机等技术在小麦品种识别[5-9]、品质分级[10-11]、不完善粒识别[12]、病害识别[13]等方面进行了研究,识别准确率均在90%以上。但这些模型的实现环境较为严苛,首先,图像数据的采集必须在统一固定的环境下进行;其次,以小麦的形态特征、颜色特征、纹理特征等作为模型的输入数据,不同的特征数据需要不同的算法提取,计算过程较为繁杂。此类方法已不能满足实际生产中小麦图像检测的需求。
近年来,以卷积神经网络为代表的深度学习技术发展迅速,已在图像识别领域得到广泛应用[14]。相较于传统的机器学习技术,卷积神经网络增加了特征学习部分,可以通过组合低层特征形成更加抽象的高层特征,以发现数据的分布式特征表示,从而不再需要其他算法进行特征提取。在农业领域,研究者将卷积神经网络用于诸多方面[15-21],研究表明,卷积神经网络能够提供更好的性能,优于传统的机器学习技术[22]。
不少研究者将卷积神经网络应用于小麦研究之中,张领先等[23]研发了基于卷积神经网络的冬小麦麦穗检测计数系统,系统对麦穗的识别准确率高达99%;HASAN 等[24]训练了4 种R-CNN 模型,对田间小麦进行识别并估算其产量,准确率为88% ~94%。在针对小麦籽粒的不完善粒识别中,结合高光谱检测和卷积神经网络的研究[25-27]较多,而仅基于图像检测的研究较少。因此,本文采用LeNet-5、AlexNet、VGG-16 和ResNet-34 这4 种较为成熟的卷积神经网络对小麦籽粒的完整性进行识别,并与支持向量机(Support vector machine,SVM)和反向传播(Back propagation,BP)神经网络进行对比,分析比较不同模型的性能,最后,基于检测效果最优的模型设计小麦籽粒完整性图像检测系统。
选用由天津粮油批发交易市场提供的白硬麦作为试验材料,其收获时间为2014 年8 月,产地为山东,含水率为11.5%。按照国家标准[28]将这批小麦人工分为完整粒和破损粒两类。
在自然光照条件下,以黑色绒布作为背景,将每批100 粒小麦按照10 ×10 的分布进行随机摆放,采用华为手机(RNE-AL00 型,摄像头1 600 万像素)从20 ~25 cm 的高度垂直拍摄小麦样本,完整粒和破损粒小麦分别采集3 500 粒,图1 是部分完整粒和破损粒小麦样本。
以Python 3.6 为脚本语言对小麦图像进行预处理,共包含3 部分,如图2 所示。首先将RGB 图像转换为灰度图像,再通过阈值分割方法将灰度图像转换为二值图像,小麦区域为白色,背景区域为黑色。计算每一个小麦区域的最小外接矩形的顶点坐标,根据该坐标在原始图像中分割出每一粒小麦,从而得到单粒小麦RGB 图像。
图2 图像预处理Fig.2 Image preprocessing
由于卷积神经网络的输入图像一般为正方形,因此将单粒小麦图像扩展为正方形,扩展像素点的R、G、B 值为(0,0,0),然后对其做旋转处理,旋转角度随机,7 000 幅小麦图像扩充为14 000 幅,建立小麦图像数据库,接着按照7∶3的比例,将9 800 幅小麦图像作为训练集,其余4 200 幅作为验证集。为满足卷积神经网络的输入图像尺寸需求,将小麦图像缩放为224 像素×224 像素或28 像素×28 像素,数据格式转换为float 32,归一化处理为
式中 pij——图像数据中第i 行第j 列像素点的R、G、B 值
Pij——pij归一化值
采用巴特沃斯高通滤波器对灰度图像做图像增强处理,然后转换为二值图像,计算小麦的8 个形态特征,分别为面积、周长、密度比、最小外接矩形的长轴长度和短轴长度、长宽比、椭圆离心率及等价直径,建立小麦的特征数据库,作为SVM 和BP 神经网络的输入数据,对8 个特征数据进行归一化处理
卷积神经网络是深度学习中应用最广泛的网络模型之一。在图像分类领域,由于图像的数据量非常大,如果使用传统的神经网络,会造成网络参数量过多,降低网络的拟合能力,而卷积神经网络具有参数降维的功能,即通过卷积和池化操作减少网络训练时需要计算的参数数量,进而提高网络的训练速度。典型的卷积神经网络主要包含卷积层、池化层和全连接层,如图3 所示,该网络是经过修改后适用于本试验的AlexNet 网络,网络输出层的神经元个数修改为2,分别为小麦籽粒完整和破损类别的概率。
图3 AlexNet 网络架构Fig.3 Architecture of AlexNet
采用4 种典型卷积神经网络,分别为LeNet-5、AlexNet、VGG-16 以及ResNet-34,4 种网络的输出层神经元个数均修改为2 个。针对LeNet-5、AlexNet和VGG-16,在全连接层之后加入Dropout 层,每次迭代过程中,Dropout 层按一定比率将全连接层中的神经元随机设置为0,即这部分神经元不参与训练,有效防止训练过拟合,从而提升网络的拟合效果。
这4 种网络均采用softmax 函数计算类别概率,以实现分类,计算式为
式中 yim——第i 个样本属于第m 类的预测概率
K——类别数
zim——第i 个样本的输出向量与第m 类参数向量的乘积
zik——第i 个样本的输出向量与第k 类参数向量的乘积
以分类交叉熵(Categorical cross entropy)作为损失函数,计算式为
式中 n——批尺寸 L——损失函数
采用SVM 和结构为8-15-2(输入层8 个神经元,隐含层15 个神经元,输出层2 个神经元)的BP神经网络作为对比试验模型,其输入数据为小麦特征数据库中的8 个形态特征数据。
使用准确率R 评价模型效果,计算式为
式中 nall——所有样本数量
nright——正确识别的样本数量
针对SVM,选择高斯核函数作为核函数;针对BP 神经网络和4 种卷积神经网络,采用动量为0.5、学习率衰减值为1 ×10-6的随机梯度下降法(SGD)作为优化算法,并设置3 组初始学习率(0.01、0.005、0.001);针 对LeNet-5、AlexNet 和VGG-16 设置3 组Dropout 值(0.4、0.5、0.6),共进行34 组试验。训练和验证的批尺寸(batchsize)设为32,卷积神经网络的迭代(epoch)次数设为100,BP 神经网络的迭代次数设为200。
采用Tensorflow 为后端运行的Keras 深度学习框架,以Python 3.6 作为编程语言,在PyCharm 平台搭建模型。Keras 是一个高级神经网络API,提供多种神经网络层、损失函数、优化器、激活函数和初始化方法等,支持快速构建任意的神经网络架构,操作简便,易于调试和扩展。
卷积神经网络的参数量和训练集庞大,仅通过CPU 执行训练会耗费大量时间,因此需要GPU 加速训练过程,然而性能优异的GPU 价格昂贵,增加了研发成本,为解决这一问题,本文选用提供免费GPU 的Google Colab 作为开发环境。Google Colab是Google 公司开发的一个免费的Jupyter 笔记本环境,该环境绑定了一个Ubuntu 虚拟机,提供双核处理器Intel Xeon CPU,主频2.20 GHz,运行内存12.72 GB,GPU 为NVIDIA Tesla K80。
将程序(.py 文件)和图像数据(. npy 文件)上传至谷歌云盘(Google Drive),在Google Colab 执行该程序,训练网络模型,输出训练结果并保存模型,以便后期测试。
各组训练和验证的结果如表1 所示,其中迭代次数指验证集准确率达到稳定时的迭代次数,训练时间指一次迭代所花费的时间,试验1 ~4 的训练时间包含图像预处理步骤中计算形态特征的时间。试验结果显示,SVM 和BP 神经网络的训练速度普遍优于卷积神经网络,但其准确率不高于93.61%,卷积神经网络的准确率大多高于96%,优于SVM 和BP 神经网络。
在4 种卷积神经网络中,LeNet-5 的训练速度最快,仅0.5 次/s,但其识别准确率较低,验证集准确率最高为97.90%,因为其输入图像尺寸为28 像素×28 像素,导致图像的部分特征丢失。AlexNet、VGG-16 和ResNet-34 的输入图像为224 像素×224像素,其训练集准确率都不低于99.81%,其中AlexNet 的训练速度最快,一次迭代用时为30 s,VGG-16 最慢,为162 s。ResNet-34 的验证集准确率最高,为99.29%,但其训练时间比AlexNet 长,为141 s。综合观察34 组试验结果,试验19 和试验32训练得到的AlexNet 和ResNet-34 具有更好的识别效果,这两个模型在训练集和验证集上的准确率及损失值(loss)随迭代次数变化的曲线如图4 和图5所示。从图中可以看出,两个模型的训练集曲线都较为平滑,波动小,但AlexNet 的验证集曲线的波动性比ResNet-34 大,尤其是在前15 次迭代中。两者分别在迭代37 次和20 次后趋于稳定。
从试验材料中另外采集2 574 个完整粒小麦和1 036 个破损粒小麦图像作为测试集,分别计算两个模型的混淆矩阵及识别性能。从表2 可见,两种网络模型对完整粒的识别准确率高于破损粒,均达到99%以上,ResNet-34 的平均识别准确率较高,为98.57%,但其对单粒小麦的识别时间为5 ms,约为AlexNet 识别速率的1/6。综合考虑两个模型的平均识别准确率及识别速率,选择试验19 的AlexNet作为识别小麦籽粒完整性的实际应用模型。
由本实验室自主设计的小麦籽粒完整性图像检测系统包含检测装置和识别软件两部分,其中,检测装置如图6 所示。小麦籽粒从入料口进入检测装置,经进料装置落到传送带上,再经过分离板到达USB 工业摄像头的拍摄范围,最后落入物料盒。LED 灯带提供背景光源,使图像清晰。播种机使小麦籽粒小批量地进入传送带,避免全部籽粒一次性落入传送带。
分离板如图7 所示,可使紧挨的两粒或多粒小麦分隔开,增大小麦籽粒之间的间隙,避免籽粒紧挨导致后期图像分割错误而降低识别准确率。
触控计算机控制USB 工业摄像头以2 s 的周期垂直拍摄传送带上的小麦籽粒,得到1 920 像素×1 080 像素的图像并存储,如图8 所示,红色方框内为目标图像区域。
小麦籽粒完整性识别软件对采集到的多幅目标图像进行拼接,然后对拼接后的图像进行边缘检测、图像分割以及尺寸调整,得到尺寸为224 像素×224 像素的单粒小麦籽粒图像,最后使用表1 中试验19 训练得到的AlexNet 网络模型进行识别,并统计完整粒和破损粒的数量及所占比例。
表1 模型训练与验证的准确率Tab.1 Accuracy of model in training and validating
图4 AlexNet(试验19)的准确率与损失值曲线Fig.4 Accuracy and loss curves of AlexNet(No.19)
图5 ResNet-34(试验32)的准确率与损失值曲线Fig.5 Accuracy and loss curves of ResNet-34(No.32)
表2 AlexNet 和ResNet-34 在测试集的识别性能比较Tab.2 Recognition performance comparison of AlexNet and ResNet-34 on test datasets
图6 小麦籽粒完整性图像检测装置Fig.6 Wheat grain integrity detection device
图7 分离板Fig.7 Separating plate
图8 USB 工业摄像头拍摄的小麦图像Fig.8 Wheat image by USB industrial camera
利用上述系统对3 批小麦(100 粒完整粒、100 粒破损粒、70 粒完整粒+ 30 粒破损粒)进行3 组测试。测试结果显示,3 批小麦的识别准确率分别为97%、96%、97%,平均识别准确率为96.67%,低于表2 中测试集的识别准确率,因为传送带的反光会导致分割出的部分单粒小麦图像具有较亮的背景,对识别过程产生一定的干扰,除此之外,极少部分图像中存在紧挨的两粒小麦,模型对此类图像无法做出正确识别。该系统操作简单,识别效果较稳定,具有较好的鲁棒性,采集100 粒小麦籽粒图像的平均时间为21.2 s,图像处理与识别的平均时间为5.1 s,总共用时为26.3 s,能够满足实际检测需求。
(1)针对小麦籽粒完整性图像识别的问题,将4种典型卷积神经网络与传统的SVM 和BP 神经网络进行比较,结果表明,卷积神经网络的识别准确率明显优于后两种传统模型,验证集准确率最高可达99.29%。根据网络的结构复杂度,网络的训练时间具有显著差异,其中AlexNet 网络训练一次时间为30 s,验证集准确率最高为98.79%。尽管卷积神经网络的训练时间远大于传统的机器学习技术,但显著提高了小麦籽粒完整性的识别准确度。
(2)选择识别准确率最高的试验19 的AlexNet和试验32 的ResNet-34,进行识别性能比较,结果表明,试验19 的AlexNet 识别速度更快,单粒小麦识别时间0.827 ms,识别准确率与ResNet-34 相近,前者为98.02%,后者为98.57%,因此选择AlexNet 作为小麦籽粒完整性检测系统的识别模型。
(3)基于AlexNet 模型设计了小麦籽粒完整性图像检测系统,对3 组100 粒小麦籽粒进行检测,图像采集、处理及识别共用时26.3 s,平均识别准确率为96.67%。