Concerto

Concerto: Joint 2D-3D Self-Supervised Learning for Spatial Representations

基本信息

项目 内容
论文标题 Concerto: Joint 2D-3D Self-Supervised Learning for Spatial Representations
作者 Yujia Zhang, Xiaoyang Wu, Yixing Lao, Chengyao Wang, Zhuotao Tian, Naiyan Wang, Hengshuang Zhao
作者单位 1. 香港大学 2. 香港中文大学 3. 哈尔滨工业大学(深圳)
时间 2025
发表会议/期刊 NeurIPS 2025

方法概览

特点 文章性质
输入 点云及对应的多视角图像(可选)
输出 每个点的稠密特征表示(可用于下游任务)
所属领域 三维自监督学习、跨模态表示学习

1. 摘要精简

Concerto 是一个受人类多感官协同学习概念启发的 2D-3D 联合自监督学习框架,通过结合 3D 模态内自蒸馏与 2D→3D 跨模态联合嵌入预测,使点云 Transformer 学习到更一致、更丰富的空间特征。零样本可视化表明其学到的特征具有更好的几何与语义一致性。

在线性探测中,Concerto 分别超越 SOTA 2D 和 3D 自监督模型 14.2% 和 4.8%,也超过两者特征的简单拼接。

全微调在多个场景理解基准上刷新 SOTA(如 ScanNet 语义分割 mIoU 达 80.7%)。

此外,还提出了面向视频提升点云的变体和一个将 Concerto 特征线性投影到 CLIP 语言空间的转换器,实现开放世界感知。

2. 引言出发点

人类通过多感官协同形成抽象概念(如苹果的形状、颜色、质地),且一旦形成,单模态输入即可唤起完整概念。受此启发,作者思考:能否让自监督学习模型通过 2D 图像和 3D 点云的协同学习,产生超越单模态的、更强大的空间表示?初步实验发现,将独立训练的 2D 模型(DINOv2)和 3D 模型(Sonata)的特征简单拼接,其线性探测性能优于任一单模态,表明两种模态包含互补信息。因此,作者旨在设计一个联合 2D-3D 自监督学习框架,让模型在训练中实现模态间协同,从而学习到更丰富的表示。

3. 创新点与相关工作对比

创新点:

  1. 联合 2D-3D 自监督学习范式:首次将 3D 模态内自蒸馏与 2D→3D 跨模态联合嵌入预测结合,使点云编码器同时从自身几何结构和图像语义中学习。
  2. 跨模态联合嵌入预测:利用预训练的 2D 自监督模型(DINOv2)作为教师,让点云特征预测对应图像块的特征,通过余弦相似度监督,使点云表示吸收图像的语义信息。
  3. 多源异构数据联合预训练:汇集 40k 点云场景及对应的 300k 图像,并额外利用 50k 视频提升点云(通过 VGGT 从视频中重建),进一步扩展数据规模。
  4. 语言空间投影:通过线性层将 Concerto 特征投影到 CLIP 语言空间,实现零样本开放词汇感知。

与相关工作对比及指出的问题:

对比方法 问题
DINOv2 (2D 自监督) [28] 缺乏 3D 几何感知,无法直接用于点云任务
Sonata (3D 自监督) [49] 虽能学习强 3D 表示,但缺少图像中的纹理和语义信息
两者特征拼接 虽然性能提升,但未在训练中真正协同,不能完全挖掘跨模态潜力
现有 2D-3D 结合方法(如 lifting、蒸馏) 大多单向模仿图像特征,忽略真正交互;或依赖图像作为推理输入
Locate3D [2] 推理时仍需图像,流程复杂,Concerto 仅需点云即可推理

4. 网络架构构成

