发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种禽蛋检测方法、图像处理方法及装置。
第一方面,本申请实施例提供了一种禽蛋检测方法,包括:
获取待检测禽蛋图像,所述待检测禽蛋图像中包括被照亮的禽蛋;
根据预先训练的禽蛋暗纹检测模型检测得到所述待检测禽蛋图像中的禽蛋是否存在暗纹,得到所述禽蛋的分类信息;
根据所述分类信息生成所述禽蛋对应的标签。
可选的,如前述的禽蛋检测方法,还包括:
获取所述禽蛋的位置信息;
在所述标签表征所述禽蛋存在暗纹时,根据所述标签以及位置信息生成对所述禽蛋进行分拣的分拣指令;
将所述分拣指令发送至指定终端。
第二方面,本申请实施例提供了一种图像处理方法,包括:
获取禽蛋样本图像;
确定所述禽蛋样本图像的样本类型;
采用所述禽蛋样本图像和样本类型对预设的网络结构进行训练,得到禽蛋暗纹检测模型。
可选的,如前述的图像处理方法,所述获取禽蛋样本图像,包括:
获取禽蛋的第一原始图像;
将所述第一原始图像调整为第一预设像素值的第二原始图像;
对所述第二原始图像进行切割,得到多个所述禽蛋样本图像。
可选的,如前述的图像处理方法,所述确定所述禽蛋样本图像的样本类型,包括:
确定所述禽蛋样本图像中暗纹的外接矩形;
计算所述外接矩形与所述禽蛋样本图像的交并比;
在所述交并比大于第一预设占比阈值时,判定所述禽蛋样本图像的样本类型为包括暗纹的正样本;
在所述交并比小于或等于第二预设占比阈值时,判定所述禽蛋样本图像的样本类型为负样本。
可选的,如前述的图像处理方法,在所述交并比小于或等于第二预设占比阈值时,判定所述禽蛋样本图像的样本类型为负样本,包括:
所述交并比为0时,判定所述禽蛋样本图像的样本类型为负样本。
可选的,如前述的图像处理方法,采用所述禽蛋样本图像和样本类型对所述预设的网络结构进行训练,得到禽蛋暗纹检测模型,包括:
将所述禽蛋样本图像通过下采样层进行特征提取,得到第二预设像素值的第一特征图;
通过池化层对所述第一特征图进行预设大小的平均池化,得到第二特征图;
将所述第二特征图输入卷积层进行处理,得到特征向量;
将所述特征向量输入归一化指数函数进行处理,得到第一二分类输出结果;
根据所述禽蛋样本图像对应的样本类型以及所述第一二分类输出结果对所述网络结构中的参数进行调整,直至第一二分类输出结果的准确率高于预设阈值时,得到所述禽蛋暗纹检测模型。
可选的,如前述的图像处理方法,在得到禽蛋暗纹检测模型之后,还包括:
将待检测禽蛋图像输入所述禽蛋暗纹检测模型判断所述待检测禽蛋图像中的禽蛋是否存在暗纹。
可选的,如前述的图像处理方法,将待检测禽蛋图像输入所述禽蛋暗纹检测模型判断所述待检测禽蛋图像中的禽蛋是否存在暗纹,包括:
将所述待检测禽蛋图像调整为第三预设像素值的第一待检测图像;
将所述第一待检测图像输入所述禽蛋暗纹检测模型得到N个第二二分类输出结果;其中,所述第三预设像素值为所述禽蛋样本图像的像素值的N倍,N为大于等于2的整数;
根据所述第二二分类输出结果得到N个所述禽蛋存在暗纹的置信度;
当所述置信度符合预设条件时,判断所述禽蛋存在暗纹。
可选的,如前述的图像处理方法,所述置信度符合预设条件,包括:
数值最大的第一置信度大于第一预设置信度阈值;
和/或,
将所述置信度按照数值由大到小进行排列时,前M个所述置信度的平均值大于第二预设置信度阈值,其中,M为小于或等于N的正整数。
第三方面,本申请实施例提供了一种禽蛋检测装置,包括:
获取模块,用于获取待检测禽蛋图像,所述待检测禽蛋图像中包括被照亮的禽蛋;
暗纹模块,用于根据预先训练的禽蛋暗纹检测模型检测得到所述待检测禽蛋图像中的禽蛋是否存在暗纹,得到所述禽蛋的分类信息;
标签模块,用于根据所述分类信息生成所述禽蛋对应的标签。
第四方面,本申请实施例提供了一种图像处理装置,包括:
样本获取模块,用于获取禽蛋样本图像;
类型确定模块,用于确定所述禽蛋样本图像的样本类型;
模型训练模块,用于采用所述禽蛋样本图像和样本类型对预设的网络结构进行训练,得到禽蛋暗纹检测模型。
第五方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现如前任一项所述的方法。
第六方面,本申请实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如前任一项所述的方法。
本申请实施例提供了一种禽蛋检测方法、图像处理方法及装置;其中禽蛋检测方法包括:获取待检测禽蛋图像,所述待检测禽蛋图像中包括被拾取设备的拾取且被照亮的禽蛋;根据预先训练的禽蛋暗纹检测模型检测得到所述待检测禽蛋图像中的禽蛋是否存在暗纹,得到所述禽蛋的分类信息。本申请实施例提供的上述技术方案与现有技术相比具有如下优点:通过禽蛋暗纹检测模型进行安检检测,不会受摄像头角度以及光照条件的影响,算法的泛化性强;同时,无需人工进行检测,避免对禽蛋造成损伤;因此,可以有效提高了实际场景中禽蛋暗纹检测的准确性和实时性。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种禽蛋检测方法,包括如下步骤S11至S13:
S11.获取待检测禽蛋图像,待检测禽蛋图像中包括被照亮的禽蛋。
具体的,待检测禽蛋图像可以为拍摄置于暗室中的被照亮的禽蛋得到,进一步的,禽蛋可以通过拾取设备进行拾取,进而得到更为完整的禽蛋图像;通过将禽蛋照亮,可以使蛋壳表面的裂纹更加清晰地进行显示,进而更利于得到准确的图像识别结果。
S12.根据预先训练的禽蛋暗纹检测模型检测得到待检测禽蛋图像中的禽蛋是否存在暗纹,得到禽蛋的分类信息。
具体的,由于只需判断禽蛋表面是否存在暗纹,禽蛋暗纹检测模型只需能够满足上述判断需求即可,而无需判断暗纹种类大小等情况;因此,禽蛋暗纹检测模型可以为基于分类网络的模型,进一步可选的,为二分类模型。
S13.根据分类信息生成禽蛋对应的标签。
具体的,在得到禽蛋的分类信息之后,即可根据该分类信息生成用于表征该禽蛋的标签;一般情况下,不同的禽蛋所对应的标签各不相同。
如图2所示,在一些实施例中,如前述的禽蛋检测方法,还包括如下所示步骤S14至S16。
S14.获取禽蛋的位置信息。
具体的,用于存放禽蛋的装置可以设有对应的位置信息,该位置信息可以是编号信息、设置地点信息、装置对应的ID等能够准确定位到该种蛋位置的信息。
S15.在标签表征禽蛋存在暗纹时,根据标签以及位置信息生成对禽蛋进行分拣的分拣指令。
具体的,只有在标签表征禽蛋存在暗纹时,才会生成分拣指令;分拣指令可以是:用于提醒管理人员进行禽蛋分拣的信息,或者,管控某一分拣设备对禽蛋进行分拣的指令;且分拣指令根据位置信息生成,可以通过在分拣指令中写入对应的位置信息等方式实现,进而在对分拣指令进行发送时,可以定位到对应的位置,进行针对性的发送,以及使处理人员或分拣装备能够准确定位到需要进行分拣的禽蛋。
S16.将分拣指令发送至指定终端。
具体的,执行终端可以是进行禽蛋分拣的设备,也可以是用于接收分拣指令并向对应的管理人员提示进行分拣的终端;采用本实施例中的方法可以有效避免因暗纹蛋受到致病微生物的污染而腐败变质,通过本实施例中的方法进行及时检测与处理,有利于保障食品质量安全、减少经济损失;另外,在种禽行业中,暗纹会对种蛋造成严重危害,因此,通过本实施例中的方法也可以实现在孵化前及时发现种蛋上的细小破损,而不对其进行孵化,替换为没有暗纹的种蛋进行孵化,进而可以提高孵化率,减少损失。
如图3所示,根据本申请另一方面的一个实施例,提供了一种图像处理方法,包括如下所示步骤S21至S23:
S21.获取禽蛋样本图像。
具体的,禽蛋样本图像为用于对预设的网络结构进行训练的样本;该禽蛋样本图像可以事先通过人工进行采集以及分类得到。
S22.确定禽蛋样本图像的样本类型。
具体的,样本类型可以为:根据禽蛋表面是否存在暗纹进行分类,即,存在暗纹的禽蛋样本图像为一类样本,不存在暗纹的禽蛋样本图像为另一类样本。
S23.采用禽蛋样本图像和样本类型对预设的网络结构进行训练,得到禽蛋暗纹检测模型。
具体的,在训练时,可以先将禽蛋样本图像输入预设的网络结构中,在处理后得到一个二分类结果(即:该禽蛋样本图像存在暗纹或者该禽蛋样本图像不存在暗纹),然后根据该禽蛋样本图像的样本类型判断二分类结果是否正确,若不正确则对预设的网络结构中的参数进行调整;此外,还可以依次将多个禽蛋样本图像输入预设的网络结构中得到的二分类结果,然后根据各个禽蛋样本图像对应的样本类型,分别对各个二分类结果的准确性进行判断,最后根据所有的判断结果得到所有二分类结果的准确率,并且在准确率未达到预设阈值时,对预设的网络结构中的参数进行调整;直至最终的准确率达到预设阈值为止。
如图4所示,在一些实施例中,如前述的图像处理方法,步骤S21获取禽蛋样本图像,包括如下所示步骤S211至S213:
S211.获取禽蛋的第一原始图像。
具体的,第一原始图像可以为拍摄置于暗室中的被照亮的禽蛋得到,进一步的,禽蛋可以通过拾取设备进行拾取,进而得到更为完整的禽蛋图像;通过将禽蛋照亮,可以使蛋壳表面的裂纹更加清晰地进行显示,进而更利于对禽蛋表面的暗纹进行标识。
S212.将第一原始图像调整为第一预设像素值的第二原始图像。
具体的,为了便于对图像进行处理,一般将图像调整为正方形图像后再进行切割;可选的,一般将第一原始图像调整为448*448的尺寸。
S213.对第二原始图像进行切割,得到多个禽蛋样本图像。
具体的,对一个第二原始图像进行切割可以通过一预设大小的滑动窗口,一预设步长对第一原始图像进行切割;举例的:在第二原始图像为448*448的尺寸的图像时,可以将滑动窗口大小设为224*224,步长为112时,则横向及纵向均可以移动两个步长,因此可以根据该滑动窗口将第一原始图像切割得到9个切片图像(即禽蛋样本图像)。
如图5所示,在一些实施例中,如前述的图像处理方法,步骤S22确定禽蛋样本图像的样本类型,包括如下所示步骤S221至S224:
S221.确定禽蛋样本图像中暗纹的外接矩形。
具体的,外接矩形可以通过人工选定标记得到,具体实现方法包括但不限于:标记出某一暗纹的首尾两点后得到对应的外接矩形,或者,描绘出暗纹形状后得到对应的外接矩形,或者,选择一大小可调的外接矩形框,对暗纹进行框选。
S222.计算外接矩形与禽蛋样本图像的交并比。
具体的,由于外接矩形是存在于禽蛋样本图像中的,且禽蛋样本图像的大小一般都是预设大小(可以是像素数量也可以是面积大小,例如像素数量为:Q1)的图像,因此只需要计算得到外接矩形框的大小(可以是像素数量也可以是面积大小,例如像素数量为:Q2)之后,通过计算IOU= Q2/ Q1,得到两者的交并比。
S223.在交并比大于第一预设占比阈值时,判定禽蛋样本图像的样本类型为包括暗纹的正样本。
具体的,预设占比阈值为0至1之间的任意数值,可以根据具体训练需求进行选择;举例来说,当预设占比阈值为0.7时,则只有当某一禽蛋样本图像中的暗纹的外接矩形占比大于0.7时才能将此禽蛋样本图像作为正样本。
S224.在交并比小于或等于第二预设占比阈值时,判定禽蛋样本图像的样本类型为负样本。
具体的,第二预设占比阈值小于或等于第一预设占比阈值,在第二预设占比阈值为0.1时,则在某一禽蛋样本图像中的暗纹的外接矩形占比小于或等于0.1时才能将此禽蛋样本图像作为负样本;进一步的,当禽蛋样本图像既不属于正样本也不属于负样本时,不将其作为训练样本对预设的网络结构进行训练。
在得到素有正样本和负样本之后,可以通过随机抽样,实现正负样本均衡。
可选的,交并比为0时,判定禽蛋样本图像的样本类型为负样本。
如图6所示,在一些实施例中,如前述的图像处理方法,步骤S23采用禽蛋样本图像和样本类型对预设的网络结构进行训练,得到禽蛋暗纹检测模型,包括如下所示步骤S231至S235:
S231.将禽蛋样本图像通过下采样层进行特征提取,得到第二预设像素值的第一特征图。
具体的,可以通过32倍下采样结构(例如:backbone)对禽蛋样本图像进行特征提取;以前述实施例中的禽蛋样本图像为224*224的切片图像为例,通过32倍下采样结构处理后,得到的是7*7的像素块(即包含49个像素的第一特征图),进而可以得到更小的缩略图。
S232.通过池化层对第一特征图进行预设大小的平均池化,得到第二特征图。
具体的,通过池化层对第一特征图进行处理,可以是对第一特征图的各个像素进行计算平均值操作;举例来说,当池化层进行的预设大小的平均池化为7*7平均池化时,在对第一特征图进行池化之后,得到的是只包含一个像素的第二特征图,进而可以进一步降低参数维度。
S233.将第二特征图输入卷积层进行处理,得到特征向量。
具体的,将第二特征图输入卷积层进行处理,得到能够表征该第二特征图的特征的特征向量。
S234.将特征向量输入归一化指数函数进行处理,得到第一二分类输出结果。
具体的,将特征向量作为输入参数输入归一化指数函数中判断该特征向量表征的结果是存在暗纹还是不存在暗纹;并得到第一二分类输出结果,可选的,当存在暗纹时,对应的第一二分类输出结果为1,当不存在暗纹时,对应的第一二分类输出结果为0。
S235.根据禽蛋样本图像对应的样本类型以及第一二分类输出结果对网络结构中的参数进行调整,直至第一二分类输出结果的准确率高于预设阈值时,得到禽蛋暗纹检测模型。
具体的,可以采用将批量的K个禽蛋样本图像输入预设的网络结构中得到K个二分类结果,然后根据各个禽蛋样本图像对应的样本类型,分别对各个二分类结果的准确性进行判断(例如判断存在P个分类结果是准确的),最后根据所有的判断结果得到所有二分类结果的准确率(即P/K),并且在准确率未达到预设阈值(例如:0.9、0.95等,可以根据精度要求进行任意选择)时,对预设的网络结构中的参数进行调整;直至最终的准确率达到预设阈值为止。
如图7所示,在一些实施例中,如前述的图像处理方法,在步骤S23中的得到禽蛋暗纹检测模型之后,还包括步骤:将待检测禽蛋图像输入禽蛋暗纹检测模型判断待检测禽蛋图像中的禽蛋是否存在暗纹;该步骤可以包括如下所示步骤S241至S244。
S241.将待检测禽蛋图像调整为第三预设像素值的第一待检测图像。
具体的,在通过前述步骤得到的禽蛋暗纹检测模型对图像进行预测时,需要使待检测禽蛋图像的像素值为训练用图像的像素值的整数倍,以通过上述的下采样层以及池化层对待检测禽蛋图像进行下采样以及平均池化;因此,在输入模型前,先执行本步骤,将待检测禽蛋图像调整为第三预设像素值的第一待检测图像;即第三预设像素值为训练用图像的像素值的整数倍。
S242.将第一待检测图像输入禽蛋暗纹检测模型得到N个第二二分类输出结果;其中,第三预设像素值为禽蛋样本图像的像素值的N倍,N为大于等于2的整数。
具体的,由于一个禽蛋样本图像通过禽蛋暗纹检测模型输出为一个第一二分类输出结果,因此,当第三预设像素值为为禽蛋样本图像的像素值的N倍时,输出的第二二分类输出结果为N个。
S243.根据第二二分类输出结果得到N个禽蛋存在暗纹的置信度。
具体的,由于一个第二二分类输出结果可以根据经过卷积层处理后得到的特征向量x得到其属于存在暗纹的概率以及不存在暗纹的概率;因此,可以得到N个禽蛋存在暗纹的置信度。
S244.当置信度符合预设条件时,判断禽蛋存在暗纹。
具体的,预设条件可以根据判断要求以及判断精度进行选择,可选的,预设条件可以是单一条件,也可以是多个条件的组合。
因而,通过本实施例中的方法可以实现了一种基于分类网络的禽蛋暗纹检测方法,有效提高了实际场景中禽蛋暗纹检测的准确性和实时性。
在一些实施例中,如前述的图像处理方法,步骤S244中的置信度符合预设条件,包括如下判断条件:
条件1:数值最大的第一置信度大于第一预设置信度阈值。
具体的,在得到所有置信度之后,可以在确定其中最大的置信度,并记为第一置信度;举例来说:第一预设置信度阈值可以为0.98。
条件2:将置信度按照数值由大到小进行排列时,前M个置信度的平均值大于第二预设置信度阈值,其中,M为小于或等于N的正整数。
具体的,在得到所有置信度之后,对其按照数值由大到小进行排序,然后取前M个置信度,并计算平均值。
因此,判断方法可以是:当满足条件1或条件2中的一个,或同时满足时条件1或条件2时,判定置信度符合预设条件。
举例来说:当N为4,M为2,4个置信度分别为:0.95、0.45、0.88和0.91,且第一预设置信度阈值为0.98,第二预设置信度阈值为0.90时;第一置信度为0.95,置信度大小排前2的置信度为0.95和0.91,则平均值为0.93;若只以条件1进行判断,则禽蛋不存在暗纹;若只以条件2进行判断,则禽蛋存在暗纹;若条件1或条件2只需满足其中一个时,则禽蛋存在暗纹;若条件1和条件2需同时满足时,则禽蛋不存在暗纹。
如图8所示,根据本申请的另一方面的一种实施例,本申请实施例提供了一种禽蛋检测装置,包括:
获取模块11,用于获取待检测禽蛋图像,待检测禽蛋图像中包括被拾取设备的拾取且被照亮的禽蛋;
暗纹模块12,用于根据预先训练的禽蛋暗纹检测模型检测得到待检测禽蛋图像中的禽蛋是否存在暗纹,得到禽蛋的分类信息;
标签模块13,用于根据分类信息生成禽蛋对应的标签。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
如图9所示,根据本申请的另一方面的一种实施例,本申请实施例提供了一种图像处理装置,包括:
样本获取模块21,用于获取禽蛋样本图像;
类型确定模块22,用于确定禽蛋样本图像的样本类型;
模型训练模块23,用于采用禽蛋样本图像和样本类型对预设的网络结构进行训练,得到禽蛋暗纹检测模型。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图10所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
上述电子设备提到的总线可以是外设部件互连标准(Peripheral ComponentInterconnect ,PCI) 总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。