目录
2.3 Volumetric Regression Network 2
2.7 Exploiting temporal information 10
1 概述
人体姿态重建即从单个的图片或视频中能重建或恢复人体姿态的3D模型。这个任务包括以下难点:人体的复杂性,清晰度,遮挡,衣服,照明以及2D推断3D的固有模糊性等等。
2 姿态3D重建方法
人体3D重建目前已经产生了很多种方法,各有特点。下面将重点介绍常用的一些和比较新颖的方法。
2.1 SMPL
SMPL模型是一种参数化人体模型,是马普所提出的一种人体建模方法,该方法可以进行任意的人体建模和动画驱动。这种方法可以模拟人的肌肉在肢体运动过程中的凸起和凹陷,因此可以避免人体在运动过程中的表面失真,可以精准的刻画人的肌肉拉伸以及收缩运动的形貌。
2.2 SMPLify
论文在2016/07发表,作者首先使用基于CNN的方法DeepCut来预测(自下而上)2D身体关节位置。然后,使用统计体形模型(称为SMPL)(自上而下)拟合到2D关节,是第一种从单个无约束图像自动估计人体3D姿态及其3D形状的方法。
2.3 Volumetric Regression Network
VRN网络曾被应用于人脸3D重建。作者基于此改进了VRN网络,并首次应用在人体姿态3D重建上,论文发表于2018/9/11。关于VRN网络,作者做出的改进包括引入中间监督,引入更先进的残差网络,减少残差模块的数量等等,最后作者证明了VRN在合适的数据集训练下能够重建复杂的姿态,甚至在给定高质量的训练数据集下,能从单张图片中学会制造更复杂的高度描绘的全3D重建。
2.3.1 思想
作者认为从上而下的网络直接回归顶点比较困难且不实际,他通过使用标准卷积将3D重建问题约束到空间域。作者认为算是一种语义分割的方法,因为输出是一组捕获3D几何的切片,因此可以使用标准体系结构进行分割。仿照人脸VRN模型的思路,作者以体积的表示来编码身体的结合形状。3D空间以固定的维度被离散化。内部的空间被编码为值为1的体素(voxel),其他空间(比如背景和未知的对象)则被编码为0。体积维度为128*128*128, 该表示的主要优点是能够重建不可见的部分(比如自遮挡)。另外作者提到了输入输出的空间对齐。
2.3.2 数据集
虽然Human3.6M包含了3D扫描,但它们与视频帧不对应。作者通过在Human3.6M数据集上运行SMPLify来生成训练数据。
2.3.3 网络结构
残差模块减少为2,沙漏模块增加为4,同时残差模块使用多尺度残差模块。每个沙漏后都有监督,都参与计算损失。损失函数和VRN中的损失函数相同。
2.3.4 结果与分析
使用SMPLify生成训练数据的缺点是无法回归手指或面部表情等功能。 SMPLify不对这些进行建模,它们的姿势在所有图像中保持固定。作者在各种不同的光照条件,视图下渲染等等对40名参与者进行3D扫描,以创建由大约20,000个空间对齐的样本组成的高质量的训练集,然后使用VRN可以进行非常高质量的重建,遗憾的是作者只展现了结果而没有提供数据集。
2.4 DensePose
论文在2018/02发表,作者建立了RGB图像和人体表面表示的dense correspondences ,作者将其称为dense human pose estimation。此任务可以分解成以下问题:目标检测,姿势估计,部位分割。作者通过全面监督的学习方法,收集与人体详细的准确的对应ground truth。
2.4.1 思路
首先是数据集的优化,作者引入了第一个手动收集的GT数据集,通过SNPL模型和COCO数据集中的人来建立dense对应关系。作者建立了一个新的可以利用3D表面信息的注释pipeline。其次”in the wild”通过回归任何图像像素处的体表坐标来生成dense对应关系。最后作者训练一个”teacher”网络来充分利用随机被选择的监督信息。
2.4.2 数据集
作者通过一个新的注释pipelin,用来生成图像到表面的dense对应,被称为COCODensePose数据集,包含48K人,目前此数据集仍在扩充,最终将COCO数据集全部标记为止。
2.4.3 网络结构
作者首先采用FCN的网络,但是会导致任务太多,效果不是很理想。作者更换成基于区域的方法,将复杂的任务分解为可控模块,包括一系列级联的ROI候选区域,通过ROI pooling提取区域特征等等,同时还保证了端到端的训练。作者采用FPN网络,和ROI Align pooling来提高准确度。
同时受最近表现优秀的姿态估计模型的启发,作者也尝试了交叉级联网络。
作者不局限于单个任务的级联,而是使用来自相关任务的信息,比如关键点估计和实例分割,可以优点互补。
作者还提出一个”teacher”网络,因为注释的数据集是一个稀疏子集,通过”修复”一些没有注释的位置的监督信号,可以获得更好的结果。作者首先采用基于学习的方法,首先训练”teacher”网络,重建ground truth,产生密集的监督信号。
2.4.4 结果
正如这些结果所表明的,作者方法能够处理大量的咬合,缩放和姿势变化,同时还能成功地估计衣服或衣服等衣服背后的人体。
2.5 Bio-LSTM
论文发表于2018/09。作者提出一种生物力学启发的递归神经网络(Bio-LSTM),可以预测全局坐标系中行人的位置和三维关节体姿态。所提出的网络能够同时预测多个行人的姿势和全局位置,对于距离摄像机最远45米的行人(城市交叉口规模)均有效。网络的输出是在SMPL模型参数中表示的全身3D网格,提出了新的目标函数,包括人类行走的周期性(步态),人体的镜像对称性以及人类步态周期中地面反作用力的变化。
2.5.1思想
全身三维网格预测,以及全局坐标系和度量空间中基于骨架的关节位置的预测;LSTM网络中基于生物力学的损失函数,以确保逼真和自然的姿势预测;在嘈杂的城市交叉口数据的同时,对多个行人进行野外步态和姿势预测。
2.5.2 数据集
The PedX Dataset,包含10,000多个行人姿势和1800多个不同长度的连续序列(平均序列长度为6帧),两个立体RGB相机对(分别标记为BG和YR)和四个Velodyne LiDAR传感器进行数据采集。
2.5.3 网络结构
作者实现了一个双层堆叠LSTM递归神经网络,然后是一个密集连接的神经网络(NN)层作为基本网络架构。作者试验了其他层数(范围从1到5),双层堆叠架构表现最好。作者使用LSTM结构来预测SMPL平移和姿势参数(分别为3个平移参数和72个姿势参数)。每个LSTM层由32个单元组成(通过实验确定)。
2.5.4 结果
2.6 HMR
Human Mesh Recovery 也是一种用于从单个RGB图像重建人体的完整3D网格的端到端框架。论文发表于2017/12.
2.6.1 思路
与计算2D或3D关节位置的大多数当前方法相比,此网络生成更丰富且更有用的网格表示。主要目标是最小化关键点的重投影损失,这允许模型使用仅具有GT 2D注释的图像进行训练。作者引入一个受过训练的对手重投影损失不受约束问题,该对手使用大型3D人体网格数据库来判断人体形状和姿势参数是否真实。
端到端的训练存在许多挑战,首先是对于自然图像缺乏大规模的GT 3D注释,另一个挑战是单视图2D到3D映射中固有的模糊性。为此作者提出了一种新的网格重建方法:以条件生成对抗方式利用不成对的2D关键点注释和3D扫描。给定图像,网络必须推断3D网格参数和视角,使得3D关键点在投影之后匹配注释的2D关键点。为了处理模糊,这些参数被发送到鉴别器网络,鉴别器网络的任务是确定3D参数是否对应于真实人体。
总的来说,作者提供的观点:直接从图像特征推断3D网格参数,端到端的方式,而先前的方法从2D关键点推断它们。这避免了对两阶段训练的需要,并且还避免丢失图像中的有价值信息,例如上下文。
2.6.2 数据集
2D关键点注释的自然图像数据集,LSP,LSP-extended, MPII, MS COCO。其中过滤掉掉太小的图片或关键点小于6个的,最终获得大小为1k,10k,20k和80k图像的数据集。
对于3D数据集,使用Human3.6M和MPIINF-3DHP。未配对的数据,来自MoShing三个MoCap数据集 CMU , Human3.6M ,the PosePrior dataset 用于训练之前的对手。
2.6.3 网络结构
使用ResNet-50网络对图像进行编码,resnet输出平均,特征数φ ∈ R 2048 ,3D回归模型包含两个全连接层,每层的神经元数1024,中间用dropout,最后一层是85D的神经元层。对所有实验使用T = 3次迭代。形状鉴别器由两个神经元数10,5,1的全连接层构成。
对于姿势,通过罗德里格斯公式将θ转换为K个3×3旋转矩阵,每个旋转矩阵被发送到具有32个隐藏神经元的两个完全连接的层的公共嵌入网络,然后将输出发送到K = 23个输出1-D值的不同鉴别器。通过另外两个全连接层,所有姿势鉴别器来连接所有的K * 32的表示,最后输出1D值。采用relu激活函数。
2.6.4 结果
结果没有使用任何配对的3D数据是有希望的,日后可以继续改进模型使用更多的图像与2D标签,这是相对容易获得,而不是GT 3D。
2.7 Exploiting temporal information
论文发表于2017/11。尽管最近深度网络的成功引领了许多先进的3D姿态估计方法,比如使用训练深度网络端到端直接从图像进行预测,但是划分任务仍是一个最有效的方法。3D姿态估计分为两个步骤:使用最先进的2D姿势估计器从图像估计2D姿势,然后将它们映射到3D空间。然而,由于每帧中的独立误差导致抖动,因此针对各个帧的3D姿势的估计导致时间上不相干的估计。作者利用一系列2D关节位置的时间信息来估计3D姿势的序列。
2.7.1 思路
设计一个有效的序列到序列网络,实现每个动作类的最新结果,并且可以非常快速地训练。利用序列到序列网络的能力来考虑过去的事件,以预测时间上一致的3D姿势。在训练期间有效地对预测的3D姿势施加时间一致性约束,使得预测中的误差在序列上平滑分布。仅使用先前的帧来了解时间上下文,以便可以在线和实时部署它。
2.7.2 数据集
Human 3.6M,HumanEva数据集,对于定性评估,使用了来自Youtube和Human3.6M数据集的一些视频。
2.7.3网络结构
网络结构仿照神经机器翻译NMT,但是输出输出总是具有相同的长度,而编码器和解码器具有不同的尺寸。
2D检测:使用沙漏网络或者每个图片的2D姿态估计图片。
作者尝试了不同的序列长度,发现序列长度为4,5和6,通常可以得到更好的结果。作者使用序列长度为5,具有更快的训练和高精度。
2.7.4 结果
跨多个序列利用时间信息是有效的,通过使用时间上下文的信息,网络减少了估计3D关节位置的总体误差,尤其是在电话,照片,坐下和坐下等操作上。
3总结
在3D重建以及姿态估计上,以上网络都提供了不错的思路,各有特点,总结如下:使用交叉级联,对中间变量监督,使用teacher网络重建更密集的数据集,结合时间上的信息,将复杂任务细分,使用对抗网络等等。
各种方法的优缺点:
论文 |
亮点 |
优点 |
缺点 |
3d Human Body Reconstruction from a Single Image via Volumetric Regression |
|
|
1、合成数据上训练,在现实世界的图像可能会有一些性能下降 |
DensePose: Dense Human Pose Estimation In The Wild |
|
1、多任务的级联使得检测分割评分提升较大。 | 1、密集的人体姿态估计在很大程度上是可行的,但仍有改进的空间。 |
Bio-LSTM: A Biomechanically Inspired Recurrent Neural Network for 3D Pedestrian Pose and Gait Prediction |
|
|
|
End-to-end Recovery of Human Shape and Pose |
|
|
1、自然图像中3D人体重建仍然欠佳,可以改进模型使用更多的图像与2D标签 |
Exploiting temporal information for 3D human pose estimation |
|
|
1、使用的信息还不够多,可以丰富一下网络来进一步提高精确度 |
留言
大神,求教。对于论文中的重建误差,或者mpjpe,这些论文的对比的单位大小都是mm级别的,但我们只能得到基于shape和pose,生成的这个smpl模型,那么这个mm,您知道是怎么换算的吗?救急
你可以看看《End-to-end Recovery of Human Shape and Pose》这篇文章,里面有源代码。SMPL模型会得到6890个点,然后通过和一个矩阵相乘,会得到14/16/32个关键点的三弟坐标。这个矩阵是固定的,可以在源码里找到,有注释。