跳到主要内容

让它认没见过的立体:把点云画成一张图(PointCLIP / V2)

这一章讲三件事: 3D 这一行为什么没能像 2D 那样练出一个大模型; 「把立体画成一张灰度图去骗一个只认平面图的模型」这个念头凭什么成立; 以及第二版把力气花在哪儿——全花在了「画得像不像一张真照片」上,而不是模型上。 它在全书链条里的位置: 第 12 章用换问法处理「不知道东西在哪儿」, 第 13 章用减法处理它,这一章处理的是另一件事:输入根本不是图片。 办法是把输入改造成图片,一个模型参数都不碰。

这一章也是全书唯一一次把前面某一章的零件原样搬过来用: 第 09 章那个「外挂一个小网络」,在这里换了输入之后照样有效。

1. 顶层全景:两版,一版一个重点

问题:一个 3D 扫描出来的东西摆在这儿,要认出它是椅子还是床
—— 而你没有任何 3D 训练,连一个 3D 模型都没有

第一版的念头:**别教它认 3D,把 3D 画成 2D**
│ 一行算术就投影完:点 (x,y,z) → 像素 (x/z, y/z),亮度就填 z
│ 文字那边也跟着改:「a photo of a 椅子」→「点云深度图,画的是一把椅子」
✓ 零样本 23.78 —— 能用,但远远不够

第一版的补救:**外挂一个小网络**(第 09 章那个),给它 16 张样例
✓ 20.18 → 87.20 —— 这是全章最大的一跳,但它已经不是零样本了

第二版的判断:**问题不在模型,在那张图画得太假**
│ 投影改成四步:落格取最小深度 → 局部最小池化加密 → 高斯平滑 → 沿深度压扁
✓ 零样本 23.78 → 64.22

第二版的另一半:**问题也在那句话太笼统**
│ 让 GPT-3 按四类指令写 3D 专用的描述
✓ 光这一项就值 25.11

再往外推:同一套东西能做零件分割(31.0 → 49.5)和 3D 检测(4.76 → 11.53)

图说:注意两版的分工——**第一版证明这条路走得通,第二版把两个输入端都做真。**
两版都没有改动 CLIP 的任何一个权重。

这一章的主走查:一把椅子的点云(1024 个点),量的是一个 40 类的 3D 模型数据集上的零样本准确率。

做了什么具体的数或状态
手上是什么:一堆三维坐标,没有面、没有颜色、没有顺序1024 个 (x, y, z)
第一版:每个点投到平面上,亮度填深度得到一张散点图,点与点之间大片是空的
(这种「大片是空的」的性质,后面一律叫稀疏)
六个视角各投一张,各过一遍 CLIP 图像编码器六串数
类名塞进「点云深度图,画的是一个 ___」40 串数,当分类器用
每个视角各比一次,再按视角权重加权求和零样本 23.78
第二版:把点落进三维格子,同格取最小深度稀疏的格子,大半是空的
局部最小池化,把点之间的空格填上形体变实心了
高斯平滑,去掉上一步造出来的毛刺棱角还在,毛刺没了
沿深度方向取最小,压成一张平面图,复制三份一张像真照片的深度图
文字那边:让 GPT-3 写「深度图里的椅子长什么样」四类指令各写一批
同样六个视角比一遍零样本 64.22
如果允许给样例:外挂第 09 章那个小网络,16 张87.20(这是第一版的数)

这些数全是书里的真数;「一把椅子、六个视角」是我们为了串起来设的具体场景, 书里的视角数是一个可配的量1

2. 为什么 3D 没有自己的 CLIP

这一节回答:为什么要绕这么大一个圈子?

两条硬约束

第一条:数据不够。 书里说得很直接——现有的 3D 数据集普遍偏小、类别有限, 所以练不出一个能拿来迁移的强 3D 预训练网络2