Concerto 的整体架构如图 3 所示,包含两个并行分支:

  • 模态内自蒸馏分支:基于 Sonata [49] 的框架,采用学生-教师结构对点云进行自蒸馏。学生编码器(PTv3 [47])处理局部视图和掩蔽视图,教师编码器(动量更新)处理全局视图,通过聚类分配损失(Sinkhorn-Knopp 中心化)使学生特征与教师特征对齐。
  • 跨模态联合嵌入预测分支:利用一个冻结的 2D 自监督图像编码器(DINOv2 [28])提取图像块特征。点云编码器(共享上述学生编码器)的输出(上投射到适当尺度)通过余弦相似度损失,预测对应图像块的特征。对应关系通过相机参数将 3D 点投影到 2D 图像并验证深度一致性得到。
  • 跨模态预测器:以相机参数为条件,将点特征映射为图像 patch 特征预测值。
  • 特征上投射模块:无参多尺度特征拼接,融合不同层级表征。

两个分支共享点云编码器,联合训练。

5. 数据预处理与点的无序性/稀疏性处理

  • 数据来源:汇集 40k 点云场景(含 ScanNet [15]、ScanNet++ [52]、S3DIS [1]、ArkitScenes [7]、HM3D [33]、Structured3D [60])及对应的 300k 图像。额外加入从 RealEstate10K [61] 视频用 VGGT [43] 提升的 50k 点云与 200k 图像。
  • 预处理
    • 点云:采用 PTv3 的体素化与稀疏注意力,保留原始坐标作为输入特征。数据增强包括随机裁剪、旋转、抖动、颜色变换(同 Sonata [49])。
  • 数据增强
    1. 点云增强:裁剪、旋转、掩码点高斯抖动,同 Sonata。
    2. 图像增强:弱光度增强(颜色抖动、高斯模糊),避免强增强破坏模态对齐。
    3. 视图构建:4 局部视图 + 2 掩码视图 + 2 全局视图,每个点云搭配 4 张对应图像。

6. 特征提取

  • 点云编码器:PTv3 [47] 编码器,输出多尺度点特征。预训练时,特征在多个尺度上用于不同分支:自蒸馏损失在上投射 level 2 计算,跨模态损失在上投射 level 3 计算。
  • 图像编码器:冻结的 DINOv2 [28],输出图像块特征(patch features)。
  • 特征对齐:通过相机投影和深度验证,建立 3D 点与 2D 图像块的对应关系。

7. 如何找到两个点云的匹配关系

Concerto 不涉及点云间的匹配,其目标是学习单点云内每个点的特征表示。因此该问题不适用。

8. 如何基于两个点云的匹配关系计算点云之间的变换关系

Concerto 不计算点云间的变换。预训练任务是自监督特征学习,不涉及配准或变换估计。

9. 完整流程:输入点云到输出特征

  1. 输入:点云 $ \mathbf{S} $(可能附带对应的图像 I\mathbf{I})。
  2. 视图生成:对点云进行增强,生成 2 个全局视图、4 个局部视图、2 个掩蔽视图(同 Sonata)。若图像存在,则保留原始图像。
  3. 编码
    • 点云局部/掩蔽视图 → 学生编码器(PTv3) → 多尺度特征。
    • 点云全局视图 → 教师编码器(动量更新) → 多尺度特征。
    • 图像(若存在) → 冻结的 DINOv2 图像编码器 → 图像块特征。
  4. 特征对齐
    • 模态内:对每个视图,将学生特征与教师特征在对应点位置对齐,使用在线聚类损失(Sinkhorn-Knopp)。
    • 跨模态:将学生特征(上投射至 level 3)与通过投影匹配的图像块特征对齐,使用余弦相似度损失。
  5. 输出:预训练完成后,点云编码器可提取任意点云的多尺度特征,用于下游任务。

10. 损失函数

总损失为模态内自蒸馏损失和跨模态联合嵌入预测损失的加权和:

