Lecture 16 · 3D 数据:从 ShapeNet 到 Objaverse-XL · 3D Data

Training Data for AI · Lecture 16。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应 Maps to:Stanford CS525 Winter 2026 Training Data for AI,2/18 客座讲座 Training data for 3D:Matt Deitke(Allen Institute for AI → Meta Superintelligence Labs)3D Data(44 页 slides)。阅读:ShapeNet(2015)、Objaverse(2022)、Zero-1-to-3(2023)、Objaverse-XL(2023)、TRELLIS.2(2025)、From an Image to a Scene: Learning to Imagine the World from a Million 360 Videos(2024)。同一次课的后半段是数据归因的学生报告,已经并入第 13 讲。 依据说明:slides 的文字很少(大部分是图片和动画),讲义的骨架来自 slides 的叙事线(ShapeNet 的局限 → ProcTHOR 的动机 → Objaverse → Zero123 → Objaverse-XL 与 Zero123-XL → 应用 → 360-1M → 对数据研究的看法)。各论文的数字核对过论文正文(Objaverse、Objaverse-XL、TRELLIS.2、360-1M 读了 HTML 全文的相关章节;ShapeNet、Zero-1-to-3 核对了摘要)。第 7 节”统一的视角”、第 8 节”延伸与前沿”和全部代码是我补充的。 配套代码 Code:code/lecture16/(numpy;3 个脚本 + 1 个模块;最长的约 20 秒) 预计阅读时间:2 小时(含运行代码)


0. 本讲导航 · How to read this lecture

0.1 学习目标 Learning goals

  1. 说清楚 3D 数据为什么比图像和文本稀缺得多,以及它从哪里来(艺术家建模、CAD、扫描、程序生成、视频)。
  2. 理解从 ShapeNet(5 万个干净的 CAD 模型、55 类)到 Objaverse(80 万个物体、2 万多个概念)的转变:类别多样性为什么比每类的数量更重要。
  3. 理解 3D 数据怎样变成 2D 模型的训练数据:渲染多视角图像(Zero-1-to-3),以及渲染方式本身就是数据设计。
  4. 理解 Objaverse-XL 的规模化(1000 万个物体)和它带来的数据工程问题:来源、去重、渲染失败、质量启发式、许可证;“对齐微调”。
  5. 能区分”有害的”低质量数据(系统性偏差)和”看起来差但无害的”数据(不偏的噪声、一致的缺陷)。
  6. 理解 360-1M 的思路:用视频代替 3D 模型,从 100 万个 360° 视频里挖掘带位姿的帧对;领域差距与位姿过滤。
  7. 了解讲者对数据研究和 3D 研究的看法,并形成自己的判断。

0.2 先修与本讲范围 Prerequisites & scope

默认你已经会 Assumed本讲不展开 Not covered
第 3 讲:数据集的历史(ImageNet、LAION)3D 表示(网格、NeRF、高斯泼溅)的数学
第 4、6 讲:去重、过滤扩散模型和流匹配的推导
第 15 讲:多样性 vs 数量3D 重建的几何方法(SfM、多视角立体)

0.3 本讲地图 Map

§1  3D 数据为什么稀缺
§2  从 ShapeNet 到 Objaverse:类别的多样性              ← 代码 01 演示 1
§3  从 3D 到 2D:Zero-1-to-3、渲染、规模                ← 代码 01 演示 2、3
§4  Objaverse-XL:从网上收集 1000 万个 3D 资产           ← 代码 02
§5  用视频代替 3D:360-1M                               ← 代码 03
§6  应用与讲者的看法
§7  一个统一的视角
§8  延伸与前沿
§9–13  小结、常见误区、练习、延伸阅读、下一讲预告

0.4 关于数字

论文的数字来自论文正文。代码的数字来自一个小小的 3D 世界(shape_world.py):

  • 物体由 2–5 个零件(盒子或椭球)拼成。一个”类别”是一个零件模板;同一类别的”实例”在模板上加一点扰动(零件挪一点、大小变一点)。共有 5000 个类别,其中 500 个只用于测试(“没见过的类别”)。
  • 渲染:绕竖直轴转一个方位角、从 20° 仰角正交投影,得到 16 × 16 的深度图。
  • 任务:Zero-1-to-3 式的新视角预测——给一张深度图,预测相机绕物体转 90° 之后看到的深度图。看不见的那一面只能靠”见过很多类似的物体”来猜。
  • 模型:线性 + 随机傅里叶特征的岭回归。指标:轮廓 IoU(越高越好)和深度均方误差(越低越好)。参照:直接输出输入的那张图,IoU 0.404;输出训练目标的平均图,0.467;2000 个物体训练的模型 0.613。

真实的 Zero-1-to-3 是微调过的 Stable Diffusion,输入是 RGB 图像;但”从大量多视角渲染里学到 3D 先验”这一点相同。代码固定了随机种子,同一台机器上重复运行输出逐字相同。


1. 3D 数据为什么稀缺 · Why 3D data is scarce