这一条和第 04 章那堵「数据」的墙是同一堵,只是在 3D 上更严重: 2D 有网上现成的几亿对图文,3D 没有对应的东西——没人会在网上发一堆点云还配上文字说明。

第二条:数据的形状不对。 先说清楚这一章处理的东西是什么:

一台 3D 扫描仪对着一把椅子扫一圈,吐出来的是什么?
不是一个立体模型,是**一堆点的坐标**:
(0.12, 0.88, 2.31) (0.13, 0.87, 2.30) (0.51, 0.20, 1.98) ……

这堆点有三个麻烦:
**稀疏** —— 物体表面之间大片是空的,不像照片那样每个位置都有值
**无序** —— 谁先谁后没有意义,换个顺序还是同一把椅子
**不成格** —— 照片是整齐的方格,这堆点想落在哪儿就落在哪儿

图说:这堆点的名字叫**点云**。
上面三条正是「2D 那套方法搬不过来」的具体原因 —— 卷积、图块切分都要求整齐的方格。

于是这一章的问题变成

能不能不训练任何 3D 模型,直接把已经训好的 2D 模型拿来用? 书里说,这件事此前没有人探索过。

3. 第一版:一行算术就把立体压成平面

这一节是主走查第 ②–⑤ 步。它的美德是简单到近乎粗暴。

投影只有一步

一个点的坐标 (x, y, z),z 是它离你多远

├─ 它落在画面上的位置:( x/z , y/z )
│ —— 除以 z 是关键:远的东西被压得靠近画面中心,**近大远小**

└─ 这个位置的亮度值:**直接填 z**
然后把这一个数复制三份,当作彩色图的三个通道

图说:整个过程**不建网格、不做渲染、不上色**,时间和算力开销书里说「可以忽略」。
这样得到的图,书里叫「稀疏散点深度图」——因为点云稀疏,画出来就是一片散点。

「近大远小」这一句不是修辞: 书里明说这样投出来的图带有透视缩短的效果, 就像真照片里看到的那样3——这正是它能骗过 CLIP 的第一个理由。

分类怎么算

和第 01 章那套完全一样,只多了一个「多视角」4:

① 从 M 个预先定好的角度各投一张图(比如底视、侧视、正视……)
② 每张图各过一遍 CLIP 图像编码器 → M 串数
③ 40 个类名各塞进模板「点云深度图,画的是一个 ___」→ 40 串数,当分类器
④ 每个视角各算一次相似度,得到 M 组分数
⑤ 按每个视角的权重 α 加权求和 → 最终分数

图说:第 ③ 步那个模板是这一章的第一个小设计——
**不能再写「a photo of a 椅子」,因为投出来的根本不是照片。**
第 ⑤ 步那些权重是人设的,不是训出来的(见第 10 节)。

结果:零样本 23.78。 参照物:同期一个需要额外做 3D 预训练的方法是 49.385所以第一版的意义不在分数,在于它证明了这条路根本走得通。

4. 第一版的补救:把第 09 章那个小网络搬过来

这一节是主走查第 ⑫ 步,也是全书唯一一次跨章搬零件。

为什么要补救

零样本 23.78 距离一个正经训过的 3D 网络还差得远。 但书里说,全参数微调不可行——样例太少、参数太多,一微调就过拟合6(这正是第 04 章那堵墙、第 08–10 章那整条线的同一个前提。)

做法:视角间适配器

M 个视角各自的那串数

├─ 沿通道方向拼成一条长的
├─ 过一个三层小网络的前两层 → 压成**一串代表整个点云的数**
├─ 再从这串数生成给各视角的修正量

各视角原来的那串数 + 修正量 ← 残差加回去

图说:训练时**CLIP 的两个编码器全程冻住,只训这个小网络。**
和第 09 章那个外挂适配器是同一个东西,**换的只是输入**:
那里是一张图的一串数,这里是 M 个视角的一串数拼起来。
多出来的作用也很明确:**它让各视角互相通气**——单看一个视角是认不出椅子的。

