论文解读与源码复现|GFS-VL:借力 3D 视觉语言模型做广义少样本点云分割(CVPR 2025)

发布时间:2026/10/20 2:45:55
论文解读与源码复现|GFS-VL:借力 3D 视觉语言模型做广义少样本点云分割(CVPR 2025)
论文解读与源码复现GFS-VL借力 3D 视觉语言模型做广义少样本点云分割CVPR 2025论文首页题目与摘要截图一、前言广义少样本 3D 点云分割GFS-PCS的要求很现实模型先在基础类上训练注册少量新类样本后不依赖任何支持样本就能同时分割基础类与新类——这是落地场景新类层出不穷的室内/机器人感知真正需要的能力。现有方法CAPL、GW全靠原型学习 支持/查询特征交互精炼但信息源只有那几个少样本——新类知识稀疏是天花板。与此同时3D 视觉语言模型RegionPLC、OpenScene 等靠海量图文对齐获得了开放世界的 3D 语义知识——稠密但带噪。直接拿 VLM 预测当伪标签噪声会污染少样本模型。哥本哈根大学、ETH、南开与牛津合作的 GFS-VL 给出的答案是扬长补短的三件套伪标签筛选用精确但稀疏的少样本原型过滤 VLM 的稠密伪标签→自适应填补对筛掉后无标注的区域用当前伪标签上下文 少样本原型构成的自适应原型集补标→新-基混合增广把支持样本嵌入训练场景并保留上下文。在自建的 ScanNet200/ScanNet 难基准上HM 指标相对 SOTA 提升17.9–28.6%。二、方法解析2.1 任务与框架骨架GFS-PCS 设定论文 3.1 节基础类集 $\mathcal{C}_b$$N_b$ 类先训练新类集 $\mathcal{C}_n$$N_n$ 类每类只有 K 个支持样本测试时对 $\mathcal{C}_b \cup \mathcal{C}_n$ 全集分割、不给支持样本。GFS-VL 用最简结构——backbonePTv3 线性分类头基础预训练后为新增类加一个线性头 $H_n$拼接输出 $P [H_b(F), H_n(F)]$式 1–2再用精炼后的监督微调 20 epochs。2.2 伪标签筛选少样本原型当质检员用 3D VLM 的视觉编码器 $\Theta_v$ 从少样本支持集提取每个新类的支持原型式 3masked 平均特征$p_c \mathcal{F}_{pool}(X_n^c, Y_n^c)$。然后对基础训练场景 $X_b$用全部类名提示 3D VLM 得到原始预测 $\hat{Y}$同样提取每类预测原型$u_c$式 4。筛选规则式 5$$\hat{Y}_i \begin{cases} -1, \text{若 } \hat{Y}i \text{ 为基础类或为新类但 } \mathrm{sim}(u{\hat{Y}i}, p{\hat{Y}_i}) \tau \ \hat{Y}_i, \text{否则} \end{cases}$$即基础类预测全部丢弃有真标签新类预测只有在该类的预测原型与少样本支持原型足够相似余弦相似度 ≥ τ时才保留。筛选后的可靠新类伪标签合并进背景区域式 6得到增强监督 $Y_b$。2.3 自适应填补补全漏检、找回漏类筛选留下的未标注区域$-1$可能对应VLM 漏掉或标错一半的新类对象。填补策略构造自适应原型集式 7–8每个新类若在当前 $Y_b$ 中有可靠伪标签就用其原型 $v_c$否则回退到少样本支持原型 $p_c$。然后对每个未标注点与自适应原型集算余弦相似度最大值 ≥ δ 时赋予对应新类式 9$$Y{b,i} \begin{cases} \arg\max_c S{b,i}^c, \text{若 } \max_c S_{b,i}^c \ge \delta \ -1, \text{否则} \end{cases}$$这套机制同时完成两件事补全不完整的伪标签 mask用上下文原型 $v_c$与发现被整体漏掉的新类用支持原型 $p_c$。图片源自论文 Figure 2GFS-VL 总览。(a) 新-基混合把支持样本嵌入训练场景(b) 3D VLM 生成原始预测 → 伪标签筛选 → 自适应填补 → 精炼监督训练 3D 分割器(c)(d) 筛选与填补的细节。2.4 新-基混合上下文保留的增广与 Mix3D 等跨场景乱叠的增广相反GFS-VL 主张保留上下文——新类往往是难检对象孤立的物体模式不足以学会论文引 CAPL 的发现。做法从支持样本中按新类 mask 裁剪局部块式 10提取训练场景与局部块在 XY 平面的四个角点随机选一对对角式 11计算平移向量把局部块贴合到场景的角落——块与场景自然衔接、不破坏两侧的上下文。三、数据集与实验设置两个新基准论文指出旧基准只有 6 个新类、多样性不足基准基础类新类新类出现次数范围平均点数范围S3DIS旧7629–18530,013–59,929ScanNet旧136133–4111,148–4,479ScanNet200新1245102–733279–12,641ScanNet新121882–143604–84,375评测在整场景而非此前的小块上进行0.02m 体素化。指标mIoU-B基础/ mIoU-N新类/ mIoU-A全类/HMB 与 N 的调和平均抑制基础类偏置。设置PTv3 backbone800 epochs 基础预训练 RegionPLC 3D VLM微调 20 epochsAdam lr 0.001/0.0075-shot 与 1-shot 各 5 个随机种子平均全监督上限与 GW/COSeg/attMPTI/PIFS 基线统一 backbone 重训以保证公平。四、关键实验结果1. ScanNet200 新基准HM 相对提升 28.6%Table 2方法5-shot: mIoU-B / N / A / HM1-shot: mIoU-B / N / A / HM全监督上限68.70 / 39.32 / 45.51 / 50.02同左PIFS28.78 / 3.82 / 9.07 / 6.7117.84 / 2.87 / 6.02 / 4.88COSeg57.67 / 5.21 / 16.25 / 9.5447.03 / 4.03 / 13.09 / 7.42GW前 SOTA59.28 / 8.30 / 19.03 / 14.5555.23 / 6.47 / 16.74 / 11.56GFS-VL67.57 / 31.67 / 39.23 / 43.1268.48 / 29.18 / 37.45 / 40.925-shot 下 mIoU-N 从 8.30 跃至 31.67相对 GW 281%、HM 28.57%基础类也同时上涨59.28→67.57——VLM 知识与少样本精度是互补而非争夺。2. ScanNet 新基准Table 31-shot mIoU-N 19.42 vs GW 6.63192%、HM 29.47 vs 11.5917.88% 相对提升口径按论文为 17.88pp 场景下比较。3. 旧 ScanNet 基准同样碾压Table 41-shot mIoU-N 49.72 vs GW 14.7834.94pp、HM 60.88 vs 21.5539.33pp——与全监督上限60.37/68.33几乎重合。4. 消融Table 5a原始 VLM 伪标签直训 33.28 HM → 筛选 38.35 → 填补 39.39 → 新基混合43.22——三模块逐级有效、组合最优。填补阈值 δ0.9 最优、筛选阈值 τ 在 0.5–0.8 区间均稳鲁棒。5. 跨 VLM 与跨 backboneTable 5b/5fRegionPLCHM 31.56→43.22与 OpenScene23.58→31.07都能被框架放大PTv3 与 SparseConvNet 两个 backbone 上结论一致——方法不绑定特定模型。6. 混合策略对比Table 5gNB-MixHM 39.36 Mix3D36.42 Instance Mix35.44——保留上下文的直觉得到实证。五、机制解释与讨论为什么筛选填补优于直接用伪标签VLM 伪标签的错误不是均匀噪声大部分区域是对的、错的是成片的误分类。直训会把错误固化进少样本模型误差累积。筛选用少样本原型做逐类质检——某类的整体预测原型与支持原型不像说明该类预测大概率整体不可靠直接整类丢弃mask 索引实现无需逐点循环填补则承认筛掉的坑里可能埋着真新类用自适应原型做保守的二次标注。一放一收恰好把稠密但噪的信息转成稠密且基本对的监督。具体发现 → 凝练结论具体发现一直用 VLM 伪标签 HM 仅 33.28 —— 结论开放世界知识必须经少样本校准才能进入少样本模型具体发现二基础类 mIoU 也从 65.50 涨到 67.42 —— 结论新类伪标签填充了背景区域的语义空洞对基础类学习同样是正则具体发现三NB-Mix 优于 Instance Mix/Mix3D —— 结论对难检的新类物体长在哪、周围是什么与物体长什么样同样重要。六、局限与工程启示局限依赖一个预训练好的 3D VLMRegionPLC/OpenScene其 2D 蒸馏或 caption 生成过程自身的偏差会传入伪标签筛选只能挡住与少样本不符的错挡不住VLM 与少样本一起错新基准的类划分哪些算基础/新类引入了设计自由度推理依赖 VLM 的视觉编码器提取特征做填补部署链路比纯分割器长。工程启示少样本精标注 开放词汇模型的稠密伪标签是当前标签高效 3D 分割的最优组合前者当质检员与锚点后者当知识源——两边的角色不要搞反逐类原型相似度筛选而非逐点置信度实现简单、可向量化是伪标签去噪的轻量方案增广策略要审题全监督场景的上下文破坏式增广Mix3D对少样本泛化可能有害NB-Mix 的角点贴合可直接复用两个新基准ScanNet200 45 新类 / ScanNet 18 新类、整场景评测应作为后续 GFS-PCS 工作的标准评测旧基准的 6 新类已饱和GFS-VL 已逼近全监督上限。七、源码复现官方仓库https://github.com/ZhaochongAn/GFS-VLPointcept 框架实现本地目录复现代码/2868-GFS-VL/依赖模型/数据PTv3 预训练权重、RegionPLC3D VLM、ScanNet/ScanNet200/ScanNet 数据集⚠️ 复现路径/未运行以下为源码结构与预期运行路径分析非实际运行结果。完整训练需多卡 GPU 与 ScanNet 数据需官方许可下载。7.1 仓库目录结构实际下载内容2868-GFS-VL/ ├── README.md / LICENSE.md / docs/GFS_VL.png ├── scripts/{train.sh, test.sh} ├── tools/{train.py, test.py} └── pointcept/ # Pointcept 框架 ├── engines/train.py # ★ 训练引擎VLM 接入 伪标签筛选/填补 ├── datasets/scannetpp.py # ScanNet GFS 基准数据集 ├── models/PLA/tools/cfgs/scannet200_models/zs/ # 3D VLM 配置 └── ...Pointcept 标准结构7.2 关键代码片段摘自pointcept/engines/train.py伪标签筛选逐类计算预测原型与 3D VLM 少样本支持原型vlm_novel_proto做余弦相似度低于 τ 的整类置 −1对应论文式 5# pointcept/engines/train.py节选 def pseudo_label_selection(self, all_pred_cloud, all_feat_cloud, offset, ps_thresh0.6): filtered_preds [] for start_idx, end_idx in zip([0] offset[:-1], offset): class_prototypes {} pred_cloud all_pred_cloud[start_idx:end_idx].clone() feat_cloud all_feat_cloud[start_idx:end_idx].clone() for class_id in pred_cloud.unique(): # 逐类预测原型 u_c class_mask pred_cloud class_id class_prototypes[class_id.item()] feat_cloud[class_mask].mean(dim0) for class_id, proto in class_prototypes.items(): if class_id self.cfg.data.num_bases: pred_cloud[pred_cloud class_id] -1 # 基础类预测丢弃 else: novel_proto self.vlm_novel_proto[class_id - self.cfg.data.num_bases] similarity torch.cosine_similarity(proto, novel_proto, dim0) # 低于 τ 的新类预测同样置 -1代码续接处自适应填补背景未标注点与当前伪标签原型 ∪ 少样本支持原型算相似度超过 δ 才赋予新类对应论文式 7–9# pointcept/engines/train.py续 for class_id in bg_pred_cloud.unique(): # 当前伪标签原型 v_c class_features bg_feat_cloud[bg_pred_cloud class_id] current_prototypes[class_id.item()] class_features.mean(dim0) for class_id in range(num_bases, num_base_novels): # 自适应原型集 {m_c} updated_prototypes.append(current_prototypes.get( class_id, self.vlm_novel_proto[class_id - num_bases].clone())) mask_neg_one (pred_cloud -1) (cur_label -1) # 未标注区域 similarities torch.cosine_similarity( feat_neg_one[:, None, :], updated_prototypes[None, :, :], dim-1) max_similarity, max_class_idx similarities.max(dim1) refined_labels[mask_neg_one] torch.where( max_similarity self.cfg.ai_thresh, # δ 阈值默认 0.9 class_ids[max_class_idx], -1)7.3 复现步骤环境与数据按 Pointcept 环境安装下载 ScanNet合规申请、ScanNet 数据并按datasets/预处理0.02m 体素化下载 PTv3 与 RegionPLC 权重。基础预训练在 ScanNet200/ScanNet 的基础类上按 PTv3 标准配置训练 800 epochs。注册与微调scripts/train.sh启动——构建零样本 3D VLMbuild_zero_shot_model类名 基础 新类→ 从支持样本提取vlm_novel_proto→ 训练循环中在线执行伪标签筛选ps_thresh0.6与自适应填补ai_thresh0.9微调 20 epochs。评测scripts/test.sh在整场景测试集上报 mIoU-B/N/A 与 HM5 个种子平均对照 Table 2–4。消融配置中逐项关闭 PS/AI/NB-MixTable 5a换 OpenScene VLMTable 5b扫 δ ∈ {0.8,0.85,0.9,0.95} 与 τ ∈ {0.5–0.8}Table 5c/d换 SCN backboneTable 5f替换混合策略为 Instance Mix/Mix3DTable 5g。7.4 原型筛选的粒度与数据泄漏检查GFS-VL 的伪标签筛选并不是简单保留每个点上置信度最高的 VLM 预测而是先按新类别聚合预测特征形成场景内的预测原型再与少样本支持原型比较。这样做利用了类别层面的整体一致性但也带来一个重要边界若某场景中某类预测点非常少聚合原型可能不稳定若预测区域混入其他类别原型也可能被污染。复现时应记录每类参与原型计算的点数并对低支持量类别做敏感性分析而不是只报告一个固定阈值下的 HM。数据划分上支持样本必须与测试场景隔离且不能把测试场景标签用于伪标签筛选或原型更新。基础类训练标签用于监督基础类VLM 伪标签提供新类候选两者来源应清晰标记。若在测试阶段根据真值调整筛选阈值就会使结果不再代表广义少样本设定。建议固定随机种子、保存每个 seed 的支持集清单并公开基础类/新类映射确保对比方法面对相同数据划分。7.5 结果解读平衡指标、上下文与部署成本广义少样本任务不能只看新类 mIoU。模型若通过牺牲基础类预测来提升新类实际部署可能不可接受HM 将基础类和新类表现合并惩罚明显偏科。因此应同时给出 mIoU-B、mIoU-N、mIoU-A 与 HM并结合类别级结果分析长尾新类的收益是否集中在少数容易类别。论文中基础类表现也提升是伪标签补充背景语义的证据之一但不应由此推断所有类别均等受益。NB-Mix 强调把新类局部块放入训练场景并保留上下文。点云场景的语义常依赖空间关系同一几何形状在不同邻域中可能属于不同物体部件。混合时若坐标尺度、地面高度或局部密度不匹配会造成人工边界模型学到拼接伪影。工程上应可视化混合前后场景检查局部块与场景的空间衔接并与 Instance Mix、Mix3D 等基线在相同计算预算下比较。最后训练阶段使用 3D VLM 生成伪标签意味着标签效率提升是以额外模型计算和依赖为代价。部署模型是否仍需携带 VLM、伪标签是否离线缓存、不同场景是否重复计算特征都会改变实际成本。论文的方法适合离线精炼训练监督若目标是低延迟在线分割需确认推理阶段所需模块并测量整条链路而不仅仅报告 PTv3 分割头的速度。八、总结GFS-VL 的贡献是把 GFS-PCS 的知识来源从几个支持样本扩展成少样本锚点 开放世界 VLM的双源结构筛选让少样本精度约束 VLM 的噪声填补让 VLM 的稠密性反哺少样本的稀疏新基混合则在数据层面保住了新类学习最需要的上下文。三个模块叠加后新类 mIoU 相对前 SOTA 提升近三倍在自建的 45/18 新类难基准上仍大幅领先——同时这些基准本身整场景、多新类也纠正了旧评测小块 6 类的失真。对做 3D 语义感知的团队这是基础模型时代做少样本的一份方法学模板。延伸阅读建议GW 与 CAPLGFS-PCS 先行工作、COSegFS-PCS 相关性优化、RegionPLC/OpenScene3D VLM 知识源、PTv3backbone、Mix3D增广对照、ScanNet200/ScanNet新基准数据底座、原型网络prototype learning 基础。九、引用信息论文引用Zhaochong An, Guolei Sun, Yun Liu, Runjia Li, Junlin Han, Ender Konukoglu, Serge Belongie. Generalized Few-shot 3D Point Cloud Segmentation with Vision-Language Model. CVPR, 2025.论文 PDFhttps://openaccess.thecvf.com/content/CVPR2025/papers/An_Generalized_Few-shot_3D_Point_Cloud_Segmentation_with_Vision-Language_Model_CVPR_2025_paper.pdf官方仓库https://github.com/ZhaochongAn/GFS-VL