基于滤波算法的人体姿态估计方法及装置与流程

文档序号:30824160发布日期:2022-07-20 03:03阅读:156来源:国知局
基于滤波算法的人体姿态估计方法及装置与流程

1.本发明涉及人体位姿检测方法技术领域,具体涉及一种基于滤波算法的人体姿态估计方法及装置。


背景技术:

2.本部分提供的仅仅是与本公开相关的背景信息,其并不必然是现有技术。
3.人体姿态估计是计算机视觉的重要分支,可以从给定一幅图像或者一段视频,检测人体关节点位置信息,广泛应用于行人姿态捕捉、动作分析、行人重识别等领域。
4.目前人体姿态估计主要利用深度学习,大致分为两种:自上而下的方法和自下而上的方法。自上而下需要先检测人体,再对单个人进行姿态估计;而自下而上先检测出人体关节点,再根据检测出来的关节点连成人体骨架。
5.但是,现有的人体姿态估计方法在进行动作分析时,人体姿态估计的稳定性和精确度较低,导致后续的动作识别精度无法提高。


技术实现要素:

6.为此,本发明实施例提供一种基于滤波算法的人体姿态估计方法及装置,以至少部分解决现有技术中人体姿态估计的稳定性较差,精确度较低的技术问题。
7.为了实现上述目的,本发明实施例提供如下技术方案:
8.一种基于滤波算法的人体姿态估计方法,所述方法包括:
9.基于预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;
10.设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点;
11.基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;
12.根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。
13.进一步地,所述设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点,具体包括:
14.利用以下公式设定滤波器窗口宽度w:
15.w=2m+1
16.其中,m为常数,且m为正整数;
17.所述多个数据点分别为x=(-m,-m+1,

,m-1,m)。
18.进一步地,在设定滤波器窗口宽度时,常数m的取值范围为2-4。
19.进一步地,利用以下公式将所述多个人体关键点和所述多个数据点进行拟合:
20.y=ao+a1x+a2x2+

+a
k-1
x
k-1
21.其中,y表示待拟合的观察数据点;
22.ao,a1,a2、

