Hana's Blog
Paper Reading: CV 1Blur image
评分准则
平平无奇的论文
正常的论文
广受认可或者让我眼前一亮的论文
奠基性的论文或者我非常喜欢的论文
毋庸置疑的最棒的论文

前言#

计算机视觉基础模型关注从图像、视频和点云中学习可迁移的表征与几何结构。相关工作覆盖经典视觉骨干、自监督预训练、开放词表检测、通用分割、点云表征与视觉几何,核心作用是为分类、检测、分割、三维理解、场景重建和机器人感知等任务提供稳定的基础感知能力。

AlexNet#

publication NeurIPS2012

推荐指数:

VGG#

Arxiv ID 1409.1556
幻觉翻译 1409.1556
publication ICLR2015

推荐指数:

ResNet#

Arxiv ID 1512.03385
幻觉翻译 1512.03385
publication CVPR2016

推荐指数:

ViT#

Arxiv ID 2010.11929
幻觉翻译 2010.11929
publication ICLR2021

把图像切成 Patch 后直接送入 Transformer,是后续大规模视觉预训练模型的重要基础。

ViT 是视觉 Transformer 的基础工作,提出了把图像切成固定大小的 Patch 后直接送入标准 Transformer 进行建模的思路。虽然 ViT 在小规模数据上表现不佳,但在大规模数据上展示了强大的性能,成为后续大规模视觉预训练模型的重要基础。ViT 的核心贡献在于证明了纯 Transformer 架构在视觉任务中的可行性,激发了后续大量基于 Transformer 的视觉模型的研究和发展。

推荐指数:

MAE#

Arxiv ID 2111.06377
幻觉翻译 2111.06377
publication CVPR2022

用高比例 Masked Image Modeling 训练可扩展视觉编码器,是图像自监督预训练的重要基线。

MAE 做的事情很简单,就是把图像随机遮挡掉大部分 Patch 后让模型重建被遮挡的部分。虽然方法简单,但 MAE 展现了高比例 Masked Image Modeling 的有效性,训练出的视觉编码器在下游任务中表现出色,成为图像自监督预训练的重要基线。MAE 的核心贡献在于证明了通过遮挡大部分输入来训练模型重建缺失信息的思路在视觉领域同样有效,激发了后续大量基于 Masked Modeling 的视觉预训练方法的研究和发展。

推荐指数:

DINO#

Arxiv ID 2104.14294
幻觉翻译 2104.14294
publication ICCV2021

Self-Distillation 的自监督 ViT,展示了无监督特征中自然涌现的语义分割能力。

DINO 提出了一种无需标签的自监督训练方法,即 Self-Distillation with No Labels,并将其应用到 ViT 架构中。它的核心思想是用教师网络(Teacher) gθtg_{\theta_t} 为学生网络(Student) gθsg_{\theta_s} 提供软目标,让学生在不同增强视图下预测与教师一致的输出分布。具体来说,输入图像 xx 会先经过 Multi-crop augmentation,生成多个不同尺度的视图:较大的全局视图 xglobalx_\text{global} 和较小的局部视图 xlocalx_\text{local}。教师网络只接收全局视图,因此能够看到相对完整的图像语义;学生网络则接收全局视图与局部视图,需要在只观察局部区域时也预测出与教师相近的语义分布。两者的输出经过 DINO Head 映射到一个高维空间后,通过 softmax 得到概率分布,并使用交叉熵作为训练目标,使学生分布尽可能接近教师分布。训练过程中,学生网络通过反向传播更新,而教师网络不直接接收梯度,而是由学生参数的指数移动平均(EMA)得到。为了避免模型输出塌缩,DINO 还对教师输出引入 centering 和 sharpening:前者通过滑动平均的中心项抑制某些维度长期占优,后者通过较低的温度系数使教师分布更加尖锐。DINO 的重要发现是,在没有任何人工标注的情况下,ViT 的 attention maps 会自然关注前景物体,呈现出类似语义分割的结构。这说明 DINO 不仅能学到可迁移的视觉表征,也展示了自监督 ViT 中自然涌现的 object-centric 特性,推动了后续基于自蒸馏的视觉预训练方法发展。

推荐指数:

DINOv2#

Arxiv ID 2304.07193
幻觉翻译 2304.07193
publication TMLR2024

通过大规模精选数据和蒸馏训练得到通用视觉特征,是近几年最常用的冻结视觉 Backbone 之一。

DINOv2 可以看作是 DINO 的规模化与工程化升级版本,目标不再只是验证 self-distillation 在 ViT 上的有效性,而是训练出一组可以直接作为冻结视觉 Backbone 使用的通用特征模型。在数据层面,DINOv2 不再局限于 ImageNet 这类标准数据集,而是从大规模无标签图像中进行去重、过滤、检索和聚类,构建出包含 1.42 亿张图像的 LVD-142M 数据集,从而获得覆盖更广、质量更高的视觉概念分布。在方法层面,DINOv2 仍然沿用教师-学生自蒸馏框架,但将训练目标从 DINO 中偏图像级的表示学习进一步扩展到 patch-level 表示学习:除了使用 DINO loss 对齐全局视图的语义分布,还引入 iBOT 风格的 masked patch prediction,让学生网络在部分 patch 被 mask 的情况下预测教师网络给出的 patch-level 目标。这样模型不仅能学到 image-level 的全局语义,也能学到适合分割、深度估计和视觉对应等任务的 dense features。为了在更大数据和更大模型上稳定训练,DINOv2 还强化了防塌缩机制,包括 Sinkhorn-Knopp centering 和 KoLeo regularization,使特征分布更加均衡、输出空间利用更加充分。总体来看,DINOv2 的核心贡献在于把 DINO 的自监督 ViT 路线扩展为一套可规模化训练、可蒸馏到不同模型尺寸、且能在多种下游任务中直接迁移的通用视觉特征体系。

推荐指数:

DINOv3#

Arxiv ID 2508.10104
幻觉翻译 2508.10104
publication pending

DINOv2 的大规模升级版本,通过 LVD-1689M、7B Teacher 和 Gram Anchoring 训练更强的通用视觉特征。

DINOv3 可以看作是 DINOv2 路线的进一步规模化与 dense feature 强化版本,目标是训练一个可以直接作为冻结视觉 Backbone 使用的通用视觉基础模型。数据层面,DINOv3 使用 LVD-1689M 数据集进行训练,共包含 16.89 亿张无标注图像。这些图像来自约 170 亿张 Instagram 公开帖子图像构成的大规模候选池,随后通过内容过滤、去重、DINOv2 特征聚类、均衡采样和检索式筛选得到最终训练集,从而在保证规模的同时尽量提升视觉概念覆盖和数据质量。模型层面,DINOv3 继续沿用教师-学生自监督蒸馏框架,并将 Teacher 扩展到约 7B 参数规模,同时通过蒸馏得到 ViT 和 ConvNeXt 的多种小模型,方便在不同计算预算下部署。DINOv3 最关键的新方法是 Gram Anchoring:论文发现,在继续放大 DINOv2 并延长训练后,图像级分类能力仍会提升,但 patch-level dense features 可能出现退化,影响分割、深度估计和视觉对应等任务。Gram Anchoring 用早期 dense feature 更干净的模型作为约束对象,通过对齐 patch 特征之间的 Gram 相似性结构,帮助模型在继续学习全局语义的同时保留局部几何关系和空间一致性。总体来看,DINOv3 的核心贡献不在于提出全新的自监督范式,而在于证明 DINOv2 风格的自蒸馏视觉模型可以在更大数据、更大模型和更长训练下继续扩展,并通过 Gram Anchoring 解决 dense feature 质量保持的问题。

推荐指数:

Grounding DINO#

Arxiv ID 2303.05499
幻觉翻译 2303.05499
publication ECCV2024

把开放词表文本 Grounding 引入检测器,是 Grounded-SAM、开放词表检测和机器人感知中常用的定位模块。

Grounding DINO 的目标是把传统的 closed-set object detection 扩展成 text-conditioned open-vocabulary detection。目标检测本身要解决分类和定位两个问题:Grounding DINO 没有改变定位问题的形式,仍然为每个 query 预测一个 box。真正变化的是分类部分,普通检测器用固定种类分类头输出预定义种类,而 Grounding DINO 将其转换为对 text token 的相似度计算。因此,模型不再只能预测预定义类别,而是根据输入 prompt,例如 person . dog . red car .,检测和文本短语对应的目标。

