姜凤利,沈殿昭,杨 磊,陈 毅,孙炳新
(1.沈阳农业大学信息与电气工程学院,辽宁 沈阳 110866;2.沈阳农业大学食品学院,辽宁 沈阳 110866)
双孢蘑菇(Agaricus bisporus),又名白蘑菇或纽扣蘑菇,是世界上栽培、产量及消费最多的食用菌之一[1]。新鲜的双孢蘑菇色泽洁白、质地脆嫩而有弹性,具有丰富的营养价值[2]。双孢蘑菇属于呼吸跃变型,采后极易变软腐烂,通常采后常温下双孢蘑菇1~3 d就会出现失水、开伞或者褐变,冷藏可贮藏5~10 d,因此其货架期较短[3]。此外,双孢蘑菇具有薄且多孔的表皮结构同时又缺乏保护组织,属于典型的机械损伤或瘀伤高敏感性作物[4]。在流通过程中要经历长时间的振动胁迫,导致双孢蘑菇产生不同程度的机械损伤。严重的外部损伤可通过机器视觉技术等手段进行检测。姜凤利等[5]基于机器视觉设计了双孢蘑菇大小、残缺以及褐变在线分级系统,对200个蘑菇进行分级,准确率达到96.45%。然而轻微损伤难以在第一时间显现,而是随着时间通过酶促褐变的方式逐渐表现出来,然后瘀伤部位可能会发生组织恶化,并最终导致腐烂变质等,进而加速同批次正常蘑菇的腐烂进程[6],因此传统的机器视觉技术无法检测双孢蘑菇内部损伤。据报道,我国每年生产的果蔬从田间到餐桌的损失率高达30%以上,而一些发达国家只有17%左右[7-8],相比于大多数具有保护层的果蔬,双孢蘑菇损失率更高。因此,为了减低贮藏与货架期间的损失,应尽早的识别并剔除产生机械损伤的问题蘑菇。
高光谱成像技术结合了传统的成像和光谱学技术,可在一系列波长上从被测对象中获取空间和光谱信息,在果蔬内部缺陷和微观损伤检测方面具有较好的灵敏度,如苹果[9-10]、马铃薯[11]、桃子[12]、猕猴桃[13]、橙子[14]、蓝莓[15]等均具有较高的检测精度。Siedliska等[9]利用高光谱成像技术对瘀伤苹果进行识别,建立的瘀伤识别模型,预测精度可达95%以上。Ye Dandan等[11]提出了一种基于高光谱成像技术的马铃薯瘀伤检测方法,采用优化的模拟退火算法进行光谱数据降维,最终对瘀伤马铃薯的检测精度可达100%。Li Jiangbo等[12]发现短波近红外成像模式对桃子的早期瘀伤检测具有很好的效果,基于形态梯度重建和标记提取对分水岭分割算法进行了改进,并将其应用于多光谱图像,识别精度为96.5%。迟茜等[13]采用主成分分析优选4个特征波长,结合均值滤波、阈值分割和形态学等图像处理方法对完好无损和隐性损伤1~3 h的猕猴桃进行识别,平均正确识别率可达97.9%。Fan Shuxiang等[15]分别利用特征波段和波段比图像结合最小二乘支持向量机对机械损伤后30 min、2 h、6 h和12 h的蓝莓进行识别,基于两种方法的瘀伤蓝莓总体识别率分别为98%和95.9%,表明蓝莓损伤30 min后即可检测,也显示出波段比图像在线检测的巨大潜力。
本研究以双孢蘑菇为研究对象,采集室温条件下不同振动胁迫时间的新鲜蘑菇高光谱信息,融合光谱和纹理特征,结合化学计量学方法,对双孢蘑菇的早期机械损伤进行快速预测和判别。
双孢蘑菇采购自农贸市场。将双孢蘑菇进行分拣,挑选菇体完整、颜色洁白、菇盖未开伞、子实体大小基本一致(直径30~35 mm)、无病虫害和无机械伤的双孢蘑菇进行实验。将双孢蘑菇分成3 组,其中2 组放在泡沫箱内,并固定在模拟汽车运输振动台(昆山市顺诺仪器有限公司),以300 rad/m速率进行模拟振动,时间分别持续60 s和120 s,以制备不同损伤程度样本,未振动组作为完好双孢蘑菇样本,其RGB图像如图1所示。振动结束后,取双孢蘑菇样品180个,每组60个,6个/盒双孢蘑菇放置于BOPP托盒中(223 mm×133 mm),用低密度聚乙烯膜完成封合,对样本逐个编号,在室温(20±2)℃条件下采集每个样品的高光谱图像。
图1 双孢蘑菇样本Fig. 1 Intact and damaged samples of Agaricus bisporus
高光谱成像系统如图2所示,包括高光谱成像光谱仪(ImSpector V10E),面阵CCD相机(IGVB1410M),精密位移控制平台(IRCP0076-1),暗箱(120 cm×50 cm×140 cm),两个150 W的光纤卤素灯(3900-Illuminatior)和一台计算机(DELL Vostro 5560D-1528)。高光谱相机的曝光率调整为17,镜头与样本之间的距离为320 mm,高光谱成像系统的光谱采集波长范围为400~1 000 nm,光谱分辨率为1.27 nm,一共472个波段。
图2 高光谱成像系统Fig. 2 Schematic of hyperspectral imaging system
1.3.1 高光谱图像采集和校正
双孢蘑菇图像采集前调整高光谱成像系统,调整镜头光圈确定合适焦距,将双孢蘑菇样本6个按照2 排3 列摆放在位移台上。为确保图像不失真,位移台速率控制在1.2 mm/s。
采集高光谱图像时,由于暗电流的存在会使光源强度不均匀从而导致高光谱图像产生噪声,因此需要对高光谱图像进行黑白板校正,首先扫描标准白色校正板(反射率接近100%)得到全白的标定图像RW;然后,关闭光源并盖住镜头得到全黑的标定图像RB(反射率接近0%);最后按照式(1)计算得到校正后的高光谱图像RC以消除噪声。
式中:R0为双孢蘑菇原始高光谱图像。
利用软件ENVI 5.2(美国Exelis VIS公司)提取100像素×100像素感兴趣区域(region of interest,ROI)高光谱数据,将ROI内所有光谱信息的平均值作为对应反射光谱值。
1.3.2 颜色测定
采用色差仪(CM-2300d 柯尼卡美能达)测得双孢蘑菇菌盖的L、a、b值。其中L值反映蘑菇的亮度;a值正值代表偏红,负值代表偏绿;b值正值代表偏黄,负值代表偏蓝[16]。在蘑菇菌盖随机取3个点进行测定并取平均值。按照下式计算褐变程度[17]:
1.3.3 高光谱数据预处理
由于原始光谱中含有较多的背景噪声信息,本研究采用SG(Savitzky-Golay)平滑、多元散射校正(multiplicative scatter correction,MSC)、标准正态变量变换(standard normal variate,SNV)对原始光谱信息进行预处理。
1.3.4 特征波长提取
由于全光谱含有472个波段,数据量庞大,波段之间相关性导致共线性和大量冗余信息的产生,从而影响后期数据处理。为减少计算量提高建模效率,采用连续投影算法(successive projections algorithm,SPA)和竞争性自适应权重采样算法(competitive adaptive reweighted sampling,CARS)进行特征波长提取,实现数据降维。
SPA是一种使矢量空间共线性最小化的前向变量选择算法,它的优势在于提取全波段的几个特征波长,从而消除原始光谱矩阵中冗余信息[18]。
CARS是一种基于蒙特卡洛采样和PLS回归系数的特征波长选择算法[19],通过自适应重加权采样技术选择出PLS模型中回归系数绝对值大的波长点,去掉权重小的波长点,利用交互验证选出交叉验证均方根误差(root mean square error of cross valibration,RMSECV)值最低的子集,从而有效寻找出最优的变量组合。
1.3.5 纹理特征提取
通过灰度共生矩阵提取特征波段图像纹理参数[20-21]。纹理特征反映了物体表面的固有特征,比如褶皱、病斑等。本研究选用能量、对比度、相关性、均匀度4个纹理特征在0°、45°、90°和135° 4个方向共16个特征值作为后续判别模型的输入矢量。
1.3.6 建模方法
偏最小二乘判别分析(partial least squaresdiscriminant analysis,PLS-DA)是一种线性建模方法,结合了主成分分析和多元线性回归分析的优点,能够在自变量存在严重多重相关性的条件下进行回归建模[22-23]。
BP(back propagation)神经网络是一种按误差反向传播算法训练的多层前馈网络,包括输入层、隐含层和输出层,具有出色的非线性映射能力,是应用最广泛的神经网络模型之一[23-24]。
极限学习机(extreme learning machine,ELM)是一种前向传播的神经网络,具有学习速率快和训练误差较小等优点。与BP神经网络不同的是,它可以随机产生连接权值和隐含层的偏置矩阵,因此学习速度更快[24]。
对于分类问题,本研究采用正确率进行评价,正确率为预测正确的结果占该类样本总数的百分比。
双孢蘑菇颜色直接影响消费者购买意愿,是双孢蘑菇在采后最直观的品质参数,其变化程度可由白度L值和褐变度反映[25]。L值越低表明蘑菇颜色越暗,褐变度值越大表明蘑菇褐变越严重。L值变化范围从0~100,L=0为黑色,L=100为白色,L值大表示偏白,L值小表示偏黑;L值在86及以上为品质好的蘑菇,L值在80~85之间为较好的蘑菇,L值在70~79之间为较差蘑菇,L值低于69的蘑菇则没有食用价值[26]。
表1 振动时间对双孢蘑菇色泽的影响Table 1 Effect of vibration time on the color of A. bisporus
从表1可以看出,随着振动时间的延长,蘑菇菌盖的亮度L值逐渐下降,颜色值a、b愈加发黄、发红,体现出双孢蘑菇的颜色值随着振动时间的变化而变化。与蘑菇亮度L变化趋势相反,褐变度持续升高,这可能是因为振动处理加剧膜脂过氧化作用,细胞膜透性升高,导致细胞膜结构破坏,使酚类物质与褐变相关酶广泛接触并反应,从而加剧了褐变的发生。综上所述,说明振动胁迫会加速双孢蘑菇白度值下降和褐变。
图3为不同振动时间双孢蘑菇平均光谱曲线,可以看出,原光谱数据在400~450 nm和900~1 000 nm波段范围内存在较大噪声,为了保证后续模型的分类正确率,选择450~900 nm范围内的光谱数据进行后续研究。不同振动时间蘑菇平均反射率光谱曲线显著不同,振动120 s的平均光谱反射率最低,完好无损的最高,表明光谱反射率与L值有关,L值越大,蘑菇表面越明亮,光谱反射率越大,即随着褐变度的增加,双孢蘑菇反射率下降明显。进一步分析,光谱在450~750 nm波段不同损伤程度的双孢蘑菇反射率差异明显。
图3 双孢蘑菇平均光谱反射率Fig. 3 Average spectral reflectance of Agaricus bisporus
为了提高光谱数据的信噪比,分别采用SNV、SG以及MSC对原光谱进行处理,原光谱曲线以及3种方法处理后光谱曲线(取3种样本各10个光谱数据)如图4所示。
图4 不同预处理方法的光谱曲线Fig. 4 Spectral curves with different pretreatments
观察不同预处理后光谱曲线可以发现,SG预处理后,将完好无损、振动60 s和振动120 s的光谱曲线值区分更为明显,3种类型光谱曲线数值分别集中在(0.8, 1.0)、(0.4, 0.6)和(0.1, 0.3)范围内,因此SG方法对蘑菇光谱数据预处理效果较好。SNV预处理后光谱曲线数值集中在(-2, 1)范围内,光谱曲线杂乱不易区分,SNV预处理后光谱曲线数值在(0.4, 1.0)范围内,光谱曲线重叠严重,这将不利于后续双孢蘑菇损伤类别建模。为进一步验证上述结论,将原始光谱数据和3种预处理方法后的光谱数据分别作为PLS-DA模型的输入,将完好无损、振动60 s和振动120 s的双孢蘑菇样本分别赋虚拟值0、1、2,作为模型的输出。不同预处理方法的检测结果如表2所示。
表2 不同预处理方法建模结果Table 2 Results of modeling with different pretreatment methods
从表2可以看出,经过不同预处理方法后,分类模型的效果有很大差异,其中SG预处理后的建模效果最好,训练集和测试集分类正确率分别达到91.11%和84.44%,因此后续研究均采用SG平滑方法处理实验数据。
2.4.1 特征波长提取
为提高建模精度,提取共线性最小、冗余最少的波长,分别采用SPA和CARS算法提取与双孢蘑菇损伤程度相关性最大的特征波长。采用SPA提取特征波长个数与RMSECV对应关系如图5a所示,可见选择的特征波长个数为5时,RMSECV值最小为0.191。最终提取出的5个特征波长依次为465、495、512、540、616 nm,如图5b所示。特征波长主要集中在500~650 nm之间,主要是由于该波段范围对应可见光谱的黄色及黄绿色[27],振动胁迫导致双孢蘑菇表面颜色逐渐变黄,因此随着褐变度增加光谱反射率呈下降趋势。
图5 SPA提取特征波长分布Fig. 5 Distribution of characteristic wavelengths selected by SPA
图6 CARS提取特征波长分布Fig. 6 Distribution of characteristic wavelengths selected by CARS
从图6可以看出,CARS在第59次采样时,获得的变量子集建立的PLS模型RMSECV最小,因此,该子集定为关键变量子集,共包含8个变量。提取的特征波长依次为451、475、484、492、518、545、655、798 nm。与SPA相似,CARS提取的特征波长主要集中在500~650 nm附近范围内,除此之外,798 nm波段主要与蘑菇水分含量有关[28],由于蘑菇受振动胁迫时间较短,因此水分变化并不明显。
2.4.2 纹理特征提取
通过观察发现,双孢蘑菇表面受振动胁迫后出现褐变、褶皱,与完好无损的纹理特征存在较大差异,所以采用灰度共生矩阵描述图像纹理信息的有效特征,并进行双孢蘑菇损伤程度判别。进一步通过观察和分析全波段下的每个灰度图,发现3种不同损伤程度蘑菇样本在500 nm波段下的灰度图的纹理特征差别最为明显,如图7所示,因此本研究采用500 nm波段下的灰度图作为特征图像进行感兴趣区域提取。从180个双孢蘑菇样本灰度图中提取240×240大小感兴趣区域图像作为纹理图像,根据纹理特征参数提取方法提取纹理特征值。
图7 500 nm波长处不同损伤程度双孢蘑菇图Fig. 7 Images of white button mushrooms with different damage degrees at 500 nm
2.5.1 基于光谱特征的判别模型
实验将3种不同损伤程度的每类60个样本按照3∶1划分训练集和测试集,即每类45个样本作为训练集,15个样本作为测试集。然后基于SPA、CARS特征集以及全波段光谱数据作为输入,分别建立PLS-DA模型、BP神经网络和ELM模型,对不同损伤程度的双孢蘑菇进行分类识别。经过多次测试与验证,BP神经网络算法设置神经元个数为9,迭代次数为1 000,学习率为0.01,采用sigmoid作为激活函数;ELM模型设置隐含层节点个数为15,激活函数同样采用sigmoid。
表3 双孢蘑菇不同损伤程度检测结果Table 3 Results of detection of white button mushrooms with different damage degrees
从表3可以看出,3种识别模型对完好无损、振动60 s、振动120 s的双孢蘑菇识别效果存在较大差异。从3种模型的检测结果看,在训练集和测试集中,SPA提取特征波长效果均优于CARS,可能是由于CARS特征提取算法选择的波长与双孢蘑菇振动损伤相关性较小,而SPA对于消除原始光谱中的冗余信息效果更为突出。此外,SPA-PLS-DA分类识别率最高,训练集和测试集的平均识别率分别为93.33%和91.11%,SPA-BP模型识别率次之,训练集和测试集平均识别率分别为91.11%和88.89%,可能是因为BP神经网络在训练时神经元反向传递学习过程中,易陷入局部最优解。ELM识别模型分类效果差于PLS-DA和BP,训练集和测试集平均识别率分别为82.96%和71.11%,原因可能是ELM模型权重和偏置在后续训练中不进行更新,使其陷入局部最小值,无法获得最优解。
2.5.2 基于纹理特征的判别模型
对180个双孢蘑菇提取纹理特征,训练集分别由完好无损、振动60 s和振动120 s的双孢蘑菇各45个组成,测试集各15个组成。采用PLS-DA、BP和ELM模型对不同损伤程度的双孢蘑菇进行识别检测,结果如表4所示。
表4 基于纹理特征的模型判别结果Table 4 Results of discrimination of models based on texture features
从表4可知,与光谱特征判别模型一致,基于纹理特征判别模型的准确率高低依次为PLS-DA、BP和ELM。PLS-DA识别模型在训练集和测试集中,完好无损双孢蘑菇识别正确率均在90%以上,振动60 s类型、振动120 s类型双孢蘑菇识别正确率均低于90%;BP判别模型的分类效果不理想,训练集和测试集中,3 类双孢蘑菇识别正确率均在90%以下,尤其是测试集中,振动60 s双孢蘑菇识别正确率为53.33%。ELM判别模型平均分类正确率最低,训练集和测试集中仅有振动120 s类型双孢蘑菇识别正确率在80%以上。以上建模结果表明单从外部纹理特征建模并不能准确表达蘑菇的内部信息,识别效果不理想。
2.5.3 基于光谱-纹理特征融合的判别模型
光谱特征能够表征双孢蘑菇的内部品质,纹理特征更多表现的是蘑菇的外部特征[29-30],为更好地表征振动胁迫对双孢蘑菇品质变化的影响,本研究将从高光谱图像数据中提取的16个纹理特征变量与SPA算法提取的5个光谱特征变量信息融合在一起构建PLS-DA判别模型,判别结果如表5所示。
表5 基于信息融合的PLS-DA模型判别结果Table 5 Results of discrimination of PLS-DA model based on information fusion %
从表5可以看出,训练集的3种不同损伤程度的双孢蘑菇识别正确率均为97.78%,测试集的完好无损类型和振动120 s类型的双孢蘑菇识别正确率为100%,振动60 s类型识别正确率为86.67%,总体识别率为95.56%。
图8 混淆矩阵Fig. 8 Confusion matrix
从图8可以看出,测试集的振动60 s出现了识别错误的情况,振动60 s被识别成振动120 s和完好无损类型各1个,识别错误的原因可能是振动60 s类型的部分样本与之相邻两类样本的纹理特征差异较小,且光谱特征区分不够明显,导致测试集发生误判的情况。
通过3种特征集建模结果比较,光谱-纹理融合信息建模结果最优,可能是不同振动时间,在较短时间内表征内部特征的光谱信息变化不明显,而表征外部特征信息的纹理特征变化更为显著,因此结合内外品质信息能更好地反映双孢蘑菇品质变化[24-25]。
分析并比较SG、MSC和SNV作为高光谱数据预处理方法的建模效果,确定SG为预处理最佳方法。将处理后的数据采用SPA、CARS方法提取特征波长。基于特征波长下的光谱数据以及全波段光谱数据建立PLS-DA、BP神经网络以及ELM分类模型,最终确定SPA-PLS-DA模型分类效果最好,训练集和测试集总体识别率分别为93.33%、91.11%。
利用灰度共生矩阵提取500 nm波段下双孢蘑菇纹理特征参数16个,基于特征值建立双孢蘑菇图像信息的PLS-DA、BP神经网络以及ELM分类模型,通过分析实验结果,确定PLS-DA为最佳分类模型,其中训练集和测试集总体识别率分别为88.89%、86.67%。相比光谱建模效果稍差。
融合光谱特征和图像特征,建立PLS-DA双孢蘑菇分类模型,训练集和测试集总体识别率分别为97.78%和95.56%。预测效果优于单一信息建立的判别模型。结果表明,采用光谱-图像融合信息建模可以提高双孢蘑菇损伤程度检测精度。