论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》

目标:

从单张彩色图像直接回归出3D人体的姿态和形状。

——————————————————————————————————————

亮点:

之前的工作都是先根据图像生成中间结果(比如人体分割、2D/3D关节点、轮廓… ),再通过网络得到shape和pose。
这篇文章用CNN直接从单张图回归出了3D人体网格。

——————————————————————————————————————

相关工作:

1、3D人体姿态估计:
3D人体姿态估计问题通常被简化为估计3D关节点的位置。

由于带标签的3D pose数据很少,所以一般利用2D关节点的位置去估计3D关节点位置。最近人们直接用CNN从单张图估计3D关节点位置。由于图像的深度模糊,很难确定四肢是向前弯曲还是向后弯曲。为了解决这个问题,许多人试图引入先验或几何约束。

在这本文中,我们着重于预测人体的整个表面几何结构,而不是三维关节位置。

2、人体姿态和形状的估计:
之前的工作多数都是依赖于参数化人体模型(SMPL、SCAPE)去表示3D人体、估计模型的参数。
本文直接预测3D人体的形状和姿势,不依赖任何参数化的身体模型和中间的2D表示。

3、3D物体的表示:
本文:UV map

——————————————————————————————————————

提出的方法:

1、3D 人体表示:

大多数3D人体数据集提供了由SMPL定义的ground truth,它提供了一个默认的UV图,将人体分为10块。
DensePose:将人体分成了24块。
经过实验,我们利用UV空间存储人体的3D位置信息。

首先,将SMPL体模型从世界坐标系转换为相机坐标系;
然后用正交投影法将3D模型与相应的彩色图像在空间上对齐,使3D人体模型在投影到图像平面时与2D人体匹配。

生成UV位置图的过程:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
对于人体表面上的每个3D顶点,X和Y坐标对应于图像中的点,Z坐标是到root point的相对深度。我们将顶点的X、Y、Z坐标存储为UV图中的R、G、B颜色值。

分辨率与平均重采样误差的关系:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
SMPL顶点可以从UV位置图中重新采样,正确确定UV位置图的分辨率可以减少误差。
目前最先进的方法中的表面误差和三维关节误差为数十毫米,所以选择256作为分辨率。

2、网络:
先将256 × 256 × 3 RGB image映射成256 × 256 × 3 UV position map;
encoder:ResNet-18
decoder:4个连续的上采样和卷积层.

loss:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
和其他方法的loss比较,我们的loss更简单 ↑

预测的UV图和ground truth之间直接的L1损失:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
其中βi,j是weight mask。
为了提高输出UV图的空间平滑度,我们添加了一个全变差调整器:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
其中,αk调整不同部分的平滑约束,Rk表示第k个主体部分。

loss function:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
——————————————————————————————————————

不同方法的比较:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》

3、实现细节:
预处理训练数据:所有图片剪裁缩放成256×256大小,人在图中间,边界留一定空隙。
网格数据:处理到UV图中。

4、拟合SMPL模型:
24个节点只能通过SMPL模型计算,所以我们需要对SMPL模型进行拟合。
在SMPL模型中,每个人体通过下面的公式表示:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
我们的网络可以提供有序的顶点,每个点对应SMPL模型中的一个顶点。
从SMPL中生成的身体表面到UV图存在相似性转换:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
我们将预测的UV位置图的重采样顶点定义为 ~v,
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》

———————————————————————————————————————————

实验:

1、数据集:
SURREAL
human3.6M
UP-3D

2、结果:
在SURREAL上,比较了不同方法下的surface error and joint error
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》

在Human3.6M上,不同方法下的3D人体姿势估计的比较:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
在UP-3D数据集上:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
我们方法实现的效果比ground truth还要好。

3、running time:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
4、Ablation Study :
将编码器ResNet-18,换成其他编码器,效果还是很好。
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》
用不同的loss function训练网络,结果:
论文学习笔记:《DenseBody: Directly Regressing Dense 3D Human Pose and Shape From a Single Color Image》