从 workflow 看,图像先经过 backbone 得到 visual features,文本经过 text encoder 得到 text features,随后在 Feature Enhancer 中做 Fusion。Language-Guided Query Selection 会计算 image tokens 和 text tokens 的相似度,再对文本维度取最大值,得到每个 image token 与整段 prompt 的最高相关分数,最后选出 top-K 个 image tokens 作为 decoder 的初始候选 query。并同时取出 reference boxes,每个 image token 本身来自 feature map 的一个空间位置,检测器也会为每个位置生成或预测一个粗略候选框。Cross-Modal Decoder 再继续 refine 这些 query,若有 L 层 decoder,则有 L 层中间表征。Prediction Head 以每层的中间表征去预测 box refinement,一路计算 query feature 与 text feature 的相似度。

训练时,所有数据都会被整理成 grounding 格式:[image, text, boxes, positive_map],其中 positive_map 表示每个 box 对应文本中的哪些 token。普通检测数据可以把类别名拼成 prompt,phrase grounding 数据本来就有短语和 box 的对应关系,caption 数据则需要借助已有模型生成 pseudo boxes。由于预测的 query 和真实目标之间没有天然顺序,训练时先用 Hungarian Matching 做一对一匹配,再使用 query-text token matching 上的 focal loss、box L1 loss 和 GIoU loss。

推荐指数:

Segment Anything#

Arxiv ID 2304.02643
幻觉翻译 2304.02643
publication ICCV2023

提出 Promptable Segmentation 与 SA-1B 数据集,是通用分割和交互式标注的代表性 VFM。

SAM 的核心不是把某个固定分割任务做到最强,而是把图像分割重新定义成一种可以被 Prompt 调用的基础能力。 论文提出的 Promptable Segmentation 任务要求模型在给定任意提示时输出一个有效 Mask。 这里的提示可以是前景点、背景点、框、粗 Mask,甚至是文本。 「有效」的含义很重要:当提示本身有歧义时,例如一个点既可能指向衣服,也可能指向整个人,模型不必猜出唯一标准答案,而是要给出至少一个合理的分割结果。 这个定义使 SAM 可以像语言模型响应 Prompt 一样,通过不同提示迁移到交互式分割、自动标注、目标提案和实例分割等任务。 模型结构很直接,分成 Image Encoder、Prompt Encoder 和 Mask Decoder 三部分。 Image Encoder 使用 MAE 预训练的 ViT 处理高分辨率图像,并提前计算图像 Embedding;这一步最重,但每张图只需要做一次。 Prompt Encoder 负责把提示转成向量:点和框使用位置编码加提示类型 Embedding,Mask 通过卷积编码后加到图像特征上,文本提示则借助 CLIP 文本编码器做初步探索。 Mask Decoder 是轻量 Transformer 解码器,它让 Prompt Token 和 Image Embedding 做双向 Cross-Attention,然后上采样图像特征,并用输出 Token 生成动态线性分类器,逐像素预测前景概率。 这种「重图像编码 + 轻提示解码」的拆分非常关键:图像特征可以复用,用户不断点击或给框时,只需要快速运行 Prompt Encoder 和 Mask Decoder,论文报告在浏览器 CPU 中约 50ms 即可得到 Mask。

SAM 对歧义的处理也很关键。 如果模型只有一个输出,在单点提示这种天然模糊的场景里容易把多个合理 Mask 平均成一个不干净的结果。 因此 SAM 默认对单个提示预测 3 个 Mask,对应 whole、part、subpart 这类常见嵌套层级,并额外预测每个 Mask 的 IoU 置信度用于排序。 训练时对多个输出分别计算损失,但只反传最小损失的那一个,相当于允许模型把不同输出槽位分配给不同合理解释。 当输入包含多个提示时,歧义通常降低,模型则返回单个更确定的 Mask。 损失函数使用 focal loss 与 dice loss 的组合,IoU 预测头使用 MSE 监督。

训练流程模拟交互式分割,而不是只做一次静态预测。 每个目标 Mask 先随机选择一个前景点或带噪声的框作为初始提示,模型预测后,再从预测错误区域采样新的前景点或背景点进行修正,并把上一轮未阈值化的 Mask logits 作为 Dense Prompt 输入下一轮。 论文默认使用 11 轮:1 个初始提示、8 个从错误区域采样的交互点,以及 2 轮不加入新点的自我细化。 这样训练出来的模型不仅能处理单点或框,也能自然接入「用户继续点击修正」的交互流程。

数据层面的贡献同样重要。 由于互联网上没有现成的海量分割 Mask,作者构建了一个三阶段 Data Engine。 第一阶段是 Assisted-manual:标注员使用 SAM 辅助的浏览器工具点击前景和背景,并可用 brush/eraser 修正,最终在 12 万张图上收集 430 万个 Mask,平均每个 Mask 的标注时间从 34 秒降到 14 秒。 第二阶段是 Semi-automatic:先用检测器自动填入高置信 Mask,标注员再补充遗漏物体,累计达到 30 万张图、1020 万个 Mask。 第三阶段是 Fully automatic:对每张图使用 32×32 规则点网格提示 SAM,并通过 IoU 置信度、稳定性筛选、NMS 和重叠裁剪过滤结果,最终在 1100 万张授权且隐私处理过的图像上生成 11 亿个高质量 Mask,形成 SA-1B。

实验强调的是 Zero-shot Transfer。 单前景点分割中,SAM 在 23 个多域数据集上有 16 个数据集的 mIoU 高于 RITM;如果用 oracle 从 3 个候选 Mask 中选择最接近 GT 的结果,则所有数据集都优于 RITM,说明单点评估会受到 GT 歧义影响。 在 BSDS500 边缘检测上,SAM 没有专门训练边缘任务,但 ODS 达到 0.768、R50 达到 0.928,召回很强但会预测更多未标注边缘。 在 LVIS 目标提案中,SAM 的 AR@1000 为 59.3,低于 ViTDet-H 的 63.0,但在 medium、common 和 rare objects 上反而超过 ViTDet-H。 在实例分割中,SAM 接收 ViTDet 的检测框作为 Prompt,在 COCO 上 AP 为 46.5、LVIS 上 AP 为 44.7,低于全监督 ViTDet,但人工评测认为 SAM 的边界质量更好。

这篇论文最值得学习的是「任务定义、模型接口、数据飞轮」三者绑定在一起。 Promptable Segmentation 给模型提供统一接口,轻量 Mask Decoder 保证交互可用,Data Engine 又利用当前模型降低标注成本、反过来扩大数据规模。 因此 SAM 的创新并不只是一个 ViT 分割模型,而是把分割模型做成可组合的视觉基础设施。 它的局限也来自这个定位:SAM 追求通用性而不是某个数据集的最高 IoU,细小结构可能漏掉,偶尔会产生小的断裂或幻觉区域;重型 Image Encoder 也让完整端到端推理并非真正实时。 另外,论文中的 text-to-mask 只是探索性结果,还不能等价于后续开放词表分割模型。

推荐指数:

SAM 2#

Arxiv ID 2408.00714
幻觉翻译 2408.00714
publication ICLR2025

将 SAM 扩展到图像与视频,核心是带 Streaming Memory 的交互式视频分割模型。

SAM 2 的出发点是:SAM 只解决静态图像中的 Promptable Segmentation,但真实视觉世界往往是视频。 视频分割不仅要在某一帧中找到目标,还要在时间维度上持续定位同一个对象。 这会引入图像分割没有的困难,例如运动、形变、遮挡、目标消失后重现、相机抖动、运动模糊和长序列效率问题。 因此,SAM 2 把任务从 Segment Anything 扩展为 Promptable Visual Segmentation,也就是用户可以在视频任意帧提供点、框或 Mask,模型需要立即响应当前帧 Mask,并把目标传播到整段视频,得到一个跨时间的 Masklet。 如果传播过程中出错,用户还可以在任意后续帧继续点击修正,模型要利用已有记忆快速恢复,而不是像「SAM + tracker」那样从新帧重新开始分割。 模型上,SAM 2 可以理解成给 SAM 加上 Streaming Memory。 对每一帧,Image Encoder 只负责提取未条件化的 frame embedding;论文使用 MAE 预训练的 Hiera 作为图像编码器,相比原 SAM 的 ViT 更适合多尺度和高效视频处理。 当前帧特征不会直接送入 Mask Decoder,而是先经过 Memory Attention。 Memory Attention 使用 Transformer block,让当前帧 token 通过 self-attention 建模本帧信息,再通过 cross-attention 读取 Memory Bank 中的历史帧记忆、被提示帧记忆和 object pointers,从而把「当前看到了什么」与「之前这个目标长什么样、在哪里、是否被用户修正过」结合起来。

