用于检测关键点的方法和装置与流程

文档序号:21369669发布日期:2020-07-04 06:19阅读:412来源:国知局
用于检测关键点的方法和装置与流程
本公开涉及人工智能
技术领域
,特别涉及一种用于检测关键点的方法和装置。
背景技术
:关键点检测是检测图片中的物体关键部件位置,比如检测人体骨骼点。这些骨骼关键点包括头、颈、肩、髋、膝、手肘、脚踝等。图1是示出根据一些实施例的人体骨骼关键点的检测示意图。如图1所示,方框表示检测到的整个人体的位置,实心点表示人体对应的骨骼点,实线连接骨骼点表示人体姿态。关键点(例如,人体骨骼关键点)检测一般采用自顶向下的方法实现,也就是先检测整个物体的边框,然后在边框里面定位不同部件的位置。当一张图片中包含多个人物,人与人之间紧凑挨着,并且姿态变化很大的时候,使用该方法不能保证能正确包含一个人所有的骨骼关键点,或者出现检测框包含其他人的骨骼关键点的情况,如图1所示。技术实现要素:本公开解决的一个技术问题是:提供一种用于检测关键点的方法,以检测出不同目标对象的关键点。根据本公开实施例的一个方面,提供了一种用于检测关键点的方法,包括:将包含至少一个目标对象的图片输入卷积网络,其中,每个目标对象具有预先定义的多个关键点和所述多个关键点之间的一组连接关系,不同目标对象的关键点之间不存在连接关系;利用所述卷积网络输出多个第一特征图和多个第二特征图,其中,每个第一特征图对应于所述至少一个目标对象的一类关键点,每个第二特征图对应于所述至少一个目标对象的一类连接关系;以及利用所述多个第一特征图和所述多个第二特征图将所述图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合以检测出该目标对象的所有关键点。在一些实施例中,每个第一特征图采用一个第一矩阵来表示,每个第二特征图采用一个第二矩阵来表示。在一些实施例中,将所述图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合的步骤包括:对于所述图片中的一个目标对象,将该目标对象的一个关键点确定为基础关键点;基于所述基础关键点与下一个关键点的连接关系类型获得包含所有下一个关键点的第一特征图,并在该第一特征图中查找得到所有下一个关键点;在包含所述基础关键点与下一个关键点的连接关系的第二特征图中,获得该基础关键点分别与所查找得到的每个关键点之间的连线;在与该第二特征图所对应的第二矩阵上,分别计算每个连线所对应的所有元素值之和;根据与每个连线所对应的元素值之和确定与所述基础关键点属于同一个目标对象的连线;以及根据所确定的连线获得与所述基础关键点连接的响应值最大的下一个关键点。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为非零值,该第二矩阵的其他元素值均为0,其中,根据与每个连线所对应的元素值之和确定与所述基础关键点属于同一个目标对象的连线的步骤包括:将元素值之和最大的连线确定为与所述基础关键点属于同一个目标对象的连线;在所述非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为0,该第二矩阵的其他元素值均为非零值,其中,根据与每个连线所对应的元素值之和确定与所述基础关键点属于同一个目标对象的连线的步骤包括:将元素值之和最小的连线确定为与所述基础关键点属于同一个目标对象的连线;在所述非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和的相反数。在一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为非零值,该第一矩阵的其他元素值均为0;或者,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为0,该第一矩阵的其他元素值均为非零值。在一些实施例中,在所述图片中,利用每个关键点的坐标和状态表示该关键点,其中,所述状态包括:可见状态、不可见状态和部分可见状态。在一些实施例中,在将包含至少一个目标对象的图片输入卷积网络之前,所述方法还包括:将包含具有已知关键点的目标对象的图片输入所述卷积网络以训练所述卷积网络。根据本公开实施例的另一个方面,提供了一种用于检测关键点的装置,包括:输入单元,用于将包含至少一个目标对象的图片输入卷积网络,其中,每个目标对象具有预先定义的多个关键点和所述多个关键点之间的一组连接关系,不同目标对象的关键点之间不存在连接关系;输出单元,用于利用所述卷积网络输出多个第一特征图和多个第二特征图,每个第一特征图对应于所述至少一个目标对象的一类关键点,每个第二特征图对应于所述至少一个目标对象的一类连接关系;以及分组单元,用于利用所述多个第一特征图和所述多个第二特征图将所述图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合以检测出该目标对象的所有关键点。在一些实施例中,每个第一特征图采用一个第一矩阵来表示,每个第二特征图采用一个第二矩阵来表示。在一些实施例中,所述分组单元用于对于所述图片中的一个目标对象,将该目标对象的一个关键点确定为基础关键点,基于所述基础关键点与下一个关键点的连接关系类型获得包含所有下一个关键点的第一特征图,并在该第一特征图中查找得到所有下一个关键点,在包含所述基础关键点与下一个关键点的连接关系的第二特征图中,获得该基础关键点分别与所查找得到的每个关键点之间的连线,在与该第二特征图所对应的第二矩阵上,分别计算每个连线所对应的所有元素值之和,根据与每个连线所对应的元素值之和确定与所述基础关键点属于同一个目标对象的连线,以及根据所确定的连线获得与所述基础关键点连接的响应值最大的下一个关键点。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为非零值,该第二矩阵的其他元素值均为0,所述分组单元用于将元素值之和最大的连线确定为与所述基础关键点属于同一个目标对象的连线;其中,在所述非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为0,该第二矩阵的其他元素值均为非零值,所述分组单元用于将元素值之和最小的连线确定为与所述基础关键点属于同一个目标对象的连线;其中,在所述非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和的相反数。在一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为非零值,该第一矩阵的其他元素值均为0;或者,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为0,该第一矩阵的其他元素值均为非零值。在一些实施例中,在所述图片中,利用每个关键点的坐标和状态表示该关键点,其中,所述状态包括:可见状态、不可见状态和部分可见状态。在一些实施例中,所述输入单元还用于将包含具有已知关键点的目标对象的图片输入所述卷积网络以训练所述卷积网络。根据本公开实施例的另一个方面,提供了一种用于检测关键点的装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。上述方法通过卷积网络预测关键点之间的连接关系,利用这个连接关系实现不同目标对象的关键点的正确分组,从而检测出不同目标对象的关键点。而且,上述方法能够使得每个目标对象正确包含该目标对象所有的关键点,不会出现如现有技术中一个目标对象的检测框包含其他目标对象的关键点的情况。通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。附图说明构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:图1是示出根据一些实施例的人体骨骼关键点的检测示意图;图2是示出根据本公开一些实施例的用于检测关键点的方法的流程图;图3是示出根据本公开一些实施例的人体骨骼关键点的示意图;图4是示出根据本公开一些实施例的输出第二特征图的示意图;图5是示出根据本公开一些实施例的将图片中的关键点分组的方法的流程图;图6a至图6d是示出根据本公开一些实施例的将图片中的关键点分组的过程中若干阶段的人体骨骼关键点的示意图;图7是示出根据本公开一些实施例的用于检测关键点的装置的结构示意图;图8是示出根据本公开另一些实施例的用于检测关键点的装置的结构示意图;图9是示出根据本公开另一些实施例的用于检测关键点的装置的结构示意图。具体实施方式现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。图2是示出根据本公开一些实施例的用于检测关键点的方法的流程图。如图2所述,该方法可以包括步骤s202至s206。在步骤s202,将包含至少一个目标对象的图片输入卷积网络(或者称为卷积神经网络(convolutionalneuralnetworks,简称为cnn)),其中,每个目标对象具有预先定义的多个关键点和该多个关键点之间的一组连接关系,不同目标对象的关键点之间不存在连接关系。在一些实施例中,对于目标对象,可以预先定义多个关键点和该多个关键点之间的一组连接关系。不同目标对象的关键点之间不存在连接关系。这些关键点即为待检测的多个关键点。下面以骨骼关键点为例进行说明。可以定义k个骨骼关键点,并且利用骨骼关键点定义一组连接关系。这种连接关系在同一个目标对象中存在,不同目标对象的关键点之间不存在连接关系。例如,同一个人的右肩和右手肘(即右肘)存在连接关系(右肩→右手肘),但是对于不同的人,一个人的右肩与另一个人的右手肘不存在连接关系。例如,可以使用aichallenge(人工智能挑战)定义的骨骼关键点,共14个。表1示出了人体骨骼关键点以及对应的序号。表1人体骨骼关键点以及对应的序号1/右肩2/右肘3/右腕4/左肩5/左肘6/左腕7/右髋8/右膝9/右踝10/左髋11/左膝12/左踝13/头顶14/脖子在一些实施例中,在图片中,可以利用每个关键点的坐标和状态表示该关键点。例如,对于每个人p=[(x1,y1,v1),(x2,y2,v2),...,(xn,yn,vn)],其中(xi,yi)表示人体骨骼关键点在图中的坐标位置,vi表示人体骨骼关键点在图中的状态,1≤i≤n,i和n均为正整数。对于这些关键点,还定义一组特定的连接关系,比如(右肩->右手肘)等。在一些实施例中,该状态可以包括:可见状态、不可见状态和部分可见状态。这里,可见状态表示当前关键点是可见的,不可见状态表示当前关键点被遮挡从而是不可见的,部分可见状态表示当前关键点被部分遮挡从而是部分可见的。通过设置关键点的状态,可以防止遗漏一些不可见或者部分可见的关键点。在步骤s204,利用卷积网络输出多个第一特征图和多个第二特征图,其中,每个第一特征图对应于所述至少一个目标对象的一类关键点,每个第二特征图对应于所述至少一个目标对象的一类连接关系。例如,该卷积网络可以输出k个第一特征图,k为正整数。每个第一特征图对应于所述至少一个目标对象(例如多个目标对象)的相同类型的一类关键点。以骨骼关键点为例,每个第一特征图对应图片中多个人的同一类型的骨骼关键点。综合所有的特征图,完成一张图片多人所有骨骼关键点的检测。例如,基于上述的14个人体骨骼关键点,通过卷积网络可以产生14个第一特征图,每个第一特征图表示多个人的一类骨骼关键点。例如,一个第一特征图表示多个人的右肩关键点,另一个第一特征图表示多个人的右手肘关键点,等等。在一些实施例中,每个第一特征图采用一个第一矩阵来表示。在一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为非零值,该第一矩阵的其他元素值(即与除关键点之外的其他位置对应的元素值)均为0。例如,如果在图片的位置(xi,yi)出现了类型为m的骨骼关键点,那么在第m个第一特征图相应的位置(xi′,yi′)的像素点所对应的第一矩阵的元素值为非零值(例如1),第一矩阵的其他位置的元素值为0。位置对应关系可以通过简单的缩放推知。将所有特征图组合形成一个输出图,该输出图标识所有骨骼关键点。图3是示出根据本公开一些实施例的人体骨骼关键点的示意图。该图3示出了卷积网络生成的两个人的所有骨骼关键点。在另一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为0,该第一矩阵的其他元素值(即与除关键点之外的其他位置对应的元素值)均为非零值。在一些实施例中,每个第二特征图采用一个第二矩阵来表示。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为非零值(该非零值可以是正值,例如1)(即连线的所有像素点与第二矩阵的一些元素相对应,该连线所对应的所有元素值均为非零值),该第二矩阵的其他元素值(即与除连线之外的其他位置对应的元素值)均为0。这样的第二矩阵可以称为第一种第二矩阵。在该实施例中,卷积网络可以产生多个预先定义的第二特征图,每个第二特征图对应一种连接关系,满足在体现连接关系的连线(或者称为边)上产生较大输出(即,在第二矩阵中与反映连接关系的连线所对应的所有元素值均为非零值),其他位置为零。该第二特征图还可以称为边图。例如,对于每个连接关系,以“右肩→右手肘”为例,卷积网络输出一个第二特征图。在同一目标对象内的右肩到右手肘之间的连线上具有很大的响应值,其他地方很小。图4是示出根据本公开一些实施例的输出第二特征图的示意图。该图4示出了两个人的“右肩→右手肘”经过卷积网络后生成的第二特征图。在该第二特征图中两条白线分别对应这两个人的“右肩→右手肘”的连接关系。例如,在第二矩阵(图中未示出)上与这两条白线的像素所对应的所有元素值均为非零值,该第二矩阵的其他位置的元素值均为0(与该第二特征图的黑色区域对应)。在另一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为0(即连线的所有像素点与第二矩阵的一些元素相对应,该连线所对应的所有元素值均为0),该第二矩阵的其他元素值均为非零值(该非零值可以是正值,例如1)。这样的第二矩阵可以称为第二种第二矩阵。回到图2,在步骤s206,利用多个第一特征图和多个第二特征图将图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合以检测出该目标对象的所有关键点。在一些实施例中,利用多个第一特征图和多个第二特征图,可以使用贪心算法将不同关键点进行分组,即一个关键点选择与其最可能相连的下一个关键点进行组合。这个可能性可以通过响应值来得到。例如,响应值可以是相应连线所对应的所有元素值之和或所有元素值之和的相反数。需要说明的是,该响应值可以作为连线的响应值,也可以作为该连线两端的关键点连接的响应值(即两个关键点之间的连接动作或连接状态的响应值)。例如,可以先确定与初始关键点可能具有连接关系的某些关键点与该初始关键点的连线,从这些可能的连线中选择连线的响应值最大的连线,该连线的关键点即为与初始关键点具有连接关系的下一个关键点。例如,图片中以某个人的头部骨骼关键点作为初始关键点,预先设定颈部骨骼关键点作为第二关键点,从第一特征图中找到所有人的颈部骨骼关键点,然后在第二特征图中将所有颈部骨骼关键点与先前的那个人的头部骨骼关键点连线,从这些连线中选择响应值最大的连线所对应的关键点作为这个人的第二关键点。例如,对于第一种第二矩阵,在非零值为正值的情况下,响应值为相应连线所对应的所有元素值之和,即,响应值=元素值之和。在另一些实施例中,对于第一种第二矩阵,在非零值为负值的情况下,响应值为相应连线所对应的所有元素值之和的相反数。又例如,对于第二种第二矩阵,在非零值为正值的情况下,响应值为相应连线所对应的所有元素值之和的相反数,即,响应值=-(元素值之和)。在另一些实施例中,在非零值为负值的情况下,响应值为相应连线所对应的所有元素值之和。在上述步骤中,通过将不同关键点分组,从而使得每个目标对象的所有关键点各自组成一组。这样有多少个目标对象,就可以分成多个组。至此,根据本公开一些实施例的用于检测关键点的方法。在该方法中,将包含至少一个目标对象的图片输入卷积网络。每个目标对象具有预先定义的多个关键点和该多个关键点之间的一组连接关系。不同目标对象的关键点之间不存在连接关系。利用该卷积网络输出多个第一特征图和多个第二特征图。每个第一特征图对应于所述至少一个目标对象的一类关键点,每个第二特征图对应于所述至少一个目标对象的一类连接关系。利用该多个第一特征图和该多个第二特征图将图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合以检测出该目标对象的所有关键点。上述方法通过卷积网络预测关键点之间的连接关系,利用这个连接关系实现不同目标对象的关键点的正确分组,从而检测出(或者定位出)不同目标对象的关键点。此外,该方法还可以较好的对抗变形。这里,对抗变形是指对抗姿态的变化,也就是能处理不同的姿态。上述方法能够使得每个目标对象正确包含该目标对象所有的关键点,而且不会出现如现有技术中一个目标对象的检测框包含其他目标对象的关键点的情况。在一些实施例中,在步骤s202之前,所述方法还可以包括:将包含具有已知关键点的目标对象的图片输入卷积网络以训练该卷积网络。即,将一些图片(该图片中的目标对象的关键点和连接关系均已知)输入该卷积网络即可训练该卷积网络。图5是示出根据本公开一些实施例的将图片中的关键点分组的方法的流程图。该方法描述了图2中的步骤s206的具体实施方法。如图5所示,该方法可以包括步骤s502至s512。在该方法中,以检测出一个目标对象的关键点为例进行说明。在步骤s502,对于图片中的一个(即某个)目标对象,将该目标对象的一个关键点确定为基础关键点。例如,该基础关键点可以是初始关键点。例如,对于图片中的某个人,将该人的头部骨骼关键点确定为基础关键点。在步骤s504,基于该基础关键点与下一个关键点的连接关系类型获得包含所有下一个关键点的第一特征图,并在该第一特征图中查找得到所有下一个关键点。需要说明的是,虽然不同目标对象的关键点之间不存在连接关系,但是不同目标对象的关键点之间连接时可能属于同一个连接关系类型。例如,对于包含多个人的图片,某个人的头部骨骼关键点与该人的颈部骨骼关键点组成一个连接关系,而这个人的头部骨骼关键点与其他人的颈部骨骼关键点没有组成连接关系,但是这个人的头部骨骼关键点与其他人的颈部骨骼关键点连接时属于“头部骨骼关键点→颈部骨骼关键点”这样的连接关系类型。这样,在图片中存在多个目标对象(例如多个人)的情况下,可以基于基础关键点与下一个关键点的连接关系类型获得包含所有下一个关键点的第一特征图,并在该第一特征图中查找得到所有下一个关键点。在步骤s506,在包含基础关键点与下一个关键点的连接关系的第二特征图中,获得该基础关键点分别与所查找得到的每个关键点之间的连线。即,根据基础关键点和查找得到的所有下一个关键点找到包含这些关键点的连接关系的第二特征图,在该第二特征图中,将该基础关键点分别与所查找得到的每个关键点连接即可得到多个连线。例如,可以得到某个人的头部骨骼关键点与所有人的颈部骨骼关键点的连线。在步骤s508,在与该第二特征图所对应的第二矩阵上,分别计算每个连线所对应的所有元素值之和。例如,上面所得到的多个连线分别与第二特征图所对应的第二矩阵的一些元素值对应,分别计算每个连线所对应的所有元素值之和。在步骤s510,根据与每个连线所对应的元素值之和确定与基础关键点属于同一个目标对象的连线。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为非零值(例如,该非零值为正值),该第二矩阵的其他元素值均为0。在这样的情况下,该步骤s510可以包括:将元素值之和最大的连线确定为与基础关键点属于同一个目标对象的连线。此外,在非零值为正值的情况下,后面将描述的响应值为相应连线所对应的所有元素值之和。例如,对于某个人的头部骨骼关键点与所有人的颈部骨骼关键点的连线,该人的头部骨骼关键点与该人的颈部骨骼关键点的连线所对应的所有元素值均为非零值,而该人的头部骨骼关键点与其他人的颈部骨骼关键点的连线所对应的元素值可能最多只有两个非零值,因此,该人的头部骨骼关键点与该人的颈部骨骼关键点的连线所对应的元素值之和最大。这样就可以将元素值之和最大的连线确定为与该人的头部骨骼关键点属于同一个人的连线。因此,在上述第二矩阵的元素值的取值情况下,将元素值之和最大的连线确定为与基础关键点属于同一个目标对象的连线。在另一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为0,该第二矩阵的其他元素值均为非零值(例如,该非零值为正值)。在这样的情况下,该步骤s510可以包括:将元素值之和最小的连线确定为与基础关键点属于同一个目标对象的连线。此外,在非零值为正值的情况下,后面将描述的响应值为相应连线所对应的所有元素值之和的相反数。例如,对于某个人的头部骨骼关键点与所有人的颈部骨骼关键点的连线,该人的头部骨骼关键点与该人的颈部骨骼关键点的连线所对应的所有元素值均为0,而该人的头部骨骼关键点与其他人的颈部骨骼关键点的连线所对应的元素值可能最多只有两个0,因此,该人的头部骨骼关键点与该人的颈部骨骼关键点的连线所对应的元素值之和最小。这样就可以将元素值之和最小的连线确定为与该人的头部骨骼关键点属于同一个人的连线。因此,在上述第二矩阵的元素值的取值情况下,将元素值之和最小的连线确定为与基础关键点属于同一个目标对象的连线。在步骤s512,根据所确定的连线获得与基础关键点连接的响应值最大的下一个关键点。由于上面已经确定了与基础关键点属于同一个目标对象的连线,因此该连接所连接的除了基础关键点之外的另一个关键点即为响应值最大的下一个关键点。至此,提供了根据本公开一些实施例的将图片中的关键点分组的方法。在一些实施例中,在确定了上述下一个关键点之后,以该关键点作为下一个基础关键点,重复执行图5中的步骤,即可以得到与该关键点连接的响应值最大的下一个关键点。例如,第一个基础关键点可以为初始关键点,以该初始关键点作为基础关键点,经过上述步骤后得到第二关键点,然后以第二关键点作为基础关键点,经过上述步骤后得到第三关键点,以此类推,从而可以得到目标对象的所有关键点。本公开实施例的上述方法能够使得每个目标对象正确包含该目标对象所有的关键点,而且不会出现如现有技术中一个目标对象的检测框包含其他目标对象的关键点的情况。图6a至图6d是示出根据本公开一些实施例的将图片中的关键点分组的过程中若干阶段的人体骨骼关键点的示意图。首先,如图6a所示,查找得到某个人的头部的骨骼关键点作为基础关键点(或初始关键点)。接下来,如图6b所示,从该人的头部骨骼关键点出发,通过如图5所示的方法,找到同一人对应的颈部骨骼关键点。接下来,如图6c所示,从这个人的颈部骨骼关键点出发,借助连接关系寻找下一个骨骼关键点,直至确定同一个人的所有骨骼关键点,这些骨骼关键点共同构成一个人的实例。接下来,如图6d所示,从剩余头部骨骼关键点中,选取一个头部骨骼关键点(例如响应值最大的关键点),重复上述过程。最终确定所有人各自的骨骼关键点,完成多人关键点检测。至此,实现了图片中多人关键点的检测。该方法能够使得图片中个一个人正确包含该人所有的骨骼关键点,而且不会出现如现有技术中一个人的检测框包含其他人的骨骼关键点的情况。图7是示出根据本公开一些实施例的用于检测关键点的装置的结构示意图。如图7所示,该装置可以包括输入单元702、输出单元704和分组单元706。该输入单元702可以用于将包含至少一个目标对象的图片输入卷积网络。每个目标对象具有预先定义的多个关键点和该多个关键点之间的一组连接关系。不同目标对象的关键点之间不存在连接关系。该输出单元704可以用于利用卷积网络输出多个第一特征图和多个第二特征图。每个第一特征图对应于所述至少一个目标对象的一类关键点。每个第二特征图对应于所述至少一个目标对象的一类连接关系。该分组单元706可以用于利用该多个第一特征图和该多个第二特征图将图片中的关键点分组,使得对于每个目标对象,该目标对象的每个关键点和与该关键点连接的响应值最大的下一个关键点组合以检测出该目标对象的所有关键点。至此,提供了根据本公开一些实施例的用于检测关键点的装置。该装置通过卷积网络预测关键点之间的连接关系,利用这个连接关系实现不同目标对象的关键点的正确分组,从而检测出(或者定位出)不同目标对象的关键点。该装置能够使得每个目标对象正确包含该目标对象所有的关键点,而且不会出现如现有技术中一个目标对象的检测框包含其他目标对象的关键点的情况。在一些实施例中,每个第一特征图采用一个第一矩阵来表示,每个第二特征图采用一个第二矩阵来表示。在一些实施例中,该分组单元706可以用于对于图片中的一个目标对象,将该目标对象的一个关键点确定为基础关键点,基于该基础关键点与下一个关键点的连接关系类型获得包含所有下一个关键点的第一特征图,并在该第一特征图中查找得到所有下一个关键点,在包含该基础关键点与下一个关键点的连接关系的第二特征图中,获得该基础关键点分别与所查找得到的每个关键点之间的连线,在与该第二特征图所对应的第二矩阵上,分别计算每个连线所对应的所有元素值之和,根据与每个连线所对应的元素值之和确定与该基础关键点属于同一个目标对象的连线,以及根据所确定的连线获得与该基础关键点连接的响应值最大的下一个关键点。在一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为非零值,该第二矩阵的其他元素值均为0。该分组单元706可以用于将元素值之和最大的连线确定为与基础关键点属于同一个目标对象的连线。在非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和。在另一些实施例中,在与第二特征图所对应的第二矩阵中,与该第二特征图的具有相应连接关系的连线所对应的所有元素值均为0,该第二矩阵的其他元素值均为非零值。该分组单元706可以用于将元素值之和最小的连线确定为与基础关键点属于同一个目标对象的连线。在非零值为正值的情况下,所述响应值为相应连线所对应的所有元素值之和的相反数。在一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为非零值,该第一矩阵的其他元素值均为0。在另一些实施例中,在与第一特征图对应的第一矩阵中,与该第一特征图的关键点对应的元素值为0,该第一矩阵的其他元素值均为非零值。在一些实施例中,在图片中,利用每个关键点的坐标和状态表示该关键点。该状态可以包括:可见状态、不可见状态和部分可见状态。在一些实施例中,该输入单元702还可以用于将包含具有已知关键点的目标对象的图片输入卷积网络以训练该卷积网络。图8是示出根据本公开另一些实施例的用于检测关键点的装置的结构示意图。该装置包括存储器810和处理器820。其中:存储器810可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图2和/或图5所对应实施例中的指令。处理器820耦接至存储器810,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器820用于执行存储器中存储的指令,可以实现不同目标对象的关键点的正确分组,从而检测出不同目标对象的关键点。在一些实施例中,还可以如图9所示,该装置900包括存储器910和处理器920。处理器920通过bus总线930耦合至存储器910。该装置900还可以通过存储接口940连接至外部存储装置950以便调用外部数据,还可以通过网络接口960连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,可以实现不同目标对象的关键点的正确分组,从而检测出不同目标对象的关键点。在另一些实施例中,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图2和/或图5所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1