GFS-VL:3D VLM稠密知识驱动的广义少样本点云分割解析

发布时间:2026/8/26 5:28:02
GFS-VL:3D VLM稠密知识驱动的广义少样本点云分割解析 少样本三维点云分割这件事我从去年开始就一直在关注。原因也很直接自动驾驶、机器人操作、室内建图这些场景里永远会出现训练数据里没见过的物体类别。你不可能为了一个新类别去标几万帧点云更不可能每次都重新训练一个模型。所以“给模型看几个标注好的点云它就能分割出新类别”这个能力一直是三维视觉里最想解决的问题之一。但真正做过这个方向的人都知道少样本三维点云分割远没有想象中那么简单。图像的少样本分割已经很难了点云这边还要叠加无序、稀疏、尺度变化、标注成本高这些麻烦。所以当我看到 CVPR 2025 的 GFS-VL 这个标题时第一反应是好奇它到底凭什么能把“广义少样本三维点云分割”做出来再仔细看标题里的关键词“3D VLM 稠密知识”和“少样本精准校准”脑子里那条线突然就清楚了。这篇文章不打算复述论文内容我也没有权限拿到完整的论文细节。我更想做的是从标题、从这类框架通常的构造方式、从自己在三维视觉和少样本学习上的经验出发拆一拆这个工作为什么值得关注它可能解决了什么问题以及如果你也想在这个方向做点东西或者落地使用应该重点关注哪些地方。1. 为什么三维点云分割在少样本场景下特别难1.1 点云不是图像很多成熟经验没法直接搬二维图像的少样本分割已经有一套相对成熟的打法。图像有规则网格有预训练好的 CNN 或 ViT有丰富的 ImageNet 预训练权重随便一个 ResNet 提特征都能提得不错。然后在支持集上对特征做原型再和查询集特征做相似度匹配效果就已经能看了。但点云完全不是这个逻辑。点云是一堆无序的三维坐标加上可能存在的颜色、法向量、强度等属性。它没有规则的像素网格不能直接扔给 2D 卷积。处理点云最常见的方式是用 PointNet、Point Transformer 这类网络把点集映射成特征但这类网络普遍更小、预训练资源更少而且对点云密度、尺度、噪声非常敏感。这意味着少样本分割里最依赖的“预训练特征质量”在三维领域天然就比二维弱一截。还有一个更麻烦的点点云分割的“少样本”不是一张图里多个物体而是整个三维场景里的逐点分类。一个室内场景可能有几十万甚至上百万个点真正属于新类别的点可能只占很小一部分。在少样本设置下支持集往往也是从一个或几个场景中裁剪出来的局部点云块类别内的外观变化、尺度变化、遮挡情况都可能和查询场景完全不一样。这比图像少样本分割更难泛化。1.2 逐点标注成本极高少样本是从需求里长出来的做过点云标注的人应该都懂这是所有三维视觉任务里最耗时的环节之一。在一帧激光雷达点云里框出并逐点标注一辆车和在一张图像里画一个多边形框完全不是一个量级的工作量。图像标注可以用辅助工具快速抠边点云标注需要人眼在三维空间里旋转、缩放、逐个检查点的归属。一个复杂室内场景的全景逐点语义标签可能要花几个小时。而且点云标签的质量也容易出问题——边界上的点到底属于墙还是柜子往往连标注员自己都拿不准。所以少样本三维分割不是学术界硬造出来的题目它是真实工程需求的投射。问题是模型能不能在只有几个标注点云块的条件下学会辨识一个新的类别过去大家倾向于做“支持集特征匹配”也就是把支持集点云的特征算出来当成该类别的原型然后看查询点云里哪些点和这些原型相似。这个方法听起来顺理成章但落地上会发现一个问题三维特征空间即使经过预训练也很难保证“同类相近、异类相离”这个性质。支持集只有几个点云块统计量太少很容易被某个场景的局部纹理带偏。1.3 广义少样本比传统少样本更接近真实世界传统少样本分割只要求模型在“新类别”上做分割训练阶段可以看到基类的大量数据测试阶段只评估新类。这么多年来已经有不少方法能做到不错的 mIoU。但现实里你不可能只分割新类别场景里更多还是基类物体。所以更合理的问题设定是“广义少样本分割”也就是测试时要同时分割基类和新类。这就带来一个典型问题模型在训练时见过大量基类样本很容易倾向把不确定的点分到基类新类只有少量样本决策边界会很保守。如果方法是“先基类预训练再新类微调”微调后往往又会把基类忘记。广义少样本设置让这个矛盾被放大对模型的知识迁移能力和校准能力要求都高得多。GFS-VL 标题里的“广义少样本三维点云分割框架”说明它专门处理的就是这个更难的设定。而它给出的解药是来自 3D VLM 的稠密知识。2. 从 3D VLM 看 GFS-VL 的出发点稠密知识是关键2.1 3D VLM 改变的是三维语义的获取方式要理解 GFS-VL得先理解 3D VLM 在三维感知里的位置。过去做三维语义理解基本路径是“点云 → 3D 网络 → 分类/分割”。这个路径依赖大量标注数据来训练网络而且模型只能识别它学过的类别。后来大家开始把 2D 视觉语言模型比如 CLIP搬到三维上做法也有很多种最直接的是把多视角 RGB 图喂给 CLIP提取每个视角的语义特征再反投影到点云上。这样点云上的每个点都能拿到一个和文本对齐的特征向量。再往后就出现了更完整的 3D VLM它们不只是拿 2D 特征做反投影而是在三维空间里直接进行视觉语言对齐。有的能做到“给一句话找到三维场景里对应的物体”有的能回答三维场景的复杂问题。这类模型在开放词汇理解上比传统 3D 网络强很多因为它们的语义空间是语言对齐过的能够泛化到训练时没见过的类别描述。GFS-VL 把 3D VLM 作为自己的基础其实是选了一个很强的起点预训练模型已经知道“什么是椅子”“什么是显示器”“什么是地毯”而且这种知识和语言绑定可以通过文本提示按需激活。这就比从零开始在少样本支持集上学一个类别原型要可靠得多。2.2 “稠密知识”到底指什么从整个场景到每一个点看标题的时候我琢磨最多的一个词是“稠密知识”。VLM 通常处理的是“图片-文本”级别的对齐一张图最后变成一个文本特征但点云分割需要的是“逐点”输出。如果你只是把整个场景的全局特征和文本做匹配那只能做场景分类或物体检索没法做分割。所以 GFS-VL 强调“稠密知识”大概率指的是把 3D VLM 的语义知识逐点化、逐区域化让点云里的每一个点都能获得一个和文本语义对齐的特征表示。这个“稠密化”听起来容易做起来其实很微妙。例如某个 3D VLM 在训练时更多关注物体级别的特征它可能知道一个椅子的整体形状但点云分割需要区分椅背、椅座和地面的边界。如果模型预训练的特征本身是“物体级”而不是“零件级”那么即便反投影到每个点上点与点之间的语义差异也未必足够。这也是为什么 GFS-VL 需要在稠密知识之上再做一个“少样本精准校准”——VLM 提供的知识是粗粒度的、区域级的但分割任务要求边界准确。所以不要觉得“用 3D VLM 提特征再加个少样本分类头”就完事了。真正难的是怎么让 VLM 的稠密特征和精细的逐点标签对齐。GFS-VL 的价值应该就是在这里。2.3 为什么稠密知识能缓解少样本标注不足少样本分割的痛点是支持集太小模型难以估计类别分布。而 3D VLM 的稠密知识最大的贡献是给每个点提供了一个“见过世面”的初始化。即便某个新类别只有几个点云块VLM 的语言先验也能告诉模型“这个类别大概长什么样”而不是让模型单纯从这几个点云块里去猜。这个道理和人类学习很像。看到一张从没见过的小众家具图你能从材质、结构、与周围物体的关系推断出它大概是“凳子”还是“茶几”。因为你已经知道“承重”“坐面”“高度”这些概念。3D VLM 里的文本语义空间就扮演了这种先验知识的角色。少样本支持集做的是在已有语义空间里做局部校正而不是从头建立语义空间。从这个角度看GFS-VL 主判断就应该落在它的核心不是设计了一个新的少样本分割网络而是把 3D VLM 的稠密知识当作可复用的先验再用少量标注做精准校准从而把“从少数样本学新类”变成“在已知语义空间里定位新类”。3. 拆解 GFS-VL 的一般框架先蒸馏密度再校准偏移3.1 第一步用 3D VLM 生成稠密特征或伪标注虽然我还没看到 GFS-VL 论文里的具体结构图但结合标题和这类框架的常见套路可以合理推测它的流程会包含三个大块。第一块一定是如何提取稠密知识。具体做法可能是在训练阶段用 3D VLM 对完整点云场景生成逐点特征也可能直接把 VLM 的中间特征拿出来作为点云特征的初始化。如果做伪标注可能是利用 VLM 对每个点或每个超点生成一个粗略的语义标签然后拿这些伪标签去训练一个分割模型。伪标注的好处是可以用上整个场景的所有点不只是支持集那几个点云块这样得到的类别表征会更稳定。但伪标注有一个天然风险VLM 不一定完全准确尤其在类别边界和罕见类别上。如果一个稠密知识提取模块本身有偏后面所有步骤都会继承这个偏置。所以 GFS-VL 的“精准校准”很可能承担着纠偏的角色。如果非要用工程经验类比这一步很像“先用一个大模型做预标注再做人工抽检修正”。生产环境里我们经常这么做能省不少人力但必须设计好哪些点要人工复核哪些可以直接信任模型输出。3.2 第二步用少量支持集做精准校准少样本校准要解决的是两个问题。一个是从 3D VLM 语义空间到实际点云分割空间的分布偏移另一个是类别之间的决策边界修正。具体到技术路径常见做法是让支持集的少量点云样本学习一个变换把 VLM 的稠密特征映射到下游分割任务需要的特征空间。这个“变换”可以是一个轻量层也可以是一组可学习的偏置项甚至可以是针对类别原型的残差修正。关键是变换的参数不能太多。如果校准模块太重少数样本就会过拟合如果太轻又纠正不了分布偏移。怎么平衡容量和泛化是这类方法最容易翻车的地方。还有一种可能的设计是把支持集的逐点特征和 VLM 的文本特征做跨模态匹配然后从匹配结果中提炼出“哪些维度更重要”。比如某个新类别的文本描述是“带扶手的深色椅子”那么 VLM 特征中与“扶手”“深色”相关的维度应该被放大与“轮子”相关的维度应该被抑制。这种基于文本语义的维度重加权本身就是一种精准校准。3.3 第三步在广义类别空间上做预测避免基类偏置传统少样本训练时模型只在基类上做分类新类支持集只在测试时临时提供给模型。但广义少样本要求模型同时处理基类和新类这就容易产生基类偏置——因为基类在训练时见过几百上千次新类只见过几个支持集样本模型当然更倾向预测基类。解决基类偏置的常规思路有几种一是在训练阶段就把新类纳进同一个分类器但用支持集样本做数据增强二是在预测阶段对基类逻辑值做衰减或校准三是干脆把分类器替换成基于度量的最近邻匹配这样基类和新类都通过同样的原型对比逻辑预测天然就消除了一部分偏置。GFS-VL 命名为“广义”说明它很可能会把基类和新类放进同一个统一框架里处理而不是对基类训练、对测试新类单独适配。如果它能做到让基类和新类在同一个特征空间里使用相同的决策规则那才是真正意义上的“广义少样本”。3.4 一个常用的复现思路如果你在论文里看到的框架图和我推测的相似那复现时可以从一个最简版本开始。# 伪代码理解框架流程不是官方实现 # 1. 加载一个 3D VLM 预训练模型 # 2. 对完整点云场景生成逐点稠密特征 # 3. 构造支持集每个新类别选择 N 个点云块 # 4. 定义校准模块例如一个可学习的轻量 MLP # 5. 用支持集特征真实标签优化校准模块 # 6. 预测时查询点特征 - 校准模块 - 与类别原型对比当然真实论文里的细节一定比我写的复杂得多比如三维稀疏卷积怎么和 VLM 特征融合、点云下采样策略、支持集采样方式、损失函数等等。但这些都不会改变整体思路先借助 VLM 拿到强先验再用少量标注把先验校准到任务空间。4. 如果想落地从模型选择到性能验证的参考路径4.1 环境与数据准备不管你是想复现 GFS-VL还是想把这个思路迁移到自己的三维理解任务第一步一定是先建立一套清晰的评测环境。数据集方面三维点云分割最常用的两组是室内场景的 S3DIS 和 ScanNet室外场景可以用 SemanticKITTI。少样本划分通常要做两件事一是把类别分成基类和新类二是从训练场景中采样支持集和查询集。注意这里的“训练场景”和“测试场景”在广义少样本里最好分开否则模型只是记住了位置而不是学到了类别。环境准备上3D VLM 往往比普通 3D 分割模型更吃显存。如果你是在单张 24G 显卡上做实验建议先把点云体素化/下采样参数调小或者用超点superpoint作为基本单元而不是逐点推理。超点能显著减少计算量而且对边界保持有好处很多三维分割落地项目都会用。我的习惯是先跑通一条最小流程固定随机种子、选一个类别作为新类、只用一个支持集场景、跑一个查询场景确认所有模块能正常输出再扩大类别组和测试集。很多人一上来就把所有类别配置满结果出了问题都不知道该查数据还是该查模型。4.2 关键参数和校准边界下面的表格不是 GFS-VL 论文里的特定参数而是这类方法落地时最需要关注的通用配置。拿到论文代码之后你也应该先看这些部分参数/配置建议关注点容易犯的错误支持集数量N-shot通常从 1-shot 开始看再平滑提升到 5-shot直接在 5-shot 上报结果掩盖了对支持集容量的不敏感点云下采样密度体素大小或点数上限直接影响特征质量和显存为了省显存过度下采样导致边界和细薄结构丢失VLM 文本提示类别名外的属性描述如“带扶手”“红色”会显著影响特征对齐全部用单一名词没有挖掘语言描述的能力校准模块参数量轻量 MLP 还是全连接层参数越多越容易过拟合校准模块太大在少样本上训崩但测试时看起来还行基类与新类比例广义设置下基类样本远多于新类要观察新类 mIoU只报平均 mIoU忽视了基类偏置带来的虚高随机种子少样本评测方差极大必须跑多个种子取均值只跑一个种子就下结论完全没有统计意义校准这一步最容易踩的坑是过拟合。支持集只包含几个点云块如果你加的校准模块学了上百个参数它完全有容量去“背”下支持集而不是学到可泛化的变换。验证是否有过拟合很简单看训练过程中查询集 mIoU 什么时候开始下降。如果支持集上 loss 一直在降但查询集性能变差就要减少校准模块复杂度或者加正则。4.3 性能评估不要只看平均 mIoU少样本分割领域有个老问题模型在基类上表现很好在新类上表现很差但平均 mIoU 仍然不低。如果你只报一个总指标很难看出这个模型真正的泛化能力。所以我强烈建议你把指标拆开看。至少分成三类基类 mIoU、新类 mIoU、以及按样本量加权的 mIoU。还可以补充一个“新类召回率”——如果模型把很多新类点分成了基类召回率会非常低这个问题在广义设置下尤其致命。更严格的评测还要考虑“新类支持集来自不同扫描场景”时性能的波动。少样本方法容易拟合支持集的场景分布换一个环境后性能可能大幅度下降。另外如果你要做消融实验至少应该对比这几种基线直接用 3D VLM 的特征加最近邻分类不做任何校准用传统 3D 分割网络在小样本上微调只用支持集训练一个简单的 PointNet 分类器完整的 GFS-VL 流程。这样拆开之后你才能判断增益到底来自 VLM 稠密知识还是来自校准模块还是来自两者配合。4.4 常见错误排查链路如果复现结果不如预期不要急着改模型结构。建议按下面这个顺序排查先看输入点云是否正常加载。有没有出现 NaN 坐标、重复点、错误的颜色通道点云坐标是否做了归一化或对齐再看 3D VLM 的输入格式。很多 VLM 预期输入的是多视角 RGB 图或者是有颜色的点云如果你只喂了 XYZ特征可能是空的。检查文本提示。把类别名换成“一个普通的X”和“X”效果都不同要确认文本 encoder 是否真的把描述语义编码进去了。查看支持集的采样方式。如果支持集点云和查询集点云来自同一个场景那是“泄漏”设置性能会虚高。最后才看校准模块的梯度是否正常。少样本训练时学习率要调小很多否则一个 batch 就能把特征空间打坏。这三层排查逻辑基本可以覆盖大多数失败情况数据问题先于模型问题输入问题先于参数问题参数问题先于架构问题。5. 从论文到工程少样本分割真正实用还差什么5.1 性能边界适合与不适合的场景GFS-VL 这个方向是有明确适用边界的。它最擅长的是室内场景里有明显语义的物体类别比如椅子、桌子、显示器、沙发。因为 3D VLM 在室内场景上训练较多语言先验也丰富。对于工业零件、医学点云、地质结构这类高度专业、语义粒度极细的数据通用 VLM 的稠密知识可能不太够用。标题虽然是“广义少样本”但“广义”是指类别空间中的基类与新类共同预测不等于“任何领域都有效”。对于室外自动驾驶场景点云稀疏、物体尺度变化大新类别往往和旧类别在形状上高度相似比如不同型号的卡车、工程车。这时候 VLM 的文本先验可能帮不上太多忙因为“卡车”和“挖机”在语言上可以区分但在点云形状上的差异可能非常细微需要更精细的几何特征。所以如果你在自动驾驶方向用这个方法建议先做小范围验证不要盲目套用。另外实时性也是一个现实问题。3D VLM 通常很重生成稠密特征需要处理大量点速度上很难满足实时分割的要求。工程化时你可能需要把 VLM 特征缓存下来或者用一个大模型离线生成特征再让一个轻量分割模型在线推理。5.2 工程化需要补齐的模块从论文到产品中间还隔着几个模块特征缓存与更新。新类别出现了是重新跑一遍 VLM 还是只对新区域算特征缓存的特征如何和旧特征保持一致类别管理和回滚。支持集中如果混入了错误标注怎么检测和过滤少样本校准对噪声非常敏感。支持集动态扩展。系统运行一段时间后每个类别的支持集会越来越多校准模块要不要更新直接累积所有支持集可能会导致过拟合。后处理与时空一致性。点云分割结果通常是逐点类别不加平滑的话会有很多孤立点。需要条件随机场、超点投票或时序滤波来保证输出干净。这些工程问题在论文里很少出现但恰恰决定了方案能不能真正上线。如果你想用 GFS-VL 的思路做一套内部工具我建议把“少样本校准”当作一个后台更新模块来设计而不是每次测试时临时喂几个点云块。5.3 哪些人适合跟进这个方向如果你是研究人员GFS-VL 提供了几个可以深挖的点3D VLM 的稠密知识如何更高效地提取校准模块的容量控制基类与新类共享特征空间的决策规则。这些都是问题本身极具研究价值的方向尤其是“稠密知识”目前还远没有被解决透。如果你是工程开发者更值得做的是先复现一个简化版本把它接进自己的点云理解 pipeline。别再重复造轮子——重点观察 3D VLM 特征在你们业务数据上的泛化能力然后再决定要不要上少样本校准。如果 VLM 在你们的数据上连粗粒度类别都分不好那么少样本校准能带来的改善也有限。如果你是刚接触这个方向的学生我的建议是先用成熟的 3D 分割框架跑通一个最简单的少样本基线比如“支持集特征均值 → 最近邻分类”。然后逐步加入 VLM 特征、校准模块、广义设定。每一步都看指标变化这样你才能理解论文里的每个模块到底在解决什么问题。5.4 说回 GFS-VL 带给这个领域的东西这篇工作真正值得记住的不是一个模型在某个数据集上刷了多高的分数而是它把三维感知里两股此前多少有些分离的力量结合在了一起一边是已经具备开放词汇理解能力的 3D VLM另一边是追求低成本、快速适配的少样本分割。GFS-VL 想表达的核心逻辑是少样本不是从零开始而应该站在一个强大的语义先验上做局部修正。这个判断放在工程里也说得通。任何成熟的视觉系统都需要一个“通用底座”加一个“快速适应层”。底座负责理解世界的基本语义适应层负责在只有少量样本时对齐到具体任务。过去底座是 ImageNet 预训练的 2D 网络未来底座可能就是 3D VLM。GFS-VL 这种工作出现得越多说明三维视觉领域正在从“刷任务榜单”走向“搭通用知识底座”这个转变比单项指标的提升更有意义。如果你也在做点云分割、少样本学习或者三维场景理解建议盯一下这篇论文的后续开源代码。拿到代码后不要急着跑实验先梳理它提取稠密知识的具体方式再看校准模块是怎么设计容量的最后看它在广义类别空间上的分类器是怎么构造的。这三块如果都能看明白你就可以把整套思路迁移到自己的数据上而不是停留在 GitHub 的 star 数上。三维感知的少样本问题不会因为一两篇论文就彻底解决但 GFS-VL 指出了一个很明确的方向别再让模型从零开始认新类别了先给它一个懂世界的底座再教它怎么在边界上做精细校准。这条路大概率是未来几年三维视觉落地最值得走的一条。

相关新闻