Memory Bank 是 SAM 2 的核心数据结构。 它维护两类空间记忆:一类是最近若干未提示帧的 FIFO 记忆,用来表示短期运动和外观变化;另一类是用户提示过的关键帧记忆,用来长期锚定目标身份。 除了空间特征,SAM 2 还保存 object pointers,也就是从 Mask Decoder 输出 token 得到的轻量向量,用来提供高层语义级的目标身份信息。 每一帧预测完成后,Memory Encoder 会把当前预测 Mask 下采样,并与该帧未条件化的图像特征相加,再用轻量卷积融合,生成下一步可写入 Memory Bank 的记忆。 这形成了一个流式循环:读入一帧 → 查询记忆 → 预测 Mask → 编码新记忆 → 继续处理下一帧。

Prompt Encoder 和 Mask Decoder 大体沿用 SAM。 点、框等 sparse prompts 通过位置编码和提示类型 Embedding 表示,Mask 通过卷积编码后加到 frame embedding 上。 Mask Decoder 继续使用 two-way Transformer,在 Prompt Token 和 frame embedding 之间双向交互,并输出 Mask、IoU 分数和目标可见性信息。 对于单点这类歧义提示,SAM 2 仍然预测多个候选 Mask;但在视频里,歧义不仅发生在空间上,也可能沿时间传播,因此如果用户没有额外提示消除歧义,模型会根据预测 IoU 选择一个候选继续传播。 当某帧目标被遮挡或不可见时,遮挡 / 可见性预测头也会参与判断,避免错误地强行生成目标 Mask。

训练时,SAM 2 同时使用图像和视频数据,并模拟交互式视频标注过程。 论文默认采样 8 帧序列,随机选择最多 2 帧作为提示帧,并在训练过程中根据 GT masklet 和模型预测采样纠错点击。 初始提示的分布是:50% 使用 GT Mask,25% 使用 GT 内的正点,25% 使用 bounding box。 模型需要按时间顺序逐帧预测完整 masklet,并在收到纠错点击后利用新的提示和已有 memory 修正后续结果。 损失包括 Mask 的 focal loss 和 dice loss、IoU 预测的 L1/MAE loss,以及目标是否存在的 occlusion / object prediction cross-entropy,权重比例为 20:1:1:1。 为增强长视频能力,作者还加入 16 帧序列微调:选择编辑帧最多、最困难的一半 masklets,用较低学习率训练,并冻结图像编码器以适配 A100 80GB 显存。

数据引擎是 SAM 2 的另一条主线。 Phase 1 使用原始 SAM 逐帧辅助标注视频,每帧都要重新分割,质量高但慢,平均 37.8 秒 / 帧,在 1.4K 视频上收集 16K masklets。 Phase 2 引入只能接收 Mask prompt 的 SAM 2 Mask:标注员先用 SAM 标第一帧,再让模型传播到后续帧,错误时仍需要在中间帧重新画 Mask,速度降到 7.4 秒 / 帧,收集 63.5K masklets。 Phase 3 使用完整 SAM 2,标注员可以直接用点或 Mask 在任意帧修正,模型利用 memory 继续传播,速度降到 4.5 秒 / 帧,相比 Phase 1 快 8.4 倍,同时保持可比质量,收集 197K masklets。 此外,作者还用规则点网格在首帧自动生成候选 masklets,并经过人工验证筛选,既增加覆盖度,也能把失败样本送回人工修正流程。 最终 SA-V 数据集包含 50.9K 视频、642.6K masklets 和 35.5M masks,是已有最大 VOS 数据集 Mask 数量的 53 倍;其中手工部分为 190.9K masklets 和 10.0M masks。

实验上,SAM 2 的重点是 Zero-shot 视频和图像分割。 在 promptable video segmentation 中,SAM 2 在 9 个密集标注视频数据集上同时优于 SAM+XMem++ 和 SAM+Cutie,并且达到更好精度所需交互次数少于前者的三分之一。 在只给第一帧提示的 semi-supervised VOS 设定中,SAM 2 在 17 个视频数据集平均表现也最好:1-click 为 64.7,3-click 为 75.3,5-click 为 77.6,box 为 74.4,GT mask 为 79.3,均高于 SAM+XMem++ 和 SAM+Cutie。 在图像 Segment Anything 任务中,如果只用 SA-1B 训练,SAM 2 的 1-click mIoU 为 58.9,略高于 SAM 的 58.1,但速度从 21.7 FPS 提升到 130.1 FPS;使用作者的视频和图像混合数据后,SA-23 上升到 61.9,14 个新增视频图像化数据集上升到 69.6。 在传统 VOS SOTA 对比中,SAM 2 Hiera-L 在 MOSE val、DAVIS 2017 val、LVOS val、SA-V val/test 和 YTVOS 2019 val 上分别达到 77.9、90.7、78.0、77.9、78.4 和 89.3,并且 Hiera-B+ / Hiera-L 都能在 A100 上实时运行,分别约 43.8 / 30.2 FPS。

这篇论文最值得学习的是它把 SAM 的「可提示接口」推广成了一个流式时序系统。 SAM 负责在单帧里根据 Prompt 找到目标,SAM 2 则进一步回答:当目标在视频里移动、遮挡、消失、重现时,模型如何记住它、如何接受用户在任意帧修正、如何把修正继续传播。 它的局限也主要来自视频长期建模:跨镜头切换、拥挤场景、长时间遮挡、快速移动的细小结构和多个外观相似目标仍然困难。 另外,SAM 2 虽然可以处理多目标,但基本是逐目标独立处理,只共享每帧图像特征,目标之间缺少显式交互。 因此 SAM 2 更像是一个通用交互式视频分割基础设施,而不是完全解决所有开放世界视频理解问题的最终模型。

推荐指数:

SAM 3#

Arxiv ID 2511.16719
幻觉翻译 2511.16719
publication ICLR2026

从点框提示扩展到文本与示例图像概念提示,统一图像和视频中的开放词表检测、分割与跟踪。

SAM 3 的目标不是继续加强「点一下分一个物体」这种 PVS 接口,而是把 SAM 系列推进到 Concept Prompt。 SAM 和 SAM 2 的提示主要是点、框、Mask,用来指定一个具体实例;SAM 3 的 Promptable Concept Segmentation 则要求模型根据概念提示,在图像或短视频中检测、分割并跟踪所有匹配实例。 概念提示可以是短 noun phrase,例如 yellow school bus,也可以是图像 exemplar,或者两者结合。 因此,SAM 3 的输出不再只是一个 Mask,而是一组具有身份 ID 的 instance masks / masklets:如果用户输入「cat」,模型要找出所有猫;如果输入视频,还要在时间上保持每只猫的身份一致。

PCS 和 PVS 的本质差异在于「一个提示对应一个实例」变成了「一个概念对应所有实例」。 这带来两个新难点。 第一是开放词表识别:模型要判断输入中是否存在某个短语对应的概念,尤其要处理大量 hard negatives,例如图中没有该概念、相似概念或细粒度概念。 第二是实例穷尽性:只分出一个目标是不够的,模型必须尽量找到所有匹配实例,还要允许用户通过正负 exemplar 交互式补充漏检或移除误检。 论文明确限制文本提示为简单名词短语,不直接解决长 referring expression 或需要复杂推理的语言查询;复杂查询可以用 MLLM 拆成多个 noun phrases 后再调用 SAM 3。 模型结构由 detector 和 tracker 组成,两者共享一个对齐过的 Perception Encoder 视觉语言 backbone。 Detector 是 DETR 风格的开放词表检测/分割器:图像和文本由 PE 编码,image exemplars 如果存在,则由 exemplar encoder 编码;文本 token 和 exemplar token 合称 prompt tokens。 Fusion Encoder 让图像特征 cross-attend 到 prompt tokens,得到条件化图像特征;随后 DETR-like decoder 用 object queries 在条件化图像特征上定位匹配实例。 每层 decoder 都预测 query 是否匹配当前 prompt、box refinement;Mask head 借鉴 MaskFormer 产生实例 Mask,此外还有 semantic segmentation head 逐像素预测是否属于当前概念。

