一种三维人体姿态估计方法及计算机可读存储介质

文档序号:25170659发布日期:2021-05-25 14:40阅读:71来源:国知局
一种三维人体姿态估计方法及计算机可读存储介质

本发明涉及计算机视觉技术领域,尤其涉及一种三维人体姿态估计方法及计算机可读存储介质。



背景技术:

对包含人像的二维rgb图像进行人体姿态估计,即根据图片信息输出指定人体关键点的坐标位置,是计算机视觉领域一个非常有价值的研究方向。人体姿态估计的检测结果可进一步服务于人体重建、人机交互、行为识别、虚拟现实、游戏建模等多个工业领域,已经应用于许多产品。相比于二维姿态,三维姿态估计的结果在应用中能提供更高维、更丰富的信息,具有广阔的应用前景。因此,近年来三维姿态估计得到国内外研究者的关注。

获取三维关键点坐标的方法有多种,主要有:从关键点二维坐标生成三维坐标;从图像中直接预测关键点三维坐标;从图像中同步估计关键点的二维坐标与三维坐标估并共享信息等。

从关键点二维坐标生成三维坐标的方法,指的是首先从原始图像中运用二维人体姿态估计方法获取关键点的二维坐标,使用三维姿态生成器仅通过学习二维坐标点信息推断出对应的第三维坐标。此方法的好处有:二维人体姿态估计方法较为成熟可靠,可为后续任务提供先验信息,较图片而言是更高维、更集中的特征;另外,二维到三维坐标的生成过程中,用来进行监督训练的数据为二维-三维坐标对,数据总量很小,相比于其他使用原始图像作为输入的方法占显存小,训练速度快。缺点是仅从二维坐标获取到的信息有限,缺失图片丰富的信息表达。

从图像中同步估计关键点的二维坐标与三维坐标估并共享信息的方法,指的是直接用神经网络学习原始图像中的人体特征,输出的结果为关键点的三维坐标,或者先生成体素或热力图等中间形式,然后进一步求解坐标。这种方法的优点是准确度较前种方法较高,因为可以更好地、全面地提取图片中的多方面信息,但相应的,神经网络的体量会更大,在训练速度及参数调整方面灵活性较低。

同步估计关键点的二维坐标与三维坐标的方法指的是同时进行两个任务的预测工作,将两个网络的中间层特征共享,或根据两个结果之间的对应关系进行关联校正。此方法的优点是可以同时完成两个任务,并结合上述两种方法的优点,在结果准确度上的表现会更好;缺点是网络结构最为复杂,参数量大,信息共享方式需要设计及大量实验。

三维人体姿态估计任务,特别是从关键点二维坐标生成三维坐标的方法,对于人体的固有结构信息和常见姿态有着更强的依赖性。人体各关键点的位置之间有非常密切的联系,体现每段骨骼长度、夹角、位置等都有其规律,人体的常见姿态也为关键点的检测提供了大量的信息,因此人体关键点间的结构关系应当被充分利用。人体骨骼是具有对称性的结构,在人体姿态相关的任务中表现为左右对称的两段骨骼的长度一致、相对位置一致。因为投影角度和骨骼姿态的不确定性,在二维人体姿态估计中难以充分利用此约束条件,而在三维空间中则可以将此作为一个强制性约束。

人体骨架是一种典型的图(graph)的形式,由关键点及关键点之间的连接关系构成。对于这种非规则的数据结构,图神经网络(graphneuralnetwork)是一种有效的大数据处理方式。图神经网络是将深度学习的方法应用于非规则数据构建得到的网络结构,在知识图谱、社交网络、计算机视觉等方向均有广泛的实践应用。在常见的从关键点二维坐标生成三维坐标的姿态估计方法中,该生成器通常采用堆叠的全连接层来实现,在提取特征、估计深度的过程中没有充分地利用关键点之间的联系和约束关系。考虑人体姿态估计任务,关键点的数目及连接关系是固定不变的,而对于结构不变的小型图,谱图卷积神经网络是一种高效的处理方法。

现有技术中人体三维姿态估计方法的对人体关键点间的结构关系利用不充分。

以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。



技术实现要素:

本发明为了解决现有的问题,提供一种三维人体姿态估计方法及计算机可读存储介质。

为了解决上述问题,本发明采用的技术方案如下所述:

一种三维人体姿态估计方法,包括如下步骤:s1:采用人体检测网络从原始图像中获取单人图像并做标准化处理;s2:使用二维姿态估计方法从所述单人图像中预测关键点的二维坐标;s3:将所述二维坐标生成三维坐标,包括:使用三维姿态生成器预测关键点的第一三维坐标;根据人体关节的对称结构将所述二维坐标作对称处理,再使用三维姿态生成器预测关键点的第二三维坐标;s4:所述第一三维坐标和所述第二三维坐标分别与对应的标签计算差值,结果求和用于反向传播,得到三维人体姿态估计。

优选地,所述原始图像是单人或多人图像;从所述原始图像中检测每一个人体范围得到所述单人图像;所述标准化处理包括将所述每一个人体范围内的像素填充到统一比例,放缩到统一尺寸;所述像素对应的二维关键点的坐标位置标签随所述像素进行所述标准化处理;所述像素对应的三维关键点的坐标位置标签去中心化处理。

优选地,使用二维姿态估计方法从所述单人图像中预测关键点的二维坐标包括如下步骤:将二维姿态估计网络应用于单人图像,得到的结果为所述单人图像中每个关节点的二维坐标预测值,描述为:

r=net1(i)

其中,i是单人图像,r是二维坐标预测值,net1是二维姿态估计网络。

优选地,使用三维姿态生成器预测关键点的第一三维坐标包括:训练所述三维姿态生成器来预测关键点的第一三维坐标,得到第一三维人体姿态估计的结果,过程表示为:

p=net2(r)

其中,p是第一三维人体姿态估计的结果,net2是三维姿态生成器。

优选地,采用图神经网络作为所述三维姿态生成器,由所述二维坐标预测值到的结果构成一个图,将节点属性和卷积核变换到频域,每次更新后返回空域,表示为:

(gθ*h)g=u((utgθ)⊙(uth))

其中,gθ为卷积核,h为节点的特征信息,u为根据图像的邻接关系通过拉普拉斯分解得到的特征矩阵,t是矩阵的转置。

优选地,根据人体关节的对称结构将所述二维坐标作对称处理,再使用三维姿态生成器预测关键点的第二三维坐标包括:根据人体对称性将所述二维坐标预测值作对称处理得到r’,训练所述三维姿态生成器来预测关键点的第一三维坐标,得到第二三维人体姿态估计的结果p’,过程表示为:

p′=net2(r′)。

优选地,所述第一三维坐标和所述第二三维坐标分别与对应的标签计算差值并求和表示为:

l=loss(p,t)+loss(p′,t′)

其中,l表示两个差值的和,loss表示差值,t,t’分别是第一三维坐标和第二三维坐标对应的标签。

优选地,所述体检测网络采用yolo系列或maskrcnn网络;所述二维姿态估计网络是hourglass、simplebaseline或hrnet。

优选地,所述三维姿态生成器为:用八个图神经网络层构成一个网络模块,输入特征信息hk的维度为2,每个层的输出维度分别为4,16,64,256,64,16,4,3,最终输出的特征信息hk代表第k个关键点的三维坐标。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行如上任一项所述的方法。

本发明的有益效果为:提供一种三维人体姿态估计方法及计算机可读存储介质,通过人体关键点的特征,基于关键点对称性关系的训练方法,并将原有的生成器网络进行升级,充分利用了人体关键点间的连接关系及对称关系,能够达到优化预测结果的目的;同时在原有数据集的基础上,实现了训练数据的扩充,增强了模型的鲁棒性。

附图说明

图1是本发明实施例中一种三维人体姿态估计方法的示意图。

图2是本发明实施例中从单人图像中预测关键点二维坐标示意图。

图3是本发明实施例中基于对称性预测三维坐标的流程图。

具体实施方式

为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接既可以是用于固定作用也可以是用于电路连通作用。

需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

如图1所示,本发明提供一种三维人体姿态估计方法,包括如下步骤:

s1:采用人体检测网络从原始图像中获取单人图像并做标准化处理;

s2:使用二维姿态估计方法从所述单人图像中预测关键点的二维坐标;

s3:将所述二维坐标生成三维坐标,包括:

使用三维姿态生成器预测关键点的第一三维坐标;

根据人体关节的对称结构将所述二维坐标作对称处理,再使用三维姿态生成器预测关键点的第二三维坐标;

s4:所述第一三维坐标和所述第二三维坐标分别与对应的标签计算差值,结果求和用于反向传播,得到三维人体姿态估计。