1.1 规模的差距

互联网上有几十亿张图片、几万亿个 token 的文本,3D 模型却少得多。原因很直接:拍一张照片只要按一下快门,做一个 3D 模型要一个熟练的艺术家花几小时到几天,或者要专门的扫描设备。Deitke 的 slides 用一张”3D 物体数据集的规模感”的图说明了这一点:在 Objaverse 之前,最常用的 ShapeNet 只有约 5 万个物体。

1.2 3D 数据从哪里来

来源例子特点
CAD 模型库ShapeNet(来自 3D Warehouse 等)、ABO(亚马逊的商品模型)干净、对齐、有类别,但风格单一、多是人造物体
艺术家建模的资产市场Sketchfab(Objaverse 1.0 的来源)多样、有纹理,质量参差;有许可证问题
代码仓库和 3D 打印社区GitHub、Thingiverse(Objaverse-XL 的主要来源)数量巨大,重复多,很多没有纹理
扫描 / 照片测量Polycam、Google Scanned Objects、博物馆的数字化藏品真实,但常有空洞和背景
程序生成ProcTHOR(程序生成的房屋)、TexVerse 等无限多,但多样性受生成规则限制
视频360-1M(YouTube 上的 360° 视频)真实世界的场景,但没有 3D 标注,位姿要估计(§5)

格式也五花八门:网格(.obj、.glb、.fbx、.blend)、点云、体素、CAD 的参数化表示;材质和纹理可能缺失;坐标系(哪个轴朝上)和尺度不统一;有的文件是整个场景,有的带动画。3D 数据工程的很大一部分工作是”把它们变成统一的、能渲染的东西”。


2. 从 ShapeNet 到 Objaverse · From ShapeNet to Objaverse

2.1 ShapeNet(2015)

ShapeNet(Chang et al. 2015)是 3D 视觉的”ImageNet 时刻”的尝试:按 WordNet 的层级组织 3D CAD 模型,索引了 300 多万个模型,其中约 22 万个被分到 3135 个 WordNet 概念里,并提供一致的刚体对齐、零件、对称面、物理尺寸等标注。最常用的子集 ShapeNetCore 有约 5.1 万个模型、55 个类别。

Deitke 对它的评价(slides 第 9–12 页):

  • 非常小(约 5 万个物体);
  • 质量低、不多样;
  • 展示了从一个类别泛化到另一个类别(例如从椅子到桌子);
  • 他个人的动机是扩展仿真里的机器人研究——当时可用的物体太简单了。这引出了 ProcTHOR(AI2,2022):程序生成大量可交互的房屋,用来训练具身智能体。房屋可以程序生成,但里面的物体需要大量多样的 3D 资产。

2.2 Objaverse(2022)

Objaverse 1.0(Deitke et al. 2022)从 Sketchfab(一个 3D 模型的在线市场,后被 Epic Games 收购)通过公开 API 收集了 81.8 万个 3D 物体,来自 16 万名创作者,只收录带有可分发的知识共享(Creative Commons)许可证的模型,排除了标为限制级的内容。和 ShapeNet 比较:

ShapeNetObjaverse 1.0
物体数约 5.1 万81.8 万
类别55约 2.1 万个 WordNet 概念
来源CAD 模型艺术家建模、扫描
外观多数没有真实的纹理很多有纹理、材质、动画

还有一个 4.7 万个物体的子集 Objaverse-LVIS,每个物体被人工确认地分到 1156 个 LVIS 类别之一。论文展示了几种用途:

  • 3D 生成:用 Objaverse 的包、鞋、水果蔬菜训练 GET3D,91% 的比较里众包评测者认为它生成的包比在 ShapeNet 上训练的更多样;
  • 具身智能:在 1 万个程序生成的房屋里放 1100 类 Objaverse 物体,训练开放词汇的物体导航,成功率 19.9%(随机策略 5.1%);
  • 鲁棒性分析:把物体从 12 个随机朝向渲染,CLIP 的 ResNet-50 在随机朝向上的 top-1 准确率只有 21.4%,“12 个朝向里任意一个对就算对”时是 43.9%——视觉模型对不常见的朝向很脆弱。

2.3 代码:类别多还是每类的实例多

代码 01 演示 1:同样多的物体,ShapeNet 式(少数类别、每类很多实例)vs Objaverse 式(很多类别、每类很少实例),新视角预测的轮廓 IoU:

类别数每类实例数物体总数见过的类别·新实例没见过的类别
ShapeNet 式1040040000.7550.582
4010040000.6850.595
4001040000.6190.618
Objaverse 式(长尾)4000140000.6100.625
ShapeNet 式10404000.7080.564
Objaverse 式(长尾)40014000.5770.588

直觉:新视角预测要猜”看不见的那一面”。模型学到的先验反映的是训练数据的分布:只见过 10 类东西,它就把一切都想象成这 10 类——在这 10 类上很准(0.755),在新类别上很差(0.582)。类别多、每类实例少时,在见过的类别上的表现下降,但对新东西的泛化更好。这是第 15 讲”场景多样性 vs 每个场景的数量”的 3D 版本,也是第 2 讲”数据决定鲁棒性”的又一个例子。


