本发明涉及机器视觉,尤其是涉及一种基于机器视觉的鸡蛋品质测量方法、系统、设备及介质。
背景技术:
1、目前,现有的鸡蛋外部品质检测多数依靠人工检验以及少数依靠机器视觉检验,而多数深度学习模型需要大量的标注数据,未考虑到数据样本偏少以及样本不均衡情况下如何保证视觉系统的准确率。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于机器视觉的鸡蛋品质测量方法、系统、设备及介质,能够通过对不同数据集分布进行专家网络的知识蒸馏和知识迁移,解决部分样本采集周期长的问题,并利用长尾分布模型解决样本数据不平衡的问题。
2、第一方面,本发明的实施例提供了一种基于机器视觉的鸡蛋品质测量方法,包括:
3、获取鸡蛋rgb图像;
4、对所述鸡蛋rgb图像进行标注,得到标注数据集;
5、通过所述标注数据集构建长尾鸡蛋外观数据集;
6、通过所述长尾鸡蛋外观数据集训练模拟长尾分布的第一专家网络、模拟均匀分布的第二专家网络和模拟反长尾分布的第三专家网络,并将所述第一专家网络、所述第二专家网络和所述第三专家网络两两组合进行知识蒸馏,得到所述第一专家网络对应的第一蒸馏损失、所述第二专家网络对应的第二蒸馏损失和所述第三专家网络对应的第三蒸馏损失;
7、将所述第一蒸馏损失、所述第二蒸馏损失和所述第三蒸馏损失输入总损失函数,得到总体损失;
8、融合所述第一专家网络、所述第二专家网络和所述第三专家网络,并通过所述总体损失进行梯度下降得到机器学习图像识别模型;
9、通过所述机器学习图像识别模型识别待测量鸡蛋品质图像,得到所述待测量鸡蛋品质图像的类别。
10、根据本发明实施例的方法,至少具有如下有益效果:
11、本方法首先通过标注数据集进行筛选,得到长尾鸡蛋外观数据集,为后续训练提供呈现长尾分布的训练集,使得数据基础更加准确,减轻模型训练的工作负载;其次通过长尾鸡蛋外观数据集训练模拟长尾分布的第一专家网络、模拟均匀分布的第二专家网络和模拟反长尾分布的第三专家网络,能够学习到不同样本分布的特征信息,保证机器视觉识别的准确率;然后将第一专家网络、第二专家网络和第三专家网络两两组合进行知识蒸馏,得到第一专家网络对应的第一蒸馏损失、第二专家网络对应的第二蒸馏损失和第三专家网络对应的第三蒸馏损失,通过知识蒸馏将不同样本分布的特征信息进行互相学习,解决样本数据不平衡的问题,同时互相学习也能解决部分样本采集周期过长的问题,提供少样本就能训练得到模型;最后通过第一蒸馏损失、第二蒸馏损失和第三蒸馏损失得到总体损失,并通过总体损失进行梯度下降得到机器学习图像识别模型,提高识别模型的训练效率并且提高机器视觉识别的准确率。
12、根据本发明的一些实施例,所述通过所述长尾鸡蛋外观数据集训练模拟长尾分布的第一专家网络、模拟均匀分布的第二专家网络和模拟反长尾分布的第三专家网络,包括:
13、将所述长尾鸡蛋外观数据集输入至所述第一专家网络,并通过预设的第一专家损失函数监督所述第一专家网络的训练;所述第一专家损失函数的计算公式如下:
14、
15、其中,l1表示第一专家损失函数,xi表示训练集的样本,v()表示第一专家网络输出的logit,σ()表示softmax损失函数,n表示输入图像数量的大小,yj表示第j个输入图像;
16、将所述长尾鸡蛋外观数据集输入至所述第二专家网络,并通过预设的第二专家损失函数监督所述第二专家网络的训练;所述第二专家损失函数的计算公式如下:
17、
18、
19、其中,l2表示第一专家损失函数,ωi表示xi样本的先验概率,pk表示第z个类别出现的次数,p表示所有类别出现的次数;
20、将所述长尾鸡蛋外观数据集输入至所述第三专家网络,并通过预设的第三专家损失函数监督所述第三专家网络的训练;所述第三专家损失函数的计算公式如下:
21、
22、其中,表示ωi的反序排列。
23、根据本发明的一些实施例,所述将所述第一专家网络、所述第二专家网络和所述第三专家网络两两组合进行知识蒸馏,得到所述第一专家网络对应的第一蒸馏损失、所述第二专家网络对应的第二蒸馏损失和所述第三专家网络对应的第三蒸馏损失,包括:
24、在所述第一专家网络、所述第二专家网络和所述第三专家网络的训练中,推理所述第一专家网络对应的第一预测值、所述第二专家网络对应的第二预测值和所述第三专家网络对应的第三预测值;
25、计算所述第一预测值和所述第二预测值的第一散度值以及所述第一预测值和所述第三预测值的第二散度值,并将所述第一散度值和所述第二散度值相加得到所述第一蒸馏损失;计算所述第二预测值和所述第一预测值的第三散度值以及所述第二预测值和所述第三预测值的第四散度值,并将所述第三散度值和所述第四散度值相加得到所述第二蒸馏损失;计算所述第三预测值和所述第一预测值的第五散度值以及所述第三预测值和所述第二预测值的第六散度值,并将所述第五散度值和所述第六散度值相加得到所述第三蒸馏损失。
26、根据本发明的一些实施例,所述第一散度值、所述第二散度值、所述第三散度值、所述第四散度值、所述第五散度值和所述第六散度值均通过kl散度计算得到,所述kl散度的计算公式包括:
27、
28、
29、
30、其中,k表示专家数量,θ表示专家网络参数,kl()表示kl散度,q和k表示两个不同的专家网络,p()表示专家网络在输出层的概率分布,xi表示输出层的第i个输出,θk和θq均表示权重,ldis表示kl散度值。
31、根据本发明的一些实施例,所述通过所述标注数据集构建长尾鸡蛋外观数据集,包括:
32、去除所述标注数据集中的干扰数据,并通过数据增强操作得到加强标注数据集;
33、通过长尾分布筛选所述加强标注数据集,得到所述长尾鸡蛋外观数据集。
34、根据本发明的一些实施例,所述总损失函数采用softmax损失函数。
35、根据本发明的一些实施例,所述融合所述第一专家网络、所述第二专家网络和所述第三专家网络,并通过所述总体损失进行梯度下降得到机器学习图像识别模型,包括:
36、通过预设的训练轮次从所述第一专家网络、所述第二专家网络和所述第三专家网络得到多个所述总体损失;
37、通过多个所述总体损失进行梯度下降,得到所述机器学习图像识别模型。
38、第二方面,本发明的实施例提供了一种基于机器视觉的鸡蛋品质测量系统,包括:
39、数据获取模块,用于获取鸡蛋rgb图像;
40、图像标注模块,用于对所述鸡蛋rgb图像进行标注,得到标注数据集;
41、长尾数据集构建模块,用于通过所述标注数据集构建长尾鸡蛋外观数据集;
42、知识蒸馏模块,用于通过所述长尾鸡蛋外观数据集训练模拟长尾分布的第一专家网络、模拟均匀分布的第二专家网络和模拟反长尾分布的第三专家网络,并将所述第一专家网络、所述第二专家网络和所述第三专家网络两两组合进行知识蒸馏,得到所述第一专家网络对应的第一蒸馏损失、所述第二专家网络对应的第二蒸馏损失和所述第三专家网络对应的第三蒸馏损失;
43、总体损失计算模块,用于将所述第一蒸馏损失、所述第二蒸馏损失和所述第三蒸馏损失输入总损失函数,得到总体损失;
44、网络融合模块,用于融合所述第一专家网络、所述第二专家网络和所述第三专家网络,并通过所述总体损失进行梯度下降得到机器学习图像识别模型;
45、图像识别模块,用于通过所述机器学习图像识别模型识别待测量鸡蛋品质图像,得到所述待测量鸡蛋品质图像的类别。
46、第三方面,本发明的实施例提供了一种电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如第一方面所述的基于机器视觉的鸡蛋品质测量方法。
47、第四方面,本发明的实施例提供了一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的基于机器视觉的鸡蛋品质测量方法。
48、需要注意的是,本发明的第二方面至第四方面与现有技术之间的有益效果与第一方面的基于机器视觉的鸡蛋品质测量方法的有益效果相同,此处不再细述。
49、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。