Presence Token 是 SAM 3 中很关键的设计。 普通 DETR query 同时承担「识别是什么」和「定位在哪里」两个任务,但开放词表场景下,识别需要看全图上下文,定位却是局部问题,两者容易冲突。 SAM 3 引入一个全局 learned presence token,专门预测 noun phrase 是否存在于输入中,即全局 presence score。 各个 object query 只负责在「该概念存在」的条件下定位候选实例,最终实例分数由 query score 和 presence score 相乘得到。 这样 recognition 和 localization 被解耦,尤其有利于 hard negatives:当图中根本没有该概念时,presence head 可以整体压低预测,而不是让局部 query 硬找一个相似物体。

Image exemplar 让 SAM 3 具备交互式概念适配能力。 一个 exemplar 由 bounding box 和二元标签组成,标签可以是 positive 或 negative。 Positive exemplar 表示「找和这个框中目标同类的所有实例」,negative exemplar 表示「不要找这类误检」。 Exemplar encoder 会融合 box 位置编码、正负标签编码和 ROI-pooled 视觉特征,再用小 Transformer 得到 exemplar prompt,最后和文本 prompt 拼接。 这和 SAM/SAM2 的视觉提示不同:SAM 的框通常只定位一个实例,而 SAM 3 的 exemplar 会泛化成概念提示,例如给一个狗的正框后,模型应当找出图中所有狗。

视频部分可以理解为「detector 负责发现新实例,tracker 负责维持身份」。 在每一帧,detector 根据概念 prompt 检测当前帧所有匹配对象;tracker 则沿用 SAM 2 风格的 memory-based propagation,把上一帧已有 masklets 传播到当前帧。 随后,SAM 3 用 IoU-based matching 将传播结果和当前帧检测结果合并:已匹配的 masklet 更新位置,未匹配的新检测会 spawn 成新的 masklet。 为了降低拥挤场景中的身份混淆,模型还使用 temporal disambiguation:一方面用 masklet detection score 衡量某个轨迹在时间窗口内是否持续被检测支持,低于阈值则抑制;另一方面周期性用高置信 detector mask 重新 prompt tracker,替换 tracker 自己可能漂移的预测,让 memory bank 保持新鲜可靠。 用户也可以继续用正负 click 细化单个 mask 或 masklet,视频中修正后的 Mask 会继续传播到整段视频。

训练分四个阶段:先预训练 Perception Encoder,再做 detector pre-training,然后 detector fine-tuning,最后冻结 backbone 训练 tracker。 数据引擎也对应地从图像走向视频。 Phase 1 使用 captioner/parser 提出 noun phrases,用开放词表检测器加 SAM 2 生成初始 Mask,人类执行 Mask Verification 和 Exhaustivity Verification,得到 4.3M image-NP pairs。 Phase 2 用 Phase 1 的人类验证数据微调 Llama 3.2,形成 AI verifiers 自动做 MV 和 EV,让人类专注困难样本;同时用 Llama-based pipeline 生成 hard negative NPs,并多轮更新 SAM 3,新增 122M image-NP pairs。 Phase 3 扩展到 15 个图像域,并从 alt-text 和基于 Wikidata 的 22.4M 节点 SA-Co ontology 中挖掘长尾细粒度概念,新增 19.5M image-NP pairs。 Phase 4 扩展到视频,通过运动/场景过滤和失败样本挖掘生成视频 masklets,最终得到 SA-Co/VIDEO。

SA-Co 数据集的规模很大。 高质量图像数据 SA-Co/HQ 包含 5.2M images、4M unique NPs、146.1M image-NP pairs 和 52.3M masks。 合成数据 SA-Co/SYN 由成熟数据引擎和 AI verifiers 生成,包含 39.4M images、38M NPs、1.7B image-NP pairs 和 1.4B masks。 外部数据 SA-Co/EXT 包含 9.3M images、497.4K NPs 和 70.5M masks。 视频数据 SA-Co/VIDEO 包含 52.5K videos、24.8K NPs、134K video-NP pairs 和 467K masklets。 评测集覆盖 207K unique phrases、121K images/videos 和超过 3M media-phrase pairs,并显式包含大量 hard negatives。

实验上,SAM 3 在图像 PCS with text 中显著优于已有开放词表系统。 在 SA-Co/Gold 实例分割上,SAM 3 的 cgF1 为 54.1,而最强基线 OWLv2* 为 24.6,Human oracle 为 72.8;也就是说 SAM 3 超过最强基线两倍,并达到约 74% 的人类表现。 在 LVIS instance segmentation 上,SAM 3 的 cgF1/AP 为 37.2/48.5;在 box detection 上,LVIS cgF1/AP 为 40.6/53.6,COCO AP 为 56.4。 语义分割上,SAM 3 在 ADE-847、PascalConcept-59 和 Cityscapes 上分别达到 13.8、60.8 和 65.2 mIoU,超过强 specialist baseline APE。

Exemplar 和交互结果体现了 SAM 3 的新接口价值。 单个 exemplar 提示下,SAM 3 在 COCO、LVIS 和 ODinW13 上相对 T-Rex2 分别提升 +18.3、+10.3 和 +20.5 AP+。 从文本 prompt 开始逐步添加 exemplar 时,3 次点击后 cgF1 比 text-only 高 +21.6,也比理想化的 PVS 单实例修正高 +2.0。 原因是 PCS exemplar 不只是修正一个实例,而是会泛化到类似目标:正样本能补一类漏检,负样本能压一类误检。 计数任务也受益于「先分割再计数」:SAM 3 在 CountBench 上 MAE 0.12、Accuracy 93.8%,并且能给出实例 Mask,而多数 MLLM 只能输出数字。

视频 PCS 中,SAM 3 也把文本概念扩展到开放词表视频分割。 在 SA-Co/VEval 的三个子集上,SAM 3 分别达到 SA-V 30.3 cgF1 / 58.0 pHOTA、YT-Temporal-1B 50.8 / 69.9、SmartGlasses 36.4 / 63.6。 在公开 benchmark 上,SAM 3 在 LVVIS test mAP 为 36.3,BURST test HOTA 为 44.5,OVIS val mAP 为 60.5,整体明显优于 GLEE、LLMDet + SAM 3 Tracker 以及 tracking-by-detection 替代方案。 在传统 PVS/VOS 能力上,SAM 3 也没有退化:VOS 中在 MOSEv1、DAVIS17、LVOSv2、SA-V val/test、YTVOS19、MOSEv2 上分别达到 78.4、92.2、88.5、83.5、84.4、89.7、60.3,其中 MOSEv2 比 prior work 高 6.5 点。 在 SA-37 交互式图像分割上,SAM 3 的 1/3/5-click mIoU 为 66.1、81.3、85.1,3-click 和 5-click 超过 SAM 2.1 L。

消融说明这篇论文的关键收益确实来自「识别-定位解耦、hard negatives、数据引擎」三件事。 Presence head 让 cgF1 从 50.7 提升到 52.2,IL_MCC 从 0.77 到 0.82。 Hard negatives 数量从 0 增加到 30/img 时,cgF1 从 28.3 提升到 43.0,主要提升来自 image-level recognition。 训练数据方面,仅 EXT 为 23.7 cgF1,加入 SYN 后到 32.8,加入 HQ 后到 45.5,EXT+SYN+HQ 达到 47.4。 AI verifiers 也很关键:在伪标签上加入 EV verifier 可把 cgF1 从 54.0 提到 61.2,再加入 MV verifier 到 62.3,论文认为 AI verifiers 关闭了模型与人类表现差距的大约一半。

我觉得 SAM 3 的核心贡献是把 SAM 系列从「视觉位置提示」推进到「开放词表概念提示」。 SAM 解决单图实例分割,SAM 2 解决视频中同一实例的记忆与传播,SAM 3 则进一步解决「给一个概念,找出所有实例,并在视频里保持身份」的问题。 局限也很清楚:它不擅长 out-of-domain 术语,需要额外 domain expansion 或 fine-tuning;文本输入被限制为简单 noun phrases,复杂推理查询要借助 MLLM agent;视频中推理成本随被跟踪对象数量线性增长;概念本身还存在天然歧义,例如类别边界、主观形容词和上下文依赖。 所以 SAM 3 更像是开放词表实例分割/视频分割的基础接口,而不是通用视觉推理模型。

推荐指数:

SAM 3D#

Arxiv ID 2511.16624
幻觉翻译 2511.16624
publication pending

SAM 系列的 3D 重建方向工作,从单张自然图像预测物体几何、纹理与布局。

