论文笔记:Self-Supervised Multi-level Face Model Learning for Monocular Reconstruction(CVPR2018)
文章目录
动机
选择这篇论文的动机:
- 自己在实验过程中遇到了纹理重建的问题
- 在诸多论文的对比实验中,都会看见这篇论文的身影,了解一下也无妨
几个小问题
-
题目中的250Hz是什么?
这是入射光的频率,而光的频率决定光的颜色,具体可学习知乎 -
文章多次提到的 corrective space 是什么?
这一词主要是在 medium level,可以理解为基于 base level 的结果不断进行细化校正。 -
这篇文章如何实现自监督?
在这篇文章中,训练过程中使用得到的信息进行损失计算和回传,而不需要任何ground-truth信息,唯一的输入信息就是二维图像。 -
题目中的 multi-level 又指什么?
具体是 base - medium - final 三个级别。也可以理解为结果的 coarse to fine 不断细化。
解决什么问题
Our novel face reconstruction approach estimates high-quality geometry, skin reflectance and incident illumination from a single image.
这篇论文旨在解决基于单张图像的人脸重建问题,重建结果不仅要保证人脸形状,还要重建出人脸的皮肤纹理(包括重建范围内的头发、胡子等),还考虑了250Hz的入射光情况。
如上图所示,将得到的映射结果投影到原始二维图像上,结果与原始图像相似度很高,不管是左图女性的头发还是右图男性的胡子都可以比较完整的重建出来。
方法
结构:
- regressor 回归器:求解人脸形状 shape、表情 expression、反射 reflectance、光照 illumination 参数
- 同时学习一个参数模型 parametric face model
上述二者是同时进行的,可以理解为,学习一个参数模型是为了表示出三维人脸,而回归器则是用来学习和预测参数模型所需要的那些参数。可见,这篇论文最核心的点在于 Multi-layer face model 部分。
接下来对此网络架构进行分解帮助理解。
Base Level
首先,第一部分是输入单张二维图像,使用CNN对形状、表情、反射(纹理)参数进行预测。将形状和表情参数使用3DMM结合公式(3),(4)进行表示,此时得到的是粗略的重建结果。其中,形状和反射参数均为80维,表情参数为64维。所以此部分模型参数为
(
α
,
β
)
∈
R
80
+
64
×
R
80
(\alpha,\beta)\in R^{80+64}\times R^{80}
(α,β)∈R80+64×R80,一共224维。这一部分通过实验也可以知道,重建出来的人脸形状方面可以进行一定的保证,但是纹理并不是很好。
Medium-Scale — Trianable Corrective Model
这一部分主要是加强形状和纹理的参数表达形式,如式子(1),(2)所示。其中,
v
b
v^b
vb和
r
b
r^b
rb是上一部分基于3DMM表示的粗略形状和纹理,即 base-level。
F
⋅
F_{\cdot}
F⋅则表示 medium-scale 的形状或纹理,且其参数为
δ
\delta
δ和
Θ
\Theta
Θ。二者结合则得到最后的形状
v
f
v^f
vf和纹理
r
f
r^f
rf,即 final-level。
F
⋅
F_{\cdot}
F⋅实际上是一个映射函数:
F
⋅
:
R
C
→
R
3
N
F_{\cdot}: R^C \rightarrow R^{3N}
F⋅:RC→R3N,表示的是将
C
C
C维的参数映射到三维顶点。
F
⋅
(
δ
⋅
∣
Θ
⋅
)
F_{\cdot} (\delta_{\cdot}|\Theta_{\cdot})
F⋅(δ⋅∣Θ⋅)是
δ
⋅
\delta_{\cdot}
δ⋅的函数,参数为
Θ
⋅
\Theta_{\cdot}
Θ⋅。
Corrective Space
若将
F
⋅
(
δ
⋅
∣
Θ
⋅
)
F_{\cdot} (\delta_{\cdot}|\Theta_{\cdot})
F⋅(δ⋅∣Θ⋅)看作线性模型,则如式子所示,
Θ
⋅
\Theta_{\cdot}
Θ⋅则是训练参数的堆叠,即
M
i
M_i
Mi和
b
i
b_i
bi。将
F
⋅
(
δ
⋅
∣
Θ
⋅
)
F_{\cdot} (\delta_{\cdot}|\Theta_{\cdot})
F⋅(δ⋅∣Θ⋅)看作非线性模型
Ψ
\Psi
Ψ,在这篇文章中是ReLU函数。在对比实验中,设计了三组映射:第一个是只使用线性映射;第二个是两层线性,中间一层非线性;第三种是三层线性,中间两层非线性。
经过实验发现,三种方法下得到的结果没有很大的差异,并且线性的映射取得了较低的误差,所以最终选择的还是线性的映射关系。
Final Level
最后则是 base level 与 medium level 的结合,来得到最后的重建形状和纹理结果。
Differentiable Image Formation
这一部分主要是将得到的三维形状和三维纹理,基于光照模型和相机模型映射到二维平面,用于后续的比较计算。
损失函数
这也是题目中自监督体现的地方。总的损失函数如下式所示,包括数据拟合部分的损失以及正则化部分。其中,数据拟合部分的损失使得模型结果与输入图像更加相似,正则化部分则是对先验假设进行约束。
首先看数据拟合部分的损失函数设计。分为图像级别的计算和特征点的计算。在 photo 损失部分,计算的是二维图像上各顶点处的颜色值之间的距离;在 sparse 损失部分,计算的是66个 landmarks 之间的损失,并考虑到固定点与边缘点之间的取值问题,对于边缘点则是选择与其将近的点进行计算。
其次是正则化部分的设计。第一个正则部分是较为常用的一个,对 base level 的参数
α
,
β
\alpha,\beta
α,β进行限制,假设它们是服从均值为0的高斯分布,式子里的分母是各自的标准差。第二个正则部分是对 medium level 的顶点进行局部正则化,保证局部的流畅性。第三个正则部分是针对反射参数进行计算,出发点仍然是希望一个相近区域内的色度尽可能保持一致。
第四个正则部分是针对人脸的固定区域,这一区域如下图红色部分所示,出发点是希望这一区域内的纹理情况尽可能保持一致。第五个正则部分是针对 medium level 的结果,希望其与 base level 的结果不要相差太大,可以理解为形状不会有大的变化。
结果
总结
这篇论文发表在2018年,可改进之处还是很多的。作者在最后也专门写了未来工作,可以结合现在的工作进行拓展。