张思旭,徐焕良,王江波,孙云晓,王浩云*
(1.南京农业大学人工智能学院计算机系,江苏 南京 210095;2.塔里木大学植物科学学院,新疆 阿拉尔 843300)
在市场上,含有一定程度水心病的苹果甜度高,也更受欢迎。新疆阿克苏苹果以透明的果核“糖心”使其显著区别于其他产地的红富士苹果,这也是阿克苏苹果在市场上保持竞争力和独特性的原因[1]。阿克苏苹果的“糖心”本质上是苹果得了水心病而出现糖分堆积的现象,因此检测苹果的“糖心”就是检测苹果的水心病状况。在这种背景下,如果能够提出一种快速无损的检测方式来帮助果农识别所有的“糖心”苹果,那么就能有效降低因检测技术落后所造成的“糖心”苹果在分类时的损失。
水果的光学特性参数包括水果组织的吸收系数和散射系数[2]。吸收系数主要反映果蔬内部不同吸光度的溶解物等化学物质的性质和浓度,而散射系数主要与果蔬的内部结构有关。由于光在果蔬组织中传播时会经过吸收和多次散射,因此在溢出表面时能够携带出果蔬的内部品质信息。基于光学特性参数的无损检测技术在水果品质检测方面具有独特优势[3]。潘磊庆等[4]研究了基于光学特性参数进行果蔬品质检测的方法,发现该方法在果蔬品质检测应用上效果很好。基于高光谱的检测方法和基于光学特性参数的检测方法是目前光学特性检测中的主要检测方法。高光谱图像技术能够获取果蔬内部品质的光谱信息与空间信息,可以有效应用在水果的品质检测上[5-6]。高光谱系统通过点扫描、线扫描和面扫描3种方式,获取被检测果蔬的“图谱合一”的三维数据立方体。在经过图像校正和预处理等操作后,基于高光谱的检测方法,通过对所得光谱图像不同波段的特征分析,寻找光谱图像与所需检测的果蔬品质之间的关系。在获得光谱图像与果蔬品质之间的关系之后,通过机器学习等方法对图像数据进行处理,以此实现果蔬的品质检测[7]。张保华等[8]通过对不同高光谱成像特征波长下蓝莓内部品质预测效果的研究,验证了高光谱图像预测果蔬内部品质的可行性。戈永慧等[9]采用高光谱成像技术,实现了猕猴桃冷害检测。王思玲等[10]采集水心病苹果900~1 700 nm的近红外波段高光谱图像,选取图像中感兴趣区域计算平均光谱并采用支持向量机(support vector machine,SVM)进行分类,得到了最高72%的判别准确率。郭俊先等[11]测试了贝叶斯判别、主成分分析等多种识别模式的模型性能,发现所提模型能够达到91.2%的测试集识别准确率。
在目前的研究中,实际样本数据量不足且提取数据易受多种因素干扰,使模型测量精度受限。使用光子传输模拟的方法能够有效获取大量无噪声数据。刘燕德等[12]研究发现,蒙特卡罗方法在水果光学特性参数测量中效果很好。李细荣等[13]以桃子、苹果和番茄为研究对象,验证了水果内部品质与其吸收或散射系数相关联。王伟[14]研究发现,光学特性参数反演法能够减少光源处误差的引入,提高水果组织光学特性参数的反演精度。赵会娟等[15]使用微扰蒙特卡罗模型的研究结果表明,单层和双层层状组织的光学特性参数重构快速而准确。深度学习方法虽然在果蔬的光学参数反演中效果很好,但仍然会遇到模型训练时间长、训练所需要数据多等问题。迁移学习方法通过对已训练完成的模型进行微调,能够快速训练出一个适应相似情景的新模型。研究发现,迁移学习法在农产品病害识别小样本训练数据的情况下可以取得很好的识别结果[16-18];将基于迁移学习法的光学参数反演模型应用于苹果二层平板模型的效果优于其他方法[19]。徐焕良等[20]对比了点光源和面光源条件下光学参数反演的准确率,发现面光源下的反演准确率优于点光源下的准确率,并且光学参数反演可检测苹果内部品质。
由于病害果与正常苹果差异较大,两者在光谱能量吸收和散射系数上有差异,通过对苹果光谱数据差异分析可以有效分辨病果和好果。本文以新疆阿克苏苹果为样本,提出一种基于苹果光学特性参数反演的水心病检测方法,以实现苹果的水心病无损检测。
选取新疆阿克苏苹果134个,均为表面光滑、大小均匀、无明显损坏的正常样本。样本中无水心病样本94个,水心病样本40个。试验前将苹果贮存在低温环境下。数据采集前将苹果标号,并放置于常温下一段时间,使苹果样本的温度达到室温,以避免测量过程中由温度变化导致数据误差。
1.1.1 苹果面光源高光谱数据采集使用上海五铃光电科技有限公司的HSI VNIR0001型高光谱成像系统采集高光谱数据,采集波段为373.79~1 029.22 nm。该系统主要由Raptor EM285CL型高感相机、IT3900型线性卤素光导管组(150 W)、步进电机和Inspector V10E型光谱仪组成,结构如图1所示。采集的高光谱图像数据通过HSI Analyzer软件导出。由于苹果各部分与高光谱相机距离存在差异,选取苹果与高光谱相机镜头距离相同的100×100像素的部分为感兴趣区域(region of iterest,ROI)。为了减少误差影响,对采集得到的612个波段数据进行处理,前、后两端各去除50个噪声较大的波段,对保留的512个波段进行平滑处理并将结果作为实测数据。
图1 高光谱成像系统结构Fig.1 Schematic of hyperspectral imaging system structure
1.1.2 苹果水心病图片采集及分类将苹果沿赤道面切开,并对切开面拍摄,获得切面图(图2)。采用自动二值化算法,获得苹果水心病面占苹果赤道面的占比数据。根据占比(Area)对样本进行分类,分类标准如表1所示。
表1 多分类情况下各分类的标准设定Table 1 Standard setting for each category in the case of multiple categories
图2 苹果赤道面图Fig.2 Picture of apple’s equatorial plane
1.1.3 IAD迭代计算苹果3层平板光学参数采集使用上海五铃光电科技有限公司的双积分球系统,系统结构如图3所示,采集得到134个苹果样本的反射率、透射率。实测苹果果皮层样本厚度为0.25~0.35 mm,果肉层样本厚度为0.4~0.5 mm,果核层样本厚度为0.4~0.5 mm。近红外数据采集使用spectrasmart2.1.9.24566软件,可见光数据收集采用spectrasmart2.0.1.26724软件。数值扫描平均次数设置为3,boxcar宽度为10,强度修正取消。根据实测所得的苹果果皮、果肉和果核3层组织的反射率和透射率,使用反向倍加法(inverse adding-doubling,IAD)迭代计算获得苹果各层组织的光学特性参数。
图3 双积分球系统结构示意图Fig.3 Schematic of double integrating sphere
反向倍增法(IAD)是一种用来配合积分球系统求解光学参数的算法[21]。该方法可以在已知薄片样本光学参数的情况下,计算出光学特性相同但厚度不同的另一样本的光学特性参数[22]。
根据1.1.3节测量得出的苹果每层组织切片的透射率和反射率,使用IAD方法,计算苹果每层的实际光学特性参数,得出苹果组织的果皮吸收系数μa1(0.4~6.5 mm-1)、果肉吸收系数μa2(0.03~3.2 mm-1)、果核吸收系数μa3(0.01~2.7 mm-1)、果皮散射系数μs1(1.69~240 mm-1)、果肉散射系数μs2(0.01~50 mm-1)、果核散射系数μs3(0.01~30 mm-1)。从统计样本中出现次数最多的几个整数值中,选取中位数作为仿真参数的输入。
在苹果3层组织厚度设置上,实测获得果皮层厚度为0.15~0.25 mm,该层厚度设置对果核层特征提取影响度较小,故根据平均值只设置单数值为0.2 mm。实测获得果肉层厚度为37~48 mm,取均匀分布双数值,分别为40和45 mm,最终取1×6×5×5×5×5×4=30 000个光学特性参数组合,设置模拟试验的光学特性参数数值。其中,μa1分为6类,μa2和μa3分为5类,μs1和μs2分为5类,μs3分为4类,具体取值详见表2。
表2 光学参数分类Table 2 Classification of optical parameters
蒙特卡罗方法通过产生一系列随机数,构造出一个近似于实际物理过程的随机概率模型,并通过计算得出实际参数的近似值。这种方法适用性强,且在各种条件、各种精度情况下都能良好运作,使得该方法可以运用在对精度要求较高且对光源和边界没有条件限制的生物组织光子传输模型仿真上。研究表明,采用面光源入射方式比点光源入射方式检测结果更好[19]。本试验采用面光源入射方式,选择垂直入射的面光源,大小为10×10,并假定所有光子的入射方向为z轴方向。由于苹果水心病多发生在深度较深的果实心室的维管束附近,因此在建立模型时,选择使用果皮、果肉和果核的3层组织平板模型,将果核层视为厚度无限大的果肉组织层,只设置果皮和果肉层的厚度[23]。苹果3层平板模型如图4所示。
图4 苹果3层平板模型Fig.4 Three-layer tablet model of apple
在进入苹果组织后,光子每移动一个随机步长,都会因为与苹果组织颗粒发生碰撞而造成部分光子被吸收和散射,从而导致光子权重下降,权重w将按照如下函数进行更新:
(1)
式中:μa是组织的吸收系数;μs是组织的散射系数。
光子发生散射后,其新的传播方向将由方位角β和散射偏转角θ决定,计算公式[24]分别为:
β=2πε
(2)
(3)
式中:ε为(0,1)上的随机数;g为各向异性因子。
光子在移动过程中,会出现穿越边界的情况。因此,在当前步长的移动中,需要对光子的运动状态进行判断。1)对光子是否越界进行判断。如果不越界,则对光子进行吸收与散射操作,并更新权重;如果越界,则判断光子下一步是否会逃逸出苹果组织表面(简称出界)。2)对光子是否出界进行判断。如果不出界,需要判断它是折射还是反射,并更新权重;如果出界,则判断是否是最后1个光子。3)对是否为最后1个光子进行判断。如果是最后1个光子,就结束本次运算;如果不是最后1个光子,就对光子进行初始化,继续按步长进行移动。完成1个步长的移动后,光子会继续重复移动随机步长,并发生吸收和散射。最终出现2种情况,光子在果皮层边界因为反射或透射而逃逸出苹果组织,或者光子由于权重过小被苹果组织吸收。在权重值判断时,预先设定阈值权重Wend(本试验中为1×10-5),随后采用俄罗斯轮盘赌处理:先给定一个整数n,然后产生一个均匀分布的随机数ε,如果ε×n<1,则判定光子死去,否则将光子的权重重设为n×w,继续进行下一个步长的移动。
通过蒙特卡罗法模拟光子溢出苹果表面时的光亮度图,设置各向异因子g为0.9,空气折射率n1为1,果皮折射率n1、果肉折射率n2、果核折射率n3均为1.38,模拟光子数设置为2×105。代入苹果3层组织光学特性参数,可以模拟出的模拟光亮度图如图5所示。
图5 模拟苹果光亮度图Fig.5 Simulate apple brightness map
基于光学特性参数反演的苹果水心病检测方法,模型先使用模拟数据提取果核层特征,然后将所训练模型迁移至实测数据集来完成实测条件下苹果水心病状况的检测。该方法包括基于卷积神经网络的方法和基于迁移学习的方法。其中,基于卷积神经网络的方法利用模拟光亮度图作为输入,苹果果核层光学特性参数分类作为输出,训练模型并提取果核层的特征。由于苹果水心病状况需要使用实测数据进行检测,而从蒙特卡罗法模拟的仿真光亮度图中只能提取模拟数据下的苹果果核层光学特征,因此,还需通过迁移学习,将使用模拟数据学习得到的果核层特征与实测数据下该特征对应的水心病状况进行关联。方法的技术路线如图6所示。
基于迁移学习的方法,将通过蒙特卡罗模拟获取的仿真光亮度图亮度矩阵作为输入,使用卷积神经网络提取苹果果核层的特征。由于果核层深度较深,能有效携带出果核层特征的光子数量较少。为了尽可能多获取苹果果核层组织的光学特性参数特征,迁移学习模型训练时将表2中μa3和μs3组合的5×4=20分类改为3×2=6分类,以达到提高果核层特征提取的效果。其中,μa3中将5、20、34、40、50 mm分别合并为一类,μs3中5、10、15 mm合并为一类,30 mm为单独一类。在完成特征提取后,保存该已训练好的模型并迁移至实测的苹果表面高光谱数据上。在模型微调时,考虑到苹果水心病状况与果核层的光学特性参数关联很大,在微调时不额外增加卷积层,只对全连接层的输出进行调整,将分类设置为实测数据所对应的水心病状况分类,随后再次对微调后的模型进行训练,完成对苹果水心病状况的检测。
迁移学习模型结构如图7所示,其中迁移学习模型包括3层卷积层、1层池化层、1层Dropout层和1层全连接层。由于仿真光亮度矩阵中边缘部分多为0,且对比原始100×100矩阵中的(30,70)、(35,65)、(40,60)在实际训练中的结果,选取训练较好的(35,65)的30×30像素的苹果仿真光亮度矩阵作为输入,通道数为1。第1层卷积层的卷积核大小为3×3,通道数为40,步长为1;第2层池化层的窗口大小为2×2;第3、4层的卷积核大小均为2×2,步长均为1,通道数分别为30和20,卷积层使用Swish作为激活函数。Dropout层的数值设置为0.5,以减少过拟合带来的影响。全连接层是一维的1×40向量,最后一层为网络输出层,完成对μa3和μs3的组合分类,实现对苹果果核层的特征提取。
图7 神经网络结构模型Fig.7 Convolutional neural network structure diagram
将实测的新疆阿克苏苹果高光谱数据和果皮、果肉、果核层的反射率和透射率作为输入,使用蒙特卡罗法反演出苹果的模拟光学特性参数,旨在利用这些数据建立不同的模型,对苹果水心病状况进行检测,并对比结果,验证基于光学参数反演的苹果水心病检测方法的可行性和优越性。结果分为二分类、三分类和四分类3种情况,对比模型为使用特征提取的SVM模型和卷积神经网络模型。3种模型在实测数据预测时均采用1.1.1节的实测数据作为输入。
基于特征提取的SVM分类方法的训练环境采用Python3.8软件完成。硬件环境为AMD Ryzen 9 5900HX with Radeon Graphics 3301 Mhz,NVIDIA GeForce RTX 3060显卡。计算得到输入数据光谱平均值后,使用主成分分析(principal component analysis,PCA)进行特征提取,提取出贡献率达到99%的特征波段,提取后的维度为6。完成特征提取后,按照3∶1的比例划分训练集和测试集,使用SVM支持向量机进行苹果水心病有无的二分类模型训练。进行三分类时,采用一对一策略(one versus one,OVO),在每2个分类之间构建一个SVM分类器,对样本进行三分类训练。
光学特性参数反演模型的迁移学习训练部分在Python3.8、Tensorflow 2.3.0软件环境下完成。硬件环境同上。迁移模型将利用蒙特卡罗模拟方法反演得到的30 000个仿真光亮度图亮度矩阵作为输入,按照28 000∶2 000的比例划分训练集与测试集进行模型训练。批次大小为256,学习率为0.000 1,迭代2 500次完成训练。
在迁移学习时,实测数据以3∶1的比例随机划分训练集和测试集。为降低相邻波段高光谱图像差异性较小对模型的影响,实测数据每4个波段选择1幅高光谱图像,最终得到134个苹果的134×(512/4)=17 152幅实测图像,每幅图像尺寸为30×30像素。对预训练模型的全连接层进行微调,查看微调的结果。迁移学习模型和非迁移学习模型的预测结果均采用150次迭代后的数据。
使用卷积神经网络方法,采用与迁移学习模型相同的训练模型,实测数据以3∶1的比例随机划分训练集和测试集,使用实测数据作为输入,苹果水心病状况作为输出,卷积神经网络各层参数设置与迁移学习模型相同。
苹果样本高光谱图像的512个波段的数据经过S-G平滑处理后得到的平均光谱曲线如图8所示。S-G平滑减少了光谱曲线中随机噪声的影响,保留了数据特征,使得曲线平滑并易于后续的特征学习。二分类和三分类下不同核函数对应的SVM模型预测结果如表3所示,惩罚系数设置为0.5。由表3可见,使用Rbf核函数的效果最好,在二分类下预测精度达到73.1%,与其他核函数相比提高2%以上。
表3 不同核函数下SVM模型的预测结果Table 3 Prediction results of SVM model under different kernel functions
图8 高光谱曲线Fig.8 Hyperspectral curve
卷积神经网络方法的卷积层激活函数和全连接层激活函数在不同设置下对苹果水心病预测的准确率如表4所示,全连接层的激活函数选用Swish。由表4可知,卷积神经网络模型中,选择Swish函数作为卷积层的激活函数,在二分类、三分类和四分类下对苹果水心病预测的准确率分别达到92.8%、90.3%和89.6%,相较于其他激活函数在二分类下的测试集精度提高了4.3%以上。
基于光学特性参数反演方法中不同卷积层激活函数,苹果水心病预测的准确率如表5所示。迁移学习结果与直接使用卷积神经网络模型的结果相似,Swish函数的预测精度均为最高值。Swish函数下迁移学习模型的预测准确率在二分类、三分类和四分类下分别达到94.3%、93.9%和93.5%,相较于其他激活函数在二分类下的测试集精度提高了4%以上。
表5 迁移学习模型参数设置及结果Table 5 Transfer learning model parameter settings and results
不同分类条件下,采用最优参数组合得到的训练集和测试集的准确率如表6所示。基于光学参数反演的检测方法在多种分类情况下,苹果水心病的检测准确率都达到了90%以上。基于卷积神经网络的检测方法分类准确率在各分类下都略低于基于光学参数反演的检测方法,并且准确率差距随着分类的增加不断扩大。基于高光谱特征和支持向量机的检测方法效果最差,在二分类和三分类情况下都低于卷积神经网络的检测方法和基于光学参数反演的检测方法。
随着分类细化,3种方法的分类准确率都呈现下降趋势,基于SVM的方法从二分类的73.1%降至66.7%,卷积神经网络方法从二分类的92.8%降至89.6%,基于光学参数反演的方法从二分类的94.3%降至93.5%。造成基于光学参数反演方法和基于卷积神经网络方法分类准确率降幅较小的原因,是两种方法对于特征提取效果较好,而基于SVM的方法特征提取不足,预测时分类准确率不如以上两种方法。
在测试集的损失比较中可以发现,卷积神经网络测试集的损失从二分类的0.235上升至0.317,基于光学参数反演方法的测试集损失从0.157上升至0.192。两者的损失均呈现上升趋势,各分类条件下基于光学参数反演方法的损失及损失增幅均低于基于卷积神经网络方法。这可能是由于基于光学参数反演的方法,对模拟数据的学习能够得到更多的特征,迁移至实测样本中检测效果更好。
传统的苹果水心病检测方法大多使用SVM、卷积神经网络等模型对苹果实测高光谱数据进行分析,其检测精度易受到实测样本数量限制和检测噪声的影响。相较于上述方法,本文所提检测方法模拟了光子在苹果组织内部的传输轨迹,用模拟数据扩充了实测数据集,并利用迁移学习保证了所提取高光谱特征的有效性。徐焕良等[19]使用曲面苹果模型贴合苹果实际情况,能够更高精度的模拟苹果组织内部光子的运动轨迹,但是模型复杂度较高,计算速度较慢。而本文所提方法为了降低模型训练时间和训练复杂度,选择将曲面模型简化成平板模型,降低了模型训练时间和复杂度,但是在检测精确度上稍有劣势。徐焕良等[20]使用苹果果皮和果肉2层平板模型,实现了通过光学特性参数反演预测苹果的糖度和硬度的目标。本试验检测的目标为苹果水心病状况,因此对文献中的方法进行改进,将2层平板模型扩展为包含果皮、果肉和果核的3层平板模型,通过提取与水心病相关的高光谱特征,实现苹果水心病更高精度地预测,预测效果较好。本文所提方法目前只应用于苹果水心病检测,未来需要在其他种类水果的品质检测中进一步验证和完善。