,a
k-1
表示多项式系数;
23.x表示测量点;
24.k表示多项式阶数。
25.进一步地,针对任意所述人体关键点的联合矩阵为:
26.pi=m
·ai
+ei27.其中,表示第i关键点连续2m+1帧构成的位姿矩阵;
28.表示多项式矩阵;
29.表示第i关键点的系数矩阵;
30.表示第i关键点的拟合误差矩阵。
31.进一步地,根据所述联合矩阵得到所述多个人体关键点对应的姿态位置pi′
为:
32.pi′
=m
·ai
=m(m
t
m)-1mt
pi;
33.其中,pi表示第i关键点连续2m+1帧构成的位姿矩阵;
34.m表示多项式矩阵;
35.ai表示第i关键点的系数矩阵;
36.t表示矩阵转置。
37.本发明还提供一种人体姿态估计装置,所述装置包括:
38.关键点提取单元,用于基于预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;
39.数据点提取单元,用于设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点;
40.滤波优化单元,用于基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;
41.姿态位置输出单元,用于根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。
42.本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法的步骤。
43.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计
算机程序被处理器执行时实现如上所述方法的步骤。
44.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
45.本发明所提供的基于滤波算法的人体姿态估计方法,通过预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;而后设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点,并基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;进而根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。这样,该方法在现有的人体姿态估计的基础上,融入了滤波算法,利用滤波算法的优化得到联合矩阵,并通过联合矩阵获取对应的姿态位置,其充分考虑了相关联的关键点之间的作用关系,使得输出的姿态位置更加连贯和准确,解决了现有技术中人体姿态估计的稳定性较差,精确度较低的技术问题。
附图说明
46.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
47.本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
48.图1为本发明所提供的人体姿态估计方法一种具体实施方式的流程图;
49.图2和图3为一个实施例中人姿态估计方法的效果图;
50.图4为本发明所提供的人体姿态估计方法一种具体实施方式的结构框图;
51.图5为本发明所提供的一种计算机设备的结构框图。
具体实施方式
52.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.在进行动作分析的场景下,需要连续分析检测出的人体姿态,人体姿态估计的稳定性和精确度直接影响动作分析的结果。因此,本方法在人体姿态估计模型的基础上结合联合滤波算法,将人体姿态估计序列作为输入,通过扩展s-g滤波算法,实现人体姿态关键点的实时稳定输出,有效保证了实时视频输出人体关键点位置的稳定性,提高了后续动作识别精度。
54.请参考图1,图1为本发明所提供的人体姿态估计方法一种具体实施方式的流程图。
55.在一种具体实施方式中,如图1所示,本发明所提供的基于滤波算法的人体姿态估
计方法包括以下步骤:
56.s1:基于预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点。也就是说,利用人体姿态估计模型提取视频帧中的人体关键点其中,表示第t帧的第s个关键点的关键点位置。人体姿态估计模型可以具体为openpose、alphapose或者blazepose。
57.s2:设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点。
58.具体地,可以利用以下公式设定滤波器窗口宽度w:
59.w=2m+1
60.其中,m为常数,且m为正整数,多个数据点分别为x=(-m,-m+1,

,m-1,m)。
61.滤波器窗口宽度可以根据算法实时性要求和数据自身波动程度进行设置,不宜过长或过短,过长会导致结果过于平滑,过短则滤波效果不明显。在该实施例中,针对处理实时交互场景,m取值介于[2,4]。
[0062]
s3:基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵。
[0063]
在该实施例中,上述滤波算法模型可以选择savitzky-golay滤波器。从原理上来讲,savitzky-golay滤波器是一种低通滤波器,该滤波器多运用于数据流平滑除噪,是一种在时域内基于多项式,通过移动窗口利用最小二乘法进行最佳拟合的方法,相对于其他类似的平均方法更能保留相对极大值、极小值和宽度等分布特征。本发明将人体姿态估计序列作为输入,通过扩展s-g滤波算法,实现人体姿态关键点的实时稳定输出。
[0064]
具体地,将所述多个人体关键点和所述多个数据点进行拟合时,按照s-g算法,假设滤波器窗口宽度w=2m+1(m∈n),各测量点为x=(-m,-m+1,

,m-1,m),采用k-1次多项式对窗口内的数据点进行拟合:
[0065]
y=ao+a1x+a2x2+

+a
k-1
x
k-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0066]
其中,y表示待拟合观察数据点;
[0067]ao
,a1,a2、