L=λintraLintra+λcrossLcross\mathcal{L} = \lambda_{\text{intra}} \mathcal{L}_{\text{intra}} + \lambda_{\text{cross}} \mathcal{L}_{\text{cross}}

  • 模态内自蒸馏损失 $ \mathcal{L}_{\text{intra}} $:采用 DINOv2 的在线聚类损失(交叉熵),将学生特征与教师经过 Sinkhorn-Knopp 中心化后的聚类分配对齐。对于每个匹配的点对 (i,j)(i,j),约束同一点云不同视图的特征一致性:

    Lintra=1N(i,j)kQj(k)logPi(k)\mathcal{L}_{\text{intra}} = -\frac{1}{N} \sum_{(i,j)} \sum_{k} \mathbf{Q}_j^{(k)} \log \mathbf{P}_i^{(k)}

    其中 $ \mathbf{P}_i $ 是学生特征经 softmax 的概率分布(温度 $ \tau_s ),), \mathbf{Q}_j $ 是教师特征经 Sinkhorn-Knopp 中心化后锐化的目标分布(温度 $ \tau_t $)。同时包含 KoLeo 正则化。

  • 跨模态联合嵌入预测损失 $ \mathcal{L}{\text{cross}} $:采用余弦相似度,鼓励点云特征 $ \mathbf{f}{\text{3D}} $ 与对应的图像块特征 $ \mathbf{f}_{\text{2D}} $ 接近,约束点特征预测的 patch 特征与 DINOv2 提取特征一致:

    Lcross=1f3Df2Df3Df2D\mathcal{L}_{\text{cross}} = 1 - \frac{\mathbf{f}_{\text{3D}} \cdot \mathbf{f}_{\text{2D}}}{\|\mathbf{f}_{\text{3D}}\| \|\mathbf{f}_{\text{2D}}\|}

    实验中使用权重 $ \lambda_{\text{intra}}:\lambda_{\text{cross}} = 2:2 $(即 1:1)效果最佳。

11. 测试数据集

  • ScanNet v2 [15]:1,513 个室内场景,用于语义/实例分割。
  • ScanNet200 [35]:200 类精细标注版本。
  • ScanNet++ [52]:高保真室内数据集。
  • S3DIS [1]:6 个区域 271 个房间,语义分割。
  • ScanNet Data Efficient [19]:用于数据效率评估(限制场景数量或每场景标注点数)。
  • AEO (Aria Everyday Objects):用于分布外泛化评估(附录)。
  • RealEstate10K [61]:视频提升点云数据,用于视频变体训练。

自建数据集:Concerto 未新造数据集,而是整合现有数据形成 40k 点云 + 300k 图像的基础预训练集,以及额外 50k 视频提升点云 + 200k 图像的扩展集。具体数据组成见表 7 和表 8。

12. 消融实验测试的组件

消融实验基于 ScanNet 语义分割,使用线性探测和 decoder 探测进行评估(默认设置:39M PTv3,训练于 ScanNet+Structured3D 共 23k 数据):

  • 联合跨模态学习:对比 Concerto 与 DINOv2、Sonata 及其特征拼接,证明联合学习超越简单拼接。
  • 损失函数类型(Tab. 6a):对比在线聚类(o.c.)与余弦相似度(c.s.)的组合,发现自蒸馏用 o.c.、跨模态用 c.s. 最佳。
  • 图像使用比例(Tab. 6b):逐步增加带图像的点云比例(0%→100%),线性探测性能提升,20% 即有效,50% 接近饱和。
  • 损失权重(Tab. 6c):尝试 cross:intra 权重比 1:2、2:2、3:2,2:2 最优。
  • 图像增强(Tab. 6d):对比无增强、弱增强(同点云增强)、强增强(DINOv2 风格),弱增强效果最佳,强增强反而下降(因图像编码器冻结)。
  • 可见点数量(Tab. 6e):比较每个图像视图对应的 3D 点数量(×1: 65536 点,×2: 131072 点),性能相近,略少点更好(迫使模型利用上下文)。
  • 上投射等级(Tab. 6f):跨模态损失使用的特征上投射等级(2/3/4),level 3 最优,接近图像与点云的最佳尺度对应。
  • 数据规模(Tab. 6g):从 23k 扩至 40k,性能显著提升。
  • 模型规模(Tab. 6h):从 39M 扩至 108M,性能进一步提升。

