基于X射线成像与卷积神经网络的核桃内部品质检测
2022-02-21张淑娟高庭耀孙海霞
张淑娟 高庭耀 任 锐 孙海霞
(山西农业大学农业工程学院, 太谷 030800)
0 引言
近年来,核桃作为特色优势农产品,在农民增收、产业扶贫、生态建设等方面发挥了重要作用[1]。然而,由于我国大部分地区以家庭为单位的种植方式,对核桃生产管理缺乏标准化的技术支撑,以及不同的生长环境等因素使得采收后的核桃成熟度存在差异。不同成熟度的核桃干制后,核仁皱缩出现空果和干瘪果。所以,未经过分拣处理的核桃中经常夹杂着空壳核桃和干瘪核桃,直接影响核桃品质及商品价值。
目前,针对核桃的内部品质检测,文献[2]设计了空瘪核桃分选机,根据空瘪核桃与饱满核桃的比重差异,控制风量实现分选。文献[3]设计了5X-150型核桃分选机,通过气吸方式实现空瘪核桃的分选。文献[4]采用计算机视觉技术和重量相结合的方式,实现空壳核桃的检测。文献[5]对采集的核桃图像进行处理、拟合来估算核桃体积,称取核桃的重量,根据核桃的比重或者比重等效参数检测和分选核桃。这些方法在检测过程中存在一定的局限性,因此,提升和改进核桃检测分选技术是提高核桃商品价值的一个重要环节[6]。
随着X射线成像检测技术的发展,目前应用该技术进行农产品检测的研究报道已有很多[7-11]。这些研究表明,当产品内部存在差异,射线能量穿过时衰减程度不同,导致成像效果差异,这些差异体现了被透射样本的内部信息,而X射线成像系统将这些信息检测并记录下来[12],通过获取到的内部信息实现无损检测。
目前,深度学习已广泛应用于各研究领域,尤其在图像领域。文献[13]基于深度学习使用两级卷积网络实现了核桃图像的分割和杂质检测,该方法能够正确分割测试图像中99.4%的目标区域,对验证图像中96.5%的异物进行正确分类,正确检测出100%的测试图像。文献[14]通过对AlexNet网络进行优化得到适合油茶籽完整性识别的卷积神经网络模型,模型识别准确率达到了98.05%,实现油茶籽完整性的识别。文献[15]提出利用GoogLeNet深度迁移模型对苹果缺陷进行检测,并与传统机器学习方法进行了对比,结果表明,GoogLeNet深度迁移模型具有更好的泛化能力与鲁棒性。
因此,针对核桃内部品质(空壳、干瘪和正常)检测分选过程中存在的问题,本文利用X射线机采集核桃的X射线图像,结合卷积神经网络对图像进行处理和分类,通过对比训练结果确定最佳模型和最优参数,在此基础上,开发检测分选系统,并进行模型验证。
1 材料与方法
1.1 材料与设备
以山西省汾阳市广泛种植的“礼品2号”核桃作为试验材料,剔除破损和异常样本后,对样本进行编号并采集X射线图像,然后称取核桃质量和核仁质量。根据核仁饱满度,参照《核桃坚果质量等级》国家标准[16]和感官评判标准,将样本划分为正常核桃、干瘪核桃和空壳核桃,结果如图1所示。
图1 试验样本Fig.1 Experimental samples
由图1可看出,内部品质缺陷的核桃与正常核桃在外观上并无差异,但核仁品质却参差不齐。正常核桃(图1a)的核仁饱满,表皮色泽光鲜,核仁充满核桃内部,在X射线图像中,核仁所占面积比大,壳仁间隙小且不连续;干瘪核桃(图1b)的核仁皱缩,表皮色泽加深,口感差,壳仁间隙较大,在X射线图像上,核仁所占面积比较小,壳仁间隙大且十分明显;而空壳核桃(图1c)的核仁皱缩,质量已忽略不计,甚至部分核仁不存在,在X射线图像中也看不出核仁形状,与其余两组图像差异十分显著。
采用山西万科医用设备有限公司WFC型数字化摄影X射线机采集核桃图像,其主要由组合式X射线发生器、限束器、控制箱、平板探测器、X射线成像系统、机架等部件组成。试验前对仪器参数进行调试,通过对比试验确定:管电压50 kV、管电流100 mA、辐照时间(电流时间乘积)1.6 mA·s为最佳试验参数,可获得最大化图像对比度和最小化图像噪声。
试验采集正常核桃X射线图像382幅,干瘪核桃X射线图像255幅,空壳核桃X射线图像401幅。获取的原始图像分辨率为3 072像素×3 072像素,将原始图像裁剪成完全包含核桃的样本图像(360像素×360像素)。为消除背景对图像特征提取的影响,对图像进行预处理[17],图2为原始图像和去除背景的核桃图像。再根据模型输入要求,将去除背景的X射线图像统一调整为224像素×224像素。
图2 图像预处理Fig.2 Image preprocessing
由于干瘪核桃样本数量较少且3类核桃样本数量不均,可能会影响模型的训练效果,导致结果不理想[18]。为避免这种情况的发生,往往采用数据增强的方式增加数据集。本文主要采用随机翻转、亮度变换、加噪、对比度变换4种方式增加数据集,得到3类核桃的X射线图像各2 000幅。
1.2 卷积神经网络
卷积神经网络(CNN)通过网络节点之间的深度和权值共享来自动进行特征提取和选择,CNN有各种占主导地位的预训练结构,这些结构在数据集ImageNet上用1 000个不同的类成功训练完成分类任务。不同模型对不同数据处理效果不同,因此选择合适的网络进行空壳核桃分类。
1.2.1VGG 19
VGGNet的思想是不断加深网络结构来提升性能,通过减小卷积核尺寸,使用3×3的卷积核和2×2的池化核,来减少参数和计算量[19]。VGG 19共19层,包含16个卷积层、3个全连接层和5个池化层,共组成5个卷积块,每个卷积块由一组卷积层、一个激活函数和一个最大池化函数组成。网络的输入图像尺寸为224×224×3,输出为7×7×512;分类部分对输出结果进行扁平化(flatten)处理,得到长度为25 088的一维向量[20]。VGG 19通过卷积层提取图像特征,池化层降低提取特征维度,全连接层对数据进行分类,最后一层为softmax层,计算出输入图像属于每个类别的概率,最后输出的就是每个类的预测值。
1.2.2GoogLeNet
GoogLeNet是Google公司推出的基于Inception模块深度神经网络模型,创新点在于一层网络中存在多个不同尺度的卷积核,一方面增加了网络宽度,另一方面增强了模型对尺度的适应性。Inception V1网络是一个有22层深度的卷积神经网络结构,由1×1卷积、3×3卷积、5×5卷积和3×3池化4个主要部分组成,多次使用1×1卷积核,实现了跨通道信息融合,提高了网络的表达能力,同时又可以对输出特征进行升维或降维处理。通过多种不同尺寸的卷积核提取图像多尺度的信息,然后进行融合,从而具有更好的图像表征能力[21]。
1.2.3ResNet 101
ResNet的思想是在网络中增加了直连通道,将靠前若干层的某一层数据输出直接跳过多层,引入到后面数据层的输入部分,将原始输入信息直接传输到后面的网络层中,将层与层之间的传递学习表示为输入与输出残差函数的学习,良好地中和了梯度爆炸问题与退化问题。ResNet 101共101层,包括1个输入7×7×64的卷积层,经过99个残差单元层,最后至全连接层得到最后的分类结果[22]。
1.2.4MobileNet v2
MobileNet模型是一种轻量级的深层神经网络,其使用的核心思想是深度可分离卷积块。深度可分离卷积块由两部分组成,分别是3×3深度可分离卷积和1×1普通卷积。MobileNet v2共28层,为防止非线性层损失信息,引入线性瓶颈层,将可分离卷积应用于残差结构,形成倒卷残差块,堆叠形成线性瓶颈块。对数据先升维再降维,增强梯度的传播,减少训练时所需的内存[23]。
1.3 环境配置
本文使用Windows 10系统,处理器是Intel Core i7-10875H,主频2.30 GHz。系统还包括16 GB内存、1 TB硬盘和6 GB显存NVIDIA RTX 2060 GPU,采用Matlab 2020a中深度学习工具箱进行编程计算。
1.4 模型评价指标
为了评价不同模型和参数对核桃内部品质分类结果,本文选择预测集准确率、预测集损失值、测试集准确率以及训练时间4个参数作为评价指标。
2 结果讨论与分析
随机选取数据集的72%用于模型训练,18%用于模型预测,10%用于模型测试。分别用4种迁移学习模型对核桃品质进行判别,为提升模型的训练性能,还设置不同模型参数(学习率和迭代次数)的对比试验[24],并开发检测分选系统。
2.1 模型选择
本文采用GoogLeNet、ResNet 101、MobileNet v2和VGG 19共4种迁移学习模型对核桃数据集进行测试,4种模型的验证结果如表1所示,训练过程准确率和损失值的变化如图3所示。4种模型的参数分别为:Batch Size(批尺寸)为16,最大迭代次数为25,学习率为0.001,4种模型均可实现核桃内部品质的分级分选,但从模型预测准确率和损失值曲线可以看出,MobileNet v2和ResNet 101模型曲线一直存在起伏,模型不稳定。GoogLeNet模型在迭代初始阶段起伏较为明显,在训练次数1 000后模型的稳定性与VGG 19模型基本一致,且两个模型的预测准确率相差不大,分别为96.67%和96.53%。但对比训练所需时间,VGG 19模型耗时过长,约114 min。综合考虑识别准确率和运算性能,最终选用GoogLeNet模型。
表1 不同迁移学习模型对核桃内部品质检测的准确率Tab.1 Accuracy of different migration learning models for walnut internal quality detection
图3 4种分类模型准确率和损失值Fig.3 Accuracy rate and loss map of four classification models
2.2 参数优化
2.2.1迭代次数
本文设置4组不同的迭代次数(15、20、25、30)进行对比试验,结果如表2所示。由表2可知,迭代次数为25次时,模型预测准确率和测试准确率最高,都为96.67%;当迭代次数设置为30次时,模型的准确率都略有降低,表明迭代次数并非越多越好。同时,研究发现迭代次数与运行时间呈正比例关系[25]。因此,本研究选择迭代次数为25时进行以下试验。
表2 模型GoogLeNet不同迭代次数时核桃内部品质检测的准确率Tab.2 Accuracy of different epoch of GoogLeNet model for walnut internal quality detection
2.2.2学习率
学习率决定着目标函数能否收敛到局部最小和收敛速度。当学习率设置过大时,模型不稳定且难以收敛;当学习率设置过小时,模型收敛时间加长且容易过拟合;合适的学习率能够使模型结果快速接近最优解。结合试验研究和经验,选择学习率为0.01、0.001、0.000 1进行模型训练,试验结果如表3所示。图4为3种学习率条件下模型预测准确率和损失值曲线。
表3 模型GoogLeNet不同学习率时核桃内部品质检测的准确率Tab.3 Accuracy of different learning rates of GoogLeNet model for walnut internal quality detection
图4 不同学习率条件下模型预测准确率和损失值Fig.4 Prediction accuracy and loss of models with different learning rates
由图4可知,在训练次数小于1 000时,当学习率设置为0.01,预测准确率和损失值曲线有较大范围的振荡,收敛速度慢且预测准确率低,损失值高;当学习率设置为0.000 1,测试准确率和损失值曲线振荡较小,但准确率低于学习率设置为0.001的模型。由表3可知,随着学习率的降低,预测准确率呈先上升后下降的趋势,学习率设置为0.001时模型的预测准确率最高,为96.67%,损失值最小,为0.102 2。在3组学习率条件下,模型所用时间基本一致,可能与数据集的样本数量有关。
2.3 模型验证
为验证模型的实用性,基于LabVIEW开发空壳核桃检测分选系统进行验证。利用LabVIEW中的Matlab Script节点,将Matlab强大的图像处理和计算功能运用于LabVIEW程序中。依次读取文件中的图像,对图像进行预处理,同时加载已经建立好的卷积神经网络,并输出判别结果,实现空壳核桃的检测分选。核桃内部品质检测分选系统界面如图5所示。
图5 核桃内部品质检测分选系统界面Fig.5 Detection system of walnut internal quality
采用检测系统对核桃品质进行验证的结果如表4所示。由表4可知,空壳核桃的判别准确率可达100%,正常核桃有3个误判为干瘪核桃,干瘪核桃中有9个被误判为正常核桃,模型平均判别准确率为96.39%。分析原因是由于划分标准不明确,极少部分核桃介于干瘪和正常核桃之间导致的判别失误,不会对分类结果产生较大影响,但判别标准有待进一步改进提升。总体来说,该系统可实现空壳核桃的检测与分选。
表4 核桃内部品质检测系统验证Tab.4 Verification of walnut internal quality inspection system
3 结论
(1)对比4种不同迁移学习模型,GoogLeNet模型预测准确率最高,达到96.67%,同时模型耗时少且收敛稳定。
(2)设置不同学习率和迭代次数对模型进行训练,确定学习率为0.001,迭代次数为25次时,预测准确率达到最高,为96.67%,效果最佳。
(3)开发空壳核桃检测分选系统,空壳核桃的判别准确率达到100%,模型平均判别准确率为96.39%。该系统实现了空壳核桃的准确、高效、无损检测分选,提升和改进了核桃检测分选技术。