3. 从 3D 到 2D:Zero-1-to-3 与渲染 · From 3D to 2D

3.1 Zero-1-to-3(2023)

有了几十万个 3D 物体,怎样训练一个”从一张照片想象 3D”的模型?Zero-1-to-3(Liu et al. 2023)的做法是把 3D 数据渲染成 2D 训练样本:为每个 Objaverse 物体从 12 个随机视角渲染图像,两两组成”(输入视角, 相对相机变换)→ 目标视角”的训练对,微调一个 Stable Diffusion 模型,让它学会”给一张图和一个相机变换,画出从新视角看到的样子”。

关键点在于两种数据的结合:Stable Diffusion 从几十亿张互联网图片里学到了丰富的视觉先验(包括”物体通常长什么样”);Objaverse 的渲染只需要教它”相机变换”这一件事。所以虽然只在合成数据上训练,它对野外的照片、甚至印象派的画作都有很强的零样本泛化能力。用它生成的多视角图像还可以做单张图像的 3D 重建。

3.2 Objaverse-XL 与 Zero123-XL:规模

一年后的 Objaverse-XL(Deitke et al. 2023)把规模扩大到约 1020 万个 3D 物体(§4 讲它们从哪里来)。在超过 1 亿张多视角渲染图上训练的 Zero123-XL,比在 80 万个物体上训练的 Zero123 一致地更好(论文的图 6 显示了随数据规模的提升)。PixelNeRF 在 200 多万个物体(2400 万张渲染图)上预训练后,DTU 上的 PSNR 从 15.32 升到 17.53,ShapeNet 上从 22.71 升到 24.22。

代码 01 演示 2(没见过的类别上的轮廓 IoU;类别数 = 物体数 / 4):

物体数训练视角对K = 500K = 2000K = 4000
2509920.5610.5680.572
100040000.5900.6030.607
4000160000.6130.6220.626
16000640000.6220.6360.641

更多的物体持续带来提升,每多 4 倍数据的增益大致相当(对数线性);数据少时加大容量几乎没用,数据多时大模型的优势变大——数据和容量要一起扩大。

3.3 渲染本身就是数据设计

3D 资产不能直接用来训练 2D 模型,要先渲染:相机的位置和仰角、视场角、光照、背景、分辨率,都是数据设计的选择。Zero-1-to-3 为每个物体渲染 12 个随机视角;TRELLIS.2 为每个资产渲染 16 个视角,随机化视场角和光照(§6.1)。

代码 01 演示 3(4000 个物体,没见过的类别上的轮廓 IoU):

训练时的渲染测试:仰角 20°测试:仰角 0°–10°测试:仰角 60°–80°
固定 20°0.6220.5700.476
随机 0°–40°0.6100.5810.496
随机 0°–80°0.5620.5210.613

只用一个仰角渲染,模型在这个仰角上最好,换到从上往下看的视角就明显变差;覆盖更多的视角能修复这个问题,但同样的数据和容量被分摊了,原来那个仰角上的表现下降(0.622 → 0.562)。渲染的分布应该和你关心的测试分布匹配——这是一个”在哪里花数据”的取舍,和第 10 讲的数据混合同构。


4. Objaverse-XL:从网上收集 1000 万个 3D 资产 · Objaverse-XL

4.1 来源

来源占比说明
GitHub约 56%索引了 50 多万个仓库里的 3700 万个公开文件;去重后 550 万个能成功导入并渲染
Thingiverse约 35%3D 打印社区,约 350 万个物体,大多没有纹理
Sketchfab约 8%即 Objaverse 1.0 的 80 万个物体
Polycam< 1%手机扫描,7.2 万个(去重后 7.1 万)
史密森尼博物馆< 1%2400 个藏品的数字化模型

4.2 数据工程

Objaverse-XL 的数据卡记录了一连串典型的问题和处理:

  • 去重:按文件内容的 SHA-256 哈希去重,去掉了约 2300 万个重复文件。GitHub 上同一个模型被 fork、镜像、打包进别的仓库,重复极多。
  • 渲染失败:很多文件无法导入或渲染(格式错误、缺少依赖的纹理文件、场景太大);只保留了能成功渲染的。
  • 扫描的质量:Polycam 的渲染里 38.2% 被判为”坏”(空洞多),约 5.8 万个物体至少有 2 个坏的渲染;用于判断的分类器交叉验证准确率超过 90%。
  • 不适宜的内容和人脸:用 12 个渲染视角里至少 3 个的 NSFW 分数超过 0.9 作为标准,过滤了 815 个物体;估计约 26.6 万个物体(约 2.5%)包含人脸(大多是玩偶、雕塑、拟人化的角色)。
  • 动画:带动画的物体从 Objaverse 1.0 的 4.1 万个增加到 45.9 万个,带骨骼的从 3.4 万个增加到 43.8 万个。
  • 美学评分:用 LAION 美学模型给渲染打分:14.2% 高于 4.5 分,69.2% 在 4–4.5 之间,16.6% 低于 4 分。
  • 许可证:整个数据集以 ODC-By 1.0 发布,但每个物体保留自己的许可证(Thingiverse 大多是知识共享许可,Polycam 是 CC-BY 4.0,史密森尼是 CC0);使用者要遵守每个物体的许可证和每个平台的条款(第 19 讲)。

