技术领域
[0001] 本实用新型涉及鸡蛋检测技术领域,具体为一种鸡蛋裂纹检测试验系统。
相关背景技术
[0002] 随着我国现代经济与人民生活水平的逐渐提高,鸡蛋在我国人民日常饮食中的占比也越来越大,而鸡蛋的品质好坏就变得越来越重要。鸡蛋裂纹分类的意义在于可极大的减少裂纹蛋带来的经济损失,降低企业的人工成本,保障民生安全。
[0003] 传统鸡蛋裂纹分类有很多难点,如人工识别耗时多,周期长,成本高。在当今科学突飞猛进的今天,人工智能的应用开始逐渐加强,神经网络的发展也越来越迅速。现代通过人工智能的筛选,大幅度的降低成本与时间,筛选方便。由于不同网络存在不同的深度与学习率、卷积层与池化层、激活函数和损失函数等,各结构的差异使得网络存在着不同的训练时间与准确率,因此我们需要通过设计一套列科学的试验系统,以寻求到最适合的鸡蛋裂纹检测神经网络。实用新型内容
[0004] 本实用新型的目的在于提供一种鸡蛋裂纹检测试验系统,克服人工识别耗时多,周期长,成本高的问题。
[0005] 为实现上述目的,本实用新型提供如下技术方案:一种鸡蛋裂纹检测试验系统,其特征在于:包括:鸡蛋裂纹产生单元、裂纹采集单元和鸡蛋裂纹检测单元;
[0006] 所述鸡蛋裂纹产生单元包括主箱体、底座和转轴,所述主箱体为矩形,纵向两侧设有对称的通孔,所述转轴贯穿于通孔中,其两端和底座转动连接;
[0007] 所述鸡蛋裂纹采集单元包括摄像机、旋转控制台和光源,所述旋转控制台顶部设有可控制转速的转盘;
[0008] 所述鸡蛋裂纹检测单元为PC端,所述PC端内设有识别鸡蛋裂纹的神经网络。
[0009] 进一步的,所述主箱体的底部设有减速带。
[0010] 进一步的,所述主箱体的转动角度为15°
[0011] 进一步的,所述转盘的转动周期为12秒。
[0012] 进一步的,所述摄像机的拍照延时设定为3秒。
[0013] 进一步的,所述鸡蛋裂纹产生单元的材质为塑料。
[0014] 与现有技术相比,本实用新型的有益效果是:通过本实用新型试验系统,可以建立自己的鸡蛋裂纹数据集,同时可以根据工程实际需求,选出更为适合的鸡蛋检测神经网络,通过人工智能的筛选,大幅度的降低成本与时间,时间短,准确率高,筛选便捷。
具体实施方式
[0028] 下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。
[0029] 本实用新型提供一种鸡蛋裂纹检测试验系统,可通过本试验系统模拟使鸡蛋产生裂纹,再通过神经网络对裂纹进行数据采集并分析,以得到该神经网络检测的最终数据。本实用新型可通过选定的几种神经网络来对处理后的采集数据进行测试,并根据检测需求得到最优的检测神经网络。
[0030] 一种鸡蛋裂纹检测试验系统,包括:鸡蛋裂纹产生单元、裂纹采集单元和鸡蛋裂纹检测单元。
[0031] 所述鸡蛋裂纹产生单元包括主箱体1、底座2和转轴3,材质均为塑料。所述主箱体1为矩形,其底部设有减速带4,以免鸡蛋速度过快,使鸡蛋完全破损,纵向两侧设有对称的通孔;所述转轴3贯穿于通孔中,其两端和底座2转动连接。
[0032] 所述鸡蛋裂纹采集单元包括摄像机、旋转控制台和光源,所述旋转控制台顶部设有可控制转速的转盘,所述转盘的转动周期为12秒,所述摄像机的拍照延时设定为3秒。
[0033] 所述鸡蛋裂纹检测单元为PC端,所述PC端内设有识别鸡蛋裂纹的神经网络。本实施例实施例选择的神经网络模型包括MobileNet、 AlexNet、VGG、EfficientNet系列、ResNet和CNN。
[0034] 具体试验操作如下:
[0035] 取130枚鸡蛋,重量在45g~53g之间随机分布。依次将20枚鸡蛋为一组放入鸡蛋裂纹产生单元的主箱体1中,使鸡蛋在主箱体1中,由上向下滑动。高度不宜过高,控制在15°以内。鸡蛋经主箱体1 内向下滑动,在滑动的过程中,鸡蛋不断获得动能,使鸡蛋间相互碰撞,在鸡蛋均到达最低端时,转动转轴3,使鸡蛋向另一侧滑动,增加鸡蛋裂纹的数量与破损度,将该操作重复5次,在不同的高度下,获得不同的鸡蛋裂纹情况。具体的位置与高度见下表。
[0036]裂纹位置 5mm 10mm 15mm 相同位置的裂纹总计数量
赤道 14 6 1 11
尖端 45 4 40 20
钝端 63 13 91 39
相同高度的裂纹总计数量 56 15 85
[0037] 由表格数据分析知,在高度15mm的情况先,鸡蛋裂纹的数量与位置与实际生产中的情况最符合,故采用该高度进行鸡蛋裂纹的处理,获得裂纹蛋的数据样本。
[0038] 将裂纹蛋的样本制作完毕后,即可采用本实用新型设计的裂纹采集单元来获得鸡蛋的原始数据集。将鸡蛋依次放置在转盘上,LED 光源对鸡蛋聚光处理,摄像机定时拍摄,获取鸡蛋的各角度的照片。由于转盘的周期为12s,故将摄像机的拍照延时设定为3s一张,在此速率下,鸡蛋可在每转动90°采集到相应的裂纹信息,获得环赤道 90°、180°、270°、360°位置的全部图像。再将鸡蛋平放在转盘上,鸡蛋此时必须将尖端对准摄像机,同时将摄像机的拍照延时设定为6s一张,即可获得鸡蛋的尖端与钝端的图像。此时将这些图像按照有无裂纹存放在设定的数据集内(分为egg与badegg),即可完成原始数据集的制作。
[0039] 将原始数据集喂入神经网络中,由于原始数据集中有较多的无关特征,使神经网络出现过拟合,对图像高敏感度,低泛化性等问题。而增强训练集的喂入,可以大大的减少以上问题。因此,通过几何变换方法与像素变换方法对图片进行处理,从而得到数据增强的训练集。数据集增强有以下几种常用方法:
[0040] 常用的几何变换方法主要有:翻转,旋转,裁剪,缩放,平移,抖动。
[0041] 常用的像素变换方法有:加椒盐噪声,高斯噪声,进行高斯模糊,调整HSV对比度,调节亮度,饱和度,直方图均衡化,调整白平衡等。
[0042] 本实施例主要采用几何变换的方法,对照片进行翻转,缩小尺寸,旋转,水平翻转三种方法进行增强。下面是几种方法的介绍。
[0043] 1、翻转(180°)
[0044] 通过将原始数据集所在的文件夹传入rootdir,遍历全部的原始训练集。通过调用im.transpose(Image.ROTATE_180)函数,完成对图片的180°翻转。
[0045] 2、旋转
[0046] (1)水平旋转45°
[0047] 通过将原始数据集所在的文件夹传入path,遍历全部的原始训练集。通过调用out.rotate()函数,传入45的参数,完成对图片的顺时针旋转。
[0048] (2)逆时针旋转45°
[0049] 首先将图片所在的文件存入file_root中,同时,将处理好的图片存入指定的保存路径下,该路径由变量file_list保存。通过 out.transpose(Image.FLIP_LEFT_RIGHT)函数的使用,使图片水平翻转指定的数值。
[0050] 3、水平翻转
[0051] 首先将图片所在的文件存入file_root中,同时,将处理好的图片存入指定的保存路径下,该路径由变量file_list保存。通过 out.transpose(Image.FLIP_LEFT_RIGHT)函数的使用,使图片水平翻转指定的数值。
[0052] 4、缩小尺寸
[0053] 通过将原始数据集所在的文件夹传入rootdir,遍历全部的原始训练集。通过调用out.resize((320,240))函数,将原始尺寸640*480缩小为320*240。
[0054] 由于在生成数据集的过程中,图片的名称顺序较为混乱复杂,且图片的格式为png格式,而神经网络的处理为jpg格式。因此,对图片名称得到排序重命名及转换格式是必要的过程。即将照片的名称改为由六位数字组成的等差数列,以1递增,将格式转换为jpg格式。
[0055] 原始数据集与增强数据训练集的结果如下表所示。
[0056] 样本总数 训练集(%) 测试集(%) 验证集(%)原始数据集 789 96 95 98
增强后数据集 5053 96 95 98
[0057] 为了寻找到最适合鸡蛋裂纹的神经网络,需将鸡蛋裂纹的增强数据训练集同时喂入各模型中,获得各模型的训练时间与测试的准确率,来确定最适合的鸡蛋裂纹检测神经网络。本实施例选择的神经网络模型包括MobileNet、AlexNet、VGG、ResNet、CNN和EfficientNet 系列。
[0058] MobileNet:
[0059] MobileNet是一个轻量级卷积神经网络,它进行卷积的参数比标准卷积要少很多。MobileNet的基本单元是深度级可分离卷积,其可以分解为两个更小的操作:depthwise convolution和pointwise convolution。Depthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise convolution针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说depthwise convolution是depth级别的操作。而pointwise convolution其实就是普通的卷积,只不过其采用1x1 的卷积核。对于depthwise separable convolution,其首先是采用 depthwise convolution对不同输入通道分别进行卷积,然后采用 pointwise convolution将上面的输出再进行结合,这样其实整体效果和一个标准卷积是差不多的,但是会大大减少计算量和模型参数量。
[0060] MobileNet的网络结构如图3所示,该网络有28层。可以看出,该网络基本去除了pool层,使用stride来进行降采样。
[0061] AlexNet:
[0062] AlexNet为8层深度网络,其中5层卷积层和3层全连接层。 AlexNet每层的超参数如图4所示,其中输入尺寸为227*227,第一个卷积使用较大的核尺寸11*11,步长为4,有96个卷积核;紧接着一层LRN层;然后是最大池化层,核为3*3,步长为2。这之后的卷积层的核尺寸都比较小,5*5或3*3,并且步长为1,即扫描全图所有像素;而最大池化层依然为3*3,步长为2。本模型的一些优点为 ReLU作为激活函数,Dropout避免模型过拟合(在训练时使用Dropout 随机忽略一部分神经元,以避免模型过拟合),重叠的最大池化,提出LRN层(对局部神经元的活动创建竞争机制,使得响应较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力)。
[0063] VGG:
[0064] VGG由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max‑pooling分开,所有隐层的激活单元都采用ReLU函数。VGG使用多个较小卷积核(3x3)的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合/表达能力。如图6和图7所示,VGG 通过降低卷积核的大小(3x3),增加卷积子层数来达到同样的性能。同时VGG全部采用2x2的池化核,VGG网络第一层的通道数为64,后面每层都进行了翻倍,最多到512个通道,通道数的增加,使得更多的信息可以被提取出来,如图5、图6所示。使用连续的小卷积核代替大的卷积核,网络的深度更深,并且对边缘进行填充,卷积的过程并不会降低图像尺寸。在网络测试阶段将训练阶段的三个全连接替换为三个卷积,使得测试得到的全卷积网络因为没有全连接的限制,因而可以接收任意宽或高为的输入。
[0065] ResNet:
[0066] ResNet网络提出了层间残差跳连技术并以此来引入模型前方的信息,以此来缓解梯度消失问题,使得神经网络层数的增加开辟了道路[19]。如图7所示,ResNet块有两种形式,一种在堆叠卷积前后维度相同,另一种在堆叠卷积前后维度不同。当特征图前后维度不相同时,使用两次都是512个3*3卷积核来进行卷积操作,再将得到的特征图与之前的特征图使用1*1的卷积核进行卷积计算,使得两者特征数据维度相同,将两者叠加,可以进行后续处理;而当特征图前后维度相同时,分别使用512个和256个3*3的卷积核对其进行卷积计算,由于维度相同,可以将得到的数据和之前的特征图像数据直接进行叠加处理,再进行后续操作。使用此结构块可以搭建一个ResNet网络结构,ResNet网络结构如图8所示。
[0067] CNN:
[0068] CNN的网络结构和传统神经网络结构异同点有:
[0069] CNN主要有数据输入层,卷积层,RELU激励层,池化层,全连接层,Batch Normalization Layer(不一定存在).传统神经网络主要有数据输入层,一个或多个隐层以及数据输出层.比较可以发现CNN 仍然使用传统神经网络的层级结构。
[0070] CNN的每一层都具有不同的功能,而传统神经网络每一层都是对上一层特征进行线性回归,再进行非线性变换的操作。
[0071] CNN使用RELU作为激活函数(激励函数),传统神经网络使用 sigmoid函数作为激活函数。
[0072] CNN的池化层实现数据降维的作用,提取数据的高频信息.传统神经网络没有这个作用。
[0073] CNN主要是在图像分类和物品识别等应用场景应用比较多。
[0074] CNN保持了层级网络结构,不同层次使用不同的形式(运算)与功能:
[0075] 数据输入层:Input Layer
[0076] 卷积计算层:CONV Layer
[0077] ReLU激励层:ReLU Incentive Layer
[0078] 池化层:Pooling Layer
[0079] 全连接层:FC Layer
[0080] EfficientNet:
[0081] EfficientNet网络可以对输入图像分辨率,网络深度,及卷积通道数对网络进行综合扩展,具体的扩展方式为在复合系数Φ的作用下,同时约束图像分辨率,网络宽度与深度。表达式如下所示。
[0082]
[0083] 主干网络使用MobileNet V2网络中的MBConv模块来构建,主要改进在于将其中(3×3Conv+BN+ReLU)的结构分解为(1× 1Conv+BN+ReLU+3×3Conv+BN+ReLU)。由于激活函数Swish输出为非0均值,收敛慢且由于Relu函数负区间为0,可能会导致某些神经元永远都不会被激活,即Dead Relu问题,并使相应的参数永远得不到更新。而Swish激活函数在多种深层模型的top1等准确率上表现优于ReLU函数,故将传统的MBConv中的激活函数ReLU替换为 Swish。主干网络的数据处理流程图如图9所示。图10为EfficientNetB0 的结构,B0到B7都是在此基础上进行的缩放。
[0084] 由于相同的训练集在不同的神经网络下有着不同的准确率与时间。为了寻找到最佳的准确率与时间,为此,将增强训练集喂入不同的神经网络中,得到各网络的准确率与时间的柱状图,如图11和图 12所示。由此分析得,efficientnet‑b0网络在最短的时间内,获得了较高的准确率。训练时间与准确率均达到了本次实验的要求,同时也最符合工程的实际要求。
[0085] 以上结果是基于本实施例选定的神经网络对比的结果,本实用新型提供的方法为选出更合适的鸡蛋裂纹检测方法,而选择的标准则可以根据实际需求来选定,所选择的神经网络也不仅限于上述提到的几种。
[0086] 虽然在上文中已经参考实施例对本实用新型进行了描述,然而在不脱离本实用新型的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本实用新型所披露的实施例中的各项特征均可通过任意方式相互结合起来使用,在本说明书中未对这些组合的情况进行穷举性的描述仅仅是出于省略篇幅和节约资源的考虑。因此,本实用新型并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。