,a
k-1
表示多项式系数;
[0068]
x表示测量点;
[0069]
k表示多项式阶数。
[0070]
根据公式(1),第i个关键点在(-m,-m+1,

,m-1,m)帧的坐标拟合可以组合如下:
[0071][0072]
公式(2)简写即为,针对任意所述人体关键点的联合矩阵:
[0073]
pi=m
·ai
+ei[0074]
其中,表示第i关键点连续2m+1帧构成的位姿矩阵;
[0075]
表示多项式矩阵;
[0076]
表示第i关键点的系数矩阵;
[0077]
表示第i关键点的拟合误差矩阵。
[0078]
s4:根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。
[0079]
根据最小二乘滤波后,根据所述联合矩阵得到所述多个人体关键点对应的姿态位置pi′
为:
[0080]
pi′
=m
·ai
=m(m
t
m)-1mt
piꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0081]
其中,pi表示第i关键点连续2m+1帧构成的位姿矩阵;
[0082]
m表示多项式矩阵;
[0083]ai
表示第i关键点的系数矩阵;
[0084]
t表示矩阵转置。
[0085]
下面以一个具体使用场景为例,简述本发明所提供的人体姿态估计方法的实施过程。
[0086]
以openpose作为人体姿态估计模型为例,如图2所示,该模型可以输出25个关键点。这些关键点之间不是孤立的,它们之间的连线可以简单理解为两个关键点之间具有连接关系,当然也可以构造其他连接。以0号位置为例,它与{1,15,16}点具备连接关系,所以构造s-g滤波时需要把这些点也考虑进去构造拟合方程式,如公式(4)。
[0087][0088]
公式(4)中子矩阵含义可以参考公式(3),p0、p1、p
15
、p
16
分别表示0、1、15、16号关键点连续2m+1帧构成的位姿矩阵;a0、a1、a
15
、a
16
分别表示0、1、15、16号关键点的多项式矩阵;e0、e1、e
15
、e
16
分别表示0、1、15、16号关键点的误差矩阵;
[0089]
则构成一个联合矩阵。
[0090]
当openpose所有关键点进行滤波时,为了更清晰看到关键点之间是否有连接,联合矩阵m
pose
可以表示为如图3所示的形式,在图3中,每一个深色块代表m矩阵,白色块表示零矩阵。假设所有关键点构成的位置p
pose
=(p0,p1,

,p
24
)
t
,同样根据最小二乘,滤波后的关键点位置关键点位置
[0091]
这样,在上述具体实施方式中,本发明所提供的基于滤波算法的人体姿态估计方法,通过预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;而后设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点,并基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;进而根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。这样,该方法在现有的人体姿态估计的基础上,融入了滤波算法,利用滤波算法的优化得到联合矩阵,并通过联合矩阵获取对应的姿态位置,其充分考虑了相关联的关键点之间的作用关系,使得输出的姿态位置更加连贯和准确,解决了现有技术中人体姿态估计的稳定性较差,精确度较低的技术问题。
[0092]
除了上述方法,本发明还提供一种人体姿态估计装置,如图4所示,所述装置包括:
[0093]
关键点提取单元100,用于基于预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;
[0094]
数据点提取单元200,用于设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点;
[0095]
滤波优化单元300,用于基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;
[0096]
姿态位置输出单元400,用于根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。
[0097]
在上述具体实施方式中,本发明所提供的基于滤波算法的人体姿态估计装置,通过预存的人体姿态估计模型,提取目标视频帧中的多个人体关键点;而后设定滤波窗口宽度,并获取所述滤波窗口内的多个数据点,并基于预存的滤波算法模型,将所述多个人体关键点和所述多个数据点进行拟合,以得到针对任意所述人体关键点的联合矩阵;进而根据所述联合矩阵得到所述多个人体关键点对应的姿态位置。这样,该装置在现有的人体姿态估计的基础上,融入了滤波算法,利用滤波算法的优化得到联合矩阵,并通过联合矩阵获取对应的姿态位置,其充分考虑了相关联的关键点之间的作用关系,使得输出的姿态位置更加连贯和准确,解决了现有技术中人体姿态估计的稳定性较差,精确度较低的技术问题。
[0098]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和模型预测。
该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的模型预测用于存储静态信息和动态信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述方法实施例中的步骤。
[0099]
本领域技术人员可以理解,图5中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0100]
与上述实施例相对应的,本发明实施例还提供了一种计算机存储介质,该计算机存储介质中包含一个或多个程序指令。其中,所述一个或多个程序指令用于被一种砝码检定系统执行如上所述的方法。
[0101]
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述方法。
[0102]
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific工ntegrated circuit,简称asic)、现场可编程门阵列(fieldprogrammable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0103]
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
[0104]
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
[0105]
其中,非易失性存储器可以是只读存储器(read-only memory,简称rom)、可编程只读存储器(programmable rom,简称prom)、可擦除可编程只读存储器(erasable prom,简称eprom)、电可擦除可编程只读存储器(electrically eprom,简称eeprom)或闪存。
[0106]
易失性存储器可以是随机存取存储器(random access memory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,简称sram)、动态随机存取存储器(dynamic ram,简称dram)、同步动态随机存取存储器(synchronous dram,简称sdram)、双倍数据速率同步动态随机存取存储器(double data ratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,简称esdram)、同步连接动态随机存取存储器(synchlink dram,简称sldram)和直接内存总线随机存取存储器(directrambus ram,简称drram)。
[0107]
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
[0108]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质
中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0109]
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1