文章链接:
https://arxiv.org/abs/2407.06842
项目地址:
https://sk-fun.fun/CE3D/
代码:
https://github.com/Fangkang515/CE3D/tree/main
引言
过去的3D场景编辑方法往往局限于固定的文本输入模式和有限的编辑能力。用户需要学习特定的命令或特定的多模态模型来实现所需的效果。而且,这些方法通常只能进行简单的编辑,难以实现复杂的场景变换。然而实际应用中,用户的语言是及其丰富的,用户的编辑需要也是多种多样的,当前的方法的设计范式均无法满足用户的诉求。
为了突破这些限制,本文提出了一种全新的3D场景编辑新范式—CE3D。该方法基于大规模语言模型,通过解耦2D编辑和3D重建过程,实现了灵活且高效的任意模型的集成,大大丰富了文本对话能力和场景编辑能力。
什么是CE3D?
CE3D,即Chat-Edit-3D,对话式3D场景编辑的突破。它的核心思想是通过大规模语言模型解析用户的任意文本输入,并自主调用相应的视觉模型来完成3D场景的编辑。为了实现任意视觉模型的集成,CE3D设计了名为Hash-Atlas的映射网络,将3D场景的编辑转换为2D图集空间内的操作,从而实现了2D编辑与3D重建过程的完全解耦,从此无需再指定固定的3D表示形式和2D编辑方法。
文章主要贡献如下:
-
Hash-Atlas映射网络:通过将3D场景的编辑转化为2D图集的操作,避免了传统管道架构中的3D模型和2D模型间复杂耦合的问题。
-
对话框架:借助大规模语言模型,CE3D能够解析用户文本输入,生成相应的响应,并管理多种视觉模型和场景文件。
-
实验结果:CE3D展示了强大的扩展性,兼容各种现有的2D和3D视觉模型,支持多轮对话,并在文本解析、编辑能力和交互自然性方面显著优于以往方法 。
方法
首先说明CE3D 整体pipeline(下图3),然后介绍Hash-Atlas网络的设计、atlas空间中的编辑策略以及CE3D中对话系统的组件。
Hash-Atlas网络
本节介绍了一种简单的方法,将场景的各个视图直接映射到2D图集上,从而将3D场景编辑过程重新定位到2D空间中。类似的技术最初用于将视频帧映射到图集,需要连续帧和平滑的摄像机运动,这与本文中使用的3D场景数据不同。为了实现本文所述的编辑功能,图集应满足以下条件:
-
防止图集中的过度失真和倾斜,以保持视觉模型的理解。
-
-
Hash-Atlas公式
为了满足上述条件,设计了一个基于哈希结构的网络,如下图4所示。
假设场景中有T个视图, 则
-th视图中的点
使用函数
映射到两个不同的
坐标。
其中
和
代表两个UV空间中的坐标。参数
的范围在 0 到 1 之间, 表示前景图集中像素值的权重。然后使用
预测前景和背景图集中在
坐标下对应的RGB值:
其中,
结合了哈希结构来捕捉图像中的纹理细节, 并实现更快的模型训练和推理。此外, 为了共享
的权重,
被安排在
区间,而
则在
区间。
在图集中获得像素值
和
后, 可以按如下方式重建点 P 在场景视图中的原始像素值:
当图集被编辑后,通过方程3可以在不重新训练Hash-Atlas网络的情况下恢复3D场景每个视图的编辑效果。
训练和损失项
为了确保获得的图集看起来更自然,避免物体过度倾斜和变形,在模型训练的早期阶段,研究者们仅使用-th视图中的
。然后,预训练位置损失定义如下:
这种损失鼓励在坐标映射后-th视图中场景位置的最小变化。
此外,
的预训练涉及通过 VQA 模型确定场景的前景, 并通过分割模型确定其相应的mask。假设点P的前景mask为
的预训练损失定义如下:
其中,CE表示交叉熵损失。第二项鼓励α和前景图集稀疏,这有助于前景和背景图集内容的明确分离。
完成预训练后,可以通过监督从图集重建视图来训练整个模型。然而,观察到这种训练会导致背景图集中出现明显的区域遗漏,这对后续的编辑任务产生负面影响。为了解决这个问题,引入了修复损失。首先,使用ProPainter模型对被遮挡的背景进行初步修复,生成一组新的修复视图。假设原始视图中的点P对应于修复视图中的
,重建损失可以表示如下:
其中, GT (.) 表示从场景的原始或修复视图中获得的真实值。此外, 按照 [26] 的方法, 在场景中加入刚性和流约束。