基于机器学习的芒果缺陷度-腐烂度预测模型
2022-09-26周嘉政柯子鹏钱勤建胡新宇
张 铮, 周嘉政, 柯子鹏, 钱勤建, 胡新宇
(湖北工业大学 机械工程学院, 湖北 武汉 430068)
由于芒果成熟后果肉较软,在采集、存储及运输等过程中极易损伤果肉而导致变质。目前芒果的品质通常采用肉眼对果皮的表面特征进行观察判别,但该方法极易因操作人员的主观意识而出现较大误差。近些年,随着机器视觉技术的不断成熟,机器视觉技术在无损检测方向的应用也越来越广泛,国内学者利用机器视觉技术对芒果的缺陷检测也做了大量研究。罗志翔等[1]设计了基于BP神经网络的水果识别系统,对水果纹理、形状、颜色三种特征进行提取并输入到BP神经网络中进行训练、识别,经测试具有较高的识别成功率。李国进等[2]提出了一种基于计算机视觉和极限学习机神经网络(ELM)模型的芒果分级方法,采用粒子群优化算法(PSO)对ELM随机给定的输入权值矩阵和隐层阈值进行寻优,最后根据芒果的外观特征提取芒果面积、等效椭圆长短轴之比、H分量均值和缺陷面积所占百分比4个特征参数对模型进行训练和测试,能够精准地对芒果进行等级划分。杨涛等[3]提出从成熟度、质量、形状三方面综合评估的方法,通过分析HSV颜色模型中H参数判断草莓成熟度,利用图像投影面积-质量函数关系对草莓质量进行测算,最后采用K均值聚类法与判别分析相结合对草莓评估分级。Nakano等[4]开发图像采集系统,通过采集苹果图像使用神经网络将苹果分为5个等级。辛华健[5]设计了一种基于计算机视觉的芒果品质检测方法,通过芒果大小、颜色和表面缺陷来反映芒果品质,并基于BP神经网络实现对芒果的分级。但上述方法仅利用机器视觉或机器学习通过提取、处理芒果的表面形状特征参数对芒果进行分级研究,未考虑到芒果果肉品质对分级结果的影响,也未以芒果果肉的腐烂度为特征对芒果展开预测与分级研究。
本文以芒果腐烂度作为芒果分级特征,首先对底层处理后的芒果样本的果皮、果肉、果皮表面缺陷和果肉腐烂特征参数进行提取,然后定义芒果缺陷度、腐烂度,最后通过BP神经网络对缺陷度进行训练建立缺陷度-腐烂度预测模型,并能够依据建立的模型预测出芒果果肉的腐烂程度,准确地甄别出肉眼无法观察到的果肉腐烂的芒果,故对芒果果肉腐烂度的预测研究有重要意义。综上所述,本文提出了一种通过建立芒果缺陷度-腐烂度预测模型的新方法来预测芒果果肉的腐烂度并依据芒果果肉腐烂度分级。
1 试验样本与硬件设备
选取应季鹰嘴芒果作为研究样本,成熟鹰嘴芒果果皮偏纯黄色,且果皮较薄,易于剥皮,在处理果皮过程中未对果肉造成破坏。在随机选取的50个果皮表面有不同程度缺陷的芒果中,将40个作为训练样本,另外10个作为测试样本进行试验。
通过使用型号为SHL-200WS工业相机搭载型号为C12120F18-3MP工业视觉镜头以及型号为SHL-601 LED光源组成图像采集实验平台,见图1。为采集到最佳的芒果样本图像,将相机固定在距实验平台45 cm处并调整焦距。对40个训练样本分别从正反两个方向进行图像采集,部分样本见图2。
2 图像前期处理
2.1 图像灰度处理及滤波去噪
由于研究样本的成熟果皮颜色趋近于黄色,且黄色的RGB值分布为(225,225,0),故对R和G通道赋予较高的权重,对B通道赋予较低的权重,采用加权灰度法将原始图像转化为灰度图像,见图3。具体方法见下式[6]:
f(x,y)=(ωRR+ωGG+ωBB)
(1)
式中:f(x,y)为点(x,y)转换后的灰度图像像素点灰度值;R,G,B分别为点(x,y)在原始图像中像素点红色、绿色、蓝色分量;ωR、ωG、ωB分别为R、G、B通道在式中的加权权重(经多次试验,ωR=0.3、ωG=0.59、ωB=0.11)。
为了保留原始图像特征去除随机噪声对灰度图像采用均值滤波进行平滑去噪,在处理过程中使用 3×3 模板对灰度图像的邻域像素进行卷积运算,滤波效果见图4。
2.2 图像分割
在现有图像边缘检测算法中,Canny算法能够同时满足边缘定位准确、检测效果优良、响应次数低的要求,得到了较为广泛的应用[7]。本文采用Canny边缘检测算法,用一阶偏导数的有限差分计算梯度的幅值和方向,使用梯度幅值和方向来估计每一点处的边缘强度和方向:
(2)
最后,通过双阈值处理,设定Canny算法的上下阈值来处理和连接检测边缘,将目标区域与背景分割开。针对样本处理过程中经边缘检测后可能存在的边缘断裂等情况,需进行形态学分析,使用闭运算处理图像,得到连续边缘。为了便于后续对芒果面积特征的提取,对得到的边缘二值图像进行填充,将目标区域完整地分割开,见图5。
2.3 缺陷提取
图像二值化处理后,为过滤非缺陷部分以及对图像中的细小缝隙进行填补,便于后续特征参数的提取与计算。在对大量芒果样本处理后观察到成熟芒果果皮出现的少量黑色斑点并不会对果肉造成影响,即不考虑将芒果果皮表面的黑色斑点作为表面缺陷,应采用形态学分析对图像进行处理。选取圆形结构元素对芒果果皮缺陷图像及果肉腐烂图像依据式(3)进行开运算处理,见图6。
A∘B=∪{(B)z|(B)z⊆A}
(3)
式中:A为目标图像;B为结构元素。
由图6可知,开运算腐蚀了目标图像中芒果自身的斑点、果皮中的少量黑色斑点和果肉纤维等非目标特征。
2.4 图像特征参数的提取与计算
在芒果分级过程中,为了确保分级的准确,要考虑到内部品质对芒果分级的结果具有很大影响。故需要对芒果果皮面积、果肉面积、果皮缺陷面积和果肉腐烂面积提取计算。通过统计底层处理后的样本图像两个方向上的像素点来表示芒果样本的面积。首先,统计芒果果皮、果肉、果皮表面缺陷和果肉腐烂的像素点总和分别作为芒果的果皮总面积、果肉总面积、果皮表面缺陷总面积和果肉腐烂总面积。然后,依据式(4)将果皮表面缺陷总面积与果皮总面积的比值作为芒果果皮表面缺陷度,将果肉腐烂总面积与果肉总面积的比值作为芒果果肉腐烂度,芒果果肉腐烂度越大表示果肉的损坏越严重。
(4)
式中:Gd为缺陷度;Gr为腐烂度;Sd为果皮表面缺陷总面积;Spl为芒果果皮总面积;Sr为果肉腐烂总面积;Spp为芒果果肉总面积。
3 缺陷度-腐烂度预测模型
BP神经网络是一种按照误差逆向传播数据算法来训练的多层前馈神经网络,相比于其他算法BP神经网络不仅具有误差反馈的优势而且具备良好的自学习、自适应等能力,常被大量应用在模式识别、故障检测、智能控制、函数逼近等领域,是目前应用最成功、最广泛的神经网络模型之一[1,8]。故本文选用BP神经网络对样本数据进行训练建立关于缺陷度-腐烂度的预测模型。
3.1 模型建立
由于选用缺陷度作为神经网络的输入层,故输入层的神经元个数为1,而隐含层节点的选取影响着BP神经网络的误差、精度以及网络的复杂程度,对神经网络模型的性能有很大影响。在确定隐含层节点数的过程中,应保证在满足精度的前提下,取尽可能紧凑的结构,即取尽可能少的隐含层节点数。由Kolmogorov定理,见式(5),根据试验结果不断调整,最后确定隐含层的节点数为3[9-10]。
S=2N+1
(5)
式中:S为隐含层节点数目;N为输入层节点数目。
在BP神经网络建立过程中,随机选取40个缺陷度数据作为输入层训练样本,对应的40个腐烂度数据作为输出层的训练样本,10个缺陷度数据作为测试样本,对应的10个腐烂度数据用于与预测结果进行误差比对检验模型性能。
3.2 模型验证与分析
本文为了能够准确直观的验证模型性能,采用相对误差及决定系数两种方法来验证模型的可行性。由绝对误差与真实值之比得到的相对误差能够真实地反映测量的可信度。依据式(6),首先将模型预测得到的每个样本预测值与真实值作差得到绝对误差,绝对误差(残差)可以对训练样本的拟合函数进行残差分析,见图7,然后将绝对误差除以真实值得到每个样本的相对误差。相对误差的结果反映了偏离真实值的实际大小,相对误差越小,表明模型的性能越好。
(6)
由图7中的残差图可知残差到零点的距离,并在残差图中可以获取到训练样本残差分布在值域[-0.8×10-3,2.4×10-3]之间,训练样本残差值与腐烂度不相关且相邻残差不具有相关性。在图中还能够观察到90%的残差都分布在值域[-0.8×10-3, 1.5×10-3]之间,即残差图中几乎所有点都落在了这一水平带中间,经残差分析可知该训练样本的拟合函数较为准确。
(7)
经计算本文模型的决定系数R2的值为0.998 1,接近于1,表明该模型性能较好。使用决定系数对模型系统拟合优度评价后,为了进一步验证模型的准确性,对真实值与训练后的预测值拟合曲线进行回归性分析,见图8。
图8反映了神经网络训练后,训练样本、测试样本和验证样本的真实值以及预测值的相关关系,通过回归性分析可以观察到相关性系数R接近于1,误差在0.01以内,表明样本数据在神经网络训练后与真实值误差较小,达到了预期的训练效果。
上述方法中,通过使用残差分析对训练样本的拟合函数进行检验,又通过决定系数对模型拟合优度进行了评价。当利用回归性分析中相关性系数来检验真实值与训练后的预测值的相关关系后,再用相对误差来评价每个测试样本的真实值与预测值的偏差,能够真实的反映训练模型的可信度,见表1。
表1 相对误差表
为使测试样本中真实值与预测值的误差更加直观,便于检验模型准确性,在MATLAB中绘制出真实值-预测值误差图,见图9。
通过对预测结果的分析,可以得到该模型所预测的数据基本准确,证明了模型的有效性。经过大量的试验以及对样本数据分析后,发现试验中存在部分样本虽在图像底层处理中去除掉了不影响芒果果肉的果皮黑色斑点,但当芒果果皮缺陷度小于等于0.004时,果肉腐烂度也会随之减小,果皮缺陷度对果肉质量的影响程度降低(当缺陷度大于该值时,腐烂度会随缺陷度的增大而增大,缺陷度对果肉质量的影响程度提高)。该发现造成了试验数据扰动,故部分预测点出现细微误差,但并未影响模型整体的准确性。
3.3 分级试验结果
依据中国农业行业标准(NYT3011—2016)的等级指标对芒果进行分类,见表2[11]。首先,通过芒果的规格、果形以及缺陷的大小对芒果进行人工分类,并将分类结果对应至提取的芒果果皮表面缺陷度,使芒果等级与腐烂度形成对应关系,并以此为依据,利用BP神经网络训练出的缺陷度-腐烂度模型对芒果分级,见表3。对样本数据整理分析后,拟定不同腐烂度范围芒果果肉等级的划分,见表4。
表2 等级指标
表3 部分芒果图像像素点的统计、计算与等级划分
表4 芒果果肉腐烂度等级划分表
根据表2中的等级指标人工筛选20个芒果作为参考结果,使用本文建立的缺陷度-腐烂度拟合模型预测出芒果内部腐烂程度,再结合表4中的果肉腐烂度等级划分表对芒果进行机器分级,试验结果见表5,结果表明通过本文所建立的缺陷度-腐烂度模型对芒果果肉腐烂度预测的平均正确率达到88.3%。
表5 芒果品质分级准确率
4 结 语
本文建立的芒果缺陷度-腐烂度预测模型,具备所需样本数据少、可靠性强和效率高等特点,为预测芒果内部腐烂程度提供了一种高效准确的方法。通过引入机器学习的方法对芒果果肉腐烂度进行预测,并建立预测模型对芒果进行分级筛选,经试验分析,该模型的预测准确率达88.3%,表明了该模型具有良好的准确性,在实际的生产分级过程中以及后续芒果内部的无损检测研究中具有较大的应用价值。