关键点检测方法、装置、电子设备及存储介质与流程
未命名
09-24
阅读:65
评论:0

1.本技术涉及人工智能技术领域,更具体地,涉及一种关键点检测方法、装置、电子设备及存储介质。
背景技术:
2.关键点检测作为动作迁移、行为检测等任务的前序任务,其发展广受关注。相关技术中,可以通过对视频帧序列中的各视频帧进行关键点检测来确定对视频帧序列中人体呈现的动作进行跟踪。但是,相关技术中存在所得到的关键点序列不能较好地跟踪视频帧序列中人体呈现的动作的情况。
技术实现要素:
3.鉴于上述问题,本技术实施例提出了一种关键点检测方法、装置、电子设备及存储介质,以解决相关技术中关键点序列不能较好地跟踪视频帧序列中人体呈现的动作的问题。
4.根据本技术实施例的一个方面,提供了一种关键点检测方法,包括:对视频帧序列中的各视频帧进行身体部位检测,得到各所述视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位;根据所述视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位;根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列。
5.根据本技术实施例的一个方面,提供了一种关键点检测装置,包括:检测模块,用于对视频帧序列中的各视频帧进行身体部位检测,得到各所述视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位;检测框序列确定模块,用于根据所述视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位;连接模块,用于根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;关键点检测模块,用于针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列。
6.根据本技术实施例的一个方面,提供了一种电子设备,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上所述关键点检测方法。
7.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现如上所述关键点检测方法。
8.根据本技术实施例的一个方面,提供了一种计算机程序产品,其包括计算机指令,所述计算机指令被处理器执行时实现如上的关键点检测方法。
9.在本技术中,充分考虑了身体部位检测过程中可能存在漏检或者误检的导致得到的检测框序列不能够较好跟踪视频帧序列的中身体部位的运动情况的问题,因此,在本技术中,在获得检测框序列后,结合各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,从而,可以保证得到的组合检测框序列可以准确跟踪视频帧序列的中身体部位的运动情况,进而保证所得到的关键点序列可以准确地反映视频帧序列中各个身体部位呈现的动作,保证所得到的关键点序列与视频帧序列之间的对应性。
附图说明
10.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1是根据本技术一实施例示出的本技术应用场景的示意图。
12.图2是根据本技术的一个实施例示出的关键点检测方法的流程图。
13.图3是图2对应实施例中的步骤220在一实施例中的流程图。
14.图4中示例性示出了一个检测框序列的示意图。
15.图5是图2对应实施例中的步骤230在一实施例中的流程图。
16.图6示例性示出了脸部的关键点的示意图。
17.图7是根据本技术一实施例示出的步骤240之后步骤的流程图。
18.图8是根据本技术一实施例示出的关键点检测装置的框图。
19.图9示出了适于用来实现本技术实施例的电子设备的结构示意图。
具体实施方式
20.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
21.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
22.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
23.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
24.需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
25.图1是根据本技术一实施例示出的本技术应用场景的示意图,如图1所示,该应用场景包括终端110和与终端110通信连接的电子设备120,电子设备120可以是服务器(物理服务器或者云服务器)等具备一定的计算能力的设备。
26.终端110可以是摄像头、或者其他具备图像采集功能的设备,在此不进行具体限定。这样,终端110可以面向可活动对象进行视频采集,可活动对象可以是人或者动物等,在此不继续具体限定。之后,终端110可以将采集到的视频发送到电子设备120,由电子设备120按照本技术的方法,基于视频进行关键点检测,获得关键点视频序列。具体的,电子设备120按照如下的过程进行关键点检测:对视频帧进行身体部位检测;确定多个检测框序列;连接不同的检测框序列;对组合检测框序列进行关键点检测。上述过程中各步骤的实现细节参见下文描述。
27.在另一些实施例中,终端110还可以是其他可以显示交互界面的设备,这样,用户可以通过终端110的交互界面向电子设备120发送待进行关键点识别的视频,该视频可以是终端110中预先存储的视频。
28.以下对本技术实施例的技术方案的实现细节进行详细阐述:
29.图2是根据本技术的一个实施例示出的关键点检测方法的流程图,该方法可以由具备处理能力的电子设备执行。参照图2所示,该方法至少包括步骤210至步骤240,详细介绍如下:
30.步骤210,对视频帧序列中的各视频帧进行身体部位检测,得到各视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位。
31.视频帧序列可以是来源于实时采集的视频,也可以来源于预先存储的视频。具体的,可以通过目标检测模型来对视频帧序列中的各视频帧进行身体部位检测。目标检测模型可以是通过一种或者多种神经网络构建的模型,神经网络例如卷积神经网络、循环神经网络、全连接神经网络等,在此不进行具体限定。在具体实施例中,目标检测模型可以是nanodet(一种fcos(fully convolutional one-stage object detection,一阶全卷积目标检测)式的单阶段anchor-free(无锚点)目标检测模型),faster r-cnn(region-convolutional neural network,区域卷积神经网络)、yolo等模型。
32.在本技术中,目标检测模型检测的身体部位可以是一个也可以是多个,例如,身体部位可以是头部、身体、手部(左手、右手)、脚部(左脚、右脚)等,当然,身体部位的划分粒度也不限于此,可以按照更粗或者更细的粒度进行划分。在需要检测的身体部位为多个的情况下,可以分别针对每一身体部位训练一个用于检测该身体部位的目标检测模型(例如,训练一个用于检测头部的目标检测模型、训练一个用于检测身体的目标检测模型等),也可以通过一个目标检测模型来检测多个身体部位。
33.为了保证目标检测模型所进行身体部位检测的准确性,需要预先通过第一训练数据对目标检测模型进行训练。其中,第一训练数据包括第一样本图像和第一样本图像对应的标签信息,第一样本图像对应的标签信息用于指示第一样本图像中包围身体部位(头部、身体、左手、右手、左脚、右脚等)的边界框在第一样本图像中的位置。在训练过程中,将第一样本图像输入到目标检测模型中,由目标检测模型对第一样本图像进行身体部位检测,输出身体部位检测结果,该身体部位检测结果包括包围身体部位的检测框的位置信息,和检测框对应的类别信息,其中,检测框对应的类别信息用于指示该检测框所包括像素区域所属的身体部位;之后,根据身体部位检测结果中检测框的位置信息和检测框对应的类别信息、以及第一样本图像对应的标签信息,计算损失函数的损失值,并根据损失值反向调整目标检测模型的参数,直至达到训练结束条件。训练结束条件可以是目标检测模型的迭代次数达到次数阈值,也可以是目标检测模型的损失函数收敛。其中,目标检测模型的损失函数可以是交叉熵损失函数、均方误差损失函数、平滑的平均绝对误差损失函数等,在此不进行具体限定。在训练结束后,将目标检测模型用于身体部位检测,可以保证所检测到图像(视频帧)中检测框的位置信息和检测框对应的类别的准确性。
34.步骤220,根据视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位。
35.检测框序列中不同的检测框来源于不同的视频帧,而且,在检测框序列中相邻的两个检测框所在的视频帧在视频帧序列中连续。
36.视频帧序列呈现的对象(例如人)可能处于活动状态,因此,对象的同一身体部位在不同的视频帧中的位置是存在差异的,因此,在本技术中,将每一身体部位在视频帧序列中各视频帧中对应的检测框进行关联,得到检测框序列,以此通过检测框序列来跟踪身体部位在视频帧序列中的运动轨迹。
37.在一些实施例中,如图3所示,步骤220,包括如下的步骤310-步骤330,详细介绍如下:
38.步骤310,对于视频帧序列中任意相邻的两个视频帧中的第一视频帧和第二视频帧,根据第一视频帧中检测框的位置信息、第二视频帧中检测框的位置信息、和各检测框对应的类别,确定第一视频帧中各检测框与第二视频帧中各检测框之间的相似度。
39.在一些实施例中,可以基于各检测框对应的类别,将属于相同类别的不同检测框进行位置重合度计算,将属于相同类别的不同检测框之间的位置重合度作为该两个检测框之间的相似度,而针对属于不同类别的不同检测框设定为不相似,即不需要进行位置重合度计算。
40.在具体实施例中,可以将两个检测框之间的交并比(intersection over union,iou)作为两个检测框之间的位置重合度。两个检测框之间的交并比即为两个检测框所包围像素区域之间的交并比。通常的,检测框为矩形,在已知检测框的位置信息的基础上,检测框的各个边对应确定,因此,对于两检测框,可以根据两个检测框的位置确定两个检测框所包围区域的交集区域,和并集区域,并对应根据两个检测框所包围像素区域的交集区域和并集区域确定两个检测框之间的交并比。假设第一视频帧中第i个检测框表示为第
二视频帧中第j个检测框表示为则检测框与检测框之间的位置重合度s1为:
[0041][0042]
在另一些实施例中,步骤310,包括如下的步骤a1-步骤a3,详细介绍如下:
[0043]
步骤a1,根据第一视频帧中检测框的位置信息和第二视频帧中检测框的位置信息,计算第一视频帧中各检测框与第二视频帧中各检测框之间的位置重合度。
[0044]
可以理解的是,一视频帧中可能包括同一对象的多个身体部位,因此,目标检测模型针对一视频帧可能确定多个检测框。因此,在步骤310中可以计算第一视频帧中每一检测框与第二视频帧中每一检测框之间的位置重合度。位置重合度的计算方式参见上文描述,在此不再赘述。
[0045]
步骤a2,根据第一视频帧中各检测框对应的类别和第二视频帧中检测框对应的类别,确定第一视频帧中各检测框与第二视频帧中各检测框之间的类别相似度。
[0046]
具体的,可以将检测框对应的类别数字化为类别向量,检测框对应的类别向量可以是用于反映检测框所对应类别的语义的特征向量。之后,根据两检测框分别对应的类别向量计算该两个检测框之间的类别相似度。具体的,可以根据两个检测框分别对应的类别向量来计算两个类别向量之间的距离(余弦距离或者欧式距离),进而根据两个类别向量之间的距离来确定两个检测框之间的类别相似度,例如,将1与两个类别向量之间的余弦距离之差作为两个检测框之间的类别相似度。例如,第一视频帧中第i个检测框与第二视频帧中第j个检测框之间的类别相似度s2可以表示为:
[0047][0048]
其中,表示第一视频帧中第i个检测框所对应类别的类别向量,表示第二视频帧中第j个检测框所对应类别的类别向量,r()表示根据类别向量计算类别相似度的函数。
[0049]
在另一些实施例中,对于两个检测框,若两个检测框对应的类别相同,可以将两个检测框之间的类别相似度置为1,反之,若两个检测框对应的类别不相同,可以将两个检测框之间的类别相似度置为0。按照类似的过程,可以确定第一视频帧中每一检测框与第二视频帧中每一检测框之间的类别相似度。
[0050]
步骤a3,根据第一视频帧中各检测框与第二视频帧中各检测框之间的位置重合度,和第一视频帧中各检测框与第二视频帧中各检测框之间的类别相似度,确定第一视频帧中各检测框与第二视频帧中各检测框之间的相似度。
[0051]
在一些实施例中,可以将两个检测框之间的位置重合度与类别相似度进行加权,将加权结果作为该两个检测框之间的相似度。例如,第一视频帧中第i个检测框与第二视频帧中第j个检测框之间的相似度可以按照如下的公式得到:
[0052][0053]
其中,α1和α2为加权系数,α1和α2可根据实际需要设定,在此不进行具体限定。
[0054]
在另一些实施例中,可以将两个检测框之间的位置重合度与类别相似度相乘,将相乘结果作为两个检测框之间的相似度。例如,第一视频帧中第i个检测框与第二视频帧中第j个检测框之间的相似度可以按照如下的公式得到:
[0055][0056]
步骤320,根据第一视频帧中各检测框与第二视频帧中各检测框之间的相似度,确定相匹配的检测框对,检测框对中的一个检测框位于第一视频帧,另一个检测框位于第二视频帧。
[0057]
在具体实施例中,可以设定针对第一视频帧中的每一检测框(假设为检测框t),在第二视频帧中仅有一个检测框与检测框t相匹配。因此,按照如上的步骤310-步骤320,可以在第二视频帧中最多为第一视频帧中的每一检测框分确定一个检测框对。
[0058]
在具体实施例中,对于第一视频帧中任一检测框(假设为检测框t),可以将第二视频帧中与该检测框t之间的相似度最大的检测框(假设为检测框k)确定为与检测框相匹配的检测框,对应的,可以由检测框t和检测框k构成一个检测框对,即为{检测框t,检测框k}。
[0059]
如上所描述,由于一视频帧可能存在多个检测框,因此,对于相邻的两个视频帧,假设该两个相邻的视频帧分别有m个和n个检测框,可以先两两计算两个检测框之间的相似度,形成一个m
×
n的相似度矩阵;然后选取相似度矩阵中值最大的位置,假设坐标为(i,j),则认为前一视频帧的第i个检测框与后一视频帧的第j个检测框相匹配,组成检测框对;再然后将相似度矩阵中第i行和第j列中的所有数据置为0,确保检测框的一一对应。迭代进行上述步骤即可确定任意相邻两视频帧之间所有的检测框对,未匹配的检测框也予以保留后续使用。对所有帧进行同样操作,可以对整个序列形成检测框对。
[0060]
步骤330,按照所在视频帧的时序信息,将所属类别相同的多个检测框对中的检测框进行组合,得到多个检测框序列。
[0061]
按照如上的步骤310-步骤320的过程所确定的检测框对中的两个检测框所属的类别相同,可以理解的是,若来自两个不同的视频帧中的两个检测框的类别相同,表明该两个检测框对应的是同一身体部位,例如,均是头部。在此基础上,将类别相同的多个检测框对中的检测框进行组合,可以得到反映同一身体部位在视频帧序列中的运动情况的检测框序列。由于检测框是目标检测模型从视频帧中检测确定的,因此,检测框所在视频帧在视频帧序列中的时序信息可以认为是检测框对应的时序信息,因此,在步骤330中,按照检测框所在视频帧在视频帧序列中的时序信息,按照视频帧在视频帧序列中由先到后的顺序,将类别相同的多个检测框对中的检测框进行组合,得到检测框序列。
[0062]
通常的,在视频帧中的检测框呈矩形,将多个视频帧中相同类别的多个检测框关联起来的检测框序列视觉上看起来是所对应身体部位的轨迹,或者认为是包围身体部位的管道,图4中示例性示出了一个检测框序列的示意图。
[0063]
步骤230,根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、
和检测框序列中检测框所在视频帧在视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列。
[0064]
由于视频帧序列中身体部位的状态是连续的,理论上来说,针对每一身体部位在视频帧序列中各视频帧中的检测框也是连续的,即针对每一身体部位所得到的检测框序列中检测框的数量与视频帧序列中视频帧的数量是相同的,但是,实际中,由于视频帧中身体部位可能遮挡,或者视频帧存在模糊的情况,目标检测模型所检测到对应于身体部位的检测框与实际可能不符,即存在误检,或者目标检测模型在某一视频帧中未检测到对应于某一身体部位的检测框,即漏检。
[0065]
因此,实际上,针对每一身体部位所得到的检测框序列中的检测框的数量实际上是小于视频帧序列中视频帧的数量的,而且,可能存在针对同一身体部位,获得多个检测框序列,或者,存在仅包括一个检测框的检测框序列。也就是说,一检测框序列可能并不能较完成地反映一身体部位在视频帧序列中的运动情况。因此,在本技术中,在获得检测框序列之后,将不同的检测框序列进行连接,以得到贯穿更长时间线的组合检测框序列。
[0066]
在一些实施例中,如图5所示,步骤230,包括如下的步骤510-步骤530,详细介绍如下:
[0067]
步骤510,对于待连接的两个检测框序列,根据两个检测框序列中各检测框序列中检测框所在视频帧在视频帧序列中的时序信息,确定两个检测框序列中时序在前的第一检测框序列和时序在后的第二检测框序列。
[0068]
可以理解的是,在步骤510之前,需要预先确定哪些检测框序列是待连接的检测框序列。具体的,对于两个检测框序列,若该两个检测框序列的长度小于长度阈值,且该两个检测框序列中检测框对应的类别相同,可以确定该两个检测框序列是需要进行连接的检测框序列。其中,检测框序列的时长可以用检测框序列中检测框的数量来表示。
[0069]
在本技术中,为便于区分,将待连接的两个检测框序列中时序在前的检测框序列称为第一检测框序列,将时序在后的检测框序列称为第二检测框序列。
[0070]
具体的,对于待连接的两个检测框序列(假设为检测框序列l1和检测框序列l2),检测框序列l1中末尾检测框所在视频帧为视频帧x1,检测框序列l2中首个检测框所在视频帧为视频帧x2,若根据检测框所在视频帧在视频帧序列中的时序信息确定检测框序列l1中末尾检测框所在视频帧(即视频帧x1)在视频帧序列中位于检测框序列l2中首个检测框所在视频帧(即视频帧x2)之前,则可以确定检测框序列l1为时序在前的第一检测框序列,检测框序列l2为时序在后的第二检测框序列。
[0071]
步骤520,根据第一检测框序列中末尾检测框的位置信息与第二检测框序列中首个检测框的位置信息,计算第一检测框序列中末尾检测框与第二检测框序列中首个检测框之间的位置重合度。
[0072]
同理,可以将第一检测框序列中末尾检测框与第二检测框序列中首个检测框之间的交并比作为该两个检测框之间的位置重合度。
[0073]
步骤530,若位置重合度大于重合度阈值,按照第一检测框序列与第一检测框序列之间的时序关系,将第一检测框序列与第二检测框序列进行连接,获得组合检测框序列。
[0074]
对于两个所对应身体部位相同的检测框序列,如果时序在前的检测框序列中的末尾检测框与时序在后的检测框序列中首个检测框之间的位置重合度较高,表明该两个检测
框序列在时序上连续的概率较高,因此,在本技术中,在位置重合度大于重合度阈值的情况下,将第一检测框序列与第二检测框序列进行连接。
[0075]
由于按照第一检测框序列与第一检测框序列之间的时序关系将两个检测框序列进行连接,因此,在组合检测框序列中第一检测框序列位于第二检测框序列之前,换言之,是将第二检测框序列组合到第一检测框序列中末尾检测框之后,实现将第一检测框序列与第二检测框序列进行连接。
[0076]
在一些实施例中,步骤230,还包括:若第一检测框序列中末尾检测框所在第一视频帧与第二检测框序列中首个检测框所在第二视频帧在视频帧序列中不连续,对组合检测框序列进行检测框补全,以使补全后的组合检测框序列中任意相邻两个检测框所在视频帧在视频帧序列中连续。
[0077]
在本技术中,为便于区分,将第一检测框序列中末尾检测框所在的视频帧称为第一视频帧,将第二检测框序列中首个检测框所在的视频帧称为第二视频帧。举例来说,若确定第一视频帧为视频帧序列中的第3个视频帧,第二视频帧为视频帧序列中的第4个视频帧,显然,第一视频帧和第二视频帧在视频帧序列中不连续。如果第一检测框序列中末尾检测框所在第一视频帧与第二检测框序列中首个检测框所在第二视频帧在视频帧序列中不连续,表明在第一视频帧和第二视频帧之间的视频帧中针对第一检测框序列所对应的身体部位存在漏检或者误检的情况。因此,在该种情况下,可以对组合检测框序列进行补全,即补全在第一视频帧和第二视频帧之间的视频帧中针对第一检测框序列所对应的身体部位的检测框。
[0078]
在较短的时间内,对象的动作是连续的,因此,同一身体部位在连续的多个视频帧中对应的检测框整体上也是连续的。在此基础上,可以对于待补全的检测框,可以按根据第一检测框序列中末尾检测框的位置信息,和第二检测框序列中首个检测框的位置信息,进行线性插值,以确定在第一视频帧和第二视频帧之间的视频帧中第一检测框序列所对应身体部位的检测框的位置信息,之后,可以对应将插值确定的检测框的位置信息添加到组合检测框序列中第一检测框序列中末尾检测框与第二检测框序列中首个检测框之间。
[0079]
在另一些实施例中,步骤230包括:对于两个检测框序列,若该两个检测框序列中检测框对应的类别相同,而且,时序在前的第一检测框序列中的末尾检测框所在视频帧与时序在后的第二检测框序列中的首个检测框所在视频帧在视频帧序列中之间间隔的视频帧的数量小于数量阈值,按照对应的时序关系,将第一检测框序列和第二检测框序列进行连接,得到组合检测框序列。对应的,如果第一检测框序列中的末尾检测框所在视频帧与时序在后的第二检测框序列中的首个检测框所在视频帧在视频帧序列中之间间隔的视频帧的数量不为零,对应将组合检测框序列进行检测框补全。
[0080]
在一些实施例中,目标检测模型除了输出视频帧中各检测框的位置信息和检测框对应的类别外,还进一步输出各检测框的置信度。在此基础上,可以根据组合检测框序列中各检测框的置信度,对组合检测框序列进行重打分。具体的,可以计算组合检测框序列中全部检测框的置信度的平均值,将全部置信度的平均值作为组合检测框序列对应的置信度分数,或者,将组合检测框序列中的最大置信度作为组合检测框序列对应的置信度分数。当前,对于补全的检测框,可以将被补全的检测框所利用的已有检测框对应的置信度作为被补全的检测框的置信度,当然,如果被补全的检测框利用了多个已有检测框,可以将所利用
的多个已有检测框对应的置信度的平均值作为被补全的检测框的置信度。
[0081]
在对组合检测框序列进行重打分的基础上,可以进一步根据组合检测框序列对应的置信度分数进行非极大值抑制,或者根据组合检测框序列对应的置信度分数筛选需要用于关键点检测的组合检测框序列,例如,将置信度分数大于分数阈值的组合检测框序列用于后续的关键点检测。
[0082]
步骤240,针对各组合检测框序列,对组合检测框序列中各检测框包围的像素区域进行关键点检测,得到组合检测框序列对应的关键点序列。
[0083]
在一些实施例中,步骤240,包括:通过关键点检测模型对组合检测框序列中各检测框包围的像素区域进行关键点检测,输出组合检测框序列中各检测框所包围像素区域中各关键点的位置信息和各关键点对应的关键点类别;根据组合检测框序列中各检测框中关键点对应的关键点类别,将组合检测框序列中属于相同关键点类别且在不同视频帧中的关键点的位置信息进行组合,得到组合检测框序列对应的关键点序列。
[0084]
关键点检测模型可以是通过一种或者多种神经网络构建的模型,神经网络例如卷积神经网络、循环神经网络、全连接神经网络等等,在此不进行具体限定。在具体实施例中,可以通过一个关键点检测模型检测多个身体部位(例如全身的身体部位)中的关键点,也可以分别针对每一身体部位分别训练一个用于检测该身体部位中的关键点的关键点检测模型。
[0085]
为保证关键点检测模型的关键点检测准确度,需要通过第二训练数据对关键点检测模型进行训练,第二训练数据包括多种第二样本图像和第二样本图像的标注信息,第二样本图像的标注信息用于指示标注的第二样本图像中身体部位中的各关键点的位置信息。其中,身体部位中被标注的关键点的数量可根据实际需要,被标注的关键点可以是各个器官(鼻子、左眼、右眼、左眉、右眉、左耳、右耳、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左臀、右臀、左膝盖、右膝盖、左脚踝、右脚踝等)处的关键点,当然,在同一器官可以标注多个关键点。图6示例性示出了脸部的关键点的示意图。如图6所示,左眉和右眉均有三个关键点,左眼和右眼均有三个关键点,鼻子和嘴巴处也均由三个关键点。值得一提的是,图6仅仅是示例性举例,在具体实施例中,针对脸部标注的关键点的数量还可以更多或者更少。
[0086]
在训练过程中,将第二样本图像输入到关键点检测模型,关键点检测模型对第二样本图像进行图像特征提取,并根据提取到的图像特征预测第二样本图像中的关键点的位置信息(为便于区分,将关键点检测模型针对第二样本图像输出的关键点的位置信息称为预测位置信息)和关键点对应的关键点类别(为便于区分,将关键点检测模型针对第一样本图像输出的关键点对应的关键点类别称为预测关键点类别)。在本技术中,关键点对应的关键点类别用于唯一指示该关键点,换言之,一个关键点类别对应一个关键点,例如图6所示的脸部关键点中,左眼上最左边的关键点视为一个关键点类别,左眼上中间的关键点视为一个关键点类别,左眼上最右边的关键点视为一个关键点类别。
[0087]
其后,根据第二样本图像对应的标注信息,和关键点检测模型针对第二样本图像输出的各关键点的预测位置信息和各关键点对应的关键点类别计算损失函数的损失值,并根据损失值反向调整关键点检测模型的参数,直至达到第二训练结束条件,第二训练结束条件可以是关键点检测模型的迭代次数达到第二次数阈值,或者关键点检测模型对应的损失函数收敛,在此不进行具体限定。其中,关键点检测模型对应的损失函数可以是交叉熵损
失函数、均方误差损失函数、平滑的平均绝对误差损失函数等,在此不进行具体限定。在训练结束后,将关键点检测模型用于关键点检测,可以保证关键点检测模型所进行关键点检测的准确性。
[0088]
基于训练后的关键点检测模型,可以将组合检测框序列中各检测框包围的像素区域输入到关键点检测模型中,由关键点检测模型输出各检测框所包围像素区域中关键点的位置信息和各关键点对应的关键点类别。之后,按照关键点所在视频帧在视频帧序列中的时序由先到后的顺序,将属于相同关键点类别且在多个视频帧中的关键点进行组合,得到对应的关键点序列。可以理解的是,关键点序列中包括组合检测框序列中各检测框所包围的像素区域中的关键点。
[0089]
值得一提的是,在关键点检测模型用于检测多个身体部位中的关键点的情况下,还可以根据不同身体部位对应的组合检测框序列,将属于同一对象的多个身体部位的组合检测框序列进行关联,得到对象检测框序列,换言之,对象检测框序列中包括在各视频帧中同一对象上的各个身体部位对应的检测框。或者说,利用不同的组合检测框序列之间的时空关系,连接同一对象上的多个身体部位对应的检测框,从而,构成同一对象的对象检测框序列,每个对象包括身体、头部、左手、右手等身体部位。在此基础上,将对象检测框序列中的同一视频帧中的多个检测框包围的像素区域输入到关键点检测模型中进行关键点检测。
[0090]
在一些实施例中,在按照如上的步骤220-步骤230的处理之后,可能仍然存在长度较短的检测框序列或者组合检测框序列,由于长度较短的检测框序列或者组合检测框序列并不能较全面反映在视频帧序列中的运动情况,因此,可以设定一个长度阈值,在步骤230之后,对于长度小于长度阈值的组合检测框序列可以不需要进行后续的关键点检测的步骤。
[0091]
在本技术中,在对视频帧序列中的各视频帧进行身体部位检测,得到各视频帧中检测框的位置信息和各检测框对应的类别的基础上,根据视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列;并根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和检测框序列中检测框所在视频帧在视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;之后,对组合检测框序列中各检测框包围的像素区域进行关键点检测,得到组合检测框序列对应的关键点序列。充分考虑了身体部位检测过程中可能存在漏检或者误检的导致得到的检测框序列不能够较好跟踪视频帧序列的中身体部位的运动情况的问题,结合各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和检测框序列中检测框所在视频帧在视频帧序列中的时序信息,将不同的检测框序列进行连接,从而,可以保证得到的组合检测框序列可以准确跟踪视频帧序列的中身体部位的运动情况,进而保证所得到的关键点序列可以准确地反映视频帧序列中各个身体部位呈现的动作,保证所得到的关键点序列与视频帧序列之间的对应性。
[0092]
在一些实施例中,步骤240之后,如图7所示,该方法还包括:
[0093]
步骤710,确定关键点序列中的异常关键点。
[0094]
在实际中,可能由于视频帧的清晰度问题造成关键点检测模型误检或者漏检关键点,进而导致关键点序列中的关键点异常跳变。因此,为了解决该问题,在本技术中,可以进一步对关键点序列中的异常关键点进行修复,以将修复后的关键点序列用于后续的应用。
[0095]
在一些实施例中,步骤710,包括:根据关键点序列中各关键点的置信度,将置信度低于第二置信度阈值的关键点确定为异常关键点;和/或,根据关键点序列中各关键点的位置信息,确定关键点序列中各关键点的运动参数,将运动参数大于运动参数阈值的关键点确定为异常关键点,运动参数包括速度和加速度中的至少一项。
[0096]
在一些实施例中,关键点检测模型还进一步预测输出各关键点的置信度。在此基础上,对于置信度低于第二置信度阈值的关键点视为异常关键点。其中,第二置信度阈值可根据实际需要设定,在此不进行具体限定。
[0097]
在关键点序列中,若一关键点的速度或者加速度较大,表明该关键点发生的跳变,因此,在一些实施例中,将关键点序列中关键点的速度或者加速度超过对应的运动参数阈值的关键点视为异常关键点。在一些实施例中,可以分别针对速度设定速度阈值,针对加速度设定加速度阈值(即,运动参数阈值包括速度阈值和加速度阈值),并对应将关键点序列中速度超过速度阈值,和/或,加速度超过加速度阈值的关键点确定为异常关键点。
[0098]
在具体实施例中,由于关键点序列中包括相同关键点类别且位于不同视频帧上的多个关键点,而关键点检测模型输出了各关键点的位置信息,因此,对于属于相同关键点类别的且在关键点序列中在时序上相邻的多个关键点,可以将关键点的位置信息和相邻视频帧之间的时间间隔确定各关键点的速度,进而,根据各关键点的速度和相邻视频帧之间的时间间隔确定各关键点的加速度。
[0099]
步骤720,在与异常关键点所在视频帧临近的视频帧中确定目标视频帧。
[0100]
在一些实施例中,关键点检测模型还输出各检测框所包围像素区域中各关键点的置信度;在此基础上,可以根据与异常关键点所在视频帧临近的视频帧中与异常关键点所示关键点类别相同的关键点的置信度,在与异常关键点所在视频帧临近的视频帧中确定与异常关键点所示关键点类别相同且置信度大于第一置信度阈值的关键点所在的第三视频帧,将第三视频帧作为目标视频帧。与异常关键点所在视频帧临近的视频帧可以是与异常关键点所在视频帧之间的时间间隔小于时间阈值的视频帧。其中,时间阈值可根据实际需要设定,在此不进行具体限定。
[0101]
在一些实施例中,由于视频帧的质量或模型鲁棒性的问题,有时难免会出现关键点置信度突然的跳变,这样的情况可能会对后续判断产生影响,因此在后续步骤前进行一次重打分,该步骤并不会改变关键点的置信度的整体趋势,具体的方式是对各个关键点序列的置信度进行一维均值滤波,平滑掉部分毛刺。之后,基于重新打分的关键点的置信度来确定目标视频帧。
[0102]
在另一些实施例中,将与异常关键点所在视频帧前后相邻的两视频帧确定为目标视频帧。
[0103]
步骤730,根据目标视频帧中与异常关键点所属关键点类别相同的关键点的位置信息,对异常关键点进行修复。
[0104]
换言之,通过目标视频帧中与异常关键点所属关键点类别相同的关键点的位置信息来进行插值计算,以重新确定异常关键点的位置信息。在具体实施例中,可以利用目标视频帧中与异常关键点所属关键点类别相同的关键点的位置信息来进行线性插值,重新确定异常关键点的位置信息,并对应将关键点序列中异常关键点的位置信息更新为所重新确定的位置信息。
[0105]
在本实施例中,实现了利用关键点序列中的时空信息来修复异常关键点,从而减少关键点序列中关键点跳变的情况。
[0106]
在一些实施例中,身体部位包括脚部;关键点序列包括各视频帧中的脚部关键点;在本实施例中,该方法还包括如下的步骤a1-步骤a2:
[0107]
步骤a1,根据关键点序列中的脚部关键点进行脚步着地状态预测,获得脚步预测结果。
[0108]
在具体实施例中,可以通过脚步预测模型来基于脚部关键点进行脚部着地状态预测。脚步预测结果用于指示与地面接触的脚部区域,例如左脚尖着地(即左脚尖区域与地面接触)、左脚跟着地、右脚尖着地、右脚跟着地等。
[0109]
脚步预测模型可以是通过一种或者多种神经网络构建的模型,神经网络例如卷积神经网络、循环神经网络、全连接神经网络等等,在此不进行具体限定。
[0110]
为了保证脚步预测模型进行脚步着地状态预测的准确性,需要预先通过第三训练数据对脚步预测模型进行训练。其中,第三训练数据包括第三样本图像中的关键点和第三样本图像对应的标注脚部着地信息,第三样本图像对应的标注脚部着地信息用于指示第三样本图像中着地的脚部区域。在一些实施例中,第三样本图像对应的标注脚部着地信息可以是一个四维向量,该四维向量中的各维度分别表示左脚尖、左脚跟、右脚尖、右脚跟是否着地。在一些实施例中,第三样本图像中的关键点可以包括全身关键点,也可以是仅包括下半身的关键点,但至少包括脚跟和脚趾部分的关键点。
[0111]
在训练过程中,将第三样本图像中的关键点输入到脚步预测模型中,由脚步预测模型根据第三样本图像中的脚部关键点进行脚步着地状态预测,输出第三样本图像对应的脚步预测结果,之后,根据第三样本图像对应的脚步预测结果和第三样本图像对应的标注脚部着地信息计算损失函数的损失值,并根据损失值反向调整脚步预测模型的参数,直至达到第三训练结束条件。第三训练结束条件可以是脚步预测模型的迭代次数达到第三次数阈值,也可以是脚步预测模型的损失函数收敛。其中,脚步预测模型的损失函数可以是交叉熵损失函数、均方误差损失函数、平滑的平均绝对误差损失函数等,在此不进行具体限定。
[0112]
步骤a2根据脚步预测结果,对关键点序列中的异常脚部关键点进行修复。
[0113]
具体的,根据脚部预测结果中,可以确定对应视频帧中着地的脚部关键点,如果异常脚部关键点不是所确定着地的脚部关键点,则可以按照上文中类似的方式,保证着地的脚部关键点固定,针对异常脚部关键点确定目标视频帧,并根据目标视频帧中与异常脚部关键点属于相同关键点类别的关键点的位置信息,和目标视频帧中着地的脚部关键点的位置信息进行线性插值,来重新确定异常脚部关键点的位置信息。
[0114]
在另一些实施例中,若异常脚部关键点是确定着地的脚部关键点,由于在较短时间内,对象的脚部的着地状态的变化较小,换言之,在较短的时间内,着地的脚部关键点为位置是固定不变的,因此,在该种情况下,可以针对异常脚部关键点确定的目标视频帧,将目标视频帧中与异常脚部关键点属于相同关键点类别的关键点的位置信息确定为异常脚部关键点的位置信息,实现对异常脚部关键点进行修复。
[0115]
在一些实施例中,脚步预测模型输出的脚步预测结果可能存在一定的抖动,因此使用预设的核对脚步预测结果进行滤波,得到更平滑的脚步状态,其中滤波的核包括不限于以下形式:
[0116]
[0,0,1,0,0],[1,1,0,1,1],[0,0,0,1,1,0,0,0]。
[0117]
结合脚步预测结果和脚上关键点的置信度来修复脚步关键点,由于已经有了重心的位置,可以对一段时间内脚上某个位置的关键点进行固定,即使有字幕遮挡等情况,也可以在一定程度上防止脚部抖动。
[0118]
在本实施例中,结合脚步预测结果来对异常的脚部关键点进行修复,可以减少视频帧中文字、特效遮挡等情况下,仍然能够获得平滑合理的关键点序列,避免出现因字幕遮挡的问题会导致脚步出现不稳定的问题。
[0119]
在一些实施例中,步骤240之后,该方法还包括:对关键点序列进行平滑处理。这样,以将平滑处理后的关键点序列用于后续应用。
[0120]
在具体实施例中,可以通过关键点序列平滑模型来对关键点序列进行平滑处理。其中,关键点序列平滑模型是通过一种或者多种神经网络构建的模型,神经网络例如卷积神经网络、循环神经网络、全连接神经网络等等,在此不进行具体限定。
[0121]
在将关键点序列平滑模型进行线上应用之前,通过第四训练数据对关键点序列平滑模型进行训练。第四训练数据包括样本关键点序列和样本关键点序列对应的平滑关键点序列,可以理解的是,样本关键点序列对应的平滑关键点序列指示了所标注平滑后样本关键点序列中各关键点对应的新的位置信息。之后,将样本关键点序列输入到关键点序列平滑模型中,由关键点序列平滑模型对样本关键点序列进行平滑处理,输出样本关键点序列对应的平滑处理结果,该平滑处理结果指示了关键点序列平滑模型为样本关键点序列中各关键点重新确定的位置信息。之后,根据样本关键点序列对应的平滑处理结果所指示各关键点的位置信息和样本关键点序列对应的平滑关键点序列所指示各关键点的位置信息,计算关键点序列平滑模型对应损失函数的损失值,并根据损失值反向调整关键点序列平滑模型的参数,直至达到第四训练结束条件,第四训练结束条件可以是关键点序列平滑模型的迭代次数达到第四次数阈值,也可以是关键点序列平滑模型对应的损失函数收敛。
[0122]
在一些实施例中,关键点序列平滑模型对应的损失函数可以是:
[0123][0124]
如上的公式5中的第一项为位置损失,第二项为加速度损失,其中,t为总帧数或总时刻数,c为总通道数,即需要平滑的维度,或者认为是关键点类别的总数量,w为权重,为第c维在第t帧的预测位置,y
c,
为第c维在第t帧的真实位置(即平滑关键点序列所指示的位置),为第c维在第t帧的预测加速度(即根据平滑处理结果所指示关键点的位置计算到的加速度),a
c,
为第c维在第t帧的真实加速度(即根据平滑关键点序列所指示的位置所计算到的关键点的加速度),w
pose
是针对位置损失设定的常数,w
acc
是针对加速度损失设定的常数。
[0125]
在一些实施例中,可以是在对关键点序列进行修复后,再对关键点序列进行平滑处理。这样,保证最后所得到的关键点序列是整体合理且平顺的,减少关键点序列中关键点的跳动。
[0126]
在一些实施例中,步骤240之后,该方法还包括:控制虚拟对象按照关键点序列进行动作。
[0127]
基于关键点序列,可以进行动作识别,由此,可以控制虚拟对象呈现关键点序列对应的动作。由此,可以实现通过真实人物的动作控制虚拟对象动作。
[0128]
以下介绍本技术的装置实施例,可以用于执行本技术上述实施例中的方法。对于本技术装置实施例中未披露的细节,请参照本技术上述方法实施例。
[0129]
图8是根据本技术一实施例示出的关键点检测装置的框图,该关键点检测装置可以配置于电子设备中,用于实现本技术提供的关键点检测方法。如图8所示,该关键点检测装置包括:检测模块810,用于对视频帧序列中的各视频帧进行身体部位检测,得到各视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位;检测框序列确定模块820,用于根据视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位;连接模块830,用于根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和检测框序列中检测框所在视频帧在视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;关键点检测模块840,用于针对各组合检测框序列,对组合检测框序列中各检测框包围的像素区域进行关键点检测,得到组合检测框序列对应的关键点序列。
[0130]
在一些实施例中,连接模块830,包括:时序确定单元,用于对于待连接的两个检测框序列,根据两个检测框序列中各检测框序列中检测框所在视频帧在视频帧序列中的时序信息,确定两个检测框序列中时序在前的第一检测框序列和时序在后的第二检测框序列;位置重合度计算单元,用于根据第一检测框序列中末尾检测框的位置信息与第二检测框序列中首个检测框的位置信息,计算第一检测框序列中末尾检测框与第二检测框序列中首个检测框之间的位置重合度;连接单元,用于若位置重合度大于重合度阈值,按照第一检测框序列与第一检测框序列之间的时序关系,将第一检测框序列与第二检测框序列进行连接,获得组合检测框序列。
[0131]
在一些实施例中,连接模块830还包括:补全单元,用于若第一检测框序列中末尾检测框所在第一视频帧与第二检测框序列中首个检测框所在第二视频帧在视频帧序列中不连续,对组合检测框序列进行检测框补全,以使补全后的组合检测框序列中任意相邻两个检测框所在视频帧在视频帧序列中连续。
[0132]
在一些实施例中,检测框序列确定模块820,包括:相似度确定单元,用于对于视频帧序列中任意相邻的两个视频帧中的第一视频帧和第二视频帧,根据第一视频帧中检测框的位置信息、第二视频帧中检测框的位置信息、和各检测框对应的类别,确定第一视频帧中各检测框与第二视频帧中各检测框之间的相似度;检测框对确定单元,用于根据第一视频帧中各检测框与第二视频帧中各检测框之间的相似度,确定相匹配的检测框对,检测框对中的一个检测框位于第一视频帧,另一个检测框位于第二视频帧;第一组合单元,用于按照所在视频帧的时序信息,将所属类别相同的多个检测框对中的检测框进行组合,得到多个检测框序列。
[0133]
在一些实施例中,相似度确定单元,包括:第一计算单元,用于根据第一视频帧中检测框的位置信息和第二视频帧中检测框的位置信息,计算第一视频帧中各检测框与第二视频帧中各检测框之间的位置重合度;类别相似度确定单元,用于根据第一视频帧中各检测框对应的类别和第二视频帧中检测框对应的类别,确定第一视频帧中各检测框与第二视
volatile memory),例如磁盘存储器。存储器905可选的还可以是独立于前述处理器901的存储装置。
[0143]
本领域技术人员可以理解,图9中示出的电子设备的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图9所示,作为一种计算机可读存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及实现关键点检测方法的程序。
[0144]
在图9所示的电子设备中,网络接口904主要用于与其他设备进行通信连接,例如与图1中的终端110等。用户接口903主要用于连接客户端(用户端),与客户端进行数据通信;而处理器901可以用于调用存储器905中存储的实现关键点检测方法的程序,并执行如上任一方法实施例中的关键点检测方法的步骤。
[0145]
根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被处理器执行时,实现如上任一方法实施例中的关键点检测方法。
[0146]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0147]
根据本技术实施例的一个方面,提供了一种计算机程序产品,其包括计算机指令,计算机指令被处理器执行时实现如上任一方法实施例中的关键点检测方法。
[0148]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0149]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0150]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的方法。
[0151]
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。
[0152]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
技术特征:
1.一种关键点检测方法,其特征在于,包括:对视频帧序列中的各视频帧进行身体部位检测,得到各所述视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位;根据所述视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位;根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列。2.根据权利要求1所述的方法,其特征在于,所述根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列,包括:对于待连接的两个检测框序列,根据所述两个检测框序列中各检测框序列中检测框所在视频帧在视频帧序列中的时序信息,确定所述两个检测框序列中时序在前的第一检测框序列和时序在后的第二检测框序列;根据所述第一检测框序列中末尾检测框的位置信息与所述第二检测框序列中首个检测框的位置信息,计算所述第一检测框序列中末尾检测框与所述第二检测框序列中首个检测框之间的位置重合度;若所述位置重合度大于重合度阈值,按照所述第一检测框序列与第一检测框序列之间的时序关系,将所述第一检测框序列与所述第二检测框序列进行连接,获得所述组合检测框序列。3.根据权利要求2所述的方法,其特征在于,所述根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列,还包括:若所述第一检测框序列中末尾检测框所在第一视频帧与所述第二检测框序列中首个检测框所在第二视频帧在所述视频帧序列中不连续,对所述组合检测框序列进行检测框补全,以使补全后的组合检测框序列中任意相邻两个检测框所在视频帧在所述视频帧序列中连续。4.根据权利要求1所述的方法,其特征在于,所述根据所述视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,包括:对于视频帧序列中任意相邻的两个视频帧中的第一视频帧和第二视频帧,根据所述第一视频帧中检测框的位置信息、所述第二视频帧中检测框的位置信息、和各检测框对应的类别,确定所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的相似度;根据所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的相似度,确定相匹配的检测框对,所述检测框对中的一个检测框位于所述第一视频帧,另一个检测框位于所述第二视频帧;按照所在视频帧的时序信息,将所属类别相同的多个检测框对中的检测框进行组合,
得到多个检测框序列。5.根据权利要求4所述的方法,其特征在于,所述根据所述第一视频帧中检测框的位置信息、所述第二视频帧中检测框的位置信息、和各检测框对应的类别,确定所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的相似度,包括:根据所述第一视频帧中检测框的位置信息和所述第二视频帧中检测框的位置信息,计算所述第一视频帧中各检测框与第二视频帧中各检测框之间的位置重合度;根据所述第一视频帧中各检测框对应的类别和所述第二视频帧中检测框对应的类别,确定所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的类别相似度;根据第一视频帧中各检测框与第二视频帧中各检测框之间的位置重合度,和所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的类别相似度,确定所述第一视频帧中各检测框与所述第二视频帧中各检测框之间的相似度。6.根据权利要求1所述的方法,其特征在于,所述针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列,包括:通过关键点检测模型对组合检测框序列中各检测框包围的像素区域进行关键点检测,输出所述组合检测框序列中各检测框所包围像素区域中各关键点的位置信息和各关键点对应的关键点类别;根据所述组合检测框序列中各检测框中关键点对应的关键点类别,将所述组合检测框序列中属于相同关键点类别且在不同视频帧中的关键点的位置信息进行组合,得到所述组合检测框序列对应的关键点序列。7.根据权利要求6所述的方法,其特征在于,所述根据所述组合检测框序列中各检测框中关键点对应的关键点类别,将所述组合检测框序列中属于相同关键点类别且在不同视频帧中的关键点的位置信息进行组合,得到所述组合检测框序列对应的关键点序列之后,所述方法还包括:确定所述关键点序列中的异常关键点;在与所述异常关键点所在视频帧临近的视频帧中确定目标视频帧;根据所述目标视频帧中与所述异常关键点所属关键点类别相同的关键点的位置信息,对所述异常关键点进行修复。8.根据权利要求7所述的方法,其特征在于,所述关键点检测模型还输出各检测框所包围像素区域中各关键点的置信度;所述在与所述异常关键点所在视频帧临近的视频帧中确定目标视频帧,包括:根据与所述异常关键点所在视频帧临近的视频帧中与所述异常关键点所示关键点类别相同的关键点的置信度,在与所述异常关键点所在视频帧临近的视频帧中确定与所述异常关键点所示关键点类别相同且置信度大于第一置信度阈值的关键点所在的第三视频帧,将所述第三视频帧作为所述目标视频帧;和/或,将与所述异常关键点所在视频帧前后相邻的两视频帧确定为所述目标视频帧。9.根据权利要求7所述的方法,其特征在于,所述确定所述关键点序列中的异常关键点,包括:
根据所述关键点序列中各关键点的置信度,将置信度低于第二置信度阈值的关键点确定为异常关键点;和/或,根据所述关键点序列中各关键点的位置信息,确定所述关键点序列中各关键点的运动参数,将运动参数大于运动参数阈值的关键点确定为异常关键点,所述运动参数包括速度和加速度中的至少一项。10.根据权利要求1所述的方法,其特征在于,所述身体部位包括脚部;所述关键点序列包括各视频帧中的脚部关键点;所述方法还包括:根据所述关键点序列中的脚部关键点进行脚步着地状态预测,获得脚步预测结果;根据所述脚步预测结果,对所述关键点序列中的异常脚部关键点进行修复。11.根据权利要求1所述的方法,其特征在于,所述针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列之后,所述方法还包括:对所述关键点序列进行平滑处理。12.根据权利要求1至11中任一项所述的方法,其特征在于,所述针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列之后,所述方法还包括:控制虚拟对象按照所述关键点序列进行动作。13.一种关键点检测装置,其特征在于,包括:检测模块,用于对视频帧序列中的各视频帧进行身体部位检测,得到各所述视频帧中检测框的位置信息和各检测框对应的类别,检测框对应的类别用于指示检测框包围的像素区域所属的身体部位;检测框序列确定模块,用于根据所述视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列,其中,一检测框序列中不同检测框包围的像素区域属于同一身体部位;连接模块,用于根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和所述检测框序列中检测框所在视频帧在所述视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;关键点检测模块,用于针对各组合检测框序列,对所述组合检测框序列中各检测框包围的像素区域进行关键点检测,得到所述组合检测框序列对应的关键点序列。14.一种电子设备,其特征在于,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至12中任一项所述的方法。15.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,当所述计算机可读指令被处理器执行时,实现如权利要求1至12中任一项所述的方法。
技术总结
本申请涉及人工智能技术领域,公开了一种关键点检测方法、装置、电子设备及存储介质,该方法包括:对视频帧序列中的各视频帧进行身体部位检测,得到各视频帧中检测框的位置信息和各检测框对应的类别;根据视频帧序列中不同视频帧中检测框的位置信息和各检测框对应的类别,确定多个检测框序列;根据各检测框序列中首个检测框的位置信息、末尾检测框的位置信息、和检测框序列中检测框所在视频帧在视频帧序列中的时序信息,将不同的检测框序列进行连接,获得至少一个组合检测框序列;对组合检测框序列中各检测框包围的像素区域进行关键点检测,得到组合检测框序列对应的关键点序列。本申请可以保证所得到关键点序列的对于动作跟踪的有效性。跟踪的有效性。跟踪的有效性。
技术研发人员:张超 侯杰 范长杰 胡志鹏
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.04.10
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/