获取空间定位的三维人体姿态估计方法及计算机可读存储介质
文献发布时间:2023-06-19 11:05:16
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种获取空间定位的三维人体姿态估计方法及计算机可读存储介质。
背景技术
对包含人像的二维RGB图像进行人体姿态估计,即根据图片信息输出指定人体关键点的坐标位置,是计算机视觉领域一个非常有价值的研究方向。人体姿态估计的检测结果可进一步服务于人体重建、人机交互、行为识别、虚拟现实、游戏建模等多个工业领域,已经应用于许多产品。相比于二维姿态,三维姿态估计的结果在应用中能提供更高维、更丰富的信息,具有广阔的应用前景。因此,近年来三维姿态估计得到国内外研究者的关注。
当一张图片中有多个人体,采用的三维人体姿态估计方法分为自顶向下和自底向上两种,前者首先检测单个人体,再通过设定的方法获取三维关键点坐标,准确性较高;后者首先检测多人的所有关键点,再结合全局信息通过匹配方法将属于同一个人的关键点相连接,实时性较好。获取三维关键点坐标的方法有多种,主要有:从关键点二维坐标生成三维坐标;从图像中直接预测关键点三维坐标;从图像中同步估计关键点的二维坐标与三维坐标估并共享信息,等。
从关键点二维坐标生成三维坐标的方法,指的是首先从原始图像中运用二维人体姿态估计方法获取关键点的二维坐标,使用三维姿态生成器仅通过学习二维坐标点信息推断出对应的第三维坐标。此方法的好处有:二维人体姿态估计方法较为成熟可靠,可为后续任务提供先验信息,较图片而言是更高维、更集中的特征;另外,二维到三维坐标的生成过程中,用来进行监督训练的数据为二维-三维坐标对,数据总量很小,相比于其他使用原始图像作为输入的方法占显存小,训练速度快。缺点是仅从二维坐标获取到的信息有限,缺失图片丰富的信息表达。
在自顶向下的三维人体姿态估计任务中,评价指标的设定使得预测结果通常只能表示以自身为根节点的坐标系中各关键点的坐标位置,而无法显示与图片中其他人的相对位置关系。解决这个问题需要预测每个人体关键点在相机坐标系中的绝对位置,实现人体的空间定位,从而满足多人三维姿态估计中对多人关系的理解和直观视觉需求。
现有的自顶向下的三维人体姿态估计方法,通常直接将神经网络输出的关键点三维坐标作为最终结果,不再进行其他处理。默认此结果与真实人体大小相同、方向一致,是一个存在偏差的假设。将预测结果与真实标签做比较之前,还需要将上述误差尽可能降低,而这一点目前还未得到有效的解决。
以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。
发明内容
本发明为了解决现有的问题,提供一种获取空间定位的三维人体姿态估计方法及计算机可读存储介质。
为了解决上述问题,本发明采用的技术方案如下所述:
一种获取空间定位的三维人体姿态估计方法,包括如下步骤:S1:采用人体检测网络从原始图像中获取单人图像并做标准化处理;S2:使用二维人体姿态估计的方法从所述单人图像中预测关键点的二维坐标,使用三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标,得到三维人体姿态估计的结果;同时从二维人体姿态估计网络的特征中获取人体参数;S3:根据所述人体参数校正所述三维人体姿态估计的结果的尺度;S4:计算视角偏差,旋转校正后的三维人体姿态估计结果与相机坐标系对齐;S5:依据透视投影的原理,拟合绝对深度,获取空间定位,完成三维人体姿态估计。
优选地,所述原始图像是单人或多人图像;从所述原始图像中检测每一个人体范围得到所述单人图像;所述标准化处理包括将所述每一个人体范围内的像素填充到统一比例,放缩到统一尺寸;所述像素对应的二维关键点的坐标位置标签随所述像素进行所述标准化处理;所述像素对应的三维关键点的坐标位置标签去中心化处理。
优选地,使用二维人体姿态估计的方法从所述单人图像中预测关键点的二维坐标,使用三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标包括:将二维姿态估计网络应用于所述单人图像I,得到的结果为所述单人图像的每个关节点的二维坐标预测值R,描述为:
R=NetA1(I)
通过所述三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标,得到三维人体姿态估计的结果P,表示为:
P=NetA2(R)
其中,NetA1是二维姿态估计网络;NetA2是三维姿态生成器。
优选地,从所述二维人体姿态估计网络的特征中获取人体参数包括:采用网络NetB从二维姿态估计网络NetA1的特征中学习身体参数,表示为:
β=NetB(F
其中,β是一个范围在0.5~1的数值,表征动作信息,F表示网络中间层的特征值。
优选地,根据所述人体参数校正所述三维人体姿态估计的结果的尺度得到尺度校正后的三维人体姿态估计P
P
优选地,计算视角偏差,旋转校正后的三维人体姿态估计结果与相机坐标系对齐包括:根据所述单人图像的中点横、纵坐标获取绕x轴方向和y轴方向的的旋转角度分别为:
将尺度校正后的三维姿态估计P
P
其中,Rotate是将校正后的三维姿态P
优选地,依据透视投影的原理,拟合根节点的绝对深度,求解根节点在相机坐标系下的坐标,具体包括:根据所述关键点的二维坐标R从中取出根节点的二维坐标(x,y),求解所述校正后的三维人体姿态估计结果的根节点在相机坐标系下的三维坐标(X,Y,Z);
根据透视投影的推理,空间中的三维坐标点(X,Y,Z)与其成像在投影平面上的二维坐标(x,y)的关系可表示为:
其中,Z是三维坐标点的Z坐标;
将Z的值假设为一个确定值Z
P
通过迭代拟合Z
优选地,将(X
P
优选地,二维姿态估计网络是Hourglass、Simple baseline或HRNet,三维姿态生成器选用全连接层或图神经网络层。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行如上任一项所述的方法。
本发明的有益效果为:提供一种获取空间定位的三维人体姿态估计方法及计算机可读存储介质,通过在原有的自顶向下的三维人体姿态估计方法的基础之上,添加了人体尺度校正和视角偏差校正的步骤,有效减少了预测坐标系与相机坐标系之间的不重合程度,能够达到提高结果准确性、降低系统误差的目的。
进一步地,本发明采用透视投影的方法拟合绝对深度,实现了人体的空间定位。
附图说明
图1是本发明实施例中一种获取空间定位的三维人体姿态估计方法的示意图。
图2是本发明实施例中从单人图像预测三维坐标的流程示意图。
图3是本发明实施例中相机视角偏差的示意图。
具体实施方式
为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接既可以是用于固定作用也可以是用于电路连通作用。
需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
如图1所示,本发明提供一种获取空间定位的三维人体姿态估计方法,包括如下步骤:
S1:采用人体检测网络从原始图像中获取单人图像并做标准化处理;
S2:使用二维人体姿态估计的方法从所述单人图像中预测关键点的二维坐标,使用三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标,得到三维人体姿态估计的结果;同时从二维人体姿态估计网络的特征中获取人体参数;
S3:根据所述人体参数校正所述三维人体姿态估计的结果的尺度;
S4:计算视角偏差,旋转校正后的三维人体姿态估计结果与相机坐标系对齐;
S5:依据透视投影的原理,拟合绝对深度,获取空间定位,完成三维人体姿态估计。
本发明通过在原有的自顶向下的三维人体姿态估计方法的基础之上,添加了人体尺度校正和视角偏差校正的步骤,有效减少了预测坐标系与相机坐标系之间的不重合程度,能够达到提高结果准确性、降低系统误差的目的。
进一步地,本发明采用透视投影的方法拟合绝对深度,实现了人体的空间定位。
首先是自顶向下方法中的第一步,从原始图像中获取单人图像。可以理解的是,所述原始图像是单人或多人图像;从原始图像中检测每一个人体范围得到所述单人图像;标准化处理包括将每一个人体范围内的像素填充到统一比例,放缩到统一尺寸;像素对应的二维关键点的坐标位置标签随所述像素进行标准化处理;像素对应的三维关键点的坐标位置标签去中心化处理。具体的,去中心化处理是指所有关节的三维坐标都减去髋关节的坐标值,达到root relative的形式。在本发明的一种实施例中,在单人图像的检测框的长和宽中选择较大的一个值作为长边,将原检测框居中,首先将短边的像素值扩充到长宽比=1:1,然后将扩充后的方形缩放到指定尺寸(256x256或384x384,可根据实验条件自行设置)。
标准化后的单人图像I及标签T将成对地用于后续网络的训练及监督。在本任务的训练过程中,本发明不对检测过程进行训练,而使用标注中采集的人体范围来代替人体检测网络的预测值,从而简化训练流程,提高训练准确性;在网络测试阶段及实际应用中,采用经过预训练的检测网络实现这一过程,人体检测网络可采用YOLO系列或Mask RCNN等成熟的检测网络。
作为任务的核心功能,从单人图片预测关键点三维坐标的模块是固定的。使用二维人体姿态估计的方法从所述单人图像中预测关键点的二维坐标,使用三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标包括:
将二维姿态估计网络应用于所述单人图像I,得到的结果为所述单人图像的每个关节点的二维坐标预测值R,描述为:
R=NetA1(I)
通过所述三维姿态生成器从所述关键点的二维坐标预测所述关键点的三维坐标,得到三维人体姿态估计的结果P,表示为:
P=NetA2(R)
其中,NetA1是二维姿态估计网络;NetA2是三维姿态生成器。
此时得到的P是根节点坐标系中各关键点的相对坐标。在具体的实施例中,二维姿态估计网络是Hourglass、Simple baseline或HRNet,三维姿态生成器选用全连接层或图神经网络层。
三维人体姿态估计中常见的评价指标为MEJPE(Mean Per Joint PositionError),P-MEJPE(Procrustes analysis MEJPE),以及PCK(Percentage of Correct Key-point)等。这些评价准则均是计算预测结果与标签之间的差距,具体指的是将每组对应关键点之间的接近程度做量化评价后,再取均值。预测结果与标签的形式均为包含N个三维向量的数组,代表空间中人体的N个关键点的三维坐标值,而二者所处的坐标系并不统一。在一种具体的实施例中,N的取值由数据集决定且数值是固定的,一般为14,16或17。
为了实现两组空间点的比较,将双方都处理为相对根节点的(root-relative)坐标形式。首先需要指定一个根节点(通常为髋关节),将其三维坐标定义为(0,0,0),从单人图片中估计得到的其他关键点坐标都是以此根节点为原点的三维向量。而标签中的各关键点坐标也统一为此形式,需要在预处理中减去根节点的向量(X,Y,Z),得到一个相对位置。这样一来,两个待比较的姿态可以通过将根节点重合来实现两个坐标系之间的“对齐”,以每个人体为单位计算预测的误差。
上述评价指标存在两个问题:一是预测姿态的尺度并不能代表人体在相机坐标系中的真实尺度;二是在两个坐标系对齐的过程中只消除了位移偏差,而未考虑角度偏差。下面针对这两点分别进行描述,并提出解决方案。
在不进行普氏变换的情况下,默认预测得到的结果与真实人体大小相同,而这是存在误差的。由于每个单人图像都进行了标准化处理,因此儿童和成人、站姿和坐姿图片预测得到的三维结果尺度是接近的,这里的尺度可以理解为关键点在空间中能达到的长方体范围。为了更合理的空间定位,为上述估计值添加一个辅助信息,用于校正人体姿态估计值尺度,使之更接近真实大小。为了整个网络的轻量化,无需采用额外的网络,在二维人体姿态估计网络预测关键点二维坐标R=NetA1(I)的同时,网络中间层的特征可以共享用来学习人体特征信息。从所述二维人体姿态估计网络的特征中获取人体参数包括:
采用网络NetB从二维姿态估计网络NetA1的特征中学习身体参数,表示为:
β=NetB(F
其中,β是一个范围在0.5~1的数值,表征动作信息,F表示网络中间层的特征值。网络NetB的作用是提取特征,这个网络采用ResNet-18类似的结构,在输入端略作调整。身体参数β是一个范围在0.5~1的数值,其作用是学习单人图片中传达出的动作信息,例如直立人体的身体参数接近1,蹲着的人体身体参数接近0.5。
如图2所示,本发明的误差校正包括尺度校正和角度校正,根据所述人体参数校正所述三维人体姿态估计的结果的尺度得到尺度校正后的三维人体姿态估计P
P
由于原始图片中的人体可能分布在图片的任意位置,而在从单人图像预测的人体姿态的过程中,现有自顶向下方法在裁取单人图片后,默认图片的中点经过相机成像系统的主轴,图片中展现的人体朝向与投影平面(图片)的法向,即相机主轴方向一致。这个假设在将预测的三维人体姿态放回相机坐标系时会出现一定的角度偏差,具体来说,真实人体关键点三维坐标的采集与标注处于相机坐标系中,其坐标轴方向与投影平面法向一致;而在透视投影理论中,偏离成像主轴α角度的物体在投影平面上成的像并非该物体平行于投影平面的一面,而是该物体与镜头-物体连线垂直的一面,因此预测得到的三维坐标的坐标系与相机坐标系有着角度为α的旋转偏差,如图3所示,
继续如图2所示,为了解决这一角度误差,在进行下一步之前,先将上一步输出的三维姿态P逆向旋转α角度。计算视角偏差,旋转校正后的三维人体姿态估计结果与相机坐标系对齐包括:
根据所述单人图像的中点横、纵坐标获取绕x轴方向和y轴方向的的旋转角度分别为:
将尺度校正后的三维姿态估计P
P
其中,Rotate是将校正后的三维姿态P
为了将人体姿态从根节点坐标系变换到相机坐标系下,首先需要求解根节点在相机坐标系下的三维坐标(X,Y,Z)。依据透视投影的原理,拟合根节点的绝对深度,求解根节点在相机坐标系下的坐标,具体包括:
根据所述关键点的二维坐标R从中取出根节点的二维坐标(x,y),求解所述校正后的三维人体姿态估计结果的根节点在相机坐标系下的三维坐标(X,Y,Z);
根据透视投影的推理,空间中的三维坐标点(X,Y,Z)与其成像在投影平面上的二维坐标(x,y)的关系可表示为:
其中,Z是三维坐标点的Z坐标;
在上述预测过程中我们可以得到关键点的二维坐标R,从中取出根节点的二维坐标(x,y)。将Z的值假设为一个确定值Z
P
通过迭代拟合Z
将(X
P
将本发明的方法在Human3.6M数据集中进行测试得到如表1所示的实验结果,本发明以Martinez et al.的方法作为基准,采用与其相同的二维人体姿态估计网络(沙漏网络)和三维姿态生成器(全连接层),在此基础上加入尺度校正和视角校正模块,并执行相同的训练方法。
表1三维人体姿态估计预测校正实验结果
实验结果表明,本申请方法在MPJPE(mm)指标(最后一列)上的表现优于基准方法,提高了结果准确性,降低了系统误差。
本申请实施例还提供一种控制装置,包括处理器和用于存储计算机程序的存储介质;其中,处理器用于执行所述计算机程序时至少执行如上所述的方法。
本申请实施例还提供一种存储介质,用于存储计算机程序,该计算机程序被执行时至少执行如上所述的方法。
本申请实施例还提供一种处理器,所述处理器执行计算机程序,至少执行如上所述的方法。
所述存储介质可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,FerromagneticRandom Access Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random AccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAMEnhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,Sync Link Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
- 获取空间定位的三维人体姿态估计方法及计算机可读存储介质
- 获取支付终端三维信息的方法、系统及计算机可读存储介质