对应 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
- 说清楚 3D 数据为什么比图像和文本稀缺得多,以及它从哪里来(艺术家建模、CAD、扫描、程序生成、视频)。
- 理解从 ShapeNet(5 万个干净的 CAD 模型、55 类)到 Objaverse(80 万个物体、2 万多个概念)的转变:类别多样性为什么比每类的数量更重要。
- 理解 3D 数据怎样变成 2D 模型的训练数据:渲染多视角图像(Zero-1-to-3),以及渲染方式本身就是数据设计。
- 理解 Objaverse-XL 的规模化(1000 万个物体)和它带来的数据工程问题:来源、去重、渲染失败、质量启发式、许可证;“对齐微调”。
- 能区分”有害的”低质量数据(系统性偏差)和”看起来差但无害的”数据(不偏的噪声、一致的缺陷)。
- 理解 360-1M 的思路:用视频代替 3D 模型,从 100 万个 360° 视频里挖掘带位姿的帧对;领域差距与位姿过滤。
- 了解讲者对数据研究和 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 比较:
| ShapeNet | Objaverse 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 式 | 10 | 400 | 4000 | 0.755 | 0.582 |
| 40 | 100 | 4000 | 0.685 | 0.595 | |
| 400 | 10 | 4000 | 0.619 | 0.618 | |
| Objaverse 式(长尾) | 4000 | 1 | 4000 | 0.610 | 0.625 |
| ShapeNet 式 | 10 | 40 | 400 | 0.708 | 0.564 |
| Objaverse 式(长尾) | 400 | 1 | 400 | 0.577 | 0.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 = 500 | K = 2000 | K = 4000 |
|---|---|---|---|---|
| 250 | 992 | 0.561 | 0.568 | 0.572 |
| 1000 | 4000 | 0.590 | 0.603 | 0.607 |
| 4000 | 16000 | 0.613 | 0.622 | 0.626 |
| 16000 | 64000 | 0.622 | 0.636 | 0.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.622 | 0.570 | 0.476 |
| 随机 0°–40° | 0.610 | 0.581 | 0.496 |
| 随机 0°–80° | 0.562 | 0.521 | 0.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 |
|---|---|---|---|---|
| 不过滤 | 10000 | 20% / 20% / 10% | 0.2089 | 0.636 |
| 规则:去掉有空白渲染的 | 8008 | 0% / 26% / 12% | 0.1871 | 0.630 |
| 规则 + 一致性检查(同一视角渲染两次) | 6028 | 0% / 1% / 16% | 0.1889 | 0.629 |
| 再去掉”看起来差”的 | 4750 | 0% / 0% / 10% | 0.1926 | 0.620 |
| (神谕)只用干净的 | 4999 | 0% / 0% / 0% | 0.1908 | 0.626 |
| 全部训练 → 在 1300 个高质量资产上微调(λ = 1000) | 1300 | — | 0.1909 | 0.624 |
| 只用这 1300 个高质量资产 | 1300 | — | 0.2055 | 0.607 |
- 系统性的偏差有害:渲染失败的目标全空,模型学会”把东西预测得淡一些”。一条简单的规则就把误差从 0.2089 降到 0.1871。
- 不偏的噪声无害:一致性检查(同一个视角渲染两次、比较结果)抓到了 97% 的动画资产,误伤 0%——但去掉它们反而略差(0.1871 → 0.1889)。动画资产的目标视角是”同类物体的另一个样子”:有噪声,但不偏,在大量数据上被平均掉,还多提供了”这一类东西从侧面看大概什么样”的信息。这和第 15 讲”手抖 vs 停顿”是同一个道理。
- “看起来差”不等于有害:扫描的空洞很难看,但几何上是一致的;按外观再去掉一部分资产,误差反而升到 0.1926。“只用干净的”(0.1908)也不如”只去掉渲染失败的”(0.1871)。过滤要针对”会教错模型”的问题,而不是”看起来不完美”。
- 指标会改变结论:轮廓 IoU 在”不过滤”时反而最高——预测变淡之后深度误差变大,阈值化后的轮廓却不一定变差(第 14 讲)。
- 对齐微调在这个线性模型里也有效:0.1909,远好于不过滤(0.2089)和只用 1300 个(0.2055)——既保留了大数据学到的东西,又往高质量数据的方向修正。但当有害的资产能被可靠地检测出来时,直接去掉更好。
4.4 代码:去重
代码 02 演示 2:一次”爬取”得到 12000 个文件,按 Zipf 分布的流行度复制——实际只有 1668 个不同的资产;复制品一半完全相同,一半被轻微修改过(缩放、导出精度)。
| 训练数据 | 文件数 | 不同的资产 | 训练视角对 | 深度均方误差 | 轮廓 IoU |
|---|---|---|---|---|---|
| 不去重 | 12000 | 1668 | 48000 | 0.2219 | 0.600 |
| SHA-256 去重 | 6859 | 1668 | 27436 | 0.2128 | 0.607 |
| 感知哈希去重 | 2097 | 1613 | 8388 | 0.2015 | 0.611 |
| (神谕)每个资产只留一份 | 1668 | 1668 | 6672 | 0.2010 | 0.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)的数据管线:
- 收集 YouTube 的元数据,筛出等距柱状投影格式的 360° 视频:107.7 万个;去掉空的和重复的(用缩略图的感知哈希)。
- 每秒取一帧,共约 8057 万帧(平均每个视频 75 帧,平均时长 6.3 分钟);把每帧全景图切成 4 个透视视图。
- 相隔不超过 20 帧的帧对交给 Dust3R 估计相对位姿和置信度;平均置信度低于 4 的丢掉;优化俯仰和偏航让重叠最大;相对平移小于 0.25 米的丢掉(基线太短,没有 3D 信息)。
- 通过帧之间的连接图传播,找到窗口之外的长距离对应;用 Depth Anything 的深度估计确定尺度(Dust3R 的输出没有绝对尺度)。
- 最终得到 3.63 亿个带相对位姿的帧对,覆盖 15 个主题类别。
在 360-1M 上训练的扩散模型 ODIN 可以生成真实场景的新视角,甚至让相机”走进”场景,在标准的新视角合成和 3D 重建基准上有提升。Deitke 在 slides 里特别指出:Objaverse 是一篇以数据集为中心的论文,而 360-1M 并没有突出数据集本身——但后者其实同样是一项数据工作。
5.2 代码:领域差距
代码 03 演示 1:把测试物体放进”真实的场景”(加一块地面和旁边的一个小杂物)。比较三种训练数据(深度均方误差):
| 训练数据 | 训练对 | 测试:干净的物体 | 测试:真实的场景 |
|---|---|---|---|
| 合成渲染(4000 个物体,Objaverse 式) | 16000 | 0.1937 | 0.7259 |
| 视频里挖出的视角对(4000 段视频) | 48177 | 0.6921 | 0.2598 |
| 两者一起 | 64177 | 0.1924 | 0.2600 |
只用合成渲染训练的模型从没见过地面和杂物,在真实场景上的误差是干净物体上的近 4 倍;只用视频训练的模型学会了”总会有一块地面”,在干净的物体上反而差。两者一起训练,在两种测试上都接近各自最好的结果。每个数据源只覆盖了一种分布;要泛化到哪里,就要有来自哪里的数据。
5.3 代码:位姿标签的质量
视频没有相机位姿,要用模型估计——估计会出错。代码 03 演示 2 模拟了一段绕物体一圈的”视频”(16 帧),用估计出的相对角度把帧对标成”转 90°“的训练样本,比较两种位姿估计器(真实场景上的深度均方误差):
| 置信度门槛 | 对称的随机误差:保留 / 标签正确 / 误差 | 系统性低估大角度:保留 / 标签正确 / 误差 |
|---|---|---|
| 不过滤 | 63379 / 57% / 0.2611 | 76944 / 23% / 0.2895 |
| > 0.3 | 48177 / 74% / 0.2598 | 29110 / 60% / 0.2701 |
| > 0.5 | 33774 / 94% / 0.2613 | 16454 / 91% / 0.2723 |
| > 0.7 | 18744 / 100% / 0.2689 | 8247 / 100% / 0.2836 |
| > 0.85 | 9004 / 100% / 0.2827 | 3763 / 100% / 0.2976 |
| (神谕)只用正确的 | 35919 / 100% / 0.2597 | 17593 / 100% / 0.2694 |
- 对称的随机误差几乎无害:只有 57% 的标签正确时,误差和只用正确标签几乎一样——标错的帧对大致一半是 67.5°、一半是 112.5°,平均下来还是 90°。
- 系统性的误差有害:估计器低估大角度时,被标成 90° 的帧对大多其实是 112.5° 和 135°,误差升到 0.2895。按置信度过滤(> 0.3)后 0.2701,接近神谕。
- 门槛太高也不好:> 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
- 3D 数据稀缺:做一个 3D 模型比拍一张照片贵得多;来源多样(CAD、艺术家、扫描、程序生成、视频),格式和质量参差。
- ShapeNet → Objaverse:从 5 万个、55 类的 CAD 模型到 81.8 万个、2 万多个概念的物体。类别多样性对泛化到新东西至关重要(代码:同样 4000 个物体,新类别上 0.582 vs 0.625)。
- Zero-1-to-3:把 3D 渲染成多视角图像对,微调一个在互联网图像上预训练的扩散模型;渲染方式本身就是数据设计。
- Objaverse-XL:1020 万个物体;SHA-256 去掉 2300 万个重复文件;只保留能渲染的;130 万个高质量子集上的对齐微调提升了零样本质量。
- 什么样的脏数据有害:系统性的偏差(渲染失败、有偏的位姿)有害;不偏的噪声(动画资产、对称的位姿误差)和几何一致的缺陷(扫描空洞)基本无害。过滤要针对”会教错模型”的问题。
- 去重:重复不仅浪费算力,还扭曲分布;去重后用 17% 的训练量得到更低的误差(代码)。
- 360-1M:用 107 万个 360° 视频代替 3D 模型,挖出 3.6 亿个带位姿的帧对;要泛化到真实场景,就要有来自真实场景的数据。
- 讲者的观点:数据工作是更大、更持久的贡献;3D 中有用的部分可能会被视频和图像模型吸收。
10. 常见误区 · Common pitfalls
- “物体越多越好,不管是什么物体。” 同样多的物体,类别多样性决定了对新东西的泛化(代码 01 演示 1);重复的物体还会让结果变差(代码 02 演示 2)。
- “把所有看起来有问题的资产都过滤掉。” 只有会教错模型的问题需要过滤;过度过滤只是减少数据(代码 02 演示 1)。
- “按文件哈希去重就够了。” 被轻微修改过的复制品哈希不同(代码 02 演示 2)。
- “在合成渲染上训练,就能用在真实照片上。” 领域差距很大,要有来自目标分布的数据(代码 03 演示 1);Zero-1-to-3 能泛化到照片,靠的是 Stable Diffusion 从互联网图像学到的先验。
- “标签错得越少越好,所以门槛越高越好。” 门槛太高会让数据太少;对称的误差甚至基本无害(代码 03 演示 2)。
- “一个指标就能判断哪个数据集更好。” 轮廓 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 用来估计帧对的相对位姿。
和本目录其他课程 / 本课其他讲的联系
13. 下一讲预告 · Next lecture
3D 数据稀缺,因为做一个 3D 模型很贵。下一讲的领域恰恰相反:它有一个活了几十亿年的数据集。进化在几十亿年里”生成”了数以亿计的蛋白质序列和基因组,测序技术让我们能便宜地读出它们;可是对应的结构和功能标签,却要靠一个个实验来测。
第 17 讲:生物学 AI 的训练数据。 蛋白质序列数据库(UniProt、UniRef)和结构数据库(PDB)的规模差距;为什么按序列相似度聚类是生物数据过滤的”老传统”,以及它为什么”领先于机器学习的数据过滤”(Cade Gordon 的观点);随机划分 vs 按家族划分的评测为什么天差地别;AlphaFold 怎样用自己的预测扩充训练数据;小分子结合亲和力的标签有多吵。代码会造一个”合成蛋白质家族”的小世界。