「大多數人用 2D 圖片分類解決視覺問題; 高手用視覺語言模型跨模態推理; 但真正的世界理解需要 3D 空間感知與時序動態模型。 從像素到世界模型,是從感知到智慧的本質躍升。」
這篇給已經做過 2D 分類/偵測、現在要讓系統「讀懂語言指令、知道距離、預測下一步」的感知工程師看。讀完你會能為一條同時吃街景影像、LiDAR 點雲與自然語言指令的管線挑選 VLM 架構,判斷場景重建該用 NeRF 還是 3D Gaussian Splatting,並知道在需要預測「接下來 3 秒」時,世界模型能給什麼、還不能給什麼。
一、核心問題:從 2D 感知到 3D 世界理解的躍升
傳統電腦視覺的範式是:輸入圖片 → 抽特徵 → 輸出分類/框。這個方法在 ImageNet 時代表現出色,但遇到真實世界的複雜任務時,三個根本限制浮現:
限制一:模態孤島問題 視覺模型只能輸出類別 ID,語言模型只能處理文字。當使用者問「這張照片裡有幾個人戴了眼鏡?」,純視覺模型無法作答,純語言模型看不見圖片。視覺語言模型(VLM)的出現就是為了打破這道牆。
限制二:2D 投影丟失深度資訊 相機成像是 3D 世界投影到 2D 平面的過程,這個過程不可逆——除非你有多視角或深度先驗。自駕車需要知道「前方障礙物距離 4.2 公尺」而不只是「畫面中央有個人」。NeRF 和 3D Gaussian Splatting 嘗試從 2D 影像重建 3D 場景。
限制三:靜態感知缺乏因果推理 世界是動態的。「當前場景是什麼」和「接下來會發生什麼」是完全不同的問題。預測未來需要世界模型(World Model)——一個能模擬物理因果關係的系統。Sora 等影片生成模型被認為是早期世界模型的體現。
本文沿著這三個維度展開:VLM 打通語言與視覺、3D 重建恢復空間幾何、世界模型引入時序因果。
二、何時該升級:從多模態 API 到自架 VLM、再到 3D 重建與世界模型的觸發條件
最便宜的起點是不自訓練:圖片 Base64 送多模態 LLM API,每張 $0.01–0.03,沒有基礎設施。這個起點該被取代的訊號不是「規模到了」,而是三個具體症狀:延遲(API 單次 2–5 秒)撐不住產品互動、成本隨量線性增長且無法客製化微調、或問題本身已經不是 2D 能回答的(需要距離、需要跨視角一致、需要預測未來)。
| 從 | 到 | 觸發訊號 |
|---|---|---|
| 多模態 LLM API | 自架開源 VLM(LLaVA-7B/BLIP-2) | 2–5 秒延遲或 per-image 計費已成瓶頸,且有領域資料可 fine-tune;自架 A100 × 2 約 $4,320/月,延遲可降到 300–800ms(見 §四、§九) |
| 2D 感知/點雲分類 | 3DGS/NeRF 場景重建 | 任務需要「距離 4.2 公尺」而非「畫面中央有個人」,或需要跨視角一致的場景;代價是每場景 30–60 分鐘訓練(見 §五、§六) |
| 靜態感知 | 世界模型(Video DiT) | 需求變成「接下來 3 秒會發生什麼」——靜態感知無論精度多高都答不了;目前泛化能力仍有限,只在互動資料充足的自駕/機器人場景值得投入(見 §七) |
三、視覺語言模型:CLIP 對比學習架構
CLIP(Contrastive Language-Image Pre-Training)是現代 VLM 的基石。其核心洞察是:用自然語言作為監督訊號,比人工標記的類別標籤更通用、更豐富。
CLIP 訓練架構
對比學習目標(InfoNCE Loss)
┌─────────────────────────────────────────────────────┐
│ │
│ 圖片 batch (N 張) │
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
│ │I₁ │ │I₂ │ │I₃ │ ... │Iₙ │ │
│ └──┬─┘ └──┬─┘ └──┬─┘ └──┬─┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ Image Encoder (ViT) │ │
│ │ 輸出: [N × D] 向量 │ │
│ └─────────────────────────────────┘ │
│ ‖ cosine similarity ‖ │
│ ┌─────────────────────────────────┐ │
│ │ Text Encoder (Transformer) │ │
│ │ 輸出: [N × D] 向量 │ │
│ └─────────────────────────────────┘ │
│ ▲ ▲ ▲ ▲ │
│ │ │ │ │ │
│ ┌──┴─┐ ┌──┴─┐ ┌──┴─┐ ┌──┴─┐ │
│ │T₁ │ │T₂ │ │T₃ │ ... │Tₙ │ │
│ └────┘ └────┘ └────┘ └────┘ │
│ 文字 batch(與圖片一一對應) │
│ │
│ 目標:最大化對角線相似度(正對),最小化非對角線(負對) │
└─────────────────────────────────────────────────────┘
訓練細節:
- 資料集:400M 圖文對(網路爬取)
- Batch size:32,768(對比學習需要大 batch 才有足夠負樣本)
- 訓練時間:在 592 V100 × 18 天
- ViT-L/14 版本:Image Encoder 輸出 768 維向量,Text Encoder 輸出 512 維
Zero-shot 推論原理:
查詢: "一隻在草地上奔跑的狗"
1. 將所有候選類別文字 encode 成向量
2. 將測試圖片 encode 成向量
3. 計算 cosine similarity
4. 輸出最高相似度的類別
ImageNet 零樣本準確率:76.2%(接近有監督 ResNet-50 的 76.1%),這在 2021 年是震撼性的結果。
CLIP 的限制:
- 無法計數(「有三隻貓」vs「有五隻貓」表現差)
- 空間關係弱(「左邊的貓在右邊狗的旁邊」理解不穩定)
- 無法生成文字(只能做相似度比對,不能回答問題)
四、VLM 生成架構:BLIP / LLaVA / GPT-4V 對比
為了讓 VLM 能夠生成文字回應(而不只是做相似度比對),需要引入語言模型的解碼能力。
BLIP-2 架構
BLIP-2 的關鍵創新是 Q-Former(Querying Transformer)——一個用可學習查詢向量從視覺特徵中提取「對語言模型有用的資訊」的模組:
圖片 ──▶ Frozen ViT ──▶ Q-Former ──▶ Frozen LLM (OPT/FlanT5)
│
32 個可學習查詢向量
(壓縮視覺資訊的瓶頸)
- 訓練參數:只訓練 Q-Former(~188M 參數),ViT 和 LLM 都凍結
- 優點:可以插入任意 ViT + 任意 LLM,組合靈活
- 缺點:Q-Former 是資訊瓶頸,複雜視覺細節可能丟失
LLaVA 架構
LLaVA(Large Language and Vision Assistant)取消 Q-Former,改用簡單的線性投影層:
圖片 ──▶ CLIP ViT-L/14 ──▶ Linear Projection ──▶ Vicuna/LLaMA
(視覺 token 映射到
語言模型的 embedding 空間)
LLaVA 的訓練策略(兩階段):
- 預訓練:只訓練 Linear Projection,用圖文對齊 595K 資料
- 指令微調:訓練 Linear Projection + LLM,用 150K 視覺對話資料
LLaVA-1.5 的突破在於將 Linear Projection 換成 MLP(2 層),並用 VQAv2、TextVQA 等 benchmark 資料混合訓練,在 11 個 benchmark 達到 SOTA。
三種架構對比
| 架構 | 視覺橋接模組 | 訓練參數 | VQAv2 準確率 | 推論速度 | 適用場景 |
|---|---|---|---|---|---|
| BLIP-2 | Q-Former (188M) | 只訓 Q-Former | 65.2% | 慢(多階段) | 需要彈性換底模型 |
| LLaVA-1.5 | MLP Projection | LLM + MLP | 80.0% | 快 | 中等規模部署 |
| GPT-4V | 未公開(推測 cross-attn) | 未公開 | ~87% | 2–5s (API) | 最高精度需求 |
| LLaVA-NeXT | Dynamic Resolution | LLM + 更高解析度 | 82.4% | 中 | 需要細節識別 |
工程選型建議:
- 內網低延遲需求 → LLaVA-7B(A100 單卡,300ms)
- 最高精度 → GPT-4V API(但成本 10x)
- 需要 OCR / 文件理解 → LLaVA-NeXT 或 Qwen-VL
時效說明(2026-09):上表為 2023–24 年的模型與分數。GPT-4V 已退役,API 端現在是各家原生多模態的旗艦模型;自架端的主流開源 VLM 也已換成 Qwen-VL、InternVL、Gemma 等較新世代。選型前請以最新 benchmark 重新比較。
五、3D 視覺基礎:點雲 / 體素 / NeRF
從 2D 圖片到 3D 理解,有三種主流的 3D 表示方法,各有適用場景。
點雲(Point Cloud)
最接近 LiDAR 原始輸出的格式。每個點是 (x, y, z) 座標,加上可選的顏色或強度屬性。
點雲特性:
- 格式: [(x₁,y₁,z₁), (x₂,y₂,z₂), ..., (xₙ,yₙ,zₙ)]
- 密度: 自動駕駛 LiDAR 每秒 ~1.2M 點
- 挑戰: 不規則、無序、密度不均勻
- 處理工具: PointNet, PointNet++, Open3D
- 典型任務: 3D 物件偵測, 地面分割, 障礙物識別
PointNet 的核心創新:用 shared MLP + max-pooling 處理無序點集,實現排列不變性(permutation invariance)。
體素(Voxel)
將 3D 空間切割成規則格柵,每個格子(體素)存儲是否被佔用及顏色。類比:3D 版的像素。
解析度與儲存對比:
256³ 體素 = 16.7M 格子 = ~67MB (float32)
512³ 體素 = 134M 格子 = ~536MB
問題: 大多數體素是空的(稀疏度 > 99%)
解決: 稀疏體素(Sparse Voxel),只存非空格子
工具: MinkowskiEngine, TorchSparse
NeRF(Neural Radiance Field)
NeRF 是一個革命性的隱式表示方法。它不直接儲存場景的幾何或顏色,而是訓練一個 MLP 來表示「從任意方向看任意位置的顏色和密度」:
輸入: (x, y, z, θ, φ) ──▶ MLP ──▶ 輸出: (RGB, density σ)
位置 顏色 體積密度
渲染管線:
沿光線採樣 N 個點 ──▶ 查詢 MLP ──▶ 體積渲染積分 ──▶ 像素顏色
NeRF 的工程現實:
- 訓練時間:每場景 1–10 小時(原始 NeRF)
- 改進版 Instant-NGP:訓練降至 ~2 分鐘(用哈希網格加速)
- 渲染速度:原始 NeRF 每幀 30 秒;Instant-NGP 即時渲染
- 記憶體:Instant-NGP 場景 ~10MB
NeRF 的限制:
- 每個場景需要獨立訓練,無法泛化到新場景
- 無法處理動態物件(原始 NeRF 假設靜態場景)
- 需要 50–100 張覆蓋良好的圖片才能重建
六、3D Gaussian Splatting 原理與工程應用
3D Gaussian Splatting(3DGS)是 2023 年最重要的 3D 重建突破,相比 NeRF 有三個核心優勢:速度快、品質高、可編輯。
核心原理
3DGS 用數百萬個 3D 高斯橢球體來表示場景,每個高斯球有:
每個 3D Gaussian 的屬性:
- 位置 μ: (x, y, z) ── 中心點座標
- 協方差 Σ: 3×3 矩陣 ── 控制形狀和方向(橢球的長軸/短軸)
- 顏色 c: 球諧函數係數 ── 與觀察角度相關的顏色
- 不透明度 α: 0~1 ── 控制可見度
典型場景: 100萬–600萬個高斯球
儲存大小: ~300MB–2GB
渲染管線(可微分光柵化):
3D 高斯球群
│
▼ 投影到 2D(每個球投影為 2D 橢圓)
按深度排序
│
▼ 前到後 alpha-compositing
│
▼ 輸出像素顏色
關鍵:整個渲染管線是可微分的,因此可以用圖片監督訊號反向傳播,優化所有高斯球的參數。
訓練流程
初始化: SfM 稀疏點雲(COLMAP 估計相機位姿)
│
▼
每次迭代:
1. 渲染當前視角
2. 計算 L1 + D-SSIM Loss
3. 反向傳播,更新高斯球參數
4. 自適應密度控制:
- 梯度大的區域 → 複製/分裂高斯球(細化)
- 不透明度接近 0 的 → 剪除(pruning)
│
▼
30分鐘內收斂(vs NeRF 數小時)
工程應用數字
| 指標 | NeRF (Instant-NGP) | 3D Gaussian Splatting |
|---|---|---|
| 訓練時間/場景 | 2–5 分鐘 | 20–45 分鐘 |
| 渲染速度 | 10–30 FPS | 100–200 FPS |
| PSNR(重建品質) | 29–33 dB | 31–35 dB |
| 儲存大小 | ~10MB | ~300MB–2GB |
| 動態場景支援 | 差 | 中(需擴展) |
| 可編輯性 | 難 | 佳(直接操作高斯球) |
真實部署案例:
- 電商 3D 商品展示:用手機 30 秒環拍 → 3DGS 訓練 40 分鐘 → 瀏覽器 WebGL 即時渲染
- 文化遺址數位化:100 張 DSLR 照片 → 博物館品質 3D 模型
- 自駕資料增強:重建路口場景 → 合成雨天/夜間變體
七、影片理解與世界模型
世界模型的核心能力是:給定當前狀態(觀察 + 動作),預測未來狀態。這超越了「理解現在」,進入「預測接下來會發生什麼」的領域。
影片理解的演進
Video CNN 時代(2014–2019):
- Two-Stream Network:空間流(外觀)+ 時間流(光流)
- 3D ConvNet(C3D/I3D):時空聯合卷積
- 限制:固定時間窗口,無法處理長程依賴
Video Transformer 時代(2020–2022):
- ViViT:影片分成時空 patch,full attention
- TimeSformer:分解時空注意力(先空間後時間)
- 挑戰:計算複雜度 O(T²H²W²),長影片不可行
Sora 的架構突破(Video DiT)
Sora 基於 Diffusion Transformer(DiT),將影片視為時空 patch 序列:
影片生成管線:
文字 Prompt ──▶ CLIP/T5 ──▶ 文字 Embedding
│
▼
隨機噪聲 ──────────────────▶ Video DiT ──▶ 去噪影片潛碼
│ │
時空 Patch │ ▼
Attention ─┘ VAE Decoder
│
▼
生成影片(2024/2 技術報告:最高 1080p、約 60s)
Sora 的「世界模型」特性:
- 能模擬流體物理、碰撞反彈、光影變化
- 理解持久性(物體離開畫面後再出現,狀態一致)
- 能從任意相機軌跡生成一致影片
技術細節(公開資訊):
- Spacetime Patch:一個 patch 代表 (t, h, w) 的局部時空區塊
- Variable Duration/Resolution:同一模型處理任意長寬比和時長
- Recaptioning:沿用 DALL·E 3 的 re-captioning 技術,先訓練一個高描述力的 captioner,再為訓練影片生成詳細描述(用 CogVLM 等開源模型做 recaptioning 是 Open-Sora 等開源復現的做法)
工程上的世界模型分類
| 類型 | 代表模型 | 輸入 | 輸出 | 訓練資料 | 應用 |
|---|---|---|---|---|---|
| 影片生成型 | Sora, Runway Gen-3 | 文字/圖片 | 影片 | 網路影片 | 內容創作 |
| 動作條件型 | GAIA-1, DreamerV3 | 觀察 + 動作 | 未來觀察 | 互動資料 | 自駕/機器人 |
| 遊戲模擬型 | GameNGen | 遊戲狀態 | 下一幀 | 遊戲錄影 | RL 訓練環境 |
| 物理模擬型 | PhysDreamer | 3D 場景 | 動態模擬 | 物理仿真 | 機器人規劃 |
八、為什麼選 X 不選 Y
決策 1:VLM 推論用 LLaVA vs BLIP-2
| 選擇 | 選 LLaVA 的理由 | 不選 BLIP-2 的理由 |
|---|---|---|
| 推論速度 | 無 Q-Former 瓶頸,吞吐量高 20–30% | Q-Former 多加一個 forward pass |
| 訓練簡單 | 只需 MLP + LLM,架構清晰 | Q-Former 訓練需要特殊策略 |
| 社群支援 | LLaVA-NeXT/1.6 持續更新 | BLIP-2 官方更新放緩 |
| 細節保留 | MLP 投影丟失資訊少 | Q-Former 32 向量是硬性瓶頸 |
何時選 BLIP-2: 需要頻繁替換底層 LLM(BLIP-2 的凍結設計讓換 LLM 零成本),或 GPU 記憶體極度緊張(Q-Former 讓 LLM 只需處理 32 個視覺 token)。
決策 2:3D 重建用 3DGS vs NeRF
| 選擇 | 選 3DGS 的理由 | 不選 NeRF 的理由 |
|---|---|---|
| 渲染速度 | 100–200 FPS,支援即時應用 | Instant-NGP 最快 ~30 FPS |
| 品質 | PSNR 高 2–4 dB | 細節不如 3DGS |
| 可編輯 | 直接操作高斯球(移動/刪除) | 隱式表示無法直接編輯 |
| 下游整合 | 高斯球可接 physics engine | 需要 mesh 提取才能做物理模擬 |
何時選 NeRF: 場景需要極緊湊的儲存(Instant-NGP < 10MB,3DGS 可能 > 1GB);或需要半透明、煙霧等體積效果(NeRF 的體積渲染天然更適合)。
決策 3:點雲處理用 PointNet++ vs VoxelNet
| 選擇 | 選 PointNet++ | 不選 VoxelNet |
|---|---|---|
| 記憶體效率 | 直接處理原始點,無體素化開銷 | 高解析度體素記憶體爆炸 |
| 精度 | 保留精確幾何,無量化誤差 | 體素化導致精度損失 |
| 局部特徵 | Hierarchical Grouping 多尺度 | 體素 3D CNN 感受野固定 |
何時選 VoxelNet: 需要融合圖片特徵(BEV 體素格柵易於與 2D CNN 融合);自駕中 VoxelNet 衍生的 PointPillars 是最常用的工業方案(推論 62 FPS,比 PointNet++ 快 3x)。
決策 4:部署 VLM 用 vLLM vs TGI (Text Generation Inference)
| 選擇 | 選 vLLM | 不選 TGI |
|---|---|---|
| 吞吐量 | PagedAttention 讓吞吐量高 24x | KV Cache 管理效率低 |
| 多模態支援 | 原生支援 LLaVA/Qwen-VL | 多模態支援較晚、較不完整 |
| 社群 | Pytorch 生態,貢獻活躍 | HuggingFace 官方但更新慢 |
| 靈活度 | 自訂採樣策略容易 | 更封閉的 API |
何時選 TGI: 使用 HuggingFace 生態且需要簡單部署(Docker 一鍵起);或需要 AWQ/GPTQ 量化的開箱即用支援。
九、系統效應(2D → 3D 的能力與成本躍升)
能力對比(量化)
| 能力維度 | 純 2D CV | + VLM | + 3D 重建 | + 世界模型 |
|---|---|---|---|---|
| 場景描述 | 類別 + BBox | 自然語言描述 | 3D 結構描述 | 動態預測 |
| 定位精度 | 2D px(無深度) | 無改善 | 3D cm 級 | 軌跡預測 |
| 跨視角一致性 | 無 | 無 | 有(NeRF/3DGS) | 有 |
| 推理能力 | 無 | 有(語言推理) | 有 | 有 + 因果 |
| Zero-shot 泛化 | 差(需重訓) | 好(語言指令) | 中 | 中 |
示意估算,非實測數據
成本躍升
| 階段 | GPU | 訓練成本/場景 | 推論延遲 | 月成本(10K QPS) |
|---|---|---|---|---|
| 2D CNN 分類 | T4 × 1 | $0(用預訓練) | 5ms | $500 |
| + VLM (LLaVA-7B) | A100 × 2 | $10(few-shot) | 300ms | $4,320 |
| + 3DGS 重建 | A100 × 4 | $50/場景 | 500ms | $9,000 |
| + Video DiT 世界模型 | H100 × 8 | $500/模型更新 | 2,000ms | $28,000 |
示意估算,非實測數據
關鍵 threshold:
- 100 QPS 以下:多模態 API 通常比自架便宜(無運維成本);此門檻為示意,實際取決於每張圖的 token 數與當前 API 單價
- 100–1,000 QPS:LLaVA-7B A100 × 2 自架開始划算
- 1,000+ QPS:需要多卡 + vLLM 批次推論,延遲 SLA 是架構決策的核心約束
Before / After 示意案例數字(示意估算,非實測數據)
電商商品 3D 展示(從 2D 圖片到 3DGS):
- Before:每個 SKU 人工 3D 建模 8 小時,成本 $200
- After:手機拍攝 30 秒 + 3DGS 訓練 40 分鐘,成本 $3(GPU 費)
- 轉換率提升:+24%(3D 展示 vs 2D 圖片)
自駕感知(加入 VLM 語言理解):
- Before:規則式場景分類,漏報率 12%(長尾場景)
- After:LLaVA + 規則混合,漏報率降至 3.5%
- 延遲:從 8ms 增至 380ms(需要 Edge TPU 加速)
十、系列導航
本文是「AI 工程從零開始」系列 Phase 4 的第 3 篇。
← 上一篇: Phase 4 Part 2:目標偵測與語義分割 — 讓機器看懂空間
→ 下一篇: Phase 5 Part 1:NLP 基礎 — 文字是智慧的介面
Phase 4 完整系列
| 篇 | 主題 | 核心技術 |
|---|---|---|
| Part 1 | 電腦視覺基礎 — 從像素到 CNN 特徵 | ResNet, EfficientNet, 遷移學習 |
| Part 2 | 目標偵測與語義分割 — 讓機器看懂空間 | YOLO, Faster R-CNN, Mask R-CNN |
| Part 3 | 視覺語言模型、3D 視覺與世界模型 | CLIP, LLaVA, NeRF, 3DGS, Sora |
本文為技術概念整理,架構圖為示意性說明。實際工程實作請參考各開源專案的官方文件。