效果:16 张样例把准确率从 20.18% 抬到 87.20%6

这个跳幅要小心解读,书里没有提醒: 20.18 和第 3 节那个 23.78 不是同一个设定(主干不同,书里给每个数据集各挑了最好的主干); 更要紧的是,87.20 已经不是零样本了——它用掉了每类 16 张标注。 这条链真正说明的是:2D 学到的本事确实能迁到 3D 上,只要给一点点样例把两边接起来。 (这一段的比对是我们做的。)

5. 第二版的判断:问题不在模型,在那张图画得太假

这一节是主走查第 ⑥–⑨ 步,是全章最值得慢读的地方。

先说这个判断本身

第一版投出来的是一片散点。 而 CLIP 见过的是真实照片——实心的、有面的、连续的东西。 第二版的整个改进方向就是一句话:把投影做得更像一张真照片。

注意这是一个很反常的选择: 通常想涨分你会去改模型、加参数、加数据。 这一章改的是「喂进去的那张图长什么样」,模型一个字不动。

四步,一步一个具体动作

① 量化(把点装进格子)
建一个 H×W×D 的三维格子,坐标归一化到 0 到 1 之间,每个点落进一格,
格子里存的是它的深度 z。
**多个点落进同一格时,只留最小的那个 z。**
结果:一个稀疏的格子阵,**大半格是空的**

② 加密(把空格填上)
每一格重新取值为「它周围一个小窗口里最小的那个值」——**局部最小池化**
(**池化**:拿一个小窗口在数据上滑,每滑一步用窗口里的一个代表值
取代整块;取最大的叫最大池化,取平均的叫平均池化,这里取最小)
结果:**点与点之间的空隙被填上了,形体变实心**;而背景那些格仍然是空的

③ 平滑(把毛刺磨掉)
上一步会在某些表面制造出人造的锯齿。用一个高斯核滤一遍
(**高斯核**:一个中间重、四周轻的加权平均窗口,标准的模糊工具,没有任何参数要训)
结果:毛刺没了,**而棱角还在**

④ 压扁(变成一张平面图)
沿深度方向取最小值,H×W×D 压成 H×W;再复制三份当彩色三通道
结果:**一张看起来像真照片的深度图**

图说:四步全部是不带参数的几何操作 —— **没有一个数是训出来的。**

效果与拆账

四步做完,零样本从 23.78 变 64.227但书里把每一步的贡献拆开了8:

配置分数
不量化,直接正交投影57.35
只量化,不加密不平滑44.50
量化 + 加密59.64(+15.14)
量化 + 平滑50.20(+5.7)
量化 + 加密 + 平滑(完整)64.22

两条读法:

  1. 加密是最值钱的一步(+15.14),因为它直接解决「稀疏」这条硬约束;
  2. 只量化反而最差(44.50)——比不量化的 57.35 还低。 把点装进格子这一步单独看是有害的,它必须和加密配着用。 这条书里没有专门评论,是我们从表里读出来的。

6. 为什么三处都取「最小」:一个物理直觉

这一节短,但它是这一章最漂亮的一处设计,而且书里给了对照实验。

三处取最小:同格取最小、局部池化取最小、沿深度压扁取最小。理由是同一个9:

在你这个视角上,离你近的东西本来就该挡住离你远的。 深度小 = 离你近 = 应该被看见。

书里拿池化方式做了对照8:

池化取什么分数
取最大(留最远的)57.35
取平均60.71
取最小(留最近的)64.22

取最大比取最小低 6.87 分。

判断(我们的,不是书里的): 这三个数比它们的绝对值更值钱, 因为它们证明的是「按物理规律做的选择真的会体现在分数上」。 取平均在数学上最「中庸」,却输给取最小——因为平均出来的深度对应的是一个不存在的表面。 如果错,会错在: 这个对照只在一个数据集、一种投影配置下做过一次。 如果物体是半透明的、或者点云带噪声(扫描出来的点飘在物体表面之外), 「取最小」会被噪声点主导,那时候取平均可能更稳——书里没有测这种情况。