SAM 3D 的目标是把 SAM 系列从 2D/Video 分割进一步扩展到真实图像中的 3D Object Reconstruction。 给定一张自然图像 I 和目标物体 Mask M,模型要恢复完整 3D 形状、纹理,以及该物体相对于相机的布局,也就是旋转、平移和尺度。 这不是只预测可见表面的 2.5D depth,而是要补全被遮挡或背面不可见的完整 3D object,因此可以从任意视角重新渲染。 论文把这个问题形式化为条件生成分布 p(S, T, R, t, s | I, M)S 是 shape,T 是 texture,R/t/s 是 camera coordinates 下的 pose/layout。

这篇工作的核心动机是 3D 的「数据壁垒」。 多视角几何或合成数据可以提供 3D 监督,但真实世界中大量物体只出现在单张自然图像里,而且常常有遮挡、场景杂乱、尺度变化和上下文依赖。 已有 image-to-3D 模型多在 isolated object renders 上训练,对居中、干净的物体效果不错,但在自然场景中距离远、遮挡重、只露出一部分的物体上容易失败。 SAM 3D 的直觉是:人类能从单图恢复 3D,很大程度依赖 recognition cue 和 context cue;模型也应当从目标局部外观、完整场景上下文和物体类别先验中联合推断 3D。

模型输入编码分成 cropped object 和 full image 两路。 第一路把目标 Mask 裁剪出的物体图像和裁剪后的 binary mask 一起送入 DINOv2 encoder,提供高分辨率、聚焦目标的细节信息。 第二路把完整图像和 full-image binary mask 送入 encoder,提供全局场景上下文、尺度、遮挡关系和识别线索。 模型还可以选择性接收 point map P,这个点图可以来自 LiDAR、iPhone 深度传感器或单目深度模型,用于辅助布局估计;但论文也强调形状和纹理质量并不强依赖 point map。

整体架构是两阶段 latent flow matching。 第一阶段是 Geometry Model,建模 p(O, R, t, s | I, M):其中 O64^3 的 coarse shape voxel,R 使用 6D rotation representation,t 是平移,s 是尺度。 Geometry Model 是一个约 1.2B 参数的 flow transformer,采用 Mixture-of-Transformers 架构,在输入图像/Mask 条件下联合生成粗形状和布局。 第二阶段是 Texture & Refinement Model,建模 p(S, T | I, M, O):它先从 coarse shape 中抽取 active voxels,再用约 600M 参数的 sparse latent flow transformer 细化几何并合成纹理。 最后,结构化 latent 可以通过两个 VAE decoder 输出 mesh 或 3D Gaussian splats;两个 decoder 共享同一个 VAE encoder,因此处在相同的 structured latent space 中。

训练流程非常像大模型训练范式:pretraining、mid-training、post-training,再加 alignment 和 distillation。 Pretraining 使用 isolated synthetic 3D assets,作者从 Objaverse-XL 和授权数据中收集 2.7M object meshes,每个物体渲染 24 个视角,构成 Iso-3DO,用 2.5T training tokens 学习基本形状和纹理生成能力。 Mid-training 构造 semi-synthetic 的 render-and-paste 数据 RP-3DO,把带纹理 mesh alpha-composite 到自然图像里,包含遮挡-被遮挡对,以及把真实物体替换成位置和尺度相似的合成物体。 RP-3DO 有 61M samples 和 2.8M unique meshes,用 2.7T training tokens 训练 mask-following、occlusion robustness、layout estimation 和 visual cue usage。 这一步之后,模型已经见过所有输入/输出模态,但仍然主要是合成或半合成数据,因此需要真实图像 post-training。

Post-training 是 SAM 3D 最重要的数据飞轮。 3D 标注不像 2D Mask 标注,普通标注员很难直接建 mesh,但他们可以在多个候选 3D 模型里选择最像图中物体的那个,并给出质量评分。 因此,数据引擎会先用当前模型和一组已有 learned / retrieval-based models 生成候选形状与纹理,再让人类从 N=8 个候选中选最好的一个。 如果质量评分超过阈值,最佳候选成为正样本 D+ = (I, M, S, T, R, t, s);其他较差候选变成偏好优化中的负样本 D-。 早期由于模型还弱,候选主要来自 ensemble;随着迭代推进,SAM 3D 自己最终贡献了约 80% 的标注数据。 整个真实数据收集最终覆盖接近 1M images,约 3.14M untextured meshes 和约 100K textured meshes。

真实数据引擎被拆成三个标注子任务。 Stage 1 选择目标物体 (I, M):从多种真实图像数据源采样,并用 3D-oriented taxonomy 平衡物体分布,Mask 来自已有分割标注或人类选择。 Stage 2 选择形状和纹理 (S, T):人类在多个模型候选中选择最符合输入图像和 Mask 的 3D object,并拒绝低质量候选。 Stage 2.5 处理 hard examples:当没有模型能生成合理形状时,样本会被路由给专业 3D artists 直接标注,形成高质量 Art-3DO。 Stage 3 标注布局 (R, t, s):给定 Stage 2 的 object shape,标注员在 point cloud 中操作物体的平移、旋转和尺度,让 3D object 与 2.5D 场景对齐。

模型更新同样分阶段。 SFT 先用噪声较大的非专家 MITL-3DO 数据缩小 synthetic-to-real gap,再用更小但质量更高的 Art-3DO 数据强化审美和几何质量,减少 floaters、bottomless meshes、缺失对称性等常见失败。 随后使用 DPO 做 preference alignment,把 Stage 2 中人类选择的 D+ 和较差候选 D- 作为偏好对,优化人类更敏感但普通 flow matching 难以直接刻画的属性,例如闭合性、对称性和整体可用性。 最后,Geometry Model 做 distillation,将推理时的 function evaluations 从 25 降到 4,使 shape 和 layout 可以做到 sub-second 级生成。

实验中,作者构建了新的 SA-3DAO benchmark:1000 个由专业 3D artists 从自然图像恢复并对齐的无纹理 3D objects。 这个 benchmark 比 isolated render 更接近真实使用场景,包含室内外场景、遮挡、小物体、稀有文化物体、衣物、滑雪缆车、自动扶梯等复杂目标。 在 SA-3DAO shape 指标上,SAM 3D 明显优于 Trellis、Hunyuan3D、Direct3D-S2、TripoSG、Hi3DGen 等方法:[email protected] 为 0.2344,vIoU 为 0.2311,Chamfer 为 0.0400,EMD 为 0.1211。 相比最强基线,F1 和 vIoU 提升很大,Chamfer / EMD 也显著更低,说明它不仅能生成看起来像的形状,也更接近 artist ground truth 几何。 在 ISO3D isolated object 上,SAM 3D 的 Uni3D 为 0.3707,基本达到或略超 SOTA,说明它强化真实场景能力的同时没有牺牲干净物体能力。

布局估计是 SAM 3D 区别于普通 image-to-3D 生成器的重要部分。 在 SA-3DAO 上,SAM 3D joint layout 的 3D IoU 为 0.4254、ICP-Rot 为 20.77、ADD-S 为 0.2661、[email protected] 为 0.7232,显著优于「先生成 mesh 再用 FoundationPose/Megapose 对齐」的 pipeline。 在 Aria Digital Twin 上,SAM 3D 的 3D IoU 为 0.4970、[email protected] 为 0.7673;论文强调这相当于把真实场景 joint shape+layout 能力从非常低的可用率提升到大幅可用。 如果再做 test-time layout optimization,ADT 上 3D IoU 可从 0.4837 提到 0.5258,2D IoU 从 0.5143 提到 0.6487。

人类偏好实验也支持这个结论。 在真实物体和场景中,SAM 3D 的 object reconstruction 相比 prior SOTA 至少有 5:1 win rate,scene reconstruction 有约 6:1 win rate。 纹理评价中,在给定 SAM 3D shape 的条件下,标注员也明显偏好 SAM 3D 的 Texture & Refinement:相对 Trellis,在 ISO3D、Preference Set、SA-3DAO、LVIS 上胜率分别为 81.1%、87.0%、86.2%、89.1%;相对 Hunyuan3D-2.1,在后三个真实/偏好集合上也都是 86% 以上。