对齐微调(alignment finetuning):用代理启发式(顶点数、面数、来源的流行度、数据来源)选出一个 130 万个物体的高质量子集,先在全部数据上训练 Zero123-XL,再在这个子集上微调。在 Google Scanned Objects 上的零样本结果:PSNR 18.225 → 19.876,LPIPS 0.088 → 0.075。这和语言模型的”大规模预训练 + 高质量数据退火 / 后训练”是同一个配方(第 7、8 讲)。

4.3 代码:哪些”坏”资产真的有害

代码 02 演示 1:1 万个资产的池子,一半有问题——渲染失败(目标视角全空白,20%)、动画(每次渲染时零件位置不同,输入和目标对不上,20%)、扫描的空洞(一半表面缺失,但输入和目标来自同一个有洞的物体,10%)。在 1000 个干净的新类别物体上测试(深度均方误差,越低越好):

训练数据资产数渲染失败 / 动画 / 空洞深度均方误差轮廓 IoU
不过滤1000020% / 20% / 10%0.20890.636
规则:去掉有空白渲染的80080% / 26% / 12%0.18710.630
规则 + 一致性检查(同一视角渲染两次)60280% / 1% / 16%0.18890.629
再去掉”看起来差”的47500% / 0% / 10%0.19260.620
(神谕)只用干净的49990% / 0% / 0%0.19080.626
全部训练 → 在 1300 个高质量资产上微调(λ = 1000)1300—0.19090.624
只用这 1300 个高质量资产1300—0.20550.607
  1. 系统性的偏差有害:渲染失败的目标全空,模型学会”把东西预测得淡一些”。一条简单的规则就把误差从 0.2089 降到 0.1871。
  2. 不偏的噪声无害:一致性检查(同一个视角渲染两次、比较结果)抓到了 97% 的动画资产,误伤 0%——但去掉它们反而略差(0.1871 → 0.1889)。动画资产的目标视角是”同类物体的另一个样子”:有噪声,但不偏,在大量数据上被平均掉,还多提供了”这一类东西从侧面看大概什么样”的信息。这和第 15 讲”手抖 vs 停顿”是同一个道理。
  3. “看起来差”不等于有害:扫描的空洞很难看,但几何上是一致的;按外观再去掉一部分资产,误差反而升到 0.1926。“只用干净的”(0.1908)也不如”只去掉渲染失败的”(0.1871)。过滤要针对”会教错模型”的问题,而不是”看起来不完美”。
  4. 指标会改变结论:轮廓 IoU 在”不过滤”时反而最高——预测变淡之后深度误差变大,阈值化后的轮廓却不一定变差(第 14 讲)。
  5. 对齐微调在这个线性模型里也有效:0.1909,远好于不过滤(0.2089)和只用 1300 个(0.2055)——既保留了大数据学到的东西,又往高质量数据的方向修正。但当有害的资产能被可靠地检测出来时,直接去掉更好。

4.4 代码:去重

代码 02 演示 2:一次”爬取”得到 12000 个文件,按 Zipf 分布的流行度复制——实际只有 1668 个不同的资产;复制品一半完全相同,一半被轻微修改过(缩放、导出精度)。

训练数据文件数不同的资产训练视角对深度均方误差轮廓 IoU
不去重120001668480000.22190.600
SHA-256 去重68591668274360.21280.607
感知哈希去重2097161383880.20150.611
(神谕)每个资产只留一份1668166866720.20100.611

去重之后训练量只有约 17%,误差反而更低:重复的文件不只是浪费算力,还让少数热门资产在训练分布里占了过大的比重。SHA-256 只能去掉完全相同的文件;被轻微修改过的复制品哈希完全不同,留了下来。感知哈希(比较”看起来是否一样”)去得更干净,但也误合并了少数不同的资产(保留了 1613 个,实际 1668 个)。这和第 4 讲 MinHash 的阈值、第 6 讲文本去重是同一个取舍。


5. 用视频代替 3D:360-1M · Video as 3D data

5.1 动机

Objaverse 里的东西是孤零零的物体:干净的背景、居中、尺度归一化。真实世界的照片里有地面、墙、旁边的杂物,物体在各种距离和角度。而且,3D 资产的总量受限于”有人愿意做 3D 模型”。视频则多得多,而且天然包含”同一个场景、不同视角”的信息。