7. 另一半提升来自文字:让 GPT-3 写 3D 专用的描述

这一节是主走查第 ⑩ 步。它的结论有点冲击力。

问题

「a photo of a 椅子」这句话对深度图是错的——那不是照片,是一张灰度的深度图。 书里的做法是让一个语言模型去写更贴切的句子10

四类指令,各写一批

指令类型问 GPT-3 什么它写出来什么
写图注「描述一张窗户的深度图」「它把窗户呈现为一块暗色的玻璃板。」
问答「怎么描述一张桌子的深度图?」「桌子有一个方形或圆形的平顶,下面有腿。」
同义改写「给这句话换个说法:一张倾斜的床的灰度深度图」「一张斜放的床的单色深度图。」
关键词造句「用这几个词造句:桌子、深度图、光滑」「这张光滑的深度图从某个角度展示了一张桌子。」

每个类名都跑一遍这四类指令,把得到的描述合起来喂给文本编码器。

注意第四行那个「光滑」: 书里专门解释了——这个词描述的正是第 5 节第 ③ 步平滑操作 造成的观感10也就是说,文字这一侧是照着图像那一侧的实际样子来配的。

效果:只改文字就值 25.11

用了哪几类指令零样本分数
一条都不用39.11
只用「写图注」61.67
用两类60.86 / 61.12
用三类63.29
四类全用64.22

从 39.11 到 64.22 是 25.11 分,而这中间图像那一侧一个字都没改11

这条和第 08 章那件事是同一回事的两个版本: 第 08 章说「给类名前加一个 a 就涨 5 个点」,所以要让机器去学那句话; 这一章说「让一个语言模型去写那句话」——同样是改输入,但改法不同: 第 08 章学的是一串没有字面意思的数,这一章拿到的是人能读懂的句子。 两条路的取舍很清楚:前者更准,后者更能解释。(这个对照是我们做的,书里没有比过。)

8. 再往外推:分割和检测

这一节说明这套东西的适用范围,以及它的真实上限。

零件分割:取池化之前的特征

要给点云的每个零件分类(椅子的腿、靠背、坐垫),做法和第 13 章同源12:

① 取 CLIP 图像编码器**最后那次汇总之前**的稠密特征图,上采样到深度图那么大
② 让 GPT-3 为每个零件写描述(「描述深度图里一把椅子的腿部」)
③ 逐像素和这些零件描述比一次 → 深度图上每个像素属于哪个零件
④ 按投影时的对应关系,把答案反投影回 3D 的点上
⑤ 一个视角只看得到一部分(**遮挡**),所以每个点在多个视角上取平均

图说:第 ① 步和第 13 章「不做那次平均」是同一个动作,只是这一章不删层、直接取中间结果。

结果:第一版 31.0,第二版 49.513

3D 检测:接一个现成的候选框网络

做法是第 12 章那套的 3D 版:先用一个训好的 3D 候选框网络框出物体, 再把框里的点抠出来走上面那条分类流程14

结果:第一版 4.76,第二版 11.53。

这两个数必须照实说:11.53 是一个很低的绝对值。 这是这条路线的真实上限,书里没有粉饰——它把这个数直接列在表里。 参照:同一张表里,某些类别上它能到 39.53,而另一些类别上第一版只有 0.42。 换句话说:它在少数几类上勉强能用,大部分类上基本不能用。 (「能用 / 不能用」这个判断是我们下的,书里只给了数。)

9. 作者的判断与证据

书里给了证据的:

说法证据
不做 3D 训练也能认 3D三个数据集上的零样本结果
真实感投影有效23.78 → 64.22;四步逐项消融
加密是最值钱的一步+15.14
「取最小」符合遮挡最大 57.35 / 平均 60.71 / 最小 64.22
3D 专用文本有效39.11 → 61.67 → 64.22
外挂小网络在少样本下极有效20.18% → 87.20%(16 张样例)
每类只给 1 张样例(一样本)时优势最明显与四个专门的 3D 网络对照
能推广到分割和检测31.0 → 49.5;4.76 → 11.53

