陈羽立,孙付春,郭兴华,郭地伟,刘李逵,张廷婷
(1.成都大学 机械工程学院,四川 成都 610106;2.一汽东机工减振器成都有限公司,四川 成都 610100)
随着生活品质的提升,人们对鸡蛋数量和鸡蛋品质的要求都在不断提高.截止我国国家统计局在2020年1月发布的数据,我国的禽蛋产量已经在2016年突破30 Mt,2019年总产量达到33.09 Mt,而其中鸡蛋的产量约占总产量的84%.据分析,市场需求及蛋鸡补栏速度都未呈现降低趋势,因此鸡蛋的产量在未来几年还会持续增长[1].
图1是鸡蛋分级生产线加工流程图.据统计,裂纹蛋和破损蛋占据了整个蛋品产量的6%.对于不良蛋的检测分选,是整个蛋品加工中重要的一环,是食品安全的保障.目前,在蛋品检测环节中,我国采用进口裂纹检测设备或直接使用人工进行蛋品的检测.人工检测方法限制了蛋品加工的速度与产品质量,难以释放国内蛋品加工行业的生产力,而进口设备则增加了蛋品加工的成本,且后期保养与维修也给企业生产稳定性带来了一定的阻碍,所以需要应用智能化与自动化的手段来提升鸡蛋的产量与质量.
国内已有很多研究者在鸡蛋的裂纹检测方面作出了探索,其检测方法包括基于机器视觉的检测、基于声学特性的检测及基于光学特性的检测等.其中,机器视觉多被用于检测鸡蛋的外形尺寸、哈夫单位、蛋内瑕疵、气室大小及表面裂纹和污渍等特征.李新城等[2]分别对外部特征、蛋黄特征及气室特征等进行提取,建立与哈夫单位关联的回归模型.段茜等[3]提出了一种像素面投影法用于估算鸡蛋表面积.熊利荣等[4]在图像预处理基础上提取了13种特征值,采用Adaboosting优化,选出其中2类值作为最优组合,且作为特征向量,输入SVM进行分类,模型正确率达97.5%.魏萱等[5]对采集的图片预处理后,利用灰度共生矩阵进行特征提取,并分别结合SVM、LDA和SIMCA分类,其中LDA模型判别准确率达96.0%.潘磊庆等[6]结合计算机视觉和声学响应信息,并继续深入研究进行多传感器融合的鸡蛋裂纹检测系统[7],其中计算机视觉单项判别准确率为62%,综合准确率为98%.宋超等[8]结合K-means与SVM对裂纹蛋进行判别,准确率达94.6%.Goodrum等[9]在图像采集中分别对鸡蛋以长轴为旋转轴,进行了120°、240°、360°的图像采集,综合进行判别,准确率达94%.Lin等[10]设计了一套共振系统来判别单品是否为裂纹蛋,从反馈信号中提取5个特征变量后分别使用支持向量机、人工神经网络及K临近法3种模式识别算法进行结果对比研究,结果表明支持向量机的效果最好,校正集的识别率为95%,预测集的识别率为97%.Sun等[11]设计了基于DSP处理器的蛋品裂纹检测系统,分析了蛋品重量、冲击位置、传送速度和冲击强度对响应信号的影响,并提取了5个特征变量进行模型搭建,最终对裂纹蛋的辨别率达到96.1%.
研究者针对鸡蛋表面裂纹的识别作出了很多的探索.在此基础上,本研究通过对机器视觉裂纹识别系统的图像采集有效性进行探讨,分析对样品蛋进行信息采集的最合适方位,改进图像采集的方法,结合EfficientNet_B0网络构造分类模型,利用机器视觉技术,提升了对裂纹蛋的识别精度.
湖北某鸡蛋厂生产的新鲜鸡蛋150枚,重量在40 g到55 g之间随机分布;某石膏厂的石膏空心鸡蛋模型15枚;自制简易模拟滚动破蛋装置;图像采集设备包括暗箱、1W LED光源(灯头作聚光处理)、模拟输送台、相机(国产,有效分辨率为3 024×4 032,图像位深度为3×8 bit)及计算机(型号为Precision 3540).值得说明的是,光源灯头作聚光处理后,使光斑聚集于鸡蛋主体,提高了裂纹辨识度,减少了漏光对上方相机采集质量的影象,避免了在预处理中单独作漏光分割的操作,从而简化了预处理流程.
为模拟鸡蛋在生产线上的滚动而产生的碰撞,本研究设计了一种简易滚动模拟破蛋装置,如图2所示.该装置主要由主箱体、轴和底座构成,其中箱体内侧底面设置有2条凸型减速带,以便防止滚动过程中鸡蛋之间不能互相碰撞却过多碰撞箱体壁面产生裂纹的现象.鸡蛋滚动过程中,先下滑的鸡蛋因凸型减速带减速与后下滑的鸡蛋前后追尾,从而模拟在蛋品加工生产线中鸡蛋互相碰撞产生的裂纹.使用湖北某石膏制品厂的15枚空心石膏鸡蛋进行初步实验时发现,当凸型减速带高度设为15 mm时,鸡蛋互相碰撞次数效果较好.
取90枚鸡蛋,依次将15枚鸡蛋放入模拟滚动破蛋装置主箱的一侧内,以相同的速率来回升降主箱体两侧,进行10次来回升降操作,使得箱体内的鸡蛋不断获得重力势能而从当前位置向高度较低的一侧滚动,在滚动过程中不断产生碰撞及适当与箱体壁面碰撞.实验分为6组,每组来回升降主箱体的次数递增5次.实验结束后,人工仔细检查,记录出现的裂纹个数、种类及出现在鸡蛋表面的裂纹位置和形状,如表1所示.
表1 裂纹统计
由表1可知,位于鸡蛋赤道的线形裂纹,是在鸡蛋滚动过程中最容易产生的裂纹.在维护良好的蛋品生产线上,主要的检测对象也是线形裂纹蛋,而鸡蛋的微小线形裂纹也是最不容易被识别的,所以裂纹图像信息的采集必须严格,为后续信息的提取及分类器的训练等提供基础.
将上述裂纹蛋小心收集,并依次置入图像采集设备的暗箱中进行逐步转动,进行多方位图像采集,而将其余鸡蛋作为完好蛋依次置入暗箱并进行多方位图像采集.将采集到的图像经过限制对比度与自适应直方图均衡化等常规图像增强操作,并优化细节,收集以备用.
采集过程中,将鸡蛋放置于裂纹整体朝向镜头的角度,记为0°初始角.随着鸡蛋以长轴为中轴线转动,从相机中裂纹的可见性逐渐降低,旋转至某一角度后线形裂纹的可见性完全消失.具体实例如图3所示,为更直观展示实验结果,已用“×”对鸡蛋表面进行定点对比标记.
本研究对鸡蛋裂纹图像的有效采集定义为,通过该采集的图像可以经过人眼或边缘检测算法提取出有效边界信息.由图3可看出,实例中的鸡蛋存在一条竖向线形裂纹,在绕长轴缓慢旋转约55°后,无法以人眼或基于Canny算子辨识出有效的裂纹边缘特征.对此,以上述55枚含线形裂纹的鸡蛋作为对象进行旋转在线图像采集实验,对每一枚蛋上裂纹采集无效时的角度(简称失效角)进行统计,如表2所示.
表2 失效角统计
由表2可知,样本裂纹蛋中有近9.1%的裂纹在鸡蛋旋转到60°前,上方的摄像头已对裂纹构成失效采集.环鸡蛋赤道的120°、240°和360°的图像采集方法也存在裂纹采集的盲点区域,有无法有效采集部分微裂纹的风险,可能使得裂纹检测系统得不到该类裂纹的图像信息,降低了整体裂纹检测系统的正确性.所以,本研究提出改进的裂纹图像采集方法,即6方位采集方法,可在实际实验及生产中使用.6方位采集方法的思路是,分别在鸡蛋的环赤道90°、180°、270°、360°位置及尖端、钝端共进行6次图像采集,后续利用训练的模型进行单独分类.在实验中,旋转角在45°前未出现失效角,此时,样本鸡蛋的所有裂纹均被有效采集,即在绕鸡蛋中轴线顺时针或逆时针旋转45°以内时,微裂纹均可被有效采集.因此,实际的鸡蛋图像采集过程中,单枚鸡蛋绕其中轴线每递增90°,就进行一次图像采集,即分别在鸡蛋的环赤道90°、180°、270°及360°分别采集一次,并附加采集鸡蛋尖端、钝端,即共6次图像采集,以保证鸡蛋表面裂纹信息的有效采集,从而避免裂纹信息遗漏,为下一步构建图像分类模型提供基础.
随计算机计算能力的提高,各类云计算服务为各类场景的研究提供了强大的计算基础.深度学习网络不断应用于各个领域,特别是图像分类与物体识别(即目标识别)领域,在传统卷积神经网络等上进行改进与优化得到新型网络,例如AlexNet[12]、ResNet、ShuffleNet及MobileNet.在保证准确率的前提下,对数据集和训练时间的要求也不断降低.其中,EfficientNet网络是评价经典高效分类的网络之一.
传统卷积神经网络一般通过调整输入图像分辨率、网络深度及卷积通道数来进行网络扩展,而EfficientNet则利用模型复合缩放方法对三者进行综合扩展,具体方式为指定复合系数Φ,用于同时约束图像分辨率、网络宽度及深度,如式(1)所示.
(1)
主干网络使用MobileNet V2网络中的MBConv模块来构建,主要改进在于将其中(3×3Conv+BN+ReLU)的结构分解为(1×1ConV+BN+ReLU+3×3ConV+BN+ReLU).短连接部分使用SE层,采用drop_connect替换普通drop方法.Swish函数无上界,有下界,非单调且平滑,在多种深层模型的top1等准确率上表现优于传统的ReLU函数.本研究所使用的EfficientNet_B0网络中,将MBConv中的激活函数由ReLU部分地替换为Swish.主干网络数据处理流程如图4所示.
样本总数为401幅图像,数据集总量较少,故针对性地选择EfficientNet系列中的EfficientNet_B0 small网络.该网络相比EfficientNet_B0,去除了SE模块,提高了训练速度,结果更为精简,但精度有所下降.设置Brightness、Invert和AutoConstrast 3类图像增强算法,处理概率均设置为0.2,分别随机调整图像的亮度、色彩和对比度,实现数据增强来缓冲不同鸡蛋之间的透射光线色差和其他影响因素.引入EfficientNet迁移学习库,并搭建基于EfficientNet_B0 small的迁移学习网络,使用分段衰减学习率函数piecewise_decay,并使用Auto model search进行包括初始学习率的超参数自动调节对比.训练结果如表3所示.
表3 训练结果
如表3所示,训练集与测试集的准确率分别为97.3%和97.2%,显示所训练模型的拟合效果较好,且未出现明显的过拟合现象,表明可以进行下一步验证实验.
本研究再次利用图2中自制的滚动模拟破蛋装置,取60枚新鲜鸡蛋进行模拟滚动破蛋处理,得到47枚含有裂纹的鸡蛋,将60枚鸡蛋均匀混合后,依次递入图像采集系统中进行6方位图像采集.每一枚鸡蛋采集6幅图像,输入到模型进行判别,若其中1幅及以上被判别为裂纹蛋,则综合判别输出为裂纹蛋.若6幅图像被判别为裂纹蛋的数量为0,则综合判别输出为完好蛋.实验验证结果如表4所示.
表4 验证结果
由表4可知,在验证集中,结合6方位裂纹采集法的综合判别准确率为96.7%,与表3中模型测试集准确率度相符合,表明模型有效且可以用于类似环境中的实际生产.
本研究分别对图像采集方法和图像分类方法进行了探讨,证明了传统环绕鸡蛋赤道3方位的裂纹采集方法存在盲区,提出了6方位鸡蛋裂纹采集方法,避免了该类盲区的出现,并基于EfficientNet_B0 small网络训练了裂纹蛋与完好蛋的图像分类模型,最终模型在训练集、测试集中分别达到了97.3%与97.2%的准确率,并在验证集中的综合判别准确率达到了96.7%.实验结果表明,基于EfficientNet的鸡蛋裂纹检测方法是可行的,为蛋品加工行业中自动化鸡蛋裂纹检测装备国产化奠定了基础,也为研究鸡蛋裂纹检测自动化的实现方法提供了参考.