消融实验说明多阶段训练是必要的。 只做 Iso-3DO pretraining 时,SA-3DAO [email protected] 只有 0.1349,vIoU 0.1202。 加入 RP-3DO mid-training 后提升到 0.1705 / 0.1683;加入 MITL-3DO SFT 到 0.2027 / 0.2025;MITL DPO 到 0.2156 / 0.2156;Art-3DO SFT 到 0.2331 / 0.2337;最终 Art-3DO DPO 达到 0.2344 / 0.2311,同时 Chamfer 降到 0.0400。 去掉 MITL-3DO、Art-3DO 或 DPO 都会退化,其中去掉 Art-3DO 影响最大,说明高质量 artist data 对真实世界形状质量非常关键。

这篇论文对我的启发是:3D foundation model 的核心瓶颈不是网络结构本身,而是如何把真实图像和可信 3D supervision 连接起来。 SAM 3D 的数据引擎把「让人直接建模」改成了「让人从模型候选中选择并评分」,再把选择结果变成 SFT 数据和 DPO 偏好对,这和 RLHF / data flywheel 的思想非常接近。 因此它不是简单的 image-to-3D 模型,而是一套把 2D Mask、候选 3D、point map、人类偏好和专业 artist 数据组合起来的真实世界 3D 对齐系统。 局限也很明确:Geometry Model 的 coarse shape 是 64^3,细结构、薄结构、手和脸等对分辨率敏感的部分可能失真;模型逐物体预测 layout,不显式推理多物体接触、稳定性、互穿或共平面;texture 预测不知道最终 pose,所以旋转对称物体有时会出现纹理朝向错误。 总体看,SAM 3D 是 SAM 系列从「分割物体」走向「把分割出的物体 3D 化」的重要一步,尤其适合机器人、AR/VR、游戏、影视和交互式媒体中的真实场景 3D 感知。

推荐指数:

PointNet#

Arxiv ID 1612.00593
幻觉翻译 1612.00593
publication CVPR2017

直接在无序点集上学习点云特征,是点云深度学习的基础工作。

PointNet 的核心问题是:点云天然是无序集合,不能像图像那样直接套卷积网格,也不应该为了使用 CNN 而强行 voxelize 或投影成多视角图像。 论文直接把点云表示为 {P_i},每个点通常只有 (x, y, z),然后学习一个对输入顺序不敏感的 set function。 方法非常简洁:每个点共享同一个 MLP 得到 point feature,然后用 symmetric function 聚合全局信息。 PointNet 选择的是 element-wise max pooling,因此整体可以写成 f(S) = gamma(MAX_i h(x_i))。 这个设计保证 permutation invariance,也让模型只依赖一组 critical points 来决定全局形状特征,所以对删除非关键点、加入少量噪声点比较鲁棒。 为了处理几何变换,模型还加入 T-Net:一个小 PointNet 预测输入点的 3×3 affine transform;feature transform 则预测高维特征对齐矩阵,并用 ||I - AA^T||_F^2 约束它接近正交。

分类任务中,PointNet 先得到全局 feature 再做 object classification;分割任务中,则把全局 feature 拼回每个点的局部 feature 上,再逐点预测 part / semantic label。 代表结果是 ModelNet40 overall accuracy 89.2%,ShapeNet part segmentation mean IoU 83.7%。 它的意义不在于复杂结构,而在于证明「共享 MLP + max pooling」就能直接吃 unordered point set,并成为后续点云网络的基本 building block。

推荐指数:

PointNet++#

Arxiv ID 1706.02413
幻觉翻译 1706.02413
publication NeurIPS2017

在 PointNet 基础上引入层级局部结构建模,补上点云局部几何感知能力。

PointNet++ 的动机很直接:PointNet 虽然解决了点集无序性,但它主要做全局聚合,没有显式建模 metric space 中的局部邻域结构。 点云里的局部几何非常重要,例如椅子腿、桌面边缘、墙角和家具边界;同时真实扫描点云往往采样密度不均匀,固定尺度的局部特征很容易失效。 PointNet++ 把 PointNet 变成层级局部算子。 每个 set abstraction level 包含三步:Sampling layer 用 farthest point sampling 选 centroids,保证覆盖整个点集;Grouping layer 用 ball query 按半径找局部邻域;PointNet layer 在每个局部邻域内运行 mini-PointNet,把可变数量的邻域点编码成固定长度 local feature。 堆叠多个 set abstraction level 后,点的数量逐层减少,receptive field 逐层增大,类似点云版本的层级 CNN。

为了解决非均匀密度,论文提出两种 density adaptive 设计。 MSG 在同一层用多个半径做 grouping,然后拼接多尺度特征;训练时使用 random input dropout,让模型学会在稀疏/稠密采样下选择合适尺度。 MRG 则把当前层局部 PointNet 特征和下一层更粗分辨率的特征拼接,计算更省,在低密度区域更依赖粗尺度信息,在高密度区域保留细节。 分割任务中,PointNet++ 还用 feature propagation,把高层稀疏点特征通过 kNN inverse-distance interpolation 传播回原始点,并和 skip features 拼接后逐点分类。

代表结果上,PointNet++ 在 ModelNet40 上达到 90.7% accuracy,加入 normal 后达到 91.9%,超过 PointNet 的 89.2%。 在 ScanNet scene labeling 中,它比 PointNet 更能分出家具等局部物体,而不是只抓住房间整体布局。 总体来看,PointNet 是点云深度学习的「集合函数」基线,PointNet++ 则补上了局部结构、多尺度和密度鲁棒性,是后续点云 backbone 的重要起点。

推荐指数:

Point-BERT#

Arxiv ID 2111.14819
幻觉翻译 2111.14819
publication CVPR2022

把 BERT 风格的 Masked Point Modeling 引入 3D 点云 Transformer 预训练。

Point-BERT 的目标是把 BERT 式 masked modeling 搬到点云 Transformer,但点云没有天然词表,单点也不像词一样有语义。 因此它先把点云切成局部 patch:FPS 选中心点,kNN 取邻域,再用 mini-PointNet 得到 patch embedding。 关键设计是 dVAE tokenizer:用 DGCNN + FoldingNet 学一个离散几何词表,把局部 patch 映射成 point token。 预训练时随机遮住一部分 patch,让 Transformer 根据可见 patch 预测被遮住位置的离散 token,这就是 Masked Point Modeling。 论文还发现只做 MPM 偏低层几何,所以额外加入 point patch mixing 和 MoCo 风格对比损失,帮助学习更高层语义。 消融里,标准 Transformer 从头训练在 ModelNet40 上是 91.41%;加入 MPM 到 92.58%,再加 patch mixing 到 92.91%,最后加 MoCo 到 93.24%。 最终 Point-BERT 在 ModelNet40 上达到 93.2%(1k 点)/ 93.8%(8k 点),ScanObjectNN 最难的 PB-T50-RS 为 83.07%,ShapeNetPart instance mIoU 为 85.6%。

直观理解:Point-BERT 的贡献是定义了「点云词表 + masked token prediction」这条路线,让标准 Transformer 能通过自监督预训练获得点云表征。 缺点也比较明显:dVAE tokenizer 训练复杂、依赖额外 DGCNN/FoldingNet,整体预训练流程不够简洁。

推荐指数:

Point-MAE#

Arxiv ID 2203.06604
幻觉翻译 2203.06604
publication ECCV2022

点云版 MAE,通过 Masked Autoencoding 学习可迁移的 3D 表征。

Point-MAE 可以看成对 Point-BERT 的简化和强化:它不再学习离散 tokenizer,也不预测 token ID,而是直接重建被 mask 的局部点云坐标。 输入仍然先用 FPS + kNN 划分成 point patches,patch 内坐标相对中心点归一化;可见 patch 用轻量 PointNet embedding,中心点坐标通过 MLP 提供位置编码。 核心结构是非对称 masked autoencoder。 Encoder 只处理 visible tokens,不接收 mask tokens;轻量 decoder 再接收 encoded visible tokens 和 mask tokens,最后用简单 FC prediction head 输出被遮住 patch 的坐标,并用 Chamfer Distance 做重建损失。 这个设计既省计算,也避免 mask token 过早把位置信息泄漏给 encoder。 论文消融显示,把 mask token 放进 encoder 虽然重建 loss 更低,但 ModelNet40 fine-tune accuracy 只有 92.14%,明显低于 Point-MAE 的 93.19%。

结果上,Point-MAE 在 ModelNet40 上达到 93.8%(8k 点为 94.04%),ScanObjectNN PB-T50-RS 达到 85.18%,比 Point-BERT 高 2.11%;Few-shot 四个设置也全面超过 Point-BERT;ShapeNetPart instance mIoU 为 86.1%。 它的经验结论也很重要:点云 MAE 更适合 random masking + 较高 mask ratio(约 60%–80%),让模型必须从稀疏可见局部推理整体结构。

