SAM 3D的训练包含3个阶段。
- Pretraining,让模型学会从单一、孤立、纯合成物体的渲染图,重建出准确的 3D 几何形状(shape)+ 高质量纹理(texture)。这是典型的无条件单图到3D生成(unconditional image-to-3D),不加任何 mask、点、框提示。
- Mid-Training,把 Pretraining 阶段那个“只会在纯白背景里生成孤立合成物体”的模型,升级成能处理真实世界复杂照片里物体的基础能力。这是从“玩具数据”迈向真实世界的关键一步。
- Post-Training,该阶段有两个目的。首先是关闭domain gap,即,消除 Mid-training 阶段(RP-3DO 等半合成数据)与自然真实图像之间的分布差距,比如光照不均、噪声、真实遮挡等。然后是让 3D 输出形状质量更符合人类审美和实用需求,比如更光滑的表面、更逼真的纹理、避免畸形等。这是从“技术正确”转向“用户友好”的关键转折,类似于 GPT 系列的 RLHF,但这里更偏向 SFT + 人类反馈循环。
预训练,Pretraining
论文中,他们直接沿用了2024 - 2025年最成功的几篇单图到3D论文的技术路线,例如,
DreamFusion / Magic3D 类的 score distillation sampling(SDS)
LRM/Instant3D 类的 triplane+transformer 大模型架构
Wonder3D / SyncDreamer 类的多视角一致性监督
该阶段的训练数据是一个(I,S,T)(I,S,T)(I,S,T)三元组,分别代表图像,几何,纹理。主要来源Objaverse-XL的270万个高质量带纹理3D模型,这是目前公开最大的带纹理3D资产库。额外他们还内部采购3D模型。
随后他们对每个3D模型做了24个随机视角的高清渲染,纯白背景,物体居中,相机参数(外参,内参)完全已知,他们将这个数据命名为Iso-3DO数据集(isolated 3D Objects)。
总共训练了2.5万亿个token,使用的架构是LRM类似的transformer + triplane架构,2.5万亿tokens越等于训练了2.5亿张图像。
中训练,Mid-training
该阶段是为了让模型能具备一项最重要的能力,Mask-following(跟着掩码走),输入不再是整张干净图像,而是带真实背景的图 + 二值mask(来自SAM2产生的或人工标注),模型只重建mask里面的物体。
数据集包含两个子集,其中一个子集用来遮挡,另一个子集用来替换,大概的意思是,第一个子集是为了模型能够完善子集的Occlusion Robustness,使得模型即使仅看一部分,也能猜出剩余的3D形状,而替换的意思不用过多解释,就是需要被预测的三维模型了。
需要知道的是用来遮挡的,和替换的,本质上都是三维模型,论文中提到了一种“Render-Paste”的方法先将这些三维模型渲染出来,在通过alpha抠图的方式将它们贴到真实背景上。这样保留了真实光照和背景。
Note:这部分有点拗口
此外模型必须能够预测物体在相机坐标系里的平移(translation)和缩放(scale)相当于让模型能够判断物体离相机多远,多大,为后面多物体场景的布局打下基础。以上数据集称为RP-3DO(Render-Paste 3D Objects)
在这个阶段模型又训练了2.7万亿个token,两个阶段加起来总计为5.2万亿个,有些学者觉得这也是为什么SAM3D模型仅有7B左右,但能力超过很多图生3D的模型——数据量和质量都很高。
到这个阶段模型已经掌握了最终推理时的全部输入输出模态。
后训练,Post-training
Post-training的两大核心目标
- 关闭所谓的domain gap,即,消除Mid-training阶段与自然真实图像之间的分布差距(比如光照不均、噪声,真实遮挡等)。
- 对齐人类偏好(align with human preference),让3D输出形状质量更符合人类审美和使用需求(比如更光滑的表面、更逼真的纹理、避免畸形)。
这是从“技术正确”转向“用户友好”的关键转折,类似于GPT系列的RLHF,这里更偏向SFT + 人类反馈循环。
论文提到,Post-training使用的是多阶段微调(multi-stage post-training),并且这几个阶段是多次循环的。
Collection Step,样本制作
论文提到,3D数据标注的最大痛点是普通人不会画mesh,但会选,所以他们让标注员从候选3D模型中选出最像的那个。但是由于第一次迭代的模型所生成的东西很差,能过质量线的很少(code start problem,冷启动难题),所以作者使用别的一些模型来辅助生成,或用3D检索从 Objaverse-XL 中找最像的出来,也就是说,第一轮的数据基本不依赖自己的模型。但是随着训练的不断进行,由SAM3D生成的候选数据才逐渐占据主导。
收集的完整数据包含5项:S(几何),T(纹理),R(旋转),t(平移),s(缩放),数据规模:100万张真实自然图像 + 314万无纹理mesh + 10万带纹理mesh。
样本制作可分为三步
Step1:choosing target objects
即,选图+mask,(I,M)(I,M)(I,M),来源:SA-1B、CO3Dv2、OpenImages、互联网抓取等。用 SAM 2 自动出 mask + 人工验证/补选,确保类别均衡(用了 3D 专用 taxonomy,长尾类别会特意补)。
Step2:object model ranking and selection
即,选3D,(S,T)(S,T)(S,T),分别代表shape(mesh)和texture。到这一步,如果标注过程有界面的话,可能会长这样,左边是原图 + mask,右边是16个候选的3D模型,标注人员根据左边,选出右边最像的,打分,然后旋转角度让它更对齐。坏的候选直接变负样本,好的变GT。
Step2.5:hard example triage(artists)
即,如果存在标注人员也选不出对应3D模型的目标物体时,就需要3D建模人员手动建模或大幅修复。这部分数据称为Art-3DO(大概几万条),一般是一些长条物体,或者在图像上角度较为极端,不好识别的,还有一些具有透明/反光材质的。
Step3:aligning objects to 2.5D scene
将已选择的3D + 原图 + 点云(用Dust3r,MASt3R或Depth Anything V2估出来),让标注员在3D界面里拖拽、旋转、缩放这个mesh,知道和点云、和其他物体完美对齐,得到(R,t,s)(R,t,s)(R,t,s),
论文中还提到,作者把整个数据pipeline抽象成一个数学模型,简化理解,这个数学模型接收 (I,M)(I,M)(I,M) 作为输入,得到3类数据
- D+D^+D+:高质量正样本,(I,M,S,T,R,t,s)(I,M,S,T,R,t,s)(I,M,S,T,R,t,s)。
- rrr:质量分数。
- D−D^-D−:负样本,(I,M,S′,T′,R′,t′,s′)(I,M,S',T',R',t',s')(I,M,S′,T′,R′,t′,s′),用来训练 DPO | KTO | PPO。
Model Improvement Step,训练
Post-training的训练是整体循环的,每一轮循环包含3个阶段
阶段一:SFT
使用 Stage3 对齐的 (I,M,S,T,R,t,s)(I,M,S,T,R,t,s)(I,M,S,T,R,t,s) 进行监控 SFT,采用常规 Regression,L1/Chamfer/CD + flow match,这一步可以将 domain gap 变得很小。
阶段二:DPO(直接偏好优化)
直接拿Stage 2产生的样本训练DPO,能够去除大量“艺术家也没注意到的细微瑕疵”。
阶段三:蒸馏加速(推理速度的提升)
这部分不是很理解,后面再补充
535

被折叠的 条评论
为什么被折叠?



