郑晓玲,汤仪平,徐丽平,苏伟君,许明明
新鲜程度是评价鸡蛋和蛋制品质量的重要因素,也是食品工业、消费者评估营养价值和食品安全的最相关指数[1-4].所以在鸡蛋加工、包装中,鸡蛋品质的检测和分级处理尤为重要.测定鸡蛋新鲜度的方法可分为有损检测法和无损检测法.有损检测法包括感官评价和理化指标(Haugh单位、pH值、蛋黄指数和挥发性盐基氮等)测定,该类方法较为耗时且测试样本不能重复使用,因此只能测试少数的样本.而无损检测法,如基于光谱学、高光谱图像、介电特性、机器视觉等技术的检测方法,具有便捷、无需剥壳预处理、适合用于在线检测等优点[5-8],在国内外得到了广泛的关注.其中利用机器视觉技术的无损检测方法具有智能、数据客观、所需的实验设备简单、实验成本低等优点,检测技术方便投入使用,近年来在禽蛋检测领域得到广泛的关注[9-11].TURKOGLU[12]提出一种基于深度学习的实时机器视觉系统,使用预先训练的残差网络模型提取深层特征,然后将获得的特征输入双向长短期记忆(BiLSTM),用于检测鸡蛋表面的裂纹、污渍、血迹.实验结果表明,所提模型的准确率达到了99.17%.GUANJUN等[13]提出了利用机器视觉检测鸡蛋裂纹的方法,但没有对鸡蛋的新鲜度和等级进行分析.SUN等[14]提出的使用机器视觉的鸡蛋新鲜度测定法优点是可以进行动态测量,然而,这种方法在测量过程中也存在由机械振动引起的误差.此外,该系统在监测鸡蛋新鲜度的同时没有进行分级评估.SOLTANI等[15]提出的使用机器视觉确定鸡蛋新鲜度的方法优点是系统结构简便,可以通过多种方式测量新鲜度,然而该系统缺乏对鸡蛋分类的研究.刘莹莹等[16]通过图像处理技术测量鸡蛋的蛋黄特征、气室高度、长轴短轴,基于SPSS数据分析,采用深度置信网络建立预测模型,预测模型相关系数为0.942和0.925,预测正确率达93.3%,但未对不同物理特征的鸡蛋进行分组处理,且图像采集装置较为简单.颜延玉[17]运用深度学习相关分类算法,设计了双通道卷积神经网络CNN分类方法和通道加权与联合监督的CNN分类算法,分别对5日和9日胚胎鸡蛋进行训练分类,该方法具有较强的泛化性和较高的检测准确率.梁丹等[18]提出一种基于机器视觉的鸡蛋内外品质检测分级系统,具有成本低、准确率高、检测速度快的优点,但存在由于鸡蛋表面污渍导致的误检.赵祚喜等[19]利用机器视觉技术,结合深度学习网络深层次特征提取、高精度检测分类的特性,提出一种基于YOLOv4网络的破损鸡蛋检测方法,在鸡蛋生产线移动速度为5~6 m/min时,识别正确率平均为84.91%.
从国内外研究现状可以看出,基于机器视觉的鸡蛋品质检测技术具有很好的应用价值.但是在系统的智能化程度及新鲜度实时等级分类方面的研究还有待提升.为了客观、方便、无损地对鸡蛋的新鲜度进行智能分级,本文提出了一种基于机器视觉技术的鸡蛋新鲜度智能评估和分级的方法,该方法基于实时重量和密度测量,在对鸡蛋新鲜度无损测量的同时进行分级,能够实时智能地检测鸡蛋的重量、横纵径、体积、密度等参数.该方法具有无损无创、低成本、简单方便、数据客观的优点,可应用于禽蛋养殖场的规模化在线检测,并且可拓展应用到其他农产品的自动化检测与分级.
鸡蛋新鲜度智能检测系统的整体结构如图1所示.
图1 鸡蛋新鲜度智能检测系统整体结构
首先利用电子秤测量重量,机器视觉系统采集并处理电子秤显示屏图片,利用模板匹配算法识别数字,自动读取重量数据.其次采集鸡蛋图像,并利用图像处理算法获取鸡蛋图像轮廓二值图及尺寸,建立模型测算鸡蛋的外部形状参数(纵径、横径)确定体积;最后根据重量和体积计算鸡蛋密度,根据密度值进行鸡蛋新鲜度分级.系统可进行图像拍摄、数据读取、尺寸测量、计算、分析、记录和显示数据,计算机屏幕上显示图片、重量、长度、宽度、体积、密度和鸡蛋新鲜度(储存时间)等级等信息.
用于实验的鸡蛋样品来自泉州市滨城农贸市场,分为两个子集:模型集和测试集.模型集为同一时间产出的87枚新鲜鸡蛋,用于实验建模;测试集为存放时间不同的40枚鸡蛋,用于测试系统新鲜度分级的准确性.由于样本鸡蛋的大小存在差异,不同大小的鸡蛋初始密度值不同,为了研究不同大小鸡蛋新鲜度和密度的变化关系,按照我国商务部发布的鲜鸡蛋、鲜鸭蛋分级标准(SB/T 10638-2011),将鸡蛋样本根据重量分为XL、L、M、S共4个组,XL组:大于68 g;L组:大于58 g小于等于68 g;M组:大于48 g小于等于58 g;S组:大于43 g小于等于48 g.
将87枚模型集鸡蛋样本根据重量分为4组:XL组(17枚鸡蛋)、L组(29枚鸡蛋)、M组(26枚鸡蛋)、S组(15枚鸡蛋).使用电子秤称量模型集样本的重量,并将结果显示在电子显示屏上,分别记录人工读取与机器视觉系统智能读取的结果.其中机器视觉系统智能读取的步骤包括:摄像头拍摄电子显示屏照片并传输给计算机,计算机的图像处理系统对图像进行滤波、均值化、二值化等处理,并自动分割出字符,利用模板匹配算法(算法流程如图2所示)识别显示屏的数字,自动获取并储存称量的鸡蛋重量数据,重量自动读取过程如图3所示.
图2 模板匹配算法流程图
图3 鸡蛋重量自动读取过程图
首先采用游标卡尺测量并记录模型集鸡蛋的横径与纵径;摄像头拍摄鸡蛋图像并传输给计算机,然后机器视觉系统读取图像信息并建立模型测量其横径与纵径.系统的硬件组件包括暗箱、光源、工业摄像头、数据传输设备和计算机.采用合适的照明方式可以使得样品周围的光线分布均匀,消除环境噪声对图片质量的影响,获得准确的测量数据,因此需根据待检测对象的特点进行光场设计.由于鸡蛋表面有许多不平整的微小凸起与凹陷,这些凸起与凹陷在图像中会以噪声类信息的形式出现,增加后续图像处理算法的计算量[20],在获取图像时应弱化鸡蛋表面的不平整特征,突出鸡蛋的外形轮廓,因此采用背光照明方式,摄像头和光源分别位于被检测物体的两侧,避免因使用正面照射产生的反射造成虚影,损失像素,导致精度降低.系统的光源选用环形LED灯,并且为了减少外界环境光线对图像采集的影响,制作了一个20×20×30 cm3的黑色矩形盒作为图像采集暗箱(图4).盒子顶部的两侧分别安装了维视图像公司12068W的环形LED灯和CMOS工业摄像头(型号MV-EM500M),摄像头通过千兆以太网络将采集到的图片传输给计算机.
图4 照明方式示意图
鸡蛋外形尺寸测量的图像处理算法步骤为:①读取摄像机拍摄的鸡蛋样本图像.②将图像转换为灰度图像,采用高斯滤波算法滤除噪声.③将图像二值化,并进行形态学处理,获取完整鸡蛋外形.④采用寻找最小外接矩形法确定鸡蛋图像的纵径LM和横径BM(图5,图6).⑤建立并分析鸡蛋图像与实测横纵径值的一元线性回归模型.⑥根据横纵径计算鸡蛋体积,利用标准椭球体体积估算禽蛋的体积[21-22],计算公式为:
图5 不同放置角度的鸡蛋图像最小外接矩形检测图示
图6 最小外接矩形法测量鸡蛋图像纵径LM和横径BM算法流程
式中:V为体积(mm3),L为纵径,B为横径.
以机器视觉法测量的鸡蛋图像纵径LM和横径BM为自变量,游标卡尺测量的鸡蛋实际纵径L和横径B为因变量,对横纵径分别作一元线性回归分析,得到鸡蛋的横纵径模型为:
模型的相关性和显著性结果见表l.
表1 模型的显著性分析
当显著性水平α=0.05时,无论是对纵轴还是横轴的测算,所建立的一元线性回归模型都具有较高的显著性,且系统测算和实测的横径、纵径值的相关系数分别为0.914 8和0.936 3.
在获取鸡蛋重量与形状信息后计算鸡蛋的密度,公式为:
其中:ρ为密度,m为质量,V为体积.
连续30天每天同一时间测量模型集87枚鸡蛋的重量.结果显示,模型集所有组别鸡蛋的平均重量随储存时间的增加均呈线性下降,如图7所示.在室温下保存30天的鸡蛋重量均减少了6.44%~6.9%.
图7 模型集4组样本平均重量与存储时间之间的关系
图8 模型集4组样本平均密度与存储时间之间的关系
4组鸡蛋平均重量(归一化)变化和储存时间的线性回归方程如表2所示,相关系数R2值分别为0.998 2、0.999 5、0.999 6和0.999 4.
表2 各组鸡蛋平均重量(归一化)与储存时间之间的线性回归方程
所有鸡蛋的密度均随储存时间的增加而下降是由于水分会从蛋壳表面数千个小孔蒸发流失,并且随着时间的推移,蛋壳的海绵状表皮开始干燥收缩导致蛋壳的毛孔大小和数量增加,使气体和水分更容易从蛋壳中逸出,而鸡蛋的体积随储存时间的延长并无明显变化,因此鸡蛋的密度会随着储存时间的延长而降低[23-24].基于此,本文给出根据密度计算鸡蛋新鲜度的百分比公式为:
其中:F为新鲜度,ρE为不同贮藏时间的鸡蛋的密度,ρHE为每个鸡蛋的初始密度(新鲜度最高时的密度).
模型集所有组别鸡蛋的最大密度值(第1天的密度值)分布在1 061.54×10-6~1 090.28×10-6g/mm3之间,最大密度的平均值ρmax为1 072.45×10-6g/mm3;所有组别鸡蛋的最小密度值(第30天的密度值)分布在989.62×10-6~1 015.45×10-6g/mm3之间,最小密度的平均值ρmin为997.74×10-6g/mm3.最大密度平均值与最小密度平均值之间的差值为74.84×10-6g/mm3,将该差 值 除 以3为24.95×10-6g/mm3,记为ρk,利用ρmax-ρk、ρmin+ρk将鸡蛋按密度划分为3个新 鲜度等级 的标准:高新 鲜 度(ρE>1 047.5×10-6g/mm3),中等新鲜度(1 022.69×10-6g/mm3≤ρE≤1 047.5×10-6g/mm3)和低新鲜度(ρE<1 022.69×10-6g/mm3),等级标记为AA级、A级、B级,分别对应储存时间为1~10天、11~20天、20~30天.
为了测试模型的准确性,将相同存放条件、标记不同存放时间的测试集40枚鸡蛋(XL组5枚、L组17枚、M组15枚、S组3枚)利用机器视觉系统进行基于密度值的新鲜度分级测试.
首先测算测试集40枚鸡蛋的重量、横纵径值,方法、步骤与前述实验步骤一致.对照人工读取结果,系统对鸡蛋重量智能读取结果的平均相对误差为0.12%,最大相对误差为0.33%.机器视觉系统智能读取和人工读取的鸡蛋重量结果分布散点图如图9所示,两种结果的线性回归的回归值斜率为0.999 9,相关系数(R2)值为0.999 9,具有较高的一致性.
图9 机器视觉系统和人工读取鸡蛋重量数据散点图
鸡蛋横纵径的游标卡尺实测值与机器视觉测算值散点图如图10所示,横径实测值与系统测算值的线性回归斜率为0.969 2,相关系数为0.978 6,平均相对误差分别为0.57%,最大相对误差为1.70%;纵径实测值与系统测算值的线性回归斜率为1.026 2,相关系数为0.965 5,平均相对误差分别为0.57%,最大相对误差为1.70%.
图10 机器视觉系统测算和游标卡尺测量的鸡蛋横纵径数据散点图
利用排水法验证系统对鸡蛋体积的测算,误差范围与正确率见表3.
表3 机器视觉系统对鸡蛋体积测量的误差范围与正确率
对测试集40枚储存时间不同的鸡蛋进行新鲜度检测,AA级、A级、B级分别对应储存时间为1~10天、11~20天、21~30天.检测结果见表4.
表4 机器视觉系统对鸡蛋体积测量的误差范围与正确率
测试结果显示,AA级鸡蛋分级正确率为92.3%,A级鸡蛋分级正确率为78.5%,B级鸡蛋分级正确率为100%.综合测试结果表明,对测试集40枚鸡蛋的新鲜度分级平均正确率为90.3%,系统可以利用机器视觉技术实现对鸡蛋新鲜度准确有效的智能分级.分析鸡蛋各参数的单项检测数据可知,新鲜度智能分级误差的主要来源为系统对鸡蛋外形尺寸测算,误差原因首先可能是仪器测量误差和模型估算误差,在后续工作中拟通过增加样本数量,并建立多种模型进行对比分析,提高算法的泛化性和精度,以实现更高的分级正确率;其次误差来源可能是由于摄像头在获取鸡蛋图片时,光线沿相机光路的透视效应引起拍摄的鸡蛋形状存在微小变化,影响算法获取的鸡蛋横纵径精度,在未来可通过优化光场设计,减少由于环境影响带来的误差,提高样本采集系统的抗干扰能力,同时改进图像边缘提取算法,使实验数据更加精确.
本文利用机器视觉技术,设计了基于密度值的鸡蛋新鲜度的智能评估分级系统.从鸡蛋图像采集系统、智能读取显示屏重量数据、测算鸡蛋外形尺寸、密度值随储存时间的变化等方面进行研究,主要包括:①设计图像采集系统,根据研究对象特点选择合适的光源及照明方式,并通过区域分割、直方图均衡化、滤波等图像预处理算法提高图片质量,减少后续算法的计算量.②利用图像处理算法获取图像中的鸡蛋重量数据、外形尺寸等信息,结合实测值建立模型智能测算鸡蛋的横纵径、体积及密度,测试结果显示系统对重量、横径、纵径的测算与实测值的相关系数分别为0.978 6和0.965 5.③连续30天测量记录模型集所有鸡蛋的重量及密度,结果表明所有组别的鸡蛋密度均随储存时间的增加而下降,以最大密度平均值与最小密度平均值差值的三分之一ρK为等级划分标准,依据新鲜度将鸡蛋分为AA级、A级、B级三个等级.利用设计的机器视觉系统智能检测测试集40枚鸡蛋的新鲜度,结果显示系统对鸡蛋新鲜度等级的智能分级平均正确率为90.3%.因此,本文所提的鸡蛋新鲜度智能分级系统具有成本低、操作灵活方便、算法简单、数据客观不受人为因素干扰等优点,可有效地用于鸡蛋新鲜度的智能无损检测.