360-1M(Wallingford, Bhattad, Kusupati, Ramanujan, Deitke et al.,NeurIPS 2024)的数据管线:

  1. 收集 YouTube 的元数据,筛出等距柱状投影格式的 360° 视频:107.7 万个;去掉空的和重复的(用缩略图的感知哈希)。
  2. 每秒取一帧,共约 8057 万帧(平均每个视频 75 帧,平均时长 6.3 分钟);把每帧全景图切成 4 个透视视图。
  3. 相隔不超过 20 帧的帧对交给 Dust3R 估计相对位姿和置信度;平均置信度低于 4 的丢掉;优化俯仰和偏航让重叠最大;相对平移小于 0.25 米的丢掉(基线太短,没有 3D 信息)。
  4. 通过帧之间的连接图传播,找到窗口之外的长距离对应;用 Depth Anything 的深度估计确定尺度(Dust3R 的输出没有绝对尺度)。
  5. 最终得到 3.63 亿个带相对位姿的帧对,覆盖 15 个主题类别。

在 360-1M 上训练的扩散模型 ODIN 可以生成真实场景的新视角,甚至让相机”走进”场景,在标准的新视角合成和 3D 重建基准上有提升。Deitke 在 slides 里特别指出:Objaverse 是一篇以数据集为中心的论文,而 360-1M 并没有突出数据集本身——但后者其实同样是一项数据工作。

5.2 代码:领域差距

代码 03 演示 1:把测试物体放进”真实的场景”(加一块地面和旁边的一个小杂物)。比较三种训练数据(深度均方误差):

训练数据训练对测试:干净的物体测试:真实的场景
合成渲染(4000 个物体,Objaverse 式)160000.19370.7259
视频里挖出的视角对(4000 段视频)481770.69210.2598
两者一起641770.19240.2600

只用合成渲染训练的模型从没见过地面和杂物,在真实场景上的误差是干净物体上的近 4 倍;只用视频训练的模型学会了”总会有一块地面”,在干净的物体上反而差。两者一起训练,在两种测试上都接近各自最好的结果。每个数据源只覆盖了一种分布;要泛化到哪里,就要有来自哪里的数据。

5.3 代码:位姿标签的质量

视频没有相机位姿,要用模型估计——估计会出错。代码 03 演示 2 模拟了一段绕物体一圈的”视频”(16 帧),用估计出的相对角度把帧对标成”转 90°“的训练样本,比较两种位姿估计器(真实场景上的深度均方误差):

置信度门槛对称的随机误差:保留 / 标签正确 / 误差系统性低估大角度:保留 / 标签正确 / 误差
不过滤63379 / 57% / 0.261176944 / 23% / 0.2895
> 0.348177 / 74% / 0.259829110 / 60% / 0.2701
> 0.533774 / 94% / 0.261316454 / 91% / 0.2723
> 0.718744 / 100% / 0.26898247 / 100% / 0.2836
> 0.859004 / 100% / 0.28273763 / 100% / 0.2976
(神谕)只用正确的35919 / 100% / 0.259717593 / 100% / 0.2694
  1. 对称的随机误差几乎无害:只有 57% 的标签正确时,误差和只用正确标签几乎一样——标错的帧对大致一半是 67.5°、一半是 112.5°,平均下来还是 90°。
  2. 系统性的误差有害:估计器低估大角度时,被标成 90° 的帧对大多其实是 112.5° 和 135°,误差升到 0.2895。按置信度过滤(> 0.3)后 0.2701,接近神谕。
  3. 门槛太高也不好:> 0.7 时只剩 8247 对,误差回升到 0.2836。最优的门槛在中间——“标签质量 vs 数据量”的取舍,和第 6 讲 DCLM 的过滤阈值、第 7 讲”过滤的扩展律”是同一个问题。

本讲的三个代码演示反复出现同一个模式:零均值的噪声会被平均掉,系统性的偏差不会(动画资产 vs 渲染失败、对称 vs 有偏的位姿误差;第 15 讲的手抖 vs 停顿)。判断一种”脏数据”是否值得花力气清洗,首先要问:它的错误是有方向的吗?


6. 应用与讲者的看法 · Applications and perspectives

6.1 应用

slides 第 26–29 页列出了 3D 数据的几类应用:

  • 3D 生成(文本 / 图像 → 3D):Zero123、SAM 3D、TRELLIS.2。TRELLIS.2(Xiang et al.,2025 年 12 月)提出了 O-Voxel(一种同时编码几何和基于物理的材质属性的稀疏体素结构,能处理开放、非流形和封闭的表面);稀疏压缩 VAE 做 16 倍的空间下采样,一个 1024³ 分辨率、带完整纹理的资产只需约 9600 个潜在 token;40 亿参数的流匹配模型在约 80 万个资产上训练(Objaverse-XL、ABO、HSSD,再加上 TexVerse 以丰富材质的多样性;压缩模型的训练数据只保留带 PBR 材质的资产),每个资产渲染 16 个视角、随机化视场角和光照。
  • 机器人和具身智能:PoliFormer、MolmoSpaces 等在大量 3D 资产构成的仿真环境里训练导航和操作策略(第 15 讲的”仿真数据”)。
  • 图像模型:slides 说 3D 的能力”已经烤进了 Nano Banana”——大的图像生成模型已经能很好地处理视角变化和 3D 一致性。

