简介
官网:https://cassiepython.github.io/clipnerf/
利用对比语言-图像预训练(CLIP)模型的联合语言-图像嵌入空间,提出了一个统一的框架,可以用短文本提示或示例图像以用户友好的方式操纵NeRF。改论文结合NeRF的新视图合成能力和生成模型潜表示的可控操纵能力,提出一种解缠的条件NeRF架构,允许对形状和外观进行单独控制。
解缠的条件NeRF架构通过将学到的变形场应用于位置编码来执行形状调节,并将颜色调节推迟到体绘制阶段来实现的
为将这种解耦的潜表示与CLIP嵌入联系起来,设计了两个code mapper,以CLIP嵌入为输入,并更新潜代码以反映目标编辑
同时提出了一种逆向优化方法,可准确地将输入图像投影到潜代码中进行操作,以实现对真实图像的编辑
贡献点:
- 提出第一种NeRF的文本和图像驱动的操作方法,使用统一的框架为用户提供使用文本提示或示例图像对3D内容的灵活控制。
- 通过引入形状码来变形体场和外观码来控制发出的颜色,设计了一种解缠的条件NeRF架构。
- 与基于优化的编辑方法相比,前馈代码mapper能够快速推理编辑同一类别中的不同对象。
- 提出一种反演方法,从真实图像中推断形状和外观代码,允许编辑现有数据的形状和外观。
实现流程
Conditional NeRF
建立在原始的每个场景NeRF之上,conditional NeRF service作为特定对象类别的生成模型,以专门控制形状和外观的潜向量为条件。conditional NeRF表示为一个连续的体函数
F
θ
F_θ
Fθ,它将5D坐标(空间位置 X (x, y, z)和视图方向V(φ, θ)),以及形状代码
z
s
z_s
zs 和外观代码
z
a
z_a
za 映射到体密度 σ 和依赖于视图的辐射度 c(r, g, b),由多层感知器(MLP)参数化。
Disentangled Conditional NeRF
conditional NeRF容易受到形状和外观条件之间的相互干预,例如,操纵形状代码也可能导致颜色变化,为此论文提出解缠条件NeRF架构,通过适当解缠条件机制来实现对形状和外观的单独控制
Conditional Shape Deformation
不直接将潜在形状代码连接到编码位置特征,而是通过对输入位置的显式体积变形来制定形状条件。
这种条件形状变形不仅提高了操纵的鲁棒性,而且通过正则化输出形状为基本形状的平滑变形,尽可能地保留了原始形状的细节,更重要的是完全隔离了形状条件对外观的影响
shape deformation network Γ : ( x , z s ) → Δ x \Gamma : (x,z_s) \to \Delta x Γ:(x,zs)→Δx,将位置x 和输入 z s z_s zs 投射到与位置编码 Γ ( x ) \Gamma(x) Γ(x) 的每个带对应的位移向量 Δ x ∈ R 3 × 2 m Δx∈R^{3×2m} Δx∈R3×2m
deformed positional encoding Γ ∗ ( P , z s ) = { γ ∗ ( p , Δ p ) ∣ p ∈ P , Δ p ∈ Γ ( p , z s ) } \Gamma^*(P,z_s) = \{ \gamma^*(p,\Delta p) | p \in P, \Delta p \in \Gamma(p,z_s) \} Γ∗(P,zs)={γ∗(p,Δp)∣p∈P,Δp∈Γ(p,zs)}
标量p和向量
Δ
p
∈
R
2
m
Δp∈R^{2m}
Δp∈R2m 与 p 和 Δp 属于同一轴,双曲正切函数 tanh(·)将位移约束在[- 1,1]范围内,以避免大运动带来的局部极值,提高训练鲁棒性。
Deferred Appearance Conditioning
将外观代码与视图方向连接起来作为辐射度预测网络的输入,允许在不接触形状信息(即密度)的情况下操纵外观
CLIP-Driven Manipulation
以conditional NeRF作为生成器,为避免同时优化每个目标样本的形状和外观代码,这往往是通用的和耗时的,采用一种前馈方法,直接从输入文本提示更新条件代码。
给定输入文本提示 t 和 初始形状/外观代码
z
s
′
/
z
a
′
z'_s/z'_a
zs′/za′,训练形状mapper
M
s
M_s
Ms和外观mapper
M
a
M_a
Ma
ε
^
(
⋅
)
\hat{\varepsilon}(\cdot)
ε^(⋅)是预训练的CLIP文本编码器,将文本投影到CLIP嵌入特征空间,两个mapper都将该CLIP嵌入映射到更新原始形状和外观代码的位移向量
CLIP包括一个图像编码器和一个映射到联合嵌入空间的文本编码器,使用cross-modal CLIP距离函数
D
C
L
I
P
D_{CLIP}
DCLIP(·,·)来衡量输入文本和已渲染图像块之间的嵌入相似性
ε
^
i
(
⋅
)
\hat{\varepsilon}_i(\cdot)
ε^i(⋅)和
ε
^
t
(
⋅
)
\hat{\varepsilon}_t(\cdot)
ε^t(⋅)是预训练的剪辑图像和文本编码器,I 和 t 是输入图像块和文本,<·,·>是余弦相似度算子
cross-modal CLIP距离函数,虽然相机姿态差异很大,但同一物体的不同视角具有更高的相似性(小距离)。但即使在同一视图下,不同物体的相似性也较低(距离大)。
训练过程
训练过程分为两步,首先训练解缠的条件NeRF,包括conditional NeRF 生成器和deformation network,然后固定生成器的权重,并训练包括形状和外观mapper的剪辑操作部分
Disentangled Conditional NeRF
条件NeRF生成器
F
θ
F_θ
Fθ 与变形网络一起训练,使用 non-saturating GAN 和鉴别器 D,其中 f (x)=−log (1+exp(−x)),
λ
r
λ_r
λr 是正则化权重。假设真实图像 I 形成了 d 的训练数据分布,分别从
Z
s
,
Z
a
Z_s, Z_a
Zs,Za 和
Z
v
Z_v
Zv 中随机采样形状码
z
s
z_s
zs ,外观码
z
a
z_a
za 和相机姿态,其中
Z
s
Z_s
Zs 和
Z
a
Z_a
Za 是正态分布,
Z
v
Z_v
Zv 是相机坐标系的上半球。
CLIP Manipulation Mappers
使用预训练的NeRF生成器
F
θ
F_θ
Fθ、CLIP编码器KaTeX parse error: Expected 'EOF', got '}' at position 34: …}_t,\varepsilon}̲_i \}和鉴别器 D 来训练CLIP形状mapper
M
s
M_s
Ms 和外观mapper
M
a
M_a
Ma。除mapper外,其他网络权值均为固定值,记为
{
⋅
^
}
\{ \hat{\cdot}\}
{⋅^},与第一阶段类似,从它们各自的分布中随机采样形状码
z
s
z_s
zs、外观码
z
a
z_a
za和相机姿态 v,从预定义的文本库 t 中对文本提示 t 进行采样。通过使用权重为
λ
c
λ_c
λc 的CLIP距离
D
C
L
I
P
D_{CLIP}
DCLIP
Inverse Manipulation
要将操作应用于属于同一训练类别的输入图像
I
r
I_r
Ir,关键是首先优化所有生成条件,以将图像反向投影到生成流形,类似于latent image manipulation方法,遵循EM算法,设计了一种迭代方法来交替优化形状码
z
s
z_s
zs、外观码
z
a
z_a
za和相机v。具体来说,在每次迭代中,首先优化 v,同时使用以下损失保持
z
s
z_s
zs 和
z
a
z_a
za 固定:
紧接着优化形状码
其中
z
a
z_a
za 和 v 固定,
z
n
z_n
zn 为每一步采样的随机标准高斯噪声向量,以提高优化的鲁棒性,
λ
n
λ_n
λn 在整个优化迭代过程中从1到0线性衰减。
同理优化外观码
注意:实验结果表明,超参数取值为:
λ
r
=
0.5
,
λ
v
=
0.1
,
a
n
d
λ
s
=
λ
=
0.2
λ_r =0.5, λ_v =0.1, and λ_s = λ_ =0.2
λr=0.5,λv=0.1,andλs=λ=0.2
实验
Limitations
通过在各种文本提示和示例图像上的广泛实验来评估所提出方法,并为交互式编辑提供了一个直观的编辑界面。然而,由于潜空间和预训练CLIP的表达能力有限,所提出方法无法处理细粒度和域外的形状和外观编辑,通过添加更多不同的训练数据可以缓解这一问题。