属于作者的推断:

  • 「2D 的知识能补 3D 的不足」——这是全章的立论, 由结果支持,但书里没有拆开分析「补的到底是哪一部分」;
  • 「取最小符合遮挡」——物理直觉 + 一组对照, 但没有排除别的解释(比如取最小刚好抑制了噪声点);
  • 投影四步各自的必要性有消融支撑,但四步的顺序没有做过对照。

10. 边界与局限

① 3D 检测的绝对值很低(11.53)。 见第 8 节。

② 零样本 64.22 仍然远低于专门训练的 3D 网络。 书里自己的对照是:给 16 张样例、外挂小网络之后才逼近全监督水平6

③ 主干是各挑各的。 第一版在三个数据集上分别用了三种不同的主干「以最大化它的表现」5—— 这意味着不同表里的第一版分数不是同一个模型跑出来的。

④ 视角权重是人设的超参数(超参数:不是训练学出来的、而是动手前由人定死的那些设置, 比如学多快、窗口多大、这里的各视角权重)。每个视角占多大分量书里没有给出选法, 也没有做「换一组权重会怎样」的对照。

⑤ 依赖一个外部大模型来写文本。 第二版的四分之一提升来自 GPT-3 的输出, 而那个输出会随模型版本变化——书里没有讨论可复现性。 这一条是我们提的,书里没提。

⑥ 这一章不处理场景,只处理单个物体。 数据集里是一把椅子、一张床这样的单件模型;室内整场景的点云,书里只在检测那一小节碰了一下。

11. 可带走的

  1. 点云 = 一堆三维坐标,稀疏、无序、不成格——所以 2D 那套方法搬不过来;
  2. 3D 没有自己的大模型,因为数据集小、类别少;
  3. 绕法是改造输入而不是改造模型:把点云画成深度图,让 CLIP 当普通照片认;
  4. 第一版的投影只有一行算术:(x,y,z) → (x/z, y/z),亮度填 z,复制三份; 除以 z 带来近大远小,这是它像照片的第一个理由;
  5. 文本模板也要跟着改:不能写「a photo of a ___」,要写「点云深度图」;
  6. 多视角各算一次再加权求和,因为单个视角看不全;
  7. 第一版零样本只有 23.78,但外挂第 09 章那个小网络 + 16 张样例就到 87.20—— 注意后者已经不是零样本;
  8. 第二版的判断是「问题在图画得太假」,于是把力气全花在投影上;
  9. 四步投影:量化(落格取最小深度)→ 加密(局部最小池化)→ 平滑(高斯核)→ 压扁(沿深度取最小); 全部不带参数,一个数都不用训;
  10. 加密最值钱(+15.14),因为它正面解决「稀疏」;
  11. 三处都取最小,因为近的该挡住远的——取最大比取最小低 6.87;
  12. 只改文字就值 25.11:让 GPT-3 按四类指令写 3D 专用描述;
  13. 能推广到零件分割(取汇总之前的稠密特征再反投影回 3D,31.0 → 49.5);
  14. 也能做 3D 检测,但绝对值只有 11.53——这是这条路线的真实上限。

12. 原文地图

