文章目录
前言
笔者从人工智能小白的角度,力求能够从原文中解析出最高效率的知识。
之前看了很多博客去学习AI,但发现虽然有时候会感觉很省时间,但到了复现的时候就会傻眼,因为太多实现的细节没有提及。而且博客具有很强的主观性,因此我建议还是搭配原文来看。
请下载原文《PIFu: Pixel-Aligned Implicit Function for
High-Resolution Clothed Human Digitization》搭配阅读本文,会更高效哦!
总览
首先,看完标题,摘要和结论,我了解到了以下信息:
- 作者引入了一种新的像素对齐隐函数,它将输入图像的像素级信息与3D对象的形状在空间上对齐,用于基于深度学习的服装人体从单一输入图像进行3D形状和纹理推理。利用PIFU,作者提出了一种端到端的深度学习方法,用于数字化衣着具有较高细节的人模型,该方法可以从一幅或多幅图像中推断出3D表面和纹理。
- 与现有的用于3D深度学习的表示相比,PIFU产生高分辨率的表面,包括基本看不见的区域,如人的背部。
- 处理任意附加视图的能力,这一特性使得PIFu特别适合于使用稀疏视图的实用和高效的3D建模,而这一情况下传统的多视图立体或运动结构将无法实现。
一、Introduction
1.1 背景
- 2D图像处理最成功的深度学习方法(例如语义分割、2D联合检测)利用了 fully connected network 架构,保持了图像和输出之间的空间对齐,但这在3D领域尤其具有挑战性。尽管立体像素可以使用 full connected 的方法,但如此一来,表示法的内存密集特性就从根本上限制了生成精密表面的能力。
- 而PIFu以完全卷积的方式将像素级的单个局部特征与整个对象的全局上下文对齐,并且不需要像基于立体像素的表示那样占用大量内存。
- 在这项工作中,作者展示了局部特征和3D感知的隐性表面表示的结合带来了显著的效果,包括甚至从单一视角的高细节的重建。
1.2 实现特点
- 训练一个编码器,为图像的每个像素学习单独的特征向量,以此来考虑到相对于其位置的全局环境。
- 给出这个每个像素的特征向量和指定的沿该像素流出的相机射线的Z深度,我们学习一个隐含函数,该函数可以对这个Z深度对应的三维点是在表面之内还是之外进行分类。
- 特别的是,PIFu的特征向量可以与全局3D模型表面形状在像素级别上对齐,这样可以保留输入图像存在的局部细节,同时对没有见到的区域进行一个推断(包括细节)。
- PIFu的端到端和统一的数字化方法可以直接预测具有复杂发型和穿着任意服装的人的高分辨率三维形状。尽管有大量的未见区域,特别是对于单视角的输入,PIFu方法可以生成一个类似于从多视角立体摄影测量或其他三维扫描技术得到的完整模型。
- 通过额外的多视图立体约束,PIFu也可以很自然地扩展到处理多个输入图像,但由于从单一的输入图像就可以生成一个完整的纹理网格,添加更多的视图只会通过为不可见的区域提供额外的信息来进一步改善PIFu的结果。
二、Related Work
2.1 Single-view 3D Human Digitization(单视图3D人体数字化)
- 由于问题的模糊性,单视图数字化技术需要很强的先验知识。
- 尽管参数化模型能够捕捉人体的测量和运动,但它们只能产生一个裸体的人体。
服装、头发和其他配件的3D表面完全被忽略了。对于紧身服装,有时可以使用每个顶点的位移向量来模拟服装。但更复杂的拓扑结构,连衣裙,短裙,长发等等,这些技术都失败了。于是有BodyNet这样的无模板方法通过深度学习网络直接去生成人物的立体像素表示。 - 由于立体像素表示对内存的要求很高,在输出中往往会缺少细尺度的细节。
最近,有人引入了一种多视图推理方法,通过从单个图像合成新的轮廓视图。
虽然多视图轮廓的内存效率更高,但凹区域很难推断以及一致生成的视图。
因此,精细尺度的细节无法可靠地产生。
相比之下,PIFu的内存效率高,能够捕捉图像中出现的细尺度细节,以及预测每个顶点的颜色。
2.2 Multi-View 3D Human Digitization.(多视图3D人体数字化)
- 虽然多视图捕获技术明显优于单视图捕获技术,但它们的灵活性和可部署性明显较差。
- 折中方案是使用深度学习框架,从非常稀疏的视图生成合理的3D表面。但大这些方法至少需要三个视图才能产生合理的输出。
2.3 Texture Inference(纹理推断)
- 当从单个图像重构3D模型时,可以很容易地从输入中采样纹理。然而,在闭塞区域的外观需要推断,以获得一个完整的纹理。
- 与3D纹理推理问题相关的是视图合成方法,它可以从单幅图像或多幅图像中预测新视图。在服装人体纹理网格推断的背景下,有人引入了一种视图合成技术,可以从前视图预测后视图。前视图和后视图然后用于纹理最终的3D网格,然而自遮挡区域和侧视图不能处理。
- 类似于图像嵌入问题,有人嵌入从检测到的表面点的输出中采样的UV图像,并且推断每体素的颜色,但输出分辨率却非常有限。另外一些人直接预测UV参数化上的RGB值,但他们的技术只能处理拓扑已知的形状,因此不适合服装推断。PIFu方法则能够以端到端方式预测每个顶点的颜色,并且能够处理任意拓扑的曲面。
三、PIFu: Pixel-Aligned Implicit Function
PIFu在3D空间上学习具有像素对齐的图像特征而不是全局特征的隐函数,这允许学习的函数保留图像中存在的局部细节。PIFU的连续性质则允许以高效内存的方式生成具有任意拓扑的详细几何图形。此外,PIFU可以作为一个通用框架,可以扩展到各种共域,如RGB颜色。
目标
保留图像中存在的细节的同时,重建穿着衣服的人的衬线3D几何和纹理。为此,引入了像素对齐隐函数(PIFU),它是一种存储效率高、空间对齐的3D曲面表示方法。隐函数将曲面定义为函数f的水平集,例如f(X)=0。这导致了表面的存储器高效表示,其中嵌入表面的空间不需要被显式存储。
内容
像素对齐隐函数
所提出的像素对齐隐函数由一个完全卷积的图像编码器
g
g
g 和一个由多层感知器(MLPs)表示的连续隐函数f组成,其中曲面定义为一个水平集
对于一个三维点
X
X
X,
x
=
π
(
X
)
x=π(X)
x=π(X)是其2D投影,
z
(
X
)
z(X)
z(X)是摄像机坐标空间中的深度值,
F
(
X
)
=
g
(
I
(
X
)
)
F(X)=g(I(X))
F(X)=g(I(X))是
x
x
x处的图像特征。假设一个弱透视摄像机,但扩展到透视摄像机是简单的。注意,PIFu使用双线性采样获得像素对齐特征
F
(
X
)
F(X)
F(X),因为
X
X
X的2D投影是在连续空间而不是离散空间(即像素)中定义的。
Digitization Pipeline(数字化管道)
- 输入一张图片,用于表面重建的PIFu可以预测穿着衣物的人的连续的内外概率场,在这个概率场中可以很容易地提取等值面。(3.1 部分详细说明)
- 同样,用于纹理推断的PIFu(Tex-PIFu)在表面几何形状的三维位置上输出一个RGB值,使纹理推断能够在自闭的表面区域和任意拓扑结构的形状中进行(3.2 部分详细说明)。
- 此外,PIFu可以自然地处理单视图和多视图的输入,这使得在有更多视图时可以产生更高的保真结果(3.3 部分详细说明)。
3.1. Single-view Surface Reconstruction(单视角表面重建)
对于曲面重建,作者将ground truth的表面设置为连续的3D占有区域的0.5水平集:
损失函数
通过最小化均方误差的平均值来训练像素对齐隐式函数(PIFU)FV:
其中,
X
i
∈
R
3
,
F
V
(
X
)
=
g
(
I
(
X
)
)
X_i∈R^3,F_V(X)=g(I(X))
Xi∈R3,FV(X)=g(I(X))是来自图像编码器
g
g
g 的
x
=
π
(
X
)
x=π(X)
x=π(X) 处的图像特征,
n
n
n 是采样点的数目。给定一对输入图像和在空间上与输入图像对齐的对应3D网格,通过最小化
E
q
3
Eq3
Eq3 来联合更新图像编码器
g
g
g 和PIFu的参数
F
V
F_V
FV。
在推理过程中,作者对3D空间上的概率场进行密集采样,并使用Marching Cube算法提取阈值为0.5的概率场等值面。这种隐式曲面表示适用于具有任意拓扑的细节对象。除了PIFU的表现力和记忆效率外,作者还开发了一种空间采样策略,这是实现高保真推理的关键。
Spatial Sampling
- 训练数据的分辨率在实现隐含函数的表现力和准确性方面起着核心作用。与基于立体像素的方法不同,PIFu方法不需要离散化ground truth 3D网格。相反,可以使用高效的光线跟踪算法从原始分辨率的ground truth网格中直接动态采样3D点。请注意,此操作需要防水网格。在非水密网格的情况下,可以使用现成的解决方案来使网格防水。
- 此外,作者观察到采样策略在很大程度上影响最终的重建质量。如果对3D空间中的点进行统一采样,大多数点都远离等值面,这将不必要地将网络的权重偏向外部预测。另一方面,仅在等值面周围采样可能会导致过度拟合。因此,作者提出了基于曲面几何的均匀采样和自适应采样相结合的方法。作者首先对曲面几何体上的点进行随机采样,并为x、y和z轴添加具有正态分布 N ( 0 , σ ) N(0,σ) N(0,σ)(在实验中 σ = 5.0 σ=5.0 σ=5.0 cm)的偏移量,以扰动它们在曲面周围的位置。
3.2. Texture Inference(纹理推测)
给定曲面
X
∈
Ω
X∈Ω
X∈Ω上的采样3D点,纹理推断的目标函数是采样颜色的L1误差的平均值如下:
其中
C
(
X
i
)
C(X_i)
C(Xi) 是曲面点
X
i
∈
Ω
X_i∈Ω
Xi∈Ω 上的gound truthRGB值,
n
n
n 是采样点的数量。作者发现,天真地训练具有上述损失函数的
f
c
f_c
fc 会严重地受到过度拟合的影响。问题是,
f
c
f_c
fc 不仅需要学习物体表面的RGB颜色,还需要学习物体的3D表面,以便
f
C
f_C
fC 能够在推理过程中推断出不同姿势和形状的不可见表面的纹理,这是一个巨大的挑战。我们通过以下修改来解决此问题。首先,我们使用为曲面重建
F
V
F_V
FV 学习的图像特征来调节图像编码器以进行纹理推理。这样,即使看不见的对象具有不同的形状、姿势或拓扑,图像编码器也可以专注于给定几何体的颜色推断。此外,我们还向沿曲面法线
N
N
N 的曲面点引入了偏移量
ε
∼
N
(
0
,
d
)
\varepsilon∼N(0,d)
ε∼N(0,d) ,这样不仅可以在精确的曲面上定义颜色,而且可以在其周围的3D空间上定义颜色。通过以上修改,可以将训练的目标函数重写为:
式中
X
i
′
=
X
i
+
ε
⋅
N
i
X^{'}_i=X_i+\varepsilon \cdot N_i
Xi′=Xi+ε⋅Ni。所有的实验都使用
d
=
1.0
d=1.0
d=1.0 cm。
3.3. Multi-View Stereo(多视图立体)
其他视图提供了更多关于人的覆盖范围,应该会提高数字化的准确性。
多视点PIFu:通过将隐式函数
f
f
f 分解为特征嵌入函数
f
1
f_1
f1 和多视点推理函数
f
2
f_2
f2 ,可以将PIFu扩展为支持多视点输入。
f
1
f_1
f1 从3D世界坐标系中的每个视图计算嵌入的特征,从而允许从任意视图聚合。
f
2
f_2
f2 采用聚合特征向量来进行更具信息量的3D表面和纹理预测。
四、Experiments
在各种数据集上进行了评估,包括RanderPeople和Buff,它具有基本事实测量,以及DeepFashion,它包含各种复杂的服装。
实现细节
由于PIFu的框架不限于特定的网络结构,从技术上讲,可以使用任何完全卷积的神经网络作为图像编码器。对于曲面重建,作者发现堆叠的沙漏结构是有效的,在真实图像上具有更好的泛化能力。用于纹理推理的图像编码器采用由残差块组成的CycleGan结构。隐函数基于多层感知器,其层与图像特征F(X)和深度 z z z 之间有跳跃连接(residual blocks),以有效地传播深度信息。TeX-PIFU将 F C ( x ) F_C(x) FC(x)和用于曲面重建的图像特征 F V ( x ) F_V(x) FV(x) 一起作为输入。对于多视点PIFu,我们简单地将中间层输出作为特征嵌入,并应用平均汇集来聚合来自不同视点的嵌入。有关网络架构和培训过程的更多详细信息,
4.1 Quantitative Results(定量)
用三个度量来定量地评估我们的重建精度。在模型空间中,测量从重建曲面上的顶点到地面真实点的平均点到面欧几里德距离(以厘米为单位)。还测量了重建的真实面和地面真实面之间的倒角距离。此外,作者还引入了法向重投影误差来衡量重建局部细节的精细度,以及从输入图像中投影的一致性。对于重建曲面和地面真实曲面,作者分别从输入视点在图像空间中渲染它们的法线贴图。然后,计算这两个法线贴图之间的L2误差。
4.2. Qualitative Results (定性)
使用DeepFashion数据集中的真实输入图像展示了数字化结果。PIFu可以处理各种各样的衣服,包括裙子、夹克和连衣裙。PIFu可以产生高分辨率的局部细节,同时在看不见的区域推断合理的3D表面。还可以从一张输入图像中成功推断出完整的纹理,这使我们能够从360度查看我们的3D模型。作者展示了如何从一个2D输入视频中以3D形式数字化动态穿着的人类表演和复杂的变形。
五、Discussion
- 作者引入了一种新的像素对齐隐函数,它将输入图像的像素级信息与3D对象的形状在空间上对齐,用于基于深度学习的服装人体从单一输入图像进行3D形状和纹理推理。
- 与基于体素的表示不同,PIFu可以产生高分辨率的输出,因为其不受体积表示的高内存要求的限制。此外,PIFu演示了如何将该方法自然扩展到推断给定部分观察的人的整个纹理。与现有的基于图像空间正视图合成背部区域的方法不同,PIFu可以直接在表面上预测不可见区域、凹面区域和侧面区域的颜色。PIFu是第一个可以为任意拓扑形状内嵌纹理的方法。由于其能够从单个RGB摄像头生成穿着衣服的人的带纹理的3D表面,因此PIFu向从视频中单目重建动态场景又迈进了一步,而不需要模板模型。