破解少樣本三維點(diǎn)云分割難題)
最近兩年三維點(diǎn)云分割的關(guān)注度明顯上漲尤其是自動(dòng)駕駛、機(jī)器人操作、數(shù)字孿生這些場(chǎng)景對(duì)點(diǎn)云感知的需求已經(jīng)從“能不能分割”變成了“新類別能不能快速適配”。但真正做項(xiàng)目的人都會(huì)遇到同一個(gè)問題**標(biāo)注三維點(diǎn)云數(shù)據(jù)實(shí)在太貴了。**在一幀雷達(dá)點(diǎn)云上框一個(gè)物體、逐點(diǎn)標(biāo)一個(gè)類別成本比標(biāo)一張圖片高出一個(gè)量級(jí)。于是“少樣本三維點(diǎn)云分割”成了學(xué)術(shù)界和工業(yè)界都在關(guān)注的解題方向。CVPR 2025 上出現(xiàn)的 GFS-VL 框架核心思路是把 3D 視覺語言模型3D VLM在訓(xùn)練中積累的稠密知識(shí)遷移到少樣本點(diǎn)云分割任務(wù)里再通過少樣本校準(zhǔn)解決新類別適配問題。這篇文章不打算只復(fù)述論文摘要而是結(jié)合我們做點(diǎn)云感知的實(shí)際視角拆解 GFS-VL 到底解決了什么問題、方法上做了哪幾件關(guān)鍵事、以及如果想復(fù)現(xiàn)或借鑒該怎么入手。讀完你可以得到三樣?xùn)|西快速理解 3D VLM 和少樣本分割結(jié)合的技術(shù)邏輯一套可以落地的訓(xùn)練/驗(yàn)證框架思路包含可參考的偽代碼和數(shù)據(jù)組織方式實(shí)際工程里會(huì)遇到哪些坑以及對(duì)應(yīng)的排查路徑。1. 這篇文章真正要解決的問題1.1 三維點(diǎn)云分割為什么難先看一個(gè)具體場(chǎng)景。假設(shè)你在做一個(gè)園區(qū)巡檢機(jī)器人識(shí)別目標(biāo)包括“行人、草坪、欄桿、滅火器、垃圾箱”。前五類做了大量標(biāo)注跑出來的效果不錯(cuò)。但這個(gè)月新增了一類“錐桶”——因?yàn)轫?xiàng)目要在停車場(chǎng)試點(diǎn)需要把交通錐也感知出來。這時(shí)候問題來了重新標(biāo)注一批錐桶點(diǎn)云需要幾十甚至上百幀數(shù)據(jù)標(biāo)注工具要逐點(diǎn)拉框、分類一幀數(shù)據(jù)少說也要幾分鐘標(biāo)注完還要重新訓(xùn)練如果分割模型是端到端深度網(wǎng)絡(luò)全量微調(diào)的成本也不低。少樣本三維點(diǎn)云分割Few-shot 3D Point Cloud Segmentation想解決的問題就是讓模型在只見過 1 到 5 個(gè)標(biāo)注樣本的情況下能夠在新的三維場(chǎng)景里分割出這個(gè)新類別。1.2 傳統(tǒng)少樣本分割的困境傳統(tǒng)少樣本分割方法通常是在支持集support set中提取新類別的特征然后在查詢集query set里做特征匹配。這種方法在類別外觀變化不大的室內(nèi)場(chǎng)景里效果尚可但一到真實(shí)場(chǎng)景就會(huì)暴露出一個(gè)核心問題支持集只有少數(shù)幾個(gè)樣本模型很難從這么稀疏的觀測(cè)里概括出“這個(gè)類別到底是什么”。比如一個(gè)錐桶白天和晚上的反射特征不同一個(gè)滅火器在走廊里和在倉庫里的空間上下文不同。僅靠 1-5 個(gè)樣本模型容易過擬合到支持集的外觀細(xì)節(jié)遇到分布偏移就崩。1.3 GFS-VL 給出的回答GFS-VL 認(rèn)為與其讓模型從少量樣本中硬學(xué)新類別不如先把大規(guī)模預(yù)訓(xùn)練的 3D VLM 里已經(jīng)學(xué)到的稠密視覺-語言知識(shí)利用起來。VLM 在預(yù)訓(xùn)練階段見過海量的三維場(chǎng)景和對(duì)應(yīng)的文本描述積累了非常豐富的跨模態(tài)知識(shí)。問題是這些知識(shí)是隱式的、分布式的沒有顯式地服務(wù)于分割任務(wù)。GFS-VL 的核心思路可以概括成三句話用 3D VLM 作為知識(shí)源提取稠密的跨模態(tài)特征設(shè)計(jì)稠密知識(shí)遷移機(jī)制把 VLM 的知識(shí)對(duì)齊到分割模型的逐點(diǎn)預(yù)測(cè)空間在少樣本校準(zhǔn)階段讓模型用少量新類別標(biāo)注進(jìn)行精準(zhǔn)調(diào)整而不是從頭學(xué)習(xí)。這個(gè)設(shè)計(jì)的直接好處是新類別不再需要大量標(biāo)注模型本身已經(jīng)“知道”錐桶大概是什么只需要少量樣本做校準(zhǔn)。這里一個(gè)重要判斷是GFS-VL 并不是第一個(gè)把 VLM 用于點(diǎn)云任務(wù)的框架但它的關(guān)注點(diǎn)在“稠密知識(shí)”和“廣義少樣本”這是它區(qū)別于之前方案的關(guān)鍵。2. 基礎(chǔ)概念與核心原理2.1 少樣本分割和廣義少樣本分割少樣本分割Few-shot Segmentation的定義是在訓(xùn)練階段模型只見過基類base classes的大量標(biāo)注數(shù)據(jù)在測(cè)試階段給定新類別novel classes的少量標(biāo)注樣本支持集模型要能分割出該類別。廣義少樣本分割Generalized Few-shot Segmentation更進(jìn)一步測(cè)試時(shí)模型不僅要分割新類別還要同時(shí)分割基類。兩者的差異很關(guān)鍵對(duì)比維度少樣本分割廣義少樣本分割測(cè)試類別只測(cè)新類別基類 新類別困難點(diǎn)新類別泛化新舊類別平衡、避免災(zāi)難性遺忘更接近真實(shí)場(chǎng)景否是實(shí)際項(xiàng)目里幾乎沒有“只關(guān)心新增類別”的需求。新增一個(gè)類別原來分割得好好的類別也不能掉鏈子。廣義少樣本的設(shè)置更接近真實(shí)工程狀態(tài)。2.2 3D VLM 和稠密知識(shí)3D 視覺語言模型3D VLM是最近兩年三維視覺領(lǐng)域的研究熱點(diǎn)。它的核心是讓模型同時(shí)理解三維幾何結(jié)構(gòu)和自然語言語義能夠完成“給我找出來所有紅色椅子”這類三維-語言對(duì)齊任務(wù)?!俺砻苤R(shí)”指的是什么如果你給模型輸入“滅火器”這個(gè)詞傳統(tǒng)模型只在全局層面知道這個(gè)語義。但 3D VLM 在做三維-語言對(duì)齊時(shí)內(nèi)部特征往往會(huì)對(duì)點(diǎn)云中每一個(gè)點(diǎn)或者每一個(gè)局部區(qū)域都產(chǎn)生響應(yīng)哪些點(diǎn)更接近“滅火器”哪些點(diǎn)是背景這種逐點(diǎn)級(jí)別的語義關(guān)聯(lián)就是稠密知識(shí)??梢灶惐瘸梢粋€(gè)人看一張照片不僅知道“畫面里有滅火器”還能指出“滅火器在這個(gè)位置輪廓大概在這里”。后者就是稠密理解。GFS-VL 的目標(biāo)就是把 3D VLM 的稠密理解能力“蒸餾”到分割模型里讓分割模型不只是知道類別名還知道每個(gè)點(diǎn)應(yīng)該歸屬哪個(gè)類別。2.3 知識(shí)蒸餾在少樣本場(chǎng)景的作用知識(shí)蒸餾Knowledge Distillation在少樣本場(chǎng)景里作用顯著原因在于教師模型VLM已經(jīng)有大規(guī)模預(yù)訓(xùn)練的知識(shí)學(xué)生模型分割模型參數(shù)量可以更小更容易部署學(xué)生模型通過學(xué)習(xí)教師模型的預(yù)測(cè)分布而不是學(xué)習(xí)硬標(biāo)簽?zāi)懿东@類別間的語義相似性。GFS-VL 中3D VLM 扮演教師角色分割模型扮演學(xué)生角色。蒸餾的重點(diǎn)不是某個(gè)全局特征而是逐點(diǎn)、逐區(qū)域的稠密對(duì)齊。3. 方法框架拆解3.1 GFS-VL 的整體架構(gòu)從工程視角理解GFS-VL 可以拆成三個(gè)模塊模塊一稠密知識(shí)提取器使用預(yù)訓(xùn)練的 3D VLM 對(duì)點(diǎn)云輸入進(jìn)行處理得到逐點(diǎn)的語言-視覺對(duì)齊特征這些特征成為蒸餾的“軟標(biāo)簽”。模塊二稠密知識(shí)遷移與對(duì)齊設(shè)計(jì)從 VLM 特征到分割模型特征空間的對(duì)齊方式讓分割模型在訓(xùn)練時(shí)不只看語義標(biāo)簽還看 VLM 輸出的稠密特征核心是保證逐點(diǎn)特征的一致性。模塊三少樣本校準(zhǔn)模塊訓(xùn)練完成后在測(cè)試階段提供新類別的少量標(biāo)注樣本通過支持集對(duì)模型進(jìn)行校準(zhǔn)解決新類別的分布偏移問題校準(zhǔn)的目標(biāo)是讓模型在保持基類性能的同時(shí)精準(zhǔn)分割新類別。3.2 訓(xùn)練階段和測(cè)試階段的區(qū)別GFS-VL 要分清兩個(gè)階段訓(xùn)練階段基類訓(xùn)練 蒸餾在基類標(biāo)注數(shù)據(jù)上訓(xùn)練分割模型同時(shí)用凍結(jié)的 3D VLM 提供稠密特征指導(dǎo)分割模型學(xué)習(xí)這個(gè)階段不接觸新類別的任何標(biāo)注。測(cè)試階段少樣本校準(zhǔn) 推理給定新類別的 1-5 個(gè)標(biāo)注樣本模型在校準(zhǔn)階段快速調(diào)整推理時(shí)分割包括基類和新類別在內(nèi)的所有類別。這種“訓(xùn)練時(shí)蒸餾、測(cè)試時(shí)校準(zhǔn)”的范式是整個(gè)框架設(shè)計(jì)的關(guān)鍵。測(cè)試時(shí)校準(zhǔn)也不只是微調(diào)骨干網(wǎng)絡(luò)還包括對(duì)支持集特征和查詢集特征的對(duì)齊。3.3 廣義少樣本的核心挑戰(zhàn)怎么處理廣義少樣本分割最大的挑戰(zhàn)是模型在只見過 1-5 個(gè)新類別樣本時(shí)會(huì)對(duì)新類別產(chǎn)生偏差把基類誤分到新類別里。GFS-VL 的應(yīng)對(duì)思路從方法名中的“精準(zhǔn)校準(zhǔn)”可以看出它不是讓整個(gè)模型在新類別上重新訓(xùn)練而是設(shè)計(jì)了一個(gè)輕量的校準(zhǔn)模塊在少量樣本上快速調(diào)整同時(shí)使用正則化手段防止基類性能下降。這跟很多工業(yè)界的做法一致不希望在新增類別時(shí)把已經(jīng)穩(wěn)定運(yùn)行的舊能力破壞掉。4. 與其他方案對(duì)比GFS-VL 的變化發(fā)生在哪一層4.1 與 2D VLM 點(diǎn)云投影方案對(duì)比有一類方案是先用 2D VLM 處理多視角圖像再把 2D 分割結(jié)果投影回三維點(diǎn)云。這種方案的問題在于點(diǎn)云視角和圖像視角存在遮擋、標(biāo)定誤差小物體在圖像上像素少分割結(jié)果投影回點(diǎn)云后噪聲大稠密的三維幾何信息沒有被充分利用。GFS-VL 直接使用 3D VLM 在三維空間內(nèi)提取稠密知識(shí)繞過了 2D-3D 投影帶來的信息損失問題。4.2 與傳統(tǒng)少樣本分割方法對(duì)比傳統(tǒng)少樣本分割方法依賴支持集和查詢集之間的特征匹配例如原型網(wǎng)絡(luò)Prototype Network、掩碼平均池化等方法。這類方法的局限在于支持集特征是從分割模型本身提取的而分割模型在基類訓(xùn)練后對(duì)新類別特征不敏感當(dāng)新類別和基類外觀差異較大時(shí)特征空間沒有好的歸納偏置。GFS-VL 引入了 VLM 的稠密知識(shí)之后分割模型的特征空間本身就帶有豐富的語義先驗(yàn)因此支持集特征的質(zhì)量更高。4.3 與其他 3D VLM 蒸餾方法對(duì)比也有工作嘗試用 3D VLM 做開放詞匯點(diǎn)云分割即讓模型能分割任意文本描述的類別。這種做法思路完整但工程落地時(shí)對(duì)算力要求高、推理成本大。GFS-VL 的做法是只把 VLM 當(dāng)作知識(shí)源訓(xùn)練時(shí)用一次測(cè)試時(shí)不需要加載 VLM這樣推理成本可控更適合實(shí)際部署。這里的工程意義在于教師模型的巨型參數(shù)量被限制在離線蒸餾階段線上模型仍然是一個(gè)輕量分割網(wǎng)絡(luò)。這在自動(dòng)駕駛、機(jī)器人等對(duì)實(shí)時(shí)性敏感的場(chǎng)景非常重要。5. 復(fù)現(xiàn)與工程落地環(huán)境準(zhǔn)備、數(shù)據(jù)組織與訓(xùn)練流程說明論文官方代碼以最終發(fā)布為準(zhǔn)以下給出的是結(jié)合少樣本點(diǎn)云分割常用工程實(shí)踐整理的復(fù)現(xiàn)思路重點(diǎn)演示整體流程和實(shí)現(xiàn)路徑。5.1 環(huán)境準(zhǔn)備復(fù)現(xiàn)三維點(diǎn)云分割實(shí)驗(yàn)環(huán)境配置建議如下實(shí)際版本以項(xiàng)目 README 為準(zhǔn)# Python 環(huán)境 conda create -n gfsvl python3.9 -y conda activate gfsvl # PyTorch具體版本請(qǐng)以 CUDA 版本選擇 pip install torch torchvision # 點(diǎn)云處理常用庫 pip install open3d pip install pytorch3d pip install pointnet2_utils需要注意不同三維深度學(xué)習(xí)框架對(duì) PyTorch 版本的要求差異很大建議創(chuàng)建獨(dú)立虛擬環(huán)境避免把實(shí)驗(yàn)環(huán)境搞亂。5.2 數(shù)據(jù)集組織少樣本分割實(shí)驗(yàn)通常使用 S3DIS、ScanNet 等公開數(shù)據(jù)集。以通用格式為例數(shù)據(jù)集目錄一般這樣組織dataset/ ├── scenes/ # 原始場(chǎng)景點(diǎn)云 │ ├── scene_01.ply │ ├── scene_02.ply │ └── ... ├── annotations/ # 逐點(diǎn)標(biāo)簽 │ ├── scene_01.npy │ ├── scene_02.npy │ └── ... └── class_list.txt # 類別列表基類 新類別少樣本實(shí)驗(yàn)的關(guān)鍵步驟是把類別劃分為基類和新類別。# 文件路徑prepare_data.py # 功能將類別列表劃分為基類和新類別 base_classes [ceiling, floor, wall, column, door, table, chair] novel_classes [bookcase, sofa, board] # 示例分割以論文為準(zhǔn) print(f基類數(shù)量: {len(base_classes)}) print(f新類別數(shù)量: {len(novel_classes)})需要注意論文的類別劃分方式會(huì)直接影響實(shí)驗(yàn)結(jié)果復(fù)現(xiàn)時(shí)一定要先核對(duì)官方數(shù)據(jù)劃分。5.3 訓(xùn)練流程偽代碼GFS-VL 的訓(xùn)練流程可以概括為三個(gè)階段這里給出精簡(jiǎn)版的 PyTorch 風(fēng)格偽代碼幫助理解方法邏輯# 文件路徑train_gfsvl.py # 功能GFS-VL 訓(xùn)練主流程概念實(shí)現(xiàn) # 階段1加載預(yù)訓(xùn)練 3D VLM 和分割模型 vlm load_3d_vlm(pretrainedTrue) vlm.eval() # VLM 凍結(jié)只做知識(shí)源 segmentor load_segmentor(num_classeslen(base_classes)) optimizer torch.optim.Adam(segmentor.parameters(), lr1e-4) # 階段2基類訓(xùn)練 稠密知識(shí)蒸餾 for batch in base_class_dataloader: points, labels batch # points: (B, N, 3), labels: (B, N) # 2.1 用 VLM 提取稠密特征 with torch.no_grad(): dense_feat vlm.get_dense_features(points) # (B, N, D_vlm) # 2.2 分割模型前向 seg_logits, seg_feat segmentor(points) # (B, N, C_base), (B, N, D_seg) # 2.3 語義分割損失 loss_seg cross_entropy(seg_logits, labels) # 2.4 稠密知識(shí)蒸餾損失 loss_kd dense_distill_loss(seg_feat, dense_feat) loss loss_seg alpha * loss_kd loss.backward() optimizer.step()關(guān)鍵邏輯解釋VLM 必須凍結(jié)避免蒸餾過程中教師模型被帶偏dense_distill_loss可以是特征空間上的 L2 距離也可以是更復(fù)雜的對(duì)比損失論文采用的損失形式于最終代碼為準(zhǔn)alpha是蒸餾損失的權(quán)重用于平衡分割損失和知識(shí)遷移損失一般需要調(diào)參。5.4 少樣本校準(zhǔn)階段偽代碼校準(zhǔn)階段是 GFS-VL 方法的核心亮點(diǎn)之一其目標(biāo)是讓模型在新類別上快速適配。# 文件路徑adapt_fewshot.py # 功能給定支持集對(duì)新類別進(jìn)行校準(zhǔn)概念實(shí)現(xiàn) support_points, support_masks load_support_set(novel_classes) # 支持集特征提取 support_feats [] for sp, sm in zip(support_points, support_masks): with torch.no_grad(): feat segmentor.get_features(sp) # (1, N, D) # 只保留屬于新類別的點(diǎn)特征 novel_mask (sm ! ignore_index) novel_feat feat[novel_mask] support_feats.append(novel_feat.mean(dim0)) # 校準(zhǔn)模塊原型對(duì)齊 calibrator Calibrator(feat_dim) calibrator.fit(support_feats, novel_classes) # 推理 for query in query_dataloader: q_feat segmentor.get_features(query) # (1, N, D) # 基類 logits 來自分割頭新類別 logits 來自校準(zhǔn)器 logits segmentor.classify(q_feat) novel_logits calibrator.predict(q_feat) final_logits combine_logits(logits, novel_logits)關(guān)鍵邏輯解釋校準(zhǔn)不是從零訓(xùn)練而是在已有特征空間上對(duì)少樣本的原型進(jìn)行估計(jì)和微調(diào)為什么要做特征對(duì)齊而不是直接微調(diào)分類頭因?yàn)橹С旨瘶颖咎僦苯游⒄{(diào)分類頭很容易過擬合而基于原型的校準(zhǔn)更穩(wěn)定校準(zhǔn)后需要特別注意基類和新類別的 logits 分布差異一般會(huì)有溫度縮放或者偏置校正的步驟。5.5 蒸餾損失設(shè)計(jì)思路稠密知識(shí)蒸餾損失的設(shè)計(jì)是 GFS-VL 的關(guān)鍵部分以下給出的是常見實(shí)現(xiàn)思路# 文件路徑losses.py # 功能稠密知識(shí)蒸餾損失概念實(shí)現(xiàn) import torch import torch.nn.functional as F def dense_distill_loss(seg_feat, vlm_feat, temperature0.1): seg_feat: 分割模型特征 (B, N, D_seg) vlm_feat: 3D VLM 稠密特征 (B, N, D_vlm) # 將特征歸一化到單位長(zhǎng)度 seg_feat_norm F.normalize(seg_feat, dim-1) vlm_feat_norm F.normalize(vlm_feat, dim-1) # 投影到同一空間需要可學(xué)習(xí)的投影層 proj_feat project_to_vlm_space(seg_feat_norm) # L2 蒸餾讓分割模型特征逼近 VLM 特征 l2_loss F.mse_loss(proj_feat, vlm_feat_norm) # 可選對(duì)比損失讓不同類別的點(diǎn)在特征空間拉開距離 contrastive_loss supervised_contrastive_loss(proj_feat, labels) return l2_loss 0.5 * contrastive_loss蒸餾損失在這里的實(shí)際作用是讓分割模型的特征空間具備 VLM 的語義結(jié)構(gòu)。這意味著即使是基類里沒有出現(xiàn)過的新類別其特征也不會(huì)完全落在分割模型未覆蓋的區(qū)域從而讓少樣本校準(zhǔn)更可靠。6. 實(shí)驗(yàn)分析與效果驗(yàn)證該關(guān)注哪些維度在沒有拿到官方完整實(shí)驗(yàn)數(shù)據(jù)的情況下我們更值得關(guān)注的是GFS-VL 或類似框架在評(píng)估時(shí)應(yīng)該看哪些指標(biāo)、怎么判斷效果好壞以及什么樣的結(jié)論才算可信。6.1 評(píng)價(jià)指標(biāo)廣義少樣本三維點(diǎn)云分割通常關(guān)注以下指標(biāo)指標(biāo)含義關(guān)注點(diǎn)mIoU基類基類類別的平均交并比模型會(huì)不會(huì)遺忘舊類別mIoU新類新類別的平均交并比少樣本學(xué)習(xí)效果mIoU總體所有類別平均交并比整體性能不同 shot 數(shù)1-shot、2-shot、5-shot 的結(jié)果樣本量對(duì)性能的影響一個(gè)重要的判斷方式是只看新類別 mIoU 不夠必須同時(shí)看基類 mIoU。如果新類別漲了 10 個(gè)點(diǎn)基類掉了 15 個(gè)點(diǎn)那這個(gè)方案離落地還有距離。6.2 消融實(shí)驗(yàn)該怎么做復(fù)現(xiàn)論文后可以做以下幾組消融實(shí)驗(yàn)來理解框架去掉稠密知識(shí)蒸餾只用基類訓(xùn)練 少樣本校準(zhǔn)觀察性能變化去掉少樣本校準(zhǔn)只用稠密知識(shí)蒸餾觀察性能變化改變蒸餾損失權(quán)重觀察對(duì)基類/新類別性能的影響改變支持集樣本數(shù)1/2/5-shot觀察性能增長(zhǎng)曲線。通過這四組實(shí)驗(yàn)基本能看出框架中每個(gè)模塊的真實(shí)貢獻(xiàn)。6.3 如何判斷方法是否有效結(jié)合少樣本分割領(lǐng)域的常見做法一個(gè)方法真正有效通常要滿足以下條件在多個(gè)數(shù)據(jù)集上有一致的性能提升而不是只在某個(gè)數(shù)據(jù)集上有效基類性能下降幅度可控從 1-shot 到 5-shot 時(shí)新類別性能穩(wěn)步上升說明方法確實(shí)在利用更多樣本可視化結(jié)果中新類別分割邊界清晰沒有大面積誤判到背景或基類。沒有滿足這些條件的方案很可能只是在特定設(shè)置下過擬合了少量樣本。7. 常見問題與排查思路復(fù)現(xiàn)和借鑒 GFS-VL 這類方法時(shí)實(shí)際會(huì)遇到不少工程問題。下面按問題現(xiàn)象整理了一張排查表。問題現(xiàn)象可能原因排查方式解決方案訓(xùn)練時(shí)蒸餾損失震蕩劇烈蒸餾損失權(quán)重過大主任務(wù)損失被淹沒查看 loss 曲線對(duì)比有/無蒸餾損失的訓(xùn)練曲線降低 alpha 值或在訓(xùn)練前幾個(gè) epoch 先只做分割訓(xùn)練少樣本校準(zhǔn)后基類性能大幅下降校準(zhǔn)模塊過擬合到新類別沒有保留基類語義計(jì)算基類 mIoU 的變化在基類上做正則化或?qū)π?zhǔn)器引入權(quán)重衰減支持集特征和查詢集特征分布不一致支持集樣本來自不同傳感器或不同場(chǎng)景分布檢查數(shù)據(jù)劃分是否嚴(yán)格保證支持集和查詢集來自不同場(chǎng)景重新劃分?jǐn)?shù)據(jù)確保少樣本設(shè)置符合實(shí)際場(chǎng)景顯存不足3D VLM 參數(shù)量大稠密特征占用顯存過高觀察訓(xùn)練時(shí)顯存占用減小 batch size提取 VLM 特征時(shí)使用半精度推理離線緩存 VLM 特征點(diǎn)云下采樣后特征丟失嚴(yán)重訓(xùn)練數(shù)據(jù)下采樣方式不合理可視化預(yù)處理后的點(diǎn)云調(diào)整體素大小或 FPS 采樣點(diǎn)數(shù)對(duì)齊論文設(shè)置新類別識(shí)別正確但邊緣粗糙稠密知識(shí)遷移時(shí)逐點(diǎn)特征對(duì)齊不足可視化逐點(diǎn)特征熱力圖增加邊緣點(diǎn)的蒸餾損失權(quán)重或引入局部特征聚合模塊不同類型點(diǎn)云尺度差異大沒有做歸一化處理檢查輸入點(diǎn)云坐標(biāo)范圍對(duì)點(diǎn)云做以中心為中心的歸一化或統(tǒng)一到固定坐標(biāo)系其中離線緩存 VLM 特征是實(shí)際工程里很實(shí)用的技巧。3D VLM 在訓(xùn)練時(shí)只作為教師模型可以把所有訓(xùn)練場(chǎng)景的稠密特征提前提取并保存到磁盤訓(xùn)練時(shí)直接加載省去每輪迭代都跑大模型的時(shí)間。# 文件路徑cache_vlm_features.py # 功能離線緩存 VLM 稠密特征 for scene_idx, points in enumerate(all_scenes): with torch.no_grad(): dense_feat vlm.get_dense_features(points) # (N, D_vlm) np.save(fcache/scene_{scene_idx:04d}.npy, dense_feat.cpu().numpy()) print(f已緩存 scene {scene_idx})這個(gè)做法的好處是訓(xùn)練階段不再需要加載 VLM顯卡顯存壓力大幅下降訓(xùn)練速度也會(huì)更快。8. 最佳實(shí)踐與工程建議8.1 面向?qū)嶋H項(xiàng)目?jī)?yōu)先考慮廣義少樣本設(shè)置如果你的項(xiàng)目需要持續(xù)增加新的識(shí)別類別評(píng)估時(shí)不要只用新類別 mIoU要認(rèn)真看基類 mIoU 的掉落情況。廣義少樣本分割的設(shè)置更貼近真實(shí)業(yè)務(wù)采用 GFS-VL 這類設(shè)計(jì)時(shí)也建議直接采用廣義少樣本的評(píng)估協(xié)議。8.2 蒸餾特征的選擇和緩存策略從 3D VLM 提取稠密特征時(shí)選擇哪一層特征作為蒸餾目標(biāo)會(huì)影響最終效果。常見經(jīng)驗(yàn)是早層特征偏幾何適合遷移局部結(jié)構(gòu)信息高層特征偏語義適合遷移類別判別信息實(shí)際中可以選擇多層特征融合但對(duì)顯存的要求會(huì)上升。推薦先用高層特征跑通全流程再嘗試多層融合提高上限。8.3 少樣本校準(zhǔn)要控制微調(diào)范圍校準(zhǔn)階段最怕的就是全量微調(diào)用 1-5 個(gè)樣本微調(diào)整個(gè)骨干網(wǎng)絡(luò)幾乎必然過擬合。更穩(wěn)的做法是只訓(xùn)練校準(zhǔn)模塊例如原型分類器或者只微調(diào)分割頭最后兩層加上較強(qiáng)的 L2 正則校準(zhǔn)后做一次基類驗(yàn)證集回歸測(cè)試確認(rèn)基類性能沒有明顯下降。8.4 數(shù)據(jù)劃分要體現(xiàn)真實(shí)場(chǎng)景少樣本分割實(shí)驗(yàn)的數(shù)據(jù)劃分方式直接影響結(jié)果可信度。如果在劃分時(shí)不小心讓支持集和查詢集來自同一場(chǎng)景模型相當(dāng)于提前看到了測(cè)試數(shù)據(jù)性能會(huì)虛高。建議檢查場(chǎng)景級(jí)劃分同一房間、同一片區(qū)域的數(shù)據(jù)歸為一部分類別級(jí)劃分新類別在訓(xùn)練階段完全不出現(xiàn)包括不出現(xiàn)對(duì)應(yīng)文本描述重復(fù)測(cè)試不同隨機(jī)種子下多次劃分報(bào)告均值±方差。8.5 工程部署要輕量化GFS-VL 框架中3D VLM 只用于離線蒸餾。線上推理只需要分割模型和校準(zhǔn)模塊。部署時(shí)建議將分割模型導(dǎo)出為 ONNX 或 TensorRT 格式校準(zhǔn)模塊運(yùn)行在模型加載階段推理時(shí)不參與計(jì)算固定類別列表的場(chǎng)景下可以把校準(zhǔn)后的分類器權(quán)重固化到模型文件里避免每次啟動(dòng)都重新計(jì)算。這種設(shè)計(jì)讓模型在保留 VLM 語義知識(shí)的同時(shí)依然保持輕量推理能力對(duì)自動(dòng)駕駛或機(jī)器人等實(shí)時(shí)場(chǎng)景更加友好。8.6 日志和監(jiān)控少樣本實(shí)驗(yàn)變量多建議記錄如下內(nèi)容每次實(shí)驗(yàn)的類別劃分基類/新類列表支持集樣本文件路徑和數(shù)量蒸餾損失權(quán)重和損失曲線基類 mIoU 和新類別 mIoU 的變化隨機(jī)種子。有了這些記錄后續(xù)分析“為什么這個(gè)實(shí)驗(yàn)效果好/差”會(huì)方便很多。9. 總結(jié)與后續(xù)學(xué)習(xí)方向GFS-VL 給少樣本三維點(diǎn)云分割提供的解題思路可以概括為少樣本學(xué)不出知識(shí)但可以借用知識(shí)。3D VLM 經(jīng)過大規(guī)模預(yù)訓(xùn)練后已經(jīng)在三維空間里積累了稠密的語義知識(shí)。把這個(gè)知識(shí)蒸餾到分割模型中模型就有了一個(gè)很好的特征空間底座。在這個(gè)底座上再做少樣本校準(zhǔn)新類別就不需要從零開始學(xué)習(xí)只需要調(diào)整少量參數(shù)來適配新語義。從工程視角看GFS-VL 最有價(jià)值的三個(gè)點(diǎn)3D VLM 只做離線教師推理時(shí)不需要部署大模型這讓它的工程成本可控廣義少樣本設(shè)計(jì)更貼近真實(shí)需求新增類別不能以犧牲舊類別為代價(jià)稠密知識(shí)遷移 少樣本校準(zhǔn)的組合在思路上跳出了“純靠少樣本特征匹配”的局限。如果你準(zhǔn)備實(shí)際嘗試建議按這個(gè)順序推進(jìn)先在公開數(shù)據(jù)集如 ScanNet 或 S3DIS上復(fù)現(xiàn)論文的 1-shot / 5-shot 設(shè)置跑通后做一組消融實(shí)驗(yàn)去掉蒸餾、去掉校準(zhǔn)分別看效果差異再遷移到自己的數(shù)據(jù)集上先驗(yàn)證新類別能否通過校準(zhǔn)得到可觀的分割效果最后評(píng)估推理時(shí)的顯存、耗時(shí)和模型大小決定是否落地到業(yè)務(wù)線。后續(xù)值得深入的方向還有更高效的稠密知識(shí)蒸餾損失例如用對(duì)比學(xué)習(xí)替代簡(jiǎn)單 L2 距離在線校準(zhǔn)策略讓模型在部署后遇到少量新樣本時(shí)能持續(xù)更新多模態(tài)融合的少樣本分割例如結(jié)合點(diǎn)云和圖像的互補(bǔ)信息。少樣本三維感知還處在快速演進(jìn)階段GFS-VL 證明了“用大模型的稠密知識(shí)做少樣本分割”是一條值得繼續(xù)投入的路線。對(duì)于正在做點(diǎn)云項(xiàng)目、又苦于標(biāo)注成本的人來說這個(gè)方向非常值得關(guān)注。建議收藏本文等論文代碼開源后可以直接對(duì)照思路上手實(shí)驗(yàn)。