前言:
在前三篇笔记里,我们沿着点云深度学习的演进脉络走过了两个阶段:
- PointNet / PointNet++ 解决的是「怎么从零训好一个 3D 网络」------核心难题是点云的无序性、稀疏性、局部结构,从共享 MLP + 全局池化到层次化 Set Abstraction,奠定了 3D 表征学习的基石;
- PointCLIP 则走了另一条路:既然 3D 数据少、标注贵,那就不训 3D,改借 2D 大模型(CLIP)的开放语义。它用多视角深度图投影把点云「伪装」成图片,绕开了点云结构处理的难题。
但 PointCLIP 的「投影复用」策略存在三个本质局限:
- 3D 形态被「压扁」:点云投影成 2D 深度图后丢失了大量几何细节(如曲面曲率、内腔结构、遮挡关系),2D 视图无法完整表达 3D 形态;
- 3D 编码器未学到语义:PointCLIP 直接复用 CLIP 的图像编码器处理深度图,3D 表征本身并未对齐到语言空间------真正学到开放语义的是 CLIP,而非 3D 模型;
- 三元组数据稀缺:3D 领域几乎不存在大规模(image, text, point cloud)三元组,直接做三模态对齐研究寸步难行。
ULIP(Learning a Unified Representation of Language, Images, and Point Clouds)给出了更彻底的回答:不绕道投影,直接训练 3D 编码器对齐到 CLIP 已对齐的图文空间 。它冻结预训练 CLIP 当「老师」,只用 ShapeNet55 自动合成的少量三元组训练 3D 编码器,让 3D 表征真正学到开放语义,在 zero-shot 3D 分类上比 PointCLIP 高出 28.8% top-1 accuracy。

Figure 1. ULIP 整体示意图。通过将图像、文本、点云三模态特征对齐到同一空间来提升 3D 理解能力。为降低对 3D 数据的依赖,ULIP 借助在大规模图文对上预训练的图像和文本编码器,用少量训练三元组将 3D 表征对齐到已对齐的图文特征空间。
流程图分析:

Figure 2. ULIP 方法整体架构。多模态预训练的输入(左)是一批以三元组(图像、文本、点云)表示的物体。图像和文本特征由预训练(冻结)的视觉-语言模型(如 CLIP)提取,3D 特征由 3D 编码器提取。预训练时通过对比损失将物体的 3D 特征对齐到其图像和文本特征。预训练的 3D 编码器进一步微调用于下游任务,包括标准 3D 分类(右上)和零样本 3D 分类(右下)。
整条流水线可以拆成三块来理解:
- 左侧输入(三元组构建):从 ShapeNet55 的 CAD 模型自动合成 (image, text, point cloud) 三元组,无需人工标注;
- 中间编码(三模态特征提取) :CLIP 图像编码器 + 文本编码器全程冻结,只有 3D 编码器可训练,三模态特征通过对比损失两两对齐;
- 右侧下游(双任务适配):标准 3D 分类(微调 3D 编码器)+ zero-shot 3D 分类(直接推理,不微调)。
关键姿态:CLIP 的两个编码器全程冻结,整个预训练只更新 3D 编码器参数,既规避了三元组稀缺导致 CLIP 灾难性遗忘的风险,又让 3D 表征被「拉」向已对齐的图文空间。
各模块功能对应总结:
| 模块 | 作用 | 是否可训练 |
|---|---|---|
| ① ShapeNet55 三元组构建 | CAD 点云均匀采样 + 60 多视角渲染(30 RGB + 30 深度图)+ 64 prompt 模板构造文本,全自动无标注 | 否(数据预处理) |
| ② 3D 点云编码器 | PointNet++ / PointMLP / PointBERT 任选,提取 3D 表征 hP\mathbf{h}^PhP | 是(唯一训练对象) |
| ③ CLIP 图像编码器 | 提取图像特征 hI\mathbf{h}^IhI,提供视觉语义监督 | 冻结 |
| ④ CLIP 文本编码器 + Prompt | 64 个模板(含 "a point cloud model of WORD" 专用模板)编码文本特征 hS\mathbf{h}^ShS | 冻结 |
| ⑤ 跨模态对比损失 | InfoNCE 双向对称形式 + 可学习温度 τ\tauτ,三对模态两两对齐 | 损失函数(无参数) |
| ⑥ 下游任务适配 | 标准分类:微调 3D 编码器;zero-shot 分类:直接比距离;跨模态检索:图文↔点云 | 视任务而定 |
流程解析:
步骤 1:训练三元组构建(全自动无标注)
ULIP 从 ShapeNet55(约 52.5K CAD 模型,55 类)出发,为每个 CAD 模型 iii 构造三元组 Ti:(Ii,Si,Pi)T_i : (I_i, S_i, P_i)Ti:(Ii,Si,Pi):
- 点云 PiP_iPi :直接用 ShapeNet55 生成的点云,均匀采样 NpN_pNp 个点(1024 / 2048 / 8192,适配不同 backbone),预训练时做标准数据增强(随机 dropout / 缩放 / 平移 / 旋转扰动);
- 图像 IiI_iIi :ShapeNet55 的 CAD 模型本身不带图像,ULIP 在物体周围每隔 12 度放置虚拟相机渲染,得到 30 张 RGB + 30 张深度图 = 60 个候选,每轮训练随机选 1 张;
- 文本 SiS_iSi:利用 CAD 模型的 metadata(分类学 synset)作为文本描述,套入 64 个 prompt 模板(63 个通用模板如 "a picture of WORD" + 1 个 3D 专用模板 "a point cloud model of WORD"),每轮随机选 1 个词套用全部模板。
步骤 2:三模态特征提取(对应公式 1-3)
三个编码器分别提取各自模态的特征:
- 3D:hiP=fP(Pi)\mathbf{h}_i^P = f_P(P_i)hiP=fP(Pi),fPf_PfP 是可训练的 3D backbone;
- 图像:hiI=fI(Ii)\mathbf{h}_i^I = f_I(I_i)hiI=fI(Ii),fIf_IfI 是冻结的 CLIP 图像编码器;
- 文本:hiS=Avg(fS(Si))\mathbf{h}_i^S = \text{Avg}(f_S(\mathbf{S}_i))hiS=Avg(fS(Si)),fSf_SfS 是冻结的 CLIP 文本编码器,关键设计:64 个模板编码后做平均池化,因为单 prompt 表达不稳定,平均后更鲁棒。
步骤 3:跨模态对比学习(对应公式 4)
对三对模态(image-text、image-point cloud、point cloud-text)两两计算 InfoNCE 双向对称对比损失:
- 双向对称 :同时优化 i→ji \to ji→j 和 j→ij \to ij→i 两个方向,保证两个模态互相对齐而非单向依赖;
- 可学习温度 τ\tauτ:与 CLIP 一致,自适应调节对齐难度;
- 作用:让正样本对(同一物体的不同模态)拉近,负样本对(不同物体的跨模态)推远。
步骤 4:总损失优化(对应公式 5,关键设计)
Lfinal=αL(I,S)+βL(I,P)+θL(P,S)L_{final} = \alpha L_{(I,S)} + \beta L_{(I,P)} + \theta L_{(P,S)}Lfinal=αL(I,S)+βL(I,P)+θL(P,S)
默认设置 α=0,β=θ=1\alpha = 0, \beta = \theta = 1α=0,β=θ=1,这是 ULIP 整个范式成立的工程基石:
- α=0\alpha = 0α=0 :不更新图文对齐损失------CLIP 已在大规模图文对上学好对齐,用小数据更新会导致灾难性遗忘,性能大幅下降;
- β=θ=1\beta = \theta = 1β=θ=1:只更新涉及 3D 的两个对齐损失(image-point cloud 和 point cloud-text);
- 实际效果:3D 编码器被「拉」向已对齐的图文空间,而图文空间本身不动。
预训练共 250 epoch,batch size 64,学习率 10−310^{-3}10−3,AdamW 优化器,8×A100 GPU。图像-文本编码器使用 SLIP(CLIP 的改进版)以获得更优的泛化性能。
步骤 5:下游任务
- 标准 3D 分类 :用预训练 3D 编码器初始化,在 ModelNet40 / ScanObjectNN 上微调,不引入推理期额外开销(3D backbone 结构不变);
- zero-shot 3D 分类 :直接用预训练模型计算 3D 特征与候选类别文本特征的距离,最小者胜,无需微调;
- 跨模态检索 :用 Caltech101 真实图像检索 ModelNet40 点云,验证跨模态对齐质量。

