
FightingCV
2022/12/12阅读:185主题:默认主题
CVPR 2022 | 带着CLIP进入3D世界,CLIP-NeRF将预训练模型和Nerf完美结合!
CVPR 2022 | 带着CLIP进入3D世界,CLIP-NeRF将预训练模型和Nerf完美结合!
1. 论文和代码地址

论文题目:CLIP-NeRF: Text-and-Image Driven Manipulation of Neural Radiance Fields
论文地址:https://arxiv.org/abs/2112.05139[1]
代码地址:https://github.com/cassiePython/CLIPNeRF[2]
2. 动机
2.1 概念介绍
NeRF的出现成功带火的3D视觉研究,相关工作层出不穷,目前大部分的扩展工作,大部分使用的是图像、单目视频作为输入。探索其他模态如文字、音频等与图像的结合,能够催生惊艳的应用效果。EditNeRF在这方面进行了尝试,但是还存在许多的缺陷,它在形状操作方面的能力有限,只支持添加或删除对象的局部部分,同时由于其迭代优化性质,速度很慢。
论文提出了CLIP-NeRF,相比于之前的方法:
1)论文第一个提出了用于NeRF的文本和图像驱动的操作方法,使用一个统一的框架为用户提供使用文本提示或示例图像灵活控制 3D 内容,这对新手用户更友好。
2)论文设计了一个解开的NeRF 架构,提出了一种反演方法,从真实图像中推断出形状和外观代码,通过引入形状编码和外观编码来改变3D模型的体积和颜色。同时,CLIP-NeRF为形状操作提供了更多的自由度,并支持全局变形。
3)与基于优化的编辑方法相比,论文提出的的前馈代码映射器能够快速推断,从而在同一类别中编辑不同的对象。
3. 方法

3.1. Conditional NeRF
CLIP-NeRF模型是基于conditional NeRF模型进行改编。而Conditional NeRF相较于初始的NeRF模型,增添了形状编码Zs与外观编码Za。具体过程如下公式1所示

其中,3D坐标位置x=(x,y,z)。以及视角方向d=(θ,φ)。

表示正弦编码,具体如下公式2所示

输出结果中, σ是对应3D位置(或者说是体素)的密度,而c=(r,g,b)是视角相关的该3D点颜色。
3.2. Disentangled Conditional NeRF
基于Conditional NeRF,论文提出了可分离的Conditional NeRF。具体而言,就形状与外观,论文提出了不同的优化方案。
Conditional Shape Deformation
针对形状,论文提出了有条件的形状变形(Conditional Shape Deformation),具体改进的编码方式如公式3所示

P表示位置,位置信息,形状编码Zs以及形状映射器产生的形变信息,三者共同输入变形网络产生∆P。
Deferred Appearance Conditioning
论文在处理形状条件之后处理外观条件,以便将外观代码与视角方向连接起来,作为辐射度预测网络的输入,具体如公式4所示

3.3. CLIP-Driven Manipulation
论文利用CLIP实现对形状和外观的文本驱动操作。
具体地说,给定输入文本提示t和Z's/Z'a的初始形状/外观代码,我们训练形状映射器Ms和外观映射器Ma,以将编码更新,具体为下5式所示:

论文还定义了一个跨模式CLIP损失函数DCLIP(·,·)来度量输入文本和渲染图像块之间的嵌入相似度,具体如下6式所示:

Discussion

如上图所示,CLIP距离对较小的对象变化比对较大的视角变化更敏感。
3.4. Training Strategy
首先训练解缠的Conditional NeRF,包括Conditional NeRF生成器和变形网络(即图一蓝色部分),蓝色部分功能近似NeRF,用于训练生成3D模型。接着,固定好生成器的权重,训练CLIP部分的形状和外形投影器(即图一绿色部分),绿色部分即通过CLIP起到编辑3D模型的作用。
Disentangled Conditional NeRF
论文中的Conditional NeRF生成器Fθ与变形网络一起使用非饱和GAN目标函数进行训练,具体公式如下所示,


CLIP Manipulation Mappers
通过使用公式6提出的CLIP距离,并使用权重λc,论文用如下损失函数训练投影器Ma与Ms:

3.5. Inverse Manipulation
为了编辑同一类型的一张新的图片,论文根据EM算法设计了一种迭代方法来交替优化形状编码Zs、外观编码Za和相机v。具体而言,在每轮的迭代中,每次总是固定两个参数训练剩下的一次参数,按顺序依次训练v,Zs,Za,公式依次如下所示:



通过调整这几个参数,新的图片即可使用之前训练好的模型进行编辑,避免重复训练。
4.实验
与EditNeRF效果对比:

这张图中的结果表明,EditNeRF生成的颜色与目标颜色不完全一致,且仅支持局部形状编辑。与之相比,CLIP-NeRF的方法不仅可以完成颜色的匹配,还能支持较大程度的形状变形,并能很好地推广到不可见的视点。
并与EditNeRF的反演结果进行了比较,如下图5所示:

可以看到,CLIP-NeRF基于优化的反演方法的性能受益于CLIP,提供多视图一致性表示的能力。

同时,如表1所示,CLIP-NeRF的推理速度相较EditNeRF也得到了很大的提升。
Ablation Study
论文在有无解开纠缠设计的情况下进行了消融实验,效果如下图所示。

图6与图7分别显示了基于文本与基于图片样例的编辑效果,具体如下所示


作者也对比了于此前一些方法的对比,不管是质量还是清晰度上都有非常大的提升
同一颜色类别内的细粒度外观操作:
如图11所示,CLIP-NeRF不能处理细粒度的局部部件形状和外观编辑以及域外编辑。

但它支持在整个对象级别上的细粒度外观操作,如下图10所示

沿编辑方向缩放
CLIP-NeRF可以控制沿着编辑方向缩放的比率,通过以下方程式逐步获得编辑结果,其中,s是控制编辑幅度的标量:

具体不同缩放比率的效果如下图12所示

内插效果
形状和外观隐空间支持内插,将形状信息与外观信息相融合从而可以同时进行改变,具体效果如下图13所示。

隐空间的必要性
论文对是否可以直接编辑单个NeRF模型的形状和外观,而不是conditional NeRF进行了验证。结果显示,基于设计好的CLIP损失函数,能够直接在NeRF模型的基础上进行颜色的改变,但是对于形状的改变始终无法取得令人满意的效果。对颜色的改变效果如下图14所示。

5. 总结
CLIP-NeRF是第一种文本和图像驱动的NeRF操作方法,通过设计一个统一的框架,为用户提供使用文本提示或样本图像对3D内容的灵活控制。
但是,方法也依旧存在一定的限制,比如无法处理细粒度的以及域外的形状与外形编辑。
参考资料:
[1]https://arxiv.org/abs/2112.05139[3]
参考资料
https://arxiv.org/abs/2112.05139: https://arxiv.org/abs/2112.05139
[2]https://github.com/cassiePython/CLIPNeRF: https://github.com/cassiePython/CLIPNeRF
[3]https://arxiv.org/abs/2112.05139: https://arxiv.org/abs/2112.05139
作者介绍

FightingCV
公众号 FightingCV