关键点检测、图像处理方法、装置、电子设备及存储介质
技术领域
本申请涉及人工智能领域,尤其涉及一种关键点检测、图像处理方法、装置、电子设备及存储介质。
背景技术
随着人工智能的发展,智能化养殖越来越普及,但是对于实现真正的智能化养殖还存在不少问题,目前,现有的算法均假设在完美摄像头角度,相同光照条件下进行的,当场景移植时,摄像头角度,光照条件都会发生很大变换,算法不具备泛化性。
例如:目标物为家畜时,实际场景中多变的光照环境,以及家畜身上的脏污和地面高光物体等因素,会造成轮廓提取错误,进而影响家畜身上关键点的检测精度。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种关键点检测、图像处理方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种关键点检测方法,包括:
获取第一待检测图像,所述第一待检测图像中包括至少一个目标物;
将所述第一待检测图像输入预先训练的位置检测模型,得到所述待检测图像中所述目标物对应的位置信息;
根据所述位置信息生成与所述目标物对应的第二待检测图像;
将所述第二待检测图像输入预先训练的关键点检测模型,得到所述目标物的关键点。
在一个可能的实施方式中,所述关键点检测模型包括:卷积子网络和反卷积子网络;
将所述第二待检测图像输入预先训练的关键点检测模型,得到所述目标物的关键点,包括:
将所述第二待检测图像输入卷积子网络,得到第一卷积结果;
根据所述第一卷积结果确定所述目标物对应的预设数量的局部坐标;
将所述第一卷积结果输入所述反卷积子网络,得到第二卷积结果;
按照所述预设数量的局部坐标对所述第二卷积结果进行分割,得到所述预设数量的局部图像;
根据所述预设数量的局部图像确定所述目标物的关键点。
在一个可能的实施方式中,所述根据所述预设数量的局部图像确定所述目标物的关键点,包括:
从预设起始点开始按照预设顺序从每一个局部图像中获取满足预设条件的两个目标点;
当所述两个目标点之间的像素差小于预设像素差时,将像素值最大的目标点作为所述关键点。
在一个可能的实施方式中,所述方法还包括:
当所述两个目标点之间的像素差大于所述预设像素差时,获取所述两个目标点之间的中点,将所述中点作为所述关键点。
在一个可能的实施方式中,所述方法还包括:
当所述两个目标点的像素值相等时,将所述两个目标点中距离所述预设起始点最近的目标点作为所述关键点。
在一个可能的实施方式中,所述方法还包括:
获取第一样本图像,所述第一样本图像中包括所述目标物;
获取所述第一样本图像的第一标注信息,所述第一标注信息包括:所述第一样本图像中所述目标物的关键点信息;
根据第一预设卷积神经网络模型对所述第一样本图像以及所述目标物的关键点信息进行训练,得到所述关键点检测模型。
在一个可能的实施方式中,所述方法还包括:
获取第二样本图像,所述第二样本图像中至少包括一个所述目标物;
获取所述第二样本图像中的第二标注信息,所述第二标注信息包括所述第二样本图像中所述目标物对应的目标物标注信息;
根据第二预设卷积神经网络模型对所述第二样本图像以及所述目标物标注信息进行训练,得到所述位置检测模型。
第二方面,本申请提供了一种图像处理方法,所述方法包括:
获取目标物样本图像;
获取所述目标物样本图像的标记信息,所述标记信息包括:所述目标物样本图像中目标物的第一关键点信息;
采用预设卷积神经网络模型对所述目标样本图像以及所述第一关键点信息进行训练,得到关键点检测模型;
其中,所述预设卷积神经网络模型包括卷积子网络和反卷积子网络,所述卷积子网络用于对所述目标物样本图像进行卷积处理得到第一卷积结果,所述反卷积子网络用于对所述第一卷积结果进行反卷积处理得到第二卷积结果,所述第二卷积结果用于确定所述目标物的关键点。
在一个可能的实施方式中,所述采用预设卷积神经网络模型对所述目标样本图像以及所述第一关键点信息进行训练,得到关键点检测模型,包括:
将所述目标物样本图像输入所述预设卷积神经网络模型,得到第二关键点信息;
计算所述第二关键点信息与所述第一关键点信息的对抗损失;
根据所述对抗损失对所述预设卷积神经网络模型进行迭代训练,得到所述关键点检测模型。
第三方面,本申请提供了一种关键点检测装置,所述装置包括:
获取模块,用于获取第一待检测图像,所述第一待检测图像中包括至少一个目标物;
第一输入模块,用于将所述第一待检测图像输入预先训练的位置检测模型,得到所述第一待检测图像中所述目标物对应的位置信息;
生成模块,用于根据所述位置信息生成与所述目标物对应的第二待检测图像;
第二输入模块,用于将所述第二待检测图像输入预先训练的关键点检测模型,得到所述目标物的关键点。
第四方面,本申请提供了一种图像处理装置,所述装置包括:
第一获取模块,用于获取目标物样本图像;
第二获取模块,用于获取所述目标物样本图像的标注信息,所述标注信息包括:所述目标物样本图像中目标物的第一关键点信息;
训练模块,用于采用预设卷积神经网络模型对所述目标样本图像以及所述目标物的关键点信息进行训练,得到关键点检测模型。
第五方面,本申请提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例公开的技术方案,通过关键点检测模型对目标物进行关键点检测,能够保证关键点检测的准确率,同时还能够减少计算量。另外还为实现移动端的部署,以及后续畜牧智能化管理做铺垫。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种关键点检测方法的流程图;
图2为本申请实施例提供的将第一待检测图像输入位置检测模型得到的图像示意图;
图3本申请实施例提供的根据位置信息生成的第二待检测图像示意图;
图4为本申请实施例提供的关键点检测模型的模型结构;
图5为本申请另一实施例提供的一种图像处理方法的流程图;
图6为本申请实施例提供的一种关键点检测装置的框图;
图7为本申请另一实施例提供的一种图像处理装置的框图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种关键点检测、图像处理方法、装置、电子设备及存储介质,本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。下面首先对本发明实施例所提供的一种关键点检测方法进行介绍。
图1为本申请实施例提供的一种关键点检测方法的流程图,如图1所示,该方法包括以下步骤:
步骤S11,获取第一待检测图像,第一待检测图像中包括至少一个目标物。
步骤S12,将第一待检测图像输入预先训练的位置检测模型,得到第一待检测图像中目标物对应的位置信息。
步骤S13,根据位置信息生成与目标物对应的第二待检测图像。
步骤S14,将第二待检测图像输入预先训练的关键点检测模型,得到目标物的关键点。
本申请实施例涉及的目标物可以是家畜,如:牛,羊,马,猪等,也可以是家禽,如:鸡,鸭,鹅等。本实施例通过关键点检测模型对目标物进行关键点检测,能够保证关键点检测的准确率,同时还能够减少计算量。另外还为实现移动端的部署,以及后续畜牧智能化管理做铺垫。
通过对猪舍进行拍摄,采集猪舍图像,其中采集的猪舍图像中包括至少一个猪只,之后对猪舍图像进行减均值以及归一化操作,得到第一待检测图像,并将第一待检测图像输入预先训练的位置检测模型中,如图2所示,图2为本申请实施例将第一待检测图像输入位置检测模型得到的图像,以此可以得到第一待检测图像中每一个猪只对应的位置信息,本实施例中的位置信息为猪只的包围区域坐标。并根据得到的包围区域坐标生成与猪只对应的第二待检测图像,如图3所示,图3本申请实施例提供的根据位置信息生成的第二待检测图像示意图。
得到第二待检测图像后,将第二待检测图像输入关键点检测模型中,得到猪只的关键点。图4为本申请实施例提供的关键点检测模型的模型结构示意图,如图4所示,关键点检测模型包括:卷积子网络和反卷积子网络。
本实施例中,关键点检测模型具体处理方式如下:
将第二待检测图像输入卷积子网络,卷积子网络对第二待检测图像中的猪只的进行初步卷积计算,得到第一卷积结果,根据第一卷积结果从而得到猪只在第二待检测图像中的局部坐标,之后将第一卷积结果输入反卷积子网络,得到第二卷积结果,根据局部坐标对第二卷积结果进行分割,得到五个通道的局部图像,并根据得到的五个局部图像确定猪只的关键点。
在得到猪只的关键点后,确定猪只的关键点在第二待检测图像中的第一坐标,并将第一坐标转换为关键点在第一待检测图像中的第二坐标,以此得到第一待检测图像中每个猪只的关键点。
可选的,根据得到的五个局部图像确定猪只的关键点的具体方式为:从每一个局部图像的左上角(即预设起始点)开始,按照从左上角到右下角的顺序从每一个局部图像中获取像素值最大的两个像素点,因为得到的局部图像中包括该局部图像中每一个像素点的像素值,所以满足预设条件为:局部图像中像素值最大的两个像素点。并将这两个像素点作为目标点。
本实施例中预设像素差为10个像素,当两个目标点之间的像素差小于10个像素时,将像素值最大的目标点作为关键点,或,当两个目标点的像素值相等时,将两个目标点中距离左上角(即预设起始点)最近的目标点作为关键点。
由于实际场景中,还存在猪只遮挡、重叠的情况,像素值最大的目标点可能是另外一头猪的关键点,也就是说,此情况下像素值最大值的目标点,不一定是最准确的点。所以当两个目标点之间的像素差大于10个像素时,获取两个目标点的坐标,根据两个目标点的坐标计算出平均坐标,将平均坐标对应的像素点作为关键点,即获取两个目标点之间的中点。在此情况下,通过将两个目标点的中点作为关键点有助于减少误差。
本实施例中的关键点检测模型中卷积子网络采用的MobileNetV1。MobileNetV1是一种针对移动端以及嵌入式视觉应用提出的轻型权重深度神经网络模型,其核心部分是深度可分离卷积。深度可分离卷积包含深度卷积和逐点卷积。深度卷积对输入的通道进行滤波,其不增加通道的数量,逐点卷积用于将深度卷积不同的通道进行连接,其可以增加通道的数量。以此减少计算量。
另外,通过在卷积子网络后添加反卷积子网络,能够将高层特征信息与浅层特征信息融合,其中,高层特征信息是指反卷积子网络输出的特征,具有高度的特征概率和分类的能力。浅层特征信息,是指卷积子网络输出的特征,保留了较多的图像语义信息,同时对小目标信息也有良好的保证。通过将浅层和深层的特征融合,可以使得模型具有更好的特征表达能力,效果会更好。且相比直接对卷积子网络输出的卷积结果进行分割,可以有效提升图像处理的精度。
可选的,关键点检测模型通过以下方式得到:获取第一样本图像,第一样本图像为单个猪只图像,获取第一样本图像的第一标注信息,第一标注信息包括:第一样本图像中猪只的关键点信息,关键点信息可以是关键点的坐标。根据第一预设卷积神经网络模型对第一样本图像以及猪只的关键点信息进行训练,得到关键点检测模型。
可选的,位置检测模型通过以下方式得到:获取第二样本图像,第二样本图像可以是猪舍图像,第二样本图像中至少包括一个猪只,之后获取第二样本图像中的第二标注信息,第二标注信息包括第二样本图像中猪只对应的猪只标注信息,本实施例中,猪只标注信息可以是:猪只的特征信息以及猪只真实的位置信息,位置信息可以是包围框坐标。
在得到第二样本图像以及猪只标注信息后,根据第二预设卷积神经网络模型对第二样本图像以及猪只标注信息进行迭代训练,得到位置检测模型,可选的,第二预设卷积神经网络为MobileNetV2-YOLOv3模型。
位置检测模型的具体训练过程如下:将第二样本图像输入第二预设卷积神经网络,得到模型输出的位置信息,计算模型输出的位置信息与真实的位置信息的对抗损失,根据对抗损失对第二预设卷积模型进行迭代训练,得到位置检测模型。
图5为本申请另一实施例提供的一种图像处理方法的流程图。如图5所示,该方法还包括以下步骤:
步骤S51,获取目标物样本图像。
步骤S52,获取目标物样本图像的标记信息,标记信息包括:目标物样本图像中目标物的第一关键点信息。
步骤S53,采用预设卷积神经网络模型对目标样本图像以及第一关键点信息进行训练,得到关键点检测模型。
本实施例中,目标物样本图像为单个猪只的样本图像,并通过人工对图像进行标注,得到目标样本图像的标注信息,标注信息包括目标物的第一关键点信息,本实施例中第一关键点信息为猪只身上的五个关键点。
采用预设卷积神经网络模型对目标样本图像以及猪只的五个关键点进行训练,预设卷积神经网络模型包括卷积子网络和反卷积子网络,卷积子网络用于对目标物样本图像进行卷积处理得到第一卷积结果,反卷积子网络用于对第一卷积结果进行反卷积处理得到第二卷积结果,第二卷积结果用于确定目标物的关键点。
训练步骤过程如下:将目标物样本图像输入预设卷积神经网络模型,得到第二关键点信息,计算第二关键点信息与第一关键点信息的对抗损失。
可选的,本实施例中将目标物样本图像分别经过7*7,9*9,11*11,15*15四个不同的高斯核,进行高斯模糊,得到4个不同的第二关键点信息,之后计算上述四个第二关键点信息的平均值,将平均值作为对抗损失,之后根据对抗损失对预设卷积神经网络模型进行迭代训练,得到关键点检测模型。
图6为本申请实施例提供的一种关键点检测装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该关键点检测装置包括:
获取模块601,用于获取第一待检测图像,第一待检测图像中包括至少一个目标物;
第一输入模块602,用于将第一待检测图像输入预先训练的位置检测模型,得到第一待检测图像中目标物对应的位置信息;
生成模块603,用于根据位置信息生成与目标物对应的第二待检测图像;
第二输入模块604,用于将第二待检测图像输入预先训练的关键点检测模型,得到目标物的关键点。
图7为本申请实施例提供的一种图像处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,该图像处理装置包括:
第一获取模块701,用于获取目标物样本图像;
第二获取模块702,用于获取目标物样本图像的标记信息,标记信息包括:目标物样本图像中目标物的第一关键点信息;
训练模块703,用于采用预设卷积神经网络模型对目标样本图像以及目标物的第一关键点信息进行训练,得到关键点检测模型。
本申请实施例还提供一种电子设备,如图8所示,电子设备可以包括:处理器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)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取第一待检测图像,第一待检测图像中包括至少一个目标物;
将第一待检测图像输入预先训练的位置检测模型,得到待检测图像中目标物对应的位置信息;
根据位置信息生成与目标物对应的第二待检测图像;
将第二待检测图像输入预先训练的关键点检测模型,得到目标物的关键点。
可选的,该计算机程序被处理器执行时还实现以下步骤:
关键点检测模型包括:卷积子网络和反卷积子网络;
将第二待检测图像输入预先训练的关键点检测模型,得到目标物的关键点,包括:
将第二待检测图像输入卷积子网络,得到第一卷积结果;
根据第一卷积结果确定目标物对应的预设数量的局部坐标;
将第一卷积结果输入反卷积子网络,得到第二卷积结果;
按照预设数量的局部坐标对第二卷积结果进行分割,得到预设数量的局部图像;
根据预设数量的局部图像确定目标物的关键点。
可选的,该计算机程序被处理器执行时还实现以下步骤:
根据所述预设数量的局部图像确定目标物的关键点,包括:
从预设起始点开始按照预设顺序从每一个局部图像中获取满足预设条件的两个目标点;
当两个目标点之间的像素差小于预设像素差时,将像素值最大的目标点作为所述关键点。
可选的,该计算机程序被处理器执行时还实现以下步骤:
当两个目标点之间的像素差大于预设像素差时,获取两个目标点之间的中点,将中点作为所述关键点。
可选的,该计算机程序被处理器执行时还实现以下步骤:
当两个目标点的像素值相等时,将两个目标点中距离预设起始点最近的目标点作为所述关键点。
可选的,该计算机程序被处理器执行时还实现以下步骤:
获取第一样本图像,第一样本图像中包括目标物;
获取第一样本图像的第一标注信息,第一标注信息包括:第一样本图像中目标物的关键点信息;
根据第一预设卷积神经网络模型对第一样本图像以及目标物的关键点信息进行训练,得到关键点检测模型。
可选的,该计算机程序被处理器执行时还实现以下步骤:
获取第二样本图像,第二样本图像中至少包括一个所述目标物;
获取第二样本图像中的第二标注信息,第二标注信息包括第二样本图像中目标物对应的目标物标注信息;
根据第二预设卷积神经网络模型对第二样本图像以及目标物标注信息进行训练,得到位置检测模型。
该计算机程序被处理器执行时还实现以下步骤:
获取目标物样本图像;
获取目标物样本图像的标记信息,标记信息包括:目标物样本图像中目标物的第一关键点信息;
采用预设卷积神经网络模型对目标样本图像以及第一关键点信息进行训练,得到关键点检测模型;
其中,预设卷积神经网络模型包括卷积子网络和反卷积子网络,卷积子网络用于对目标物样本图像进行卷积处理得到第一卷积结果,反卷积子网络用于对第一卷积结果进行反卷积处理得到第二卷积结果,第二卷积结果用于确定目标物的关键点。
该计算机程序被处理器执行时实现以下步骤:
采用预设卷积神经网络模型对目标样本图像以及第一关键点信息进行训练,得到关键点检测模型,包括:
将目标物样本图像输入预设卷积神经网络模型,得到第二关键点信息;
计算所述第二关键点信息与所述第一关键点信息的对抗损失;
根据对抗损失对预设卷积神经网络模型进行迭代训练,得到关键点检测模型。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。