其他创新点

  • 视频提升点云变体:使用 VGGT [43] 从视频重建点云,扩展训练数据,使模型适应视频来源的稀疏点云,PCA 可视化显示其跨帧一致性(附录 B.1)。
  • 语言空间投影(Language Probing):训练一个线性层将 Concerto 特征投影到 CLIP 文本空间(以 LSeg [27] 图像编码器输出为目标),实现零样本开放词汇定位(图 7),在 ScanNet 上零样本达到 44.56% mIoU。
  • LoRA 微调:在数据稀缺场景下,LoRA 微调(0.3M 参数)性能优于线性探测和全微调,表明 Concerto 特征的高度可泛化性(附录 B.4)。

一、为什么用 PTv3 + 教师 - 学生自蒸馏?(核心 4 个原因)

这些工作(Sonata、Concerto)必须用这个结构,是由 3D 点云自监督的痛点 决定的,也是替代传统对比学习的最优解:

  1. 解决 3D 自监督「无标注」问题点云标注成本极高,自蒸馏完全不需要人工标签,用「模型自己生成的监督信号」训练,是纯自监督学习。

  2. 根治 3D 几何捷径(最核心原因)3D 模型很容易偷懒,只学法向量、高度等低级几何特征;教师网络输出

    软监督信号,强迫学生网络放弃低级捷径,学习高级语义 / 空间特征。

  3. 比传统对比学习更适合点云传统对比学习需要大量负样本,点云负样本构造难、计算量大;自蒸馏无负样本,轻量化、训练稳定,完美适配 PTv3 这种大模型。

  4. 适配 PTv3 无解码器架构Sonata/Concerto 都删掉了解码器,不能用「重建点云」做监督;自蒸馏只需要对齐特征,不需要重建输入,和无解码器架构 100% 匹配。

  5. 提升表征鲁棒性教师网络通过滑动平均 (EMA) 缓慢更新,输出的特征更稳定、泛化性更强,学生网络学习后,线性探测 / 下游任务效果暴涨。


二、基于 PTv3 的自蒸馏 完整执行流程(一步一讲)

所有工作(Sonata、Concerto)的自蒸馏流程完全一致

1. 核心结构:两个一模一样的 PTv3 编码器

  • 学生网络 Student:在线网络,正常训练、参数实时更新,负责学习特征。
  • 教师网络 Teacher:EMA 网络,不参与梯度反向传播,参数由学生网络滑动平均更新,负责生成「标准答案」。

2. 数据增强:构造「不对称视图」(关键设计)

同一片点云做数据增强,生成两种视图:

  • 教师输入:全局视图(完整、无遮挡、简单)

  • 学生输入:局部视图 / 掩码视图(残缺、遮挡、难度高)

    目的:让学生从残缺输入中,学习和教师完整输入一致的特征。

3. 前向推理:分别提取特征

  1. 完整点云 → 教师 PTv3 → 输出稳定的全局特征
  2. 残缺点云 → 学生 PTv3 → 输出待优化的学生特征

4. 生成软目标(自蒸馏的核心)

教师网络不输出硬标签,而是输出软概率分布(通过在线聚类 + Sinkhorn-Knopp 算法):t=softmax(teacherfeat/τt)t=softmax(teacher_{feat}/τ_t)

  • τt:教师温度系数,控制分布锐化
  • t:教师生成的软监督目标(标准答案)

5. 学生拟合教师:计算蒸馏损失

让学生网络的输出分布,无限逼近教师的软目标,损失函数为对称交叉熵

Ldistill=−(t⋅logs+s⋅logt).mean()

  • s:学生网络输出的概率分布
  • 这个损失强迫学生:即便输入残缺,也要学到和完整点云一致的高级特征

6. EMA 更新教师网络(最关键的一步)

教师参数不反向传播,只用学生参数做滑动平均更新,保证教师输出永远稳定:

θteacher=αθteacher+(1α)θstudentθ_{teacher}=α⋅θ_{teacher}+(1−α)⋅θ_{student}

  • α:滑动系数,通常取 0.999教师更新极慢,相当于一个「稳定的专家」,教学生稳步学习