6.2 讲者对数据研究的看法

slides 第 36–39 页:

  • 很多学者对”做数据”感到羞愧——这很奇怪,因为数据工作往往是对领域更大、更持久的贡献;
  • 他特别感谢 Ludwig Schmidt 没有这种偏见、推动了这个方向;
  • Objaverse 是一篇明确以数据集为中心的论文,而 360-1M 没有那么突出数据集——两种不同的”包装”方式。

6.3 “大概别去做 3D 了”

slides 第 40–44 页给了一个有些挑衅的建议:

  • 3D 中有用的部分会被视频和图像模型吸收;
  • 但仍然有大量的 3D 研究(去 CVPR 看看就知道);
  • 它没那么有用;
  • 应该专注于有用的应用:机器人、计算机使用智能体(CUA)、大语言模型。

slides 第 35 页的 Genie 3(DeepMind 的交互式世界模型)和 World Labs 是这个观点的背景:直接从视频学到的世界模型,已经能生成可以在其中移动的、3D 一致的环境,而不需要显式的 3D 表示。

怎样看待这个观点? 它和这门课的主线是一致的:数据决定能力的边界,而视频和图像的数据比 3D 多几个数量级。360-1M 本身就是这个观点的体现——用视频数据做 3D 任务。但也有反例需要考虑:需要精确几何的应用(制造、机器人抓取、AR 里的遮挡)、需要可编辑资产的应用(游戏、影视),仍然离不开显式的 3D;而且显式 3D 数据(例如 Objaverse 的渲染)恰恰是训练这些视频和图像模型的 3D 一致性的数据来源之一。


7. 一个统一的视角(补充) · A unified view

把 3D 数据的问题和前面的讲次对照:

3D 数据里的问题通用的概念相关讲次
ShapeNet → Objaverse:类别多样性多样性 vs 每类的数量第 2、15 讲
Zero-1-to-3:3D 渲染 + 互联网图像先验小的专门数据教会”一件事”,大的通用数据提供先验第 8 讲(后训练)、第 15 讲(共同训练)
渲染方式(视角、光照)数据怎样被”实例化”成训练样本第 11 讲(合成数据的设计)
Objaverse-XL:去重、渲染失败、质量启发式网页规模数据的清洗第 4、6、7 讲
对齐微调大规模预训练 + 高质量数据的后期训练第 7 讲(退火)、第 8 讲
系统性偏差 vs 不偏的噪声什么样的数据错误真正有害第 14、15 讲
360-1M:从视频挖帧对、位姿过滤弱标注 + 置信度过滤第 5 讲(CLIP 分数过滤)、第 7 讲
许可证、人脸、不适宜内容数据治理第 18、19 讲

3D 数据的独特之处在于它几乎从不直接用于训练:几乎总是先被渲染、采样、或体素化成别的东西。这让”数据设计”多了一层:除了”收集哪些资产”,还有”怎样把它们变成训练样本”。


8. 延伸与前沿 · Beyond the original lecture

本节是我补充的。

3D 生成模型的数据瓶颈。 2024–2025 年的 3D 生成模型(TRELLIS、TRELLIS.2、Hunyuan3D 等)大多在几十万到一百万个精选资产上训练——比 Objaverse-XL 的 1000 万小一个数量级。原因和 §4.3 一样:大部分资产没有好的纹理和材质,按”会教错模型”的标准过滤之后,剩下的并不多。合成数据(用图像生成模型生成多视角图像、再重建成 3D)是正在探索的方向,也带来第 11 讲的老问题:生成器的偏差会进入数据。

世界模型的数据。 如果 Deitke 的判断成立,3D 的未来在视频世界模型里,那么”3D 数据”的问题就变成了”视频数据”的问题:哪些视频包含足够的视角变化?怎样估计相机运动?360-1M 的管线(帧对、位姿估计、置信度过滤)可能会成为视频世界模型数据工程的一部分。

评测的困难。 3D 生成的评测很难:PSNR、LPIPS 只能衡量和某个参考视角的接近程度;“生成的物体好不好”常常依赖人类偏好或多模态模型的评分——第 14 讲讨论的评测问题在这里同样存在。