总体看,Point-BERT 证明了点云 masked pretraining 可行;Point-MAE 则说明不需要复杂离散词表,直接做几何重建也能学到更强、更简洁的 3D 表征。

推荐指数:

PointGPT#

Arxiv ID 2305.11487
幻觉翻译 2305.11487
publication NeurIPS2023

用自回归生成式预训练建模点云 Patch 序列,是 GPT 思路在点云表征学习中的代表。

PointGPT 关心的是:既然 BERT/MAE 式 masked modeling 已经能用于点云,那么 GPT 式 auto-regressive pretraining 能不能也迁移过来。 难点在于点云没有天然序列顺序,而且点云局部冗余较高,简单预测下一个 patch 可能不需要真正理解整体形状。

方法上,它先用 FPS + kNN 把点云分成 point patches,再用 Morton-order curve 按空间邻近关系排序,把无序点云变成 patch 序列。 随后用 extractor-generator Transformer decoder 做自回归生成:extractor 学表征,generator 负责预测后续 patch;预训练后 generator 可以丢掉,主要保留 extractor 给下游任务用。 论文还提出 dual masking,在因果 mask 之外额外遮住一部分可 attending 的历史 tokens,降低点云冗余带来的捷径;同时用 relative direction prompts 给 generator 提示相邻 patch 的方向,但避免直接泄漏目标位置。 生成目标是后续 patch 的点坐标,loss 使用 l1 + l2 Chamfer Distance。

结果上,PointGPT-L 在 ModelNet40 达到 94.9%,ScanObjectNN PB-T50-RS 达到 93.4%,ShapeNetPart instance mIoU 达到 86.6%;few-shot 四个设置也达到当时很强的结果。 需要注意,这些最佳结果来自更大模型、混合数据预训练和 post-pre-training;单纯的 PointGPT-S 更适合作为与 Point-MAE/Point-BERT 同量级比较。 总体看,PointGPT 的价值是把点云预训练从「补洞/重建」推进到「按空间序列自回归生成」,但其排序方式和扩展训练流程也让实现复杂度上升。

推荐指数:

Point Transformer V3#

Arxiv ID 2312.10035
幻觉翻译 2312.10035
publication CVPR2024

强调规模化、序列化邻域映射和效率,是近年点云通用 Backbone 的强基线。

Point Transformer V3 的出发点很有意思:它不是追求更复杂的 attention 机制,而是重新权衡 3D backbone 的准确率、速度、显存和可扩展性。 论文认为,在多数据集联合训练和大感受野成为趋势后,性能更可能来自 scale,而不是精细但昂贵的局部邻域设计。

核心做法是 point cloud serialization。 PTv3 不再坚持完全 permutation invariant 的 KNN 邻域搜索,而是用 space-filling curves 把点云序列化,包括 Z-order、Hilbert 以及 Trans Z-order / Trans Hilbert。 点按 serialization code 排序后,在序列上划分 non-overlapping patches,并做高效 dot-product patch attention。 这样会牺牲一点精确 KNN 邻域,但换来更大的 patch size、更低延迟和更低显存;论文的关键判断是「效率提升后可以靠扩大感受野把精度补回来」。

为了让不同 patch 之间交互,PTv3 在不同 attention block 中切换或打乱 serialization order,其中 Shuffle Order 效果最好。 位置编码方面,它放弃昂贵的相对位置编码 RPE,改用 xCPE:在 attention 前加一层 sparse convolution 和 skip connection,兼顾位置感知与效率。 整体网络仍是 U-Net 风格的四阶段 encoder-decoder。

结果上,PTv3 把有效感受野从 PTv2 的 16 点扩到 1024 点,同时相对 PTv2 约有 3× 速度提升和 10× 显存效率提升。 语义分割中,scratch PTv3 / 预训练 PTv3 在 ScanNet test 上为 77.9% / 79.4%,S3DIS 6-fold 为 77.7% / 80.8%,nuScenes test 为 82.7% / 83.0%,SemanticKITTI test 为 74.2% / 75.5%。 所以 PTv3 的意义不是提出一个更花哨的 Transformer,而是把点云 Transformer 做成真正可规模化、可作为通用 3D backbone 使用的版本。

推荐指数:

PointCLIP#

Arxiv ID 2112.02413
幻觉翻译 2112.02413
publication CVPR2022

把点云投影到多视角深度图后借用 CLIP 进行零样本和小样本 3D 识别。

PointCLIP 是把 2D CLIP 迁移到 3D 点云的早期代表。 它不训练 3D backbone,而是把点云从多个固定视角在线投影成 depth maps,再送入 CLIP image encoder;类别名则放进手写 prompt,比如 point cloud depth map of a [CLASS].,由 CLIP text encoder 得到分类权重。 每个视角独立得到 image-text matching logits,最后用手工 view weights 加权融合。

零样本版本完全不需要 3D 训练,但性能还比较初步:ModelNet10 为 30.23%,ModelNet40 为 20.18%,ScanObjectNN 为 15.38%。 论文真正有用的部分是 few-shot adapter:冻结 CLIP 的图像和文本编码器,只训练一个三层 inter-view adapter。 它先拼接多视角特征得到 global feature,再用残差方式把 global-guided adapted feature 加回每个 view feature,使少量 3D 样本学到的知识和 CLIP 的 2D 预训练知识融合。 在 ModelNet40 上,16-shot PointCLIP 能从 zero-shot 20.18% 提升到 87.20%。

PointCLIP 还有一个有趣发现:它和传统 3D 全监督网络具有互补性。 例如 16-shot PointCLIP 与 PointNet++ ensemble,可把 PointNet++ 从 89.71% 提升到 92.10%;与 CurveNet ensemble,可从 93.84% 提升到 94.08%。 总体看,PointCLIP 的价值不是性能最强,而是证明了「多视角投影 + CLIP 对齐」可以作为 3D open-vocabulary / low-shot 学习的入口。

推荐指数:

PointCLIP V2#

Arxiv ID 2211.11682
幻觉翻译 2211.11682
publication ICCV2023

结合 CLIP 与 GPT Prompt,把开放世界能力扩展到 3D 分类、分割与检测。

PointCLIP V2 是对 PointCLIP 的系统升级:它认为原版主要卡在两个 domain gap 上。 第一是 visual gap,原版投影得到的是稀疏散点 depth map,和 CLIP 预训练时看到的真实图像差异太大;第二是 language gap,a photo of a [CLASS] 或简单加 depth map 的文本不足以描述 3D 形状。

为了解决 visual gap,V2 提出 realistic projection,流程是 Quantize、Densify、Smooth、Squeeze。 它先把点云放入 3D voxel grid,再用 minimum pooling 做 densify,让投影更像有遮挡关系的实体表面;随后用 Gaussian filter 平滑噪声,最后沿深度维 squeeze 成更连续、更像真实图像的 depth map。 消融里,直接正交投影只有 57.35% ModelNet40 zero-shot;加入完整 realistic projection 后到 64.22%。

为了解决 language gap,V2 用 GPT-3 根据 3D command 生成类别相关描述,而不是只用类别名模板。 命令包括 caption generation、question answering、paraphrase generation、words-to-sentence 四类;最终每个类别可得到大量 3D-specific descriptions,再送入 CLIP text encoder。 在 ModelNet40 zero-shot 上,不用 GPT prompt 是 39.11%,四类命令全用后达到 64.22%,说明文本侧对齐非常关键。

结果上,V2 在 zero-shot 3D classification 上大幅超过 PointCLIP:ModelNet10 73.13%,ModelNet40 64.22%,ScanObjectNN PB_T50_RS 35.36%。 它还把同一框架扩展到更多 open-world 任务:ShapeNetPart zero-shot part segmentation instance mIoU 从 PointCLIP 的 31.0% 提升到 49.5%;ScanNet V2 zero-shot detection 达到 AP25 18.97%、AP50 11.53%。 Few-shot 中,V2 还可把 smoothing 变成可学习的 3D 卷积模块,并结合 inter-view adapter;ModelNet40 16-shot 达到 89.55%。

总体看,PointCLIP V2 的核心贡献是同时 prompt CLIP 的视觉侧和语言侧,把原本只能做 3D 分类的 PointCLIP 扩展成统一的 3D open-world learner。 不过它仍依赖投影质量、GPT 生成文本和 CLIP 的 2D 先验,因此对细粒度几何和真实复杂场景的能力仍受 2D-3D 对齐上限约束。