本发明针对人体关键点的特征,基于关键点对称性关系的训练方法,并将原有的生成器网络进行升级,充分利用了人体关键点间的连接关系及对称关系,能够达到优化预测结果的目的;同时在原有数据集的基础上,实现了训练数据的扩充,增强了模型的鲁棒性。

在本发明的一种实施例中,所述原始图像是单人或多人图像;从原始图像中检测每一个人体范围得到所述单人图像;标准化处理包括将每一个人体范围内的像素填充到统一比例,放缩到统一尺寸;像素对应的二维关键点的坐标位置标签随所述像素进行标准化处理;像素对应的三维关键点的坐标位置标签去中心化处理。具体的,去中心化处理是指所有关节的三维坐标都减去髋关节的坐标值,达到rootrelative的形式。

标准化后的单人图像i及标签t将成对地用于后续网络的训练及监督。在本任务的训练过程中,本发明不对检测过程进行训练,而使用标注中采集的人体范围来代替人体检测网络的预测值,从而简化训练流程,提高训练准确性;在网络测试阶段及实际应用中,采用经过预训练的检测网络实现这一过程,人体检测网络可采用yolo系列或maskrcnn等成熟的检测网络。

如图2所示,使用二维姿态估计方法从所述单人图像中预测关键点的二维坐标包括如下步骤:

将二维姿态估计网络应用于单人图像,得到的结果为所述单人图像中每个关节点的二维坐标预测值,描述为:

r=net1(i)

其中,i是单人图像,r是二维坐标预测值,net1是二维姿态估计网络。

同样地,在训练过程中这一环节可以直接由标注中的关键点二维坐标取代,结果用于训练下一步骤的网络参数;在网络测试阶段及实际应用中,采用经过预训练的二维姿态估计网络实现这一过程。预测得到或标注中获取单人图像关键点二维坐标共n组,其中n都代表人体关键点的个数,是固定的,根据数据集规定的不同可以是14,16或17。每组有两个坐标值,表示空间中三维关键点在图片平面上的投影,记为r。其中,net1表示选用的二维姿态估计网络。由于本发明采用自顶向下的人体姿态估计方法,因此net1可根据需求选用hourglass,simplebaseline,hrnet等网络。

接下来的一步是使用上述二维关键点坐标r,训练三维坐标生成器网络来实现第三个维度的坐标估计,得到最终三维人体姿态估计的结果p,形式为n组数据,每组包含三个坐标值,代表空间中人体的关键点三维坐标估计值。

使用三维姿态生成器预测关键点的第一三维坐标包括:

训练所述三维姿态生成器来预测关键点的第一三维坐标,得到第一三维人体姿态估计的结果,过程表示为:

p=net2(r)

其中,p是第一三维人体姿态估计的结果,net2是三维姿态生成器。

三维姿态生成器要处理的任务是向量到向量之间的转化,而卷积神经网络通常用于处理图片形式的规律序列,因此不适用于此步骤。在常见的从关键点二维坐标生成三维坐标的姿态估计方法中,该生成器通常采用堆叠的全连接层来实现,参数量为数兆。该方法可以有效地实现任务,但由于输入只是分散的、无关联的二维坐标序列,无法提供关键点之间的连接、对称关系,所以未能充分地利用关键点之间的联系和约束关系。针对上述问题,采取如下两个措施。

采用图神经网络的方式可以为此环节提供先验的人体结构信息。图(graph)由节点和边构成,可以表示为g={k,e}。其中k为节点的集合,数量为n,e是边的集合。对于任意k∈k,都有一组特征属性hk,该特征随着网络的迭代进行更新,第t次迭代后的节点k的特征属性表示为在连接没有方向的情况下,e可由一个对称的二维矩阵a表示,称为邻接矩阵,大小为n×n。在由人体关键点构成的图中,节点k表示为每个人的关键点,总数为n,其特征属性hk表示为该节点对应的坐标值,输入维度为2,对应关键点的二维坐标,e由各关键点的连接关系决定,若两节点之间有连接关系,则矩阵对应位置的元素为1,否则为0。参考卷积的概念,可以按照laplacian矩阵的概念,通过邻接矩阵a构造出一个转换矩阵u,以实现空域和频域间的转换。同时,通过将空域中的卷积核gθ构造为对角矩阵的形式,可以实现卷积神经网络的局部连接、权值共享等优势。参考传统傅里叶变换的形式,可将空域中的图g的节点特征信息hk,以及卷积核gθ转换到频域中,进行信息融合和特征值更新。一次卷积运算过程可表示为:

(gθ*h)g=u((utgθ)⊙(uth))

称为一个图神经网络层。

其中,gθ为卷积核,h为节点的特征信息,u为根据图像的邻接关系通过拉普拉斯分解得到的特征矩阵,t是矩阵的转置。

将新的三维姿态生成器设计为:用八个图神经网络层构成一个网络模块,输入特征信息hk的维度为2,每个层的输出维度分别为4,16,64,256,64,16,4,3,最终输出的特征信息hk代表第k个关键点的三维坐标。以t为标签进行迭代训练,训练次数设为50次。

为网络提供了关键点间的连接关系之后,还希望可以将人体的对称性约束引入网络中。人体骨骼是具有对称性的结构,在人体姿态相关的任务中表现为左右对称的两段骨骼的长度一致、相对位置一致。保证左右两块对称骨骼的长度相等,对于减少预测误差、提升三维姿态估计的任务是非常有帮助的。在用二维坐标生成三维坐标的环节中,在原有前向预测的基础上增加一个对称的并行支路,即以二维关键点坐标r为初始值,一条支路直接使用三维姿态生成器预测关键点三维坐标p;在原有前向预测的基础上增加一个对称的并行支路,根据人体关节的对称结构将所述二维坐标作对称处理,再使用三维姿态生成器预测关键点的第二三维坐标包括:

根据人体对称性将所述二维坐标预测值作对称处理得到r’,训练所述三维姿态生成器来预测关键点的第一三维坐标,得到第二三维人体姿态估计的结果p’,过程表示为:

p′=net2(r′)。

同时用于监督的三维坐标标签也做二维坐标同步的处理,那么两支路的预测结果将分别与对应的标签t,t’计算差值,最后将总和作为整个网络的损失值,用于更新网络参数。第一三维坐标和所述第二三维坐标分别与对应的标签计算差值并求和表示为:

l=loss(p,t)+loss(p′,t′)

其中,l表示两个差值的和,loss表示差值,t,t’分别是第一三维坐标和第二三维坐标对应的标签。

上述流程如图3所示。

下面详细描述对称处理的方式。本发明采用将左右关键点位置交换的方法,也就是将二维坐标序列r和标签t中所有的对称关键点的排序交换,由于序列中顺序指向固定的关键点,因此可以实现两段骨骼的位置交换。在三维层面加以考虑,这个步骤会导致人体朝向的反转,而这存在一定的不合理风险,例如:当人体的左膝盖向前弯曲时,交换左右会导致右膝盖向后弯曲,而这是不可能存在的姿态。因此在交换完成后还需要将关键点坐标以裁取范围的中值为轴取对称,这一步体现在可视化图中即水平翻转。

在这里本发明没有采取强制措施使两个向量的模相等,虽然可以通过在学习目标中添加相应的损失条件来强制执行这些约束,但网络的调节和权衡是有一定困难的。通过本发明的方法,可以帮助模型学习到潜在的对称约束,能够在二维投影表现不对称的情况下实现对称骨骼的近似等长度。同时,考虑到获取较为困难的三维标签,对称处理作为一种数据增强的方法,也可以提供更多的训练数据,增强模型的鲁棒性。

将本发明的方法应用到human3.6m数据集中,得到如表1所示的实验结果。

表1人体结构约束的三维人体姿态估计方法实验结果

上述实验结果表明,表中几个方法采用了不同的网络构成三维姿态生成器:所列第一种方法是使用全连接层,第二种方法使用空间域图神经网络,第三种方法是本申请采用的图卷积神经网络。可以看到本申请方法在预测准确度(最后一列)优于所列的现有方法。表中最后一行是本申请提出的完整方法,即图神经网络和对称训练策略相结合。上述实验结果表明,本申请提出的方法十分有益于三维人体姿态估计任务。

本申请实施例还提供一种控制装置,包括处理器和用于存储计算机程序的存储介质;其中,处理器用于执行所述计算机程序时至少执行如上所述的方法。

本申请实施例还提供一种存储介质,用于存储计算机程序,该计算机程序被执行时至少执行如上所述的方法。

本申请实施例还提供一种处理器,所述处理器执行计算机程序,至少执行如上所述的方法。

所述存储介质可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdramenhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1