9. 小结 · Summary

  1. 3D 数据稀缺:做一个 3D 模型比拍一张照片贵得多;来源多样(CAD、艺术家、扫描、程序生成、视频),格式和质量参差。
  2. ShapeNet → Objaverse:从 5 万个、55 类的 CAD 模型到 81.8 万个、2 万多个概念的物体。类别多样性对泛化到新东西至关重要(代码:同样 4000 个物体,新类别上 0.582 vs 0.625)。
  3. Zero-1-to-3:把 3D 渲染成多视角图像对,微调一个在互联网图像上预训练的扩散模型;渲染方式本身就是数据设计。
  4. Objaverse-XL:1020 万个物体;SHA-256 去掉 2300 万个重复文件;只保留能渲染的;130 万个高质量子集上的对齐微调提升了零样本质量。
  5. 什么样的脏数据有害:系统性的偏差(渲染失败、有偏的位姿)有害;不偏的噪声(动画资产、对称的位姿误差)和几何一致的缺陷(扫描空洞)基本无害。过滤要针对”会教错模型”的问题。
  6. 去重:重复不仅浪费算力,还扭曲分布;去重后用 17% 的训练量得到更低的误差(代码)。
  7. 360-1M:用 107 万个 360° 视频代替 3D 模型,挖出 3.6 亿个带位姿的帧对;要泛化到真实场景,就要有来自真实场景的数据。
  8. 讲者的观点:数据工作是更大、更持久的贡献;3D 中有用的部分可能会被视频和图像模型吸收。

10. 常见误区 · Common pitfalls

  1. “物体越多越好,不管是什么物体。” 同样多的物体,类别多样性决定了对新东西的泛化(代码 01 演示 1);重复的物体还会让结果变差(代码 02 演示 2)。
  2. “把所有看起来有问题的资产都过滤掉。” 只有会教错模型的问题需要过滤;过度过滤只是减少数据(代码 02 演示 1)。
  3. “按文件哈希去重就够了。” 被轻微修改过的复制品哈希不同(代码 02 演示 2)。
  4. “在合成渲染上训练,就能用在真实照片上。” 领域差距很大,要有来自目标分布的数据(代码 03 演示 1);Zero-1-to-3 能泛化到照片,靠的是 Stable Diffusion 从互联网图像学到的先验。
  5. “标签错得越少越好,所以门槛越高越好。” 门槛太高会让数据太少;对称的误差甚至基本无害(代码 03 演示 2)。
  6. “一个指标就能判断哪个数据集更好。” 轮廓 IoU 和深度误差给出了相反的结论(代码 02 演示 1)。

11. 练习 · Exercises

练习 1(ShapeNet 还是 Objaverse) 你要训练一个模型,用于 (a) 一个家具电商网站的商品 3D 预览(只有椅子、桌子、沙发、柜子等 20 类);(b) 一个通用的”手机拍照 → 3D 模型”应用。根据代码 01 演示 1,两种情况分别应该怎样组成训练数据?

参考答案

(a) 测试分布是少数几个已知类别:应该像 ShapeNet 式那样,在这 20 类上收集尽量多的实例(演示 1:见过的类别上,10 类 × 400 个是 0.755,远高于 400 类 × 10 个的 0.619)。可以再加一些其他类别的数据作为正则,但重点是目标类别的覆盖。

(b) 测试分布是开放的:应该优先类别的多样性(Objaverse 式;演示 1:没见过的类别上 0.625 vs 0.582),并且要有来自真实照片分布的数据(代码 03 演示 1 的领域差距),以及一个在互联网图像上预训练的骨干(Zero-1-to-3 的做法)。

练习 2(去重的成本与收益) 代码 02 演示 2 中,不去重时训练了 48000 对视角,感知哈希去重后只有 8388 对,误差却更低。(a) 解释为什么更多的训练数据反而更差。(b) 如果你的算力预算是 48000 对,去重之后你会怎样使用剩下的预算?

参考答案

(a) 重复的文件来自少数热门资产(Zipf 分布)。不去重时,这些资产在训练里出现了几十到几百次,模型在它们上面拟合得很好,但它们只代表了很窄的一部分形状;长尾的资产相对被忽视了。训练数据的”有效多样性”没有增加,分布却被扭曲了。

(b) 例如:为每个去重后的资产渲染更多的视角(演示里每个资产 4 对,Zero-1-to-3 每个物体 12 个视角);随机化仰角和光照(代码 01 演示 3);或者去收集更多不同的资产。去重后的预算应该花在”增加多样性”的地方,而不是重复同样的东西。

练习 3(什么样的脏数据有害) 对下面每种 3D 资产的问题,判断它更像”系统性的偏差”还是”不偏的噪声 / 一致的缺陷”,以及是否值得过滤:(a) 模型的坐标系 Y 轴朝上,而渲染器假设 Z 轴朝上(物体被渲染成躺倒的);(b) 纹理贴图丢失,渲染出来是纯灰色;(c) 不同的创作者对同一类物体的建模风格不同;(d) 一些文件是整个场景(房间),而不是单个物体。

参考答案

(a) 对新视角预测本身,躺倒的物体仍然是一致的 3D 几何——更像”一致的缺陷”,不一定有害;但如果任务是”从正常拍摄的照片预测”,大量躺倒的物体让训练分布偏离测试分布,值得统一朝向(Objaverse 的鲁棒性分析显示视觉模型对不常见的朝向很脆弱)。

