Crd233's Notebook
Home
Courses
Languages
Math
CG
CV
AI
Reading
其它
— order: 3 —
1
PaMIR: Parametric Model-Conditioned Implicit
Representation for Image-based Human Reconstruction
●
时间:
2020.7
●
参考了
这篇解读
和
这篇
●
PaMIR
用的还是
PIFu
的方法去预测体素化的
occupancy
,
只是加了几何信息的先验即
SMPL
信息(又因为这已经包括了深度信息,
所以直接把
PIFu
原本的
𝑍
(
𝑋
)
删了),随后将
SMPL
转换为体素,并通过
3
D encoder
提取
Voxel-aligned Feature
𝑭
𝑉
𝐹
(
𝐶
(
𝑝
)
)
:
ℝ
3
↦
[
0
,
1
]
𝐶
(
𝑝
)
=
(
𝑆
(
𝑭
𝐼
,
𝜋
(
𝑝
)
)
,
𝑆
(
𝑭
𝑉
,
𝑝
)
)
𝑇
○
𝑆
表示双线性插值,
𝑭
𝐼
是
2
D encoder
得到的图片特征,
𝜋
(
𝑝
)
跟
PIFu
一个意思(所要求的内外参应该也是?以及
mask
信息去背
景应该也需要吧?),
𝑭
𝑉
是
SMPL
体素特征,
𝑝
是
3
D
点
○
两边特征提出来,
concate
一下,随后直接怼到隐函数中进行重建
●
SMPL
哪来?用当时的
SOTA
模型
GCMR
即
GraphCMR
,以后出新的
SOTA
可以替换
○
GCMR
其实是直接出了一个
body mesh
了,直接把这个
mesh
体素化不就行了?不知道为什么后面还要转成
𝛽
init
,
𝜃
init
,
PaMIR
体
素化的是这个
GCMR
的
mesh
,
还是把它转回原始
SMPL
的参数化表达再用
SMPL
模型参数得到的
mesh
来体素化,我就不清楚
了
●
由于预测出来的
SMPL
跟
ground truth SMPL
之间有差距(尤其是深度,因为图像在深度信息上天生有模糊性),作者提出了深度模糊
的重建损失函数
○
具体而言就是加一个对人体深度偏移的补偿(因为训练的时候
ground truth SMPL
是知道的,所以可以算出来)
Δ
𝑧
𝑖
=
∑
𝑗
∈
𝒩
(
𝑖
)
𝑤
𝑗
→
𝑖
𝑤
𝑖
(
𝑍
(
𝑣
𝑗
−
𝑣
∗
𝑗
)
)
○
其中
𝒩
(
𝑖
)
是
𝑝
𝑖
的
4
最近邻集合(在
posed mesh
中),根据
𝑝
𝑖
与它们的距离算了个混合权重并归一化
○
之所以这样做,是因为我们其实不在乎回归出的人体模型中心的绝对坐标到底在哪,只要几何曲面重建得好就行
○
这里也就对应
ICON
作者说把
ground truth SMPL
灌给
PaMIR
(
但依旧不能泛化到未见姿态)的那句话
●
对于
RGB
预测,跟
PIFu
应该也差不多,只是多预测了个混合值
𝛼
,将该点对应图片中观察到的颜色和预测出的颜色做了混合
●
PaMIR
也可以自然地拓展到多视角图片的预测,但比
PIFu
好的一点在于它不需要
calibration or synchronization
,
因为它能通过
SMPL
建立
correspondence across different views
●
body reference optimization
○
在
inference
时,网络权重固定,作者把最终
SMPL
的顶点送入
implicit function
预测计算跟
0
.
5
的插值,把
SMPL
参数
𝛽
,
𝜃
再优化
一下(因为
GCMR
预测跟真值还是有差距),鼓励最终预测和
SMPL
的预测对齐,同时用正则项惩罚
𝛽
,
𝜃
与
GCMR init
预测的差异
ℒ
𝐵
=
1
𝑛
𝑆
∑
𝑛
𝑆
𝑗
=
1
𝑞
(
𝐹
(
𝑐
(
𝑣
𝑗
)
)
−
0
.
5
)
𝑞
(
𝑥
)
=
{
|
𝑥
|
𝑥
⩾
0
1
5
|
𝑥
|
𝑥
<
0
■
这里的这个
loss
,
意思是对外部的点(占用小)施加更小的惩罚,通过这种方式,虽然
SMPL
学的是
naked body
,
但对
loose
clothing
也有一定的鲁棒性
○
训练的时候为什么不能这样做呢?个人理解:
■
首先,
optimized-based
方法是指过拟合到某一个场景,而
learning-based
方法是学到某种通用的模式,之后还能泛化到其它场
景。比如说(原始)
NeRF
那种,本身就是一个场景一个网络,那用
optimized-based
当然没问题。对
PaMIR
,
推理的时候再调
优一下没啥问题,训练的时候就甭想了;
■
其次,因为那个时候网络都还没训好,没法这样调优
○
得益于此,作者声称
PaMIR
对
SMPL
预测不那么敏感,在
SMPL
不准的情况下也能做后续优化(算是获得更准确的
SMPL
的
trick
吧)
●
train
阶段:输入数据是一组(去除了背景的)
RGB
图片以及对应的
meshes
(
包括对应的
texture
和顶点的
UV map
)。
作者首先在自
己的
training set
上
fine-tune GCMR
,
然后训练
single-view network
;
之后在其上
fine-tune
出
multi-view network
●
inference
阶段:只需要(去除了背景的)
RGB
图片即可输出
SMPL
的参数和
reconstructed surface with texture
。
不过为了最好的性
能,都跑了一遍
body reference optimization