探索规模上统一的3D表征
10月10号的论文“Uni3D: Exploring Unified 3D Representation At Scale“,来自北京智源、清华和北大。
作者第一次将3D基础模型成功scale up到了十亿(1B)级别参数量,并使用一个模型在诸多3D下游应用中取得SOTA结果。
智源视觉团队近期的工作:3D视觉大模型Uni3D在ICLR 2024的评审中获得了688分,被选为Spotlight Presentation。在本文中,作者第一次将3D基础模型成功scale up到了十亿(1B) 级别参数量,并使用一个模型在诸多3D下游应用中取得SOTA结果。
论文地址:https://arxiv.org/abs/2310.06773
代码地址:https://github.com/baaivision/Uni3D
模型地址(6M-1B):https://huggingface.co/BAAI/Uni3D
在过去的几年里,对图像或文本的放大表征进行了广泛的研究,并带来了视觉和语言学习的革命。然而,3D目标和场景的可伸缩表征相对来说还未被探索。这项工作提出Uni3D,一个三维基础模型,探索规模上的统一三维表征。Uni3D用2D初始化的ViT(vision Transformer)端到端预训练,将3D点云特征与图像-文本对齐特征进行对齐。通过简单的架构和pretext任务,Uni3D可以利用丰富的2D预训练模型作为初始化,并将图像-文本对齐模型作为目标,释放2D模型的巨大潜力,并将策略扩展到3D世界。有效地将Uni3D扩展到10亿个参数,并在广泛的3D任务上创下新纪录,如零样本分类、少样本分类、开放世界理解和部分分割。强大的Uni3D表示也支持3D绘画和野外检索等应用。
过去几年中,扩大的预训练语言模型(Brown2020;Liu2019;Raffel2020)在很大程度上彻底改变了自然语言处理。最近的一些工作(Rad-ford2021;Dosovitskiy2020;Bao2021;He2022;Fang2022)通过模型和数据规模化将语言的进步转化到2D视觉。从2D提升到3D,即学习一个可以在3D世界中迁移的可扩展3D表示模型,也是很吸引人的。最近,随着大规模3D数据集Objaverse的发布(Deitke 2023b),一些工作试图探索3D中的可扩展预训练,但是,要么仍然局限于小规模的3D主干(Xue 2021;b),要么很难扩展到相对较大的模型(Li2022),例如图中的72M。
本文首次展示了一个十亿规模的3D表示模型,该模型可以很好地迁移到不同的下游任务和场景。如图所示,与现有技术相比,Uni3D在各种零样本和少样本3D任务中产生了性能提升。具体而言,Uni3D在ModelNet上实现了88.2%的零样本分类准确率,这令人惊讶地与一些监督学习方法不相上下。Uni3D在其他具有代表性的3D任务上也取得了最先进的性能,如开放世界理解、部分分割等。
如图所示:Uni3D是一个用于大规模3D表示学习的统一且可扩展的3D预训练框架。把100万个3D形状与1000万个图像和7000万个文本进行配对,Uni3D扩展到10亿个参数。Uni3D用2D ViT作为3D编码器,通过丰富的2D预训练模型最佳2D先验进行初始化,然后再进行端到端预训练,将3D点云特征与来自CLIP模型的图像-文本对齐的特征再进行对齐
作者主要探索了3D视觉中scale up模型参数量和统一模型架构的可能性。在NLP / 2D vision领域,scale up大模型(GPT-4,SAM,EVA等)已经取得了很impressive的结果,但是在3D视觉中模型的scale up始终没有成功。Uni3D旨在将NLP/2D中scale up的成功复现到3D表征模型上。
实验中冻结了CLIP文本和图像编码器,同时专注于利用跨模态对比损失训练3D编码器。采用Adam(Kingma&Ba2014)优化器,其峰值学习率为1e-3,并随余弦学习率时间表逐渐降低。为了增强训练稳定性,我采用随机深度(Huang 2016)正则化。还利用了FLIP(Li 2023)技术,在训练期间随机屏蔽50%的点tokens,将时间复杂性降低了一半。预缓存所有形状的文本和图像CLIP嵌入,这样能够将总批量大小增加到1152,并大大加快训练。为了进一步改进训练过程,采用了带ZeRO一阶段优化器的DeepSpeed(Rasley2020)和带有动态损失伸缩的fp16精度(Rajbhandari2020)。利用上述策略,最大的模型,即具有10亿个参数的Uni3D-g,在24个NVIDIA 100-SXM4-40GB GPU运行大约20小时内收敛。
先前的方法(Rao2022;Yang2022)已经证明,从图像-文本对比学习中获得的知识,即CLIP,迁移的话,可以在2D密集预测任务(例如分割和检测)中产生显著的性能改进。然而,将这些知识迁移到3D密集预测任务中的研究很少。将Uni3D学习的全局点云-文本对齐,转换为局部点-文本对齐。目的是证明Uni3D中的目标级预训练足以学习详细的局部3D视觉概念。具体而言,选择Uni3D中ViT的第4层、第8层和最后一层的特征,表示为H4、H8和H12。根据PointNet++(Qi 2017b),用特征传播将群组特征H4、H8和H12上采样为逐点特征。在训练过程中,冻结Uni3D主干,只优化特征传播层中的参数,并监督对齐逐点特征和CLIP文本编码器提取的真值部分标签的文本特征。通过冻结学习的Uni3D参数,专注于有效地探索预训练的细粒度知识。
在这项工作中,作者提出了一个3D基础大模型Uni3D,直接将3D backbone统一为ViT(Vision Transformer),以此利用丰富和强大的2D预训练大模型作为初始化。Uni3D使用CLIP模型中的文本/图像表征作为训练目标,通过学习三个模态的表征对齐(点云-图像-文本)实现3D点云对图像和文本的感知。同时,通过使用ViT中成功的scale up策略,我们将Uni3D逐步 scale up,训练了从Tiny到giant的5个不同scale的Uni3D模型,成功地将Uni3D扩展到10亿级别参数。
Uni3D模型不同scale下的参数量和zero-shot分类结果
下游应用:
Uni3D在多个3D任务上达到SoTA,如:zero-shot classification, few-shot classification,open-world understanding, open-world part segmentation.
零样本/少样本分类
- Uni3D在ModelNet上实现了88.2%的零样本分类准确率,甚至接近了有监督学习方法的结果(如PointNet 89.2 %);
- 在最困难的Objaverse-LVIS基准下,Uni3D取得了55.3%的零样本分类准确率,大幅刷新了该榜单。
- 而在Objaverse-LVIS基准的少样本分类测试中,Uni3D实现了83.1%的准确率(16样本下),明显超过了以往的最先进基准OpenShape 32%。
零样本分类任务下评估Uni3D,分别在 ModelNet(包含15个类别) 、ScanObjNN(包含40个类别) 、Objaverse-LVIS(包含1156个LVIS类别中的46832个形状)三个基准下进行实验。
开放世界的理解能力
研究团队采用与CLIP2相同的设置在ScanNet测试集下探究Uni3D在现实场景下的零样本识别性能。与之前最先进的SOTA方法PointCLIP、PointCLIP V2 、CLIP2Point 和CLIP2 相比,Uni3D表现最佳。
图中不同颜色代表了模型对于3D场景中不同物体的理解和类别识别,可以看到Uni3D对于场景的理解和真实Ground Truth(地面实况)更加接近,而先前方法如PointCLIP V2和CLIP2Point则有大量的错误识别。
Uni3D在少样本点云部件分割任务上也展示出了卓越的性能。下表结果显示,在各种实验条件下,Uni3D的性能都明显优于Point-BERT等基线方法。即便只使用每类一个样本训练,Uni3D也达到了使用10%的训练数据的先前基线方法(如PointNet++,Point-BERT)的水平,在训练集的规模相对减少两个数量级的情况下,仍能显示出Uni3D更强的细粒度3D结构理解能力。
由于学到了强大的多模态表征能力,Uni3D还能够做一些有意思的应用,如point cloud painting(点云绘画),text/image-based 3D shape retrieval(基于图像/文本的3D模型检索),point cloud captioning(点云描述)
点云绘画:体现了在3D AIGC上的潜在能力
给定一个文本,Uni3D通过优化点云的颜色来提高点云和文本在特征空间的相似度,基于此实现文本操控的点云内容创作和点云绘画。
点云绘制结果,(白色模型是初始点云)。如通过给定语句“拥有一只蓝色翅膀和一只黄色翅膀的蝴蝶”来创作编辑,生成对应的3D点云模型。
文本驱动/图像驱动的三维形状检索:体现在构建多模态检索库上的潜在能力
Uni3D通过学习到的统一的三维多模态表示,具有感知多个2D/语言信号的能力,可以通过图像或文本输入从大型3D数据集中检索三维形状。这是通过计算查询图像/文本提示的embedding与3D形状的embedding入之间的余弦相似度来实现了对查询的最相似3D形状的获取。
如在下图中,输入一个图像,Uni3D可以检索与这输入图像最为相似的1-2个形状。
例如上图中,如果输入多张图像,例如一张长犄角的鹿的图像和一张蛇的图像,Uni3D可以找到同时契合这两个输入图像的3D模型:一只长着角的蛇。
Uni3D 还可根据输入文本来检索 3D 形状
将之前已经成熟的“文搜图/图搜图”扩展到“文搜3D/图搜3D”,这使得检索互联网上大规模未标定的繁杂三维模型成为可能,为相关三维领域从业者、创作者搜集素材提供实用工具。
如给定文本“一个高质量的宫殿”,“钢铁侠”,Uni3D就可以从大规模3D数据库中检索到最接近该文本的多个3D模型。
Uni3D 还可给定点云生成对应的文本描述
Point cloud captioning.
Uni3D扩展为Text-to-3D generation tasks的评测指标
在text-to-3D研究领域,目前量化度量仍然是一个较难的问题。目前的量化指标都是将生成的3D模型渲染为2D图片,利用2D指标衡量生成质量。然而由于渲染角度互相独立以及3D模型自遮挡等问题,2D评价指标难以完全真实反映出3D生成模型的真实能力。如下图,生成的3D模型有明显的3D不一致性问题,但是单独看其中大部分的视角渲染图片都是正常的物体,导致2D评价指标往往难以反映生成3D模型的不一致问题。
作者团队近期推出的Text-to-3D generation 工作GeoDream提出利用目前最大最强的3D基础模型Uni3D,直接对3D模型进行评估,避免渲染带来的视角问题。相应的评价指标代码也开源到GeoDream的代码库中 (https://github.com/baaivision/GeoDream) 。
量化比较:在生成质量和语义保持性的量化测试上,GeoDream相比于之前方法取得显著提升。在基于渲染2D图片的量化指标(FID,CLIP-Score)和直接在3D空间度量生成的3D资产量化指标(Uni3D-Score)上均有提升,说明GeoDream渲染的图片和3D结构均有优势。
GeoDream生成模型