推荐指数:

ULIP#

Arxiv ID 2212.05171
幻觉翻译 2212.05171
publication CVPR2023

统一语言、图像和点云表征,将 3D Backbone 对齐到图文预训练空间。

ULIP 的核心思想是:不再只在点云内部做自监督,而是把 3D encoder 对齐到 CLIP 已经学好的 image-text feature space。 它从 ShapeNet55 构造 image-text-point triplets:点云来自 CAD 模型采样;图像来自多视角渲染,每个物体有 30 张 RGB 和 30 张 depth 候选;文本来自 metadata,并用 64 个 prompt template 生成描述。 训练时冻结 CLIP image/text encoders,只更新 3D backbone,用 point-image 和 point-text contrastive loss 把点云特征拉进同一个语义空间。

ULIP 是 backbone-agnostic 的,可以套在 PointNet++、PointBERT、PointMLP 等网络上。 标准分类中,它在 ScanObjectNN 上把 PointBERT 从 83.1% 提到 86.4%,把 PointMLP 从 85.7% 提到 88.8%;在 ModelNet40 上,PointMLP* + ULIP 达到 94.7%。 Zero-shot 3D classification 是更关键的结果:ModelNet40 上 PointBERT + ULIP 达到 60.4% top-1,而 PointCLIP 只有 20.2%;ScanObjectNN 上 PointNet++(msg) + ULIP 达到 49.9%,也远高于 PointCLIP 的 15.4%。 消融还显示,同时对齐 point-image-text 三种模态总是优于只对齐其中两种。

总体看,ULIP 是 3D 多模态预训练的重要转折点:它证明了 3D backbone 可以通过少量三元组数据继承 CLIP 的开放词表语义,而不必把点云硬投影成 2D 图像再分类。

推荐指数:

Point-Bind & Point-LLM#

Arxiv ID 2309.00615
幻觉翻译 2309.00615
publication pending

将点云与图像、语言、音频、视频等模态对齐,并进一步接入 3D 指令跟随。

Point-Bind 可以看成 ULIP 的多模态扩展:ULIP 主要对齐 image-text-point,Point-Bind 则借助 ImageBind,把 3D point cloud 对齐到图像、文本、音频等更多模态的联合空间。 训练数据由 3D-image-text-audio pairs 构成,其中 3D encoder 使用 I2P-MAE,后接两层 linear projection;ImageBind 的图像、文本、音频 encoders 冻结。 目标函数很直接:让 F_3D 分别和 F_2DF_TF_A 做 contrastive alignment;如果某些类别没有合理音频,就忽略 audio loss。

对齐完成后,Point-Bind 展示了一系列 emergent 能力。 在 ModelNet40 zero-shot classification 上,Point-Bind + I2P-MAE 达到 78.0%,高于 ULIP2 的 66.4% 和 PointCLIP V2 的 64.2%。 在跨模态检索上,Point-Bind 的 mAP 为:3D→3D 63.23,2D→3D 34.59,3D→2D 42.83,Text→3D 64.50;其中 2D→3D 和 Text→3D 分别比 ULIP 高 14.29% 和 13.99%。 它还可以把 3D embedding 与 audio embedding 相加做组合检索,或者把多模态 encoder 接到 CLIP-Forge 这类 decoder 上做 any-to-3D generation。

Point-LLM 是在 Point-Bind 之上的 3D LLM 尝试。 它参考 ImageBind-LLM,把 Point-Bind 的 3D embedding 通过 bind network、visual cache 和 zero-initialized gating 接入 LLaMA;训练阶段不需要 3D instruction data,只用公开 vision-language 数据做参数高效微调。 因此它可以用英文/中文回答关于 3D 点云的问题,也可以把点云和图像/音频一起作为条件进行跨模态推理。 总体看,这篇更像一个系统展示:从 3D 多模态对齐,到 3D 生成、检索、zero-shot 识别,再到 3D 指令跟随。

推荐指数:

OpenScene#

Arxiv ID 2211.15654
幻觉翻译 2211.15654
publication CVPR2023

把 3D 场景点特征对齐到 CLIP 空间,实现开放词表 3D 场景理解。

OpenScene 关注的是开放词表 3D scene understanding,而不是单物体点云分类。 它的目标是给每个 3D point 预测一个和 CLIP/text/image pixel 共嵌入的 dense feature,这样任意文本 query 都可以通过 cosine similarity 在 3D 场景里生成热力图或语义分割。

方法分三步。 首先,用 OpenSeg 或 LSeg 这类开放词表 2D segmentation model 提取每张 RGB 图像的 dense pixel features;然后利用相机位姿和深度,把多视角 pixel features back-project 到 3D points,并做 multi-view average fusion,得到 F_2D。 其次,训练一个 MinkowskiNet18A 只从 3D geometry 输入预测 F_3D,用 cosine loss 蒸馏到 F_2D,这样没有 RGB 时也能做开放词表查询。 最后,用文本 prompt 与 2D/3D features 的相似度决定每个点采用 2D fusion 还是 3D distill feature,形成 2D-3D ensemble。

结果上,在 ScanNet 4 个 unseen 类别的 zero-shot segmentation 中,OpenScene-LSeg 达到 62.8% mIoU,而 3DGenZ 是 7.7%,MSeg voting 是 53.4%。 在标准场景语义分割中,OpenScene-OpenSeg zero-shot 在 nuScenes 上达到 42.1% mIoU / 61.8% mAcc,在 ScanNet 上为 47.5% / 70.7%,在 Matterport 上为 42.6% / 59.2%。 消融显示 2D-3D ensemble 通常优于只用 2D fusion 或 3D distillation;并且随着 label set 扩大,OpenScene 对长尾类别比全监督模型更稳。 总体看,OpenScene 把 CLIP 空间从 2D 图像和单物体 3D 扩展到真实 3D 场景,是开放词表 3D 场景理解的关键基线。

推荐指数:

OpenMask3D#

Arxiv ID 2306.13631
幻觉翻译 2306.13631
publication NeurIPS2023

面向开放词表 3D 实例分割,用多视角 CLIP 特征聚合到 3D 实例 Mask 上。

OpenMask3D 解决的是 OpenScene 的一个自然短板:OpenScene 学的是 per-point semantic feature,适合做语义热力图,但不能天然区分同类物体的多个 instance。 OpenMask3D 因此提出 open-vocabulary 3D instance segmentation:先拿到 class-agnostic 3D instance masks,再给每个 mask 计算一个开放词表 CLIP feature。

具体流程是两阶段。 第一阶段使用预训练 Mask3D 的 mask proposal module,只保留 binary instance masks,丢掉 closed-set class labels 和 confidence scores。 第二阶段对每个 3D mask 计算 mask feature:先根据可见点数量和深度遮挡选择 top-k RGB-D views;再把 3D mask 投影到 2D,并用 SAM 根据投影点生成更干净的 2D object mask;随后围绕 2D mask 做多尺度 crop,用 CLIP visual encoder 提取 crop features,最后跨 crop 和 view 平均,得到 per-mask feature。 查询时只需要把文本或图像 query 编成 CLIP feature,与每个 mask feature 做相似度匹配。

ScanNet200 validation 上,OpenMask3D 达到 AP 15.4、AP50 19.9、AP25 23.1,明显高于用 OpenScene features 加 mask 聚合的 open-vocabulary baselines;尤其 tail AP 为 14.9,而 OpenScene 2D Fusion + masks 是 9.9。 在 Replica 跨数据集测试中,OpenMask3D AP 为 13.1,也高于 OpenScene 变体。 如果 mask proposal 只用 ScanNet20 训练、再评估 ScanNet200,OpenMask3D 在 novel classes 上仍有 11.9 AP,说明它对未见类别主要依赖 CLIP mask feature,而不是 closed-set class head。 消融显示 SAM 2D mask refinement 和 multi-scale crops 都有帮助;oracle masks 实验中,OpenMask3D 的 tail AP 达到 32.9,甚至超过 fully supervised Mask3D 的 tail AP 17.9,说明瓶颈主要在 3D mask proposal 质量。

总体看,OpenMask3D 是从开放词表 3D 语义理解走向开放词表 3D 实例级交互的重要一步:它把 CLIP 的开放语义绑定到 object mask,而不是散落在每个 point 上。

推荐指数:
Paper Reading: CV 1
https://hana-blog.top/blog/paper-reading-cv1
Author 菊花花
Published at December 26, 2025
Comment seems to stuck. Try to refresh?✨