(b) 对 RGB 新视角合成是系统性的偏差:模型会学会生成灰色、没有纹理的物体。值得过滤或单独标记(Objaverse-XL 用美学评分等启发式选高质量子集)。对只用几何的任务(例如我们的深度图)则无害。

(c) 不偏的噪声(甚至是有益的多样性):不应该过滤。

(d) 取决于任务:如果任务是”单个物体”,场景文件的渲染(物体很小、背景复杂)是系统性的偏差,应该过滤或单独处理;如果任务是场景级的(360-1M、世界模型),它们恰恰是需要的数据。“有害”是相对于任务定义的(第 6 讲”质量是操作性的”)。

练习 4(位姿过滤的门槛) 根据代码 03 演示 2:(a) 为什么对称误差下不过滤的标签只有 57% 正确,误差却和神谕差不多?(b) 如果你不知道你的位姿估计器是否有偏,怎样选择门槛?

参考答案

(a) 标错的帧对大致一半是 67.5°、一半是 112.5°,它们的”平均”仍然是 90°;岭回归拟合的是条件均值,对称的标签误差在平均意义下相互抵消,只增加了方差,而大量数据把方差压低了。

(b) 留一个有可靠位姿的验证集(例如合成渲染或有真实位姿的少量视频),在不同门槛下训练小模型、比较验证误差——这就是第 6、10 讲”用小规模实验选数据处理参数”的做法。也可以直接检查估计误差的分布:如果误差的均值明显偏离 0(例如在合成数据上测试估计器),就说明有偏,需要过滤或校正。

练习 5(讨论:要不要做 3D) Deitke 建议”大概别去做 3D 了”。写一段 200 字左右的回应:在什么情况下你同意?在什么情况下你不同意?你的论证用到了本讲的哪些证据?

参考答案

(开放题,一个可能的回答)同意的部分:本讲的证据显示,数据的规模和多样性决定能力,而视频和图像数据比 3D 多几个数量级(360-1M 的 107 万个视频 vs Objaverse-XL 的 1000 万个物体,后者还要大量清洗);Zero-1-to-3 的泛化能力主要来自互联网图像的先验,而不是 3D 数据本身;视频世界模型已经能生成 3D 一致的环境。不同意的部分:需要精确几何和可编辑资产的应用(机器人抓取、制造、游戏和影视的资产生产)仍然需要显式 3D;而且 3D 数据恰恰是教会图像和视频模型 3D 一致性的重要来源之一(Zero123 的训练数据就是 3D 渲染);仿真里的机器人训练(第 15 讲)离不开大量 3D 资产。所以更准确的说法可能是:“为 3D 本身做 3D 研究的价值在下降,作为数据来源和仿真资产的 3D 数据仍然重要。”


12. 延伸阅读 · Further reading

原课阅读

  • Chang et al., ShapeNet: An Information-Rich 3D Model Repository(2015):arXiv:1512.03012。
  • Deitke et al., Objaverse: A Universe of Annotated 3D Objects(CVPR 2023):arXiv:2212.08051。
  • Liu et al., Zero-1-to-3: Zero-shot One Image to 3D Object(ICCV 2023):arXiv:2303.11328。
  • Deitke et al., Objaverse-XL: A Universe of 10M+ 3D Objects(NeurIPS 2023 数据集与基准分会):arXiv:2307.05663。
  • Xiang et al., Native and Compact Structured Latents for 3D Generation(TRELLIS.2,2025):arXiv:2512.14692。
  • Wallingford et al., From an Image to a Scene: Learning to Imagine the World from a Million 360 Videos(NeurIPS 2024):arXiv:2412.07770。

slides 里提到的工作

  • Deitke et al., ProcTHOR: Large-Scale Embodied AI Using Procedural Generation(NeurIPS 2022)。
  • Zeng et al., PoliFormer: Scaling On-Policy RL with Transformers Results in Masterful Navigators(2024)。
  • Wang et al., DUSt3R: Geometric 3D Vision Made Easy(2024)——360-1M 用来估计帧对的相对位姿。

和本目录其他课程 / 本课其他讲的联系

  • 本课 第 15 讲:机器人的数据(仿真、场景多样性);第 4 讲:去重的工程。

13. 下一讲预告 · Next lecture

3D 数据稀缺,因为做一个 3D 模型很贵。下一讲的领域恰恰相反:它有一个活了几十亿年的数据集。进化在几十亿年里”生成”了数以亿计的蛋白质序列和基因组,测序技术让我们能便宜地读出它们;可是对应的结构和功能标签,却要靠一个个实验来测。

第 17 讲:生物学 AI 的训练数据。 蛋白质序列数据库(UniProt、UniRef)和结构数据库(PDB)的规模差距;为什么按序列相似度聚类是生物数据过滤的”老传统”,以及它为什么”领先于机器学习的数据过滤”(Cade Gordon 的观点);随机划分 vs 按家族划分的评测为什么天差地别;AlphaFold 怎样用自己的预测扩充训练数据;小分子结合亲和力的标签有多吵。代码会造一个”合成蛋白质家族”的小世界。

← 返回课程目录