Figure 4. 真实图像到点云检索的定性结果。查询图像来自 Caltech101,点云来自 ModelNet40。展示 top-5 检索结果按顺序排列。结果表明 ULIP 学到了跨图像与 3D 点云模态的有意义特征。
创新点分析:
1. 三模态统一对齐空间(核心贡献)
ULIP 首次让 3D 表征直接对齐到 CLIP 已对齐的图文空间 ,而非像 PointCLIP 那样把点云「伪装」成图。消融实验(Table 3/6)证明:三模态对齐(P+I+T)全面优于两两对齐(P+T 或 P+I),例如 PointBERT+ULIP 在 ModelNet40 ALL 集上,P+I+T 达 60.4%,而 P+T 仅 44.7%、P+I 仅 35.5%。这说明图像和文本提供了互补的监督信号,缺一不可。
2. "老师-学生"借力范式
冻结预训练 CLIP 当「老师」(已学到大规模图文语义),3D 编码器当「学生」,用极少合成三元组对齐到老师空间。这一范式规避了三元组稀缺的根本难题,成为后续 ULIP-2 / Uni3D / OpenShape 等一系列 3D 多模态工作的范式起点。
3. 3D backbone 完全无关
ULIP 即插即用 PointNet++ / PointMLP / PointBERT,3D 编码器结构无需任何修改,仅预训练阶段对齐,下游推理零额外开销。这证明了方法的通用性,奠定了「3D 表征统一空间」路线------任何 3D 编码器都能通过 ULIP 获得开放语义能力。
4. 实验双 SOTA
- zero-shot 3D 分类 :比 PointCLIP 高 28.8% top-1(ModelNet40 Hard set,8.3% → 37.1%);
- 标准 3D 分类 :刷新 ScanObjectNN SOTA(PointMLP†+ULIP 比 RepSurf-U(2×) 高 3.4% OA)和 ModelNet40 SOTA;
- 数据效率:少样本场景下 ULIP 增益更大(Figure 3),实际部署价值显著。
重要公式分析:
ULIP 的 5 个公式清晰刻画了「特征提取 → 对齐 → 优化」的完整逻辑链。
公式 (1):3D 特征提取
hiP=fP(Pi)(1)\mathbf{h}_i^P = f_P(P_i)\tag{1}hiP=fP(Pi)(1)
3D 编码器 fPf_PfP 把点云 PiP_iPi 映射为特征向量 hiP\mathbf{h}_i^PhiP。关键 :fPf_PfP 是整个预训练中唯一可训练的对象,PointNet++/PointMLP/PointBERT 任选。
公式 (2):图像特征提取
hiI=fI(Ii)(2)\mathbf{h}_i^I = f_I(I_i)\tag{2}hiI=fI(Ii)(2)
CLIP 图像编码器 fIf_IfI 提取图像特征。关键 :fIf_IfI 冻结,只提供视觉语义监督信号,不参与梯度更新。
公式 (3):文本特征提取
hiS=Avg(fS(Si))(3)\mathbf{h}_i^S = \text{Avg}(f_S(\mathbf{S}_i))\tag{3}hiS=Avg(fS(Si))(3)
文本特征是 64 个 prompt 模板编码后的平均池化 。为何做平均 ?单 prompt 表达不稳定(如 "a picture of cup" 和 "a point cloud model of cup" 语义侧重不同),64 个模板平均后更鲁棒地捕获类别语义。fSf_SfS 同样冻结。
公式 (4):跨模态对比损失(InfoNCE 双向对称)
L(M1,M2)=∑(i,j)−12logexp(hiM1hjM2τ)∑kexp(hiM1hkM2τ)−12logexp(hiM1hjM2τ)∑kexp(hkM1hjM2τ)(4)L_{(M_1,M_2)} = \sum_{(i,j)} -\frac{1}{2}\log\frac{\exp\left(\frac{\mathbf{h}_i^{M_1}\mathbf{h}_j^{M_2}}{\tau}\right)}{\sum_k\exp\left(\frac{\mathbf{h}_i^{M_1}\mathbf{h}_k^{M_2}}{\tau}\right)} -\frac{1}{2}\log\frac{\exp\left(\frac{\mathbf{h}_i^{M_1}\mathbf{h}_j^{M_2}}{\tau}\right)}{\sum_k\exp\left(\frac{\mathbf{h}_k^{M_1}\mathbf{h}_j^{M_2}}{\tau}\right)}\tag{4}L(M1,M2)=(i,j)∑−21log∑kexp(τhiM1hkM2)exp(τhiM1hjM2)−21log∑kexp(τhkM1hjM2)exp(τhiM1hjM2)(4)
其中 M1,M2M_1, M_2M1,M2 代表两个模态,(i,j)(i,j)(i,j) 是 batch 内的正样本对,τ\tauτ 是可学习温度。
- 双向对称 :第一项是 i→ji \to ji→j 方向(以 iii 为锚点),第二项是 j→ij \to ij→i 方向(以 jjj 为锚点),保证两个模态互相对齐而非单向依赖;
- 可学习温度 τ\tauτ :与 CLIP 一致,自适应调节对齐难度------训练初期 τ\tauτ 大,对齐宽松;训练后期 τ\tauτ 小,聚焦困难样本。
公式 (5):总损失(关键设计哲学)
Lfinal=αL(I,S)+βL(I,P)+θL(P,S)(5)L_{final} = \alpha L_{(I,S)} + \beta L_{(I,P)} + \theta L_{(P,S)}\tag{5}Lfinal=αL(I,S)+βL(I,P)+θL(P,S)(5)
默认 α=0,β=θ=1\alpha = 0, \beta = \theta = 1α=0,β=θ=1,这是 ULIP 整个范式成立的工程基石:
- α=0\alpha = 0α=0 :不更新图文对齐损失------CLIP 已在大规模图文对上学好对齐,用 ShapeNet55 仅 52.5K 的小数据更新会触发灾难性遗忘,导致下游性能崩塌;
- β=θ=1\beta = \theta = 1β=θ=1:只更新涉及 3D 的两个对齐损失;
- 实际效果 :3D 编码器被单向「拉」向已对齐的图文空间,而图文空间本身不动------老师不动,学生靠拢。
论文总结:
贡献回顾
- 首次实现三模态统一对齐空间:让 3D 表征直接对齐到 CLIP 图文空间,3D 编码器真正学到开放语义;
- 提出"冻结大模型+训练轻量 3D 编码器"的借力范式:规避三元组稀缺难题,成为后续 ULIP-2/Uni3D/OpenShape 的范式起点;
- 3D backbone 完全无关:即插即用 PointNet++/PointMLP/PointBERT,结构不变,推理零额外开销;
- 双任务 SOTA:zero-shot + 标准分类均刷新记录。
实验结果精华
| 实验 | 关键数字 | 含义 |
|---|---|---|
| zero-shot ModelNet40 Hard | PointCLIP 8.3% → ULIP+PointBERT 37.1%(+28.8) | 3D 表征真正学到开放语义,非数据泄漏 |
| zero-shot ModelNet40 ALL | PointCLIP 20.2% → ULIP+PointBERT 60.4%(+40.2) | 整体 zero-shot 能力碾压式提升 |
| 标准 ScanObjectNN | PointMLP 85.7% → +ULIP 88.8%(+3.1),新 SOTA | 真实扫描场景增益显著 |
| 三模态消融(Table 3) | P+I+T 全面优于 P+T 或 P+I | 三模态对齐必要性证明,图文监督互补 |


Figure 3. 数据效率对比。X 轴为训练样本比例,Y 轴为 Overall Accuracy。在低数据量场景下,ULIP 预训练对 PointMLP 和 PointBERT 的增益尤为显著。
与前序论文关联
- PointNet / PointNet++:3D 编码器底座继承------ULIP 直接用 PointNet++ 当 backbone,PointNet 系列奠定的「直接处理无序点集」范式是 ULIP 得以成立的前提;
- PointCLIP :治标 vs 治本
- PointCLIP:点云 → 深度图 → 复用 CLIP 视觉编码器(绕道,3D 表征未学到语义);
- ULIP:3D 编码器 → 直接对齐到 CLIP 图文空间(直道,3D 表征真正学到开放语义);
- 演进逻辑:从「借 2D 模型」到「学 2D 模型对齐空间」------PointCLIP 是 2D→3D 的知识搬运,ULIP 是 3D→统一空间的对齐学习,后者更彻底也更可扩展。