主题原书章原文位置
点云的三个麻烦、3D 数据集小12. Adapting CLIP for 3D Understandingtext/42-ch12-12-adapting-clip-for-3d-understanding.txt:35(搜「space sparsity and random distribution」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:73(搜「most existing 3D datasets are relatively small」)
这件事此前没人探索过同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:37(搜「remains unexplored」)
第一版的投影:(x/z, y/z)、亮度填 z、近大远小同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:79(搜「foreshortened」)
多视角零样本怎么算、文本模板同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:85(搜「point cloud depth map of a」)
视角间适配器与 20.18 → 87.20同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:93(搜「interview adapter」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:95(搜「20.18% to 87.20%」)
真实感投影四步同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:105(搜「quantize, densify, smooth, and squeeze」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:109(搜「smallest depth value」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:113(搜「local minimum pooling」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:117(搜「nonparametric Gaussian kernel」)
四类 GPT 指令与例句同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:131(搜「It portrays the [window] as a dark pane」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:143(搜「Compose a sentence using these words」)
零样本主表(23.78 / 64.22 / 73.13 / 35.36)同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:181(搜「73.13% and 64.22%」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:239(搜「23.78」)
投影四步消融与池化方式对照同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:265(搜「+15.14% and +5.7%」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:335(搜「60.71」)
GPT 指令消融(39.11 → 64.22)同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:367(搜「39.11」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:427(搜「64.22」)
少样本:16 张超过 87.60、一样本优势最大同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:437(搜「marked improvement in one-shot classification」)
零件分割的做法与结果同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:159(搜「before its final pooling operation」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:503(搜「31.0」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:529(搜「49.5」)
3D 检测的做法与结果同上text/42-ch12-12-adapting-clip-for-3d-understanding.txt:167(搜「3D RPN」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:641(搜「4.76」) · text/42-ch12-12-adapting-clip-for-3d-understanding.txt:665(搜「11.53」)

Footnotes

  1. 出处:「12. Adapting CLIP for 3D Understanding」第 85 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:85,搜「point cloud depth map of a」)。原文把视角数写成一个符号 M,没有在这一段固定取值;主走查里的「六个视角、1024 个点、一把椅子」是我们为讲解设的具体场景。零样本主表里的 23.78 与 64.22 见第 239 与 255 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:239,搜「23.78」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:255,搜「64.22」)。

  2. 出处:同上第 73 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:73,搜「most existing 3D datasets are relatively small」)与第 35 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:35,搜「space sparsity and random distribution」)。原文:大规模 2D 数据集提供了充足样本,而大多数现有 3D 数据集相对小、类别有限,难以得到可迁移的强 3D 预训练网络;另外点云面临空间稀疏与随机分布的挑战,直接搬用 2D 领域的方法很困难

  3. 出处:同上第 79 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:79,搜「foreshortened」)。原文:以底视图为例,点 (x,y,z) 在平面上的位置是 (⌈x/z⌉,⌈y/z⌉);这样得到的投影带有透视缩短——远的看起来小、近的看起来大,和真实照片里看到的一样;与此前工作用卷积层把单通道深度图预处理成三通道不同,这里跳过卷积,直接把三个通道的像素值都设成 z;而且这些散点投影直接来自原始点,不需要网格或渲染。

  4. 出处:同上第 85 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:85,搜「point cloud depth map of a」)。原文:用 M 个视角的投影图各抽一次视觉特征;文本那侧把 K 个类名塞进模板「point cloud depth map of a [CLASS].」构成零样本分类器;每个视角单独算一次分类分数,再按各视角的权重加权求和,而那些权重是超参数。

  5. 出处:同上第 181 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:181,搜「73.13% and 64.22%」)与第 177 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:177,搜「to maximize its performance」)。原文:第二版在三个基准上分别达到 73.13%、64.22%、35.36%,都没有做过任何 3D 训练;而需要额外 3D 预训练的对照方法在第二个基准上是 49.38(第 207 段,text/42-ch12-12-adapting-clip-for-3d-understanding.txt:207,搜「49.38」)。实验设置里写明:第一版在三个数据集上分别用了三种不同的主干「以最大化它的表现」。 2

  6. 出处:同上第 93 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:93,搜「interview adapter」)与第 95 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:95,搜「20.18% to 87.20%」)。原文:全模型微调不现实,因为样本少、参数多,会过拟合;于是在 CLIP 之上加一个三层的小网络(视角间适配器),把 M 个视角的特征沿通道拼起来、经前两层得到一个紧凑的全局特征,再把调整后的特征通过残差连接加回各视角;训练时冻住 CLIP 的视觉与文本编码器,只微调这个轻量组件;在一个 40 类数据集上、每类 16 个样本时,准确率从 20.18% 提到 87.20%,与充分训练过的模型相当 2 3

  7. 出处:同上第 105 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:105,搜「quantize, densify, smooth, and squeeze」)、第 109、113、117、121 段。原文四步依次是:建三维格子并把坐标归一化到 [0,1],同格多点时取最小深度,因为深度小的点会遮住深度大的;用局部最小池化加密,同样因为保留最小深度符合被遮挡的观感;用不带参数的高斯核平滑去除加密造成的伪影,同时保住原始形体的棱角;最后沿深度通道取最小值压成一张 H×W 的深度图并复制三份模拟彩色三通道。

  8. 出处:同上第 265 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:265,搜「+15.14% and +5.7%」)与表 12.2 各行(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:285,搜「57.35」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:295,搜「44.50」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:305,搜「59.64」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:315,搜「50.20」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:335,搜「60.71」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:345,搜「64.22」)。原文:直接用正交投影时零样本掉 6.87% 到 57.35;引入量化之后,加密与平滑分别带来 +15.14% 与 +5.7%;池化方式对照里最大 57.35、平均 60.71、最小 64.22。「只量化 44.50 比不量化 57.35 还低」这一条是我们从表里读出来的,书里没有评论。 2

  9. 出处:同上第 109 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:109,搜「tend to occlude the larger ones」)与第 113 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:113,搜「aligns with visually occluded appearances」)。原文两处都把「取最小」的理由写成同一句:在目标视角平面上,深度值小的点倾向于遮挡深度值大的点。

  10. 出处:同上第 127 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:127,搜「instead of the generic」)与第 131、135、139、143 段。原文:用富含 3D 语义的描述取代通用的「a photo of a [CLASS].」;四类启发式指令分别是生成图注、问答、同义改写、关键词造句,每类都给了一个例子;关键词造句那个例子里的形容词「smooth」,原文特别注明它刻画的正是平滑操作带来的自然观感。 2

  11. 出处:同上表 12.3 各行(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:367,搜「39.11」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:377,搜「61.67」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:387,搜「60.86」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:407,搜「63.29」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:427,搜「64.22」)。表 12.3 的标题写明这是四类指令在同一个 40 类数据集上的对照。「25.11」这个差值是我们做的减法。

  12. 出处:同上第 159 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:159,搜「before its final pooling operation」)与第 163 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:163,搜「back-projected into the 3D space」)。原文:不取全局表示,而是取视觉编码器最后那次池化之前的特征图并上采样到深度图尺寸;用 GPT-3 为每个零件生成描述;逐像素与文本特征对齐得到每个像素的零件分类;再按 2D-3D 映射反投影回三维,由于遮挡使一个视角只看得到一部分点,所以在多个视角上对每个点取平均。

  13. 出处:同上表 12.4(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:503,搜「31.0」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:529,搜「49.5」)与第 445 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:445,搜「16 classes and 50 corresponding parts」)。数据集有 16 类物体、50 个零件,每个点云取 2048 个点。

  14. 出处:同上第 167 段(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:167,搜「3D RPN」)与表 12.5(text/42-ch12-12-adapting-clip-for-3d-understanding.txt:641,搜「4.76」;text/42-ch12-12-adapting-clip-for-3d-understanding.txt:665,搜「11.53」)。原文:沿用 2D 开放世界检测的思路,把零样本分类头接在一个预训练好的 3D 候选框网络上;先由它生成一批三维框,再把框内的原始点送进分类流程,这样这个被 CLIP 增强过的检测器不需要显式训练就能检出没认过的物体。表里同一行的逐类数值差别极大,最高 39.53、最低 0.42。