robot-notes /模擬/感測器資料與 3D Gaussian 重建
感測器資料與 3D Gaussian 重建
要訓練 Physical AI,得先有一個能跑模擬的虛擬世界。一種做法是手工建模,但更快的做法是:直接拿真實感測器拍到的資料,重建成可以走進去的 3D 場景。這就是感測器資料與 3D reconstruction 的關係。
NVIDIA 的原話:資料生成從「建立一個空間(例如工廠)的數位分身」開始;而真實世界的感測器資料,也可以透過 3D Gaussian-based reconstruction 直接帶進互動式模擬裡。
延伸閱讀:Physical AI 總覽、定位(AMCL/EKF 也建立在高斯假設上)。
一句話講清楚關係
- 感測器資料 = 原料(2D 影像、影片、LiDAR 點、深度圖,都是「從某個角度看到的世界」)。
- 3D reconstruction = 加工:把很多張不同角度的 2D 觀測,反推出那個 3D 場景長什麼樣。
- 3D Gaussian = 加工後的成品格式:重建出來的場景用「一堆高斯橢球」來儲存與呈現。
- 有了這個 3D 場景,就能放進機器人、車輛去做閉迴路測試,或自動生成大量合成訓練資料——不必每次都回真實場域重拍。
什麼是 3D reconstruction
定義:從影像、影片或其他感測器資料,生成場景與物體的數位 3D 表示。
| 內容 | |
|---|---|
| 輸入 | 多視角影像、影片、LiDAR、深度資訊、單眼影像 |
| 輸出(常見三種表示) | 密集點雲、連續體積函數(NeRF)、高斯橢球集合(3D Gaussian Splatting,3DGS,高斯潑濺) |
直覺:你繞著一張桌子拍 50 張照片,人腦能想像出桌子的立體樣子;3D reconstruction 就是讓電腦做同一件事,而且把結果存成可以重新算出「任意新角度長怎樣」的 3D 模型。
為什麼是「Gaussian」Splatting
3D Gaussian Splatting(3DGS)不用三角網格(mesh)、也不用隱式神經網路(NeRF),而是用幾百萬個 3D 高斯橢球當積木,一團團疊出整個場景。每個橢球帶幾個屬性:
一個 3D 高斯 = 位置(在哪)
+ 形狀/大小(協方差矩陣:是圓的還是被拉長的橢球)
+ 顏色
+ 透明度
把幾百萬顆這種「會發光的小棉球」疊在一起 → 拼出整個場景
它的關鍵優點,正好來自「高斯」這個數學性質:
| 特性 | 為什麼好 |
|---|---|
| 即時 render | 3D 高斯投影到 2D 畫面後近似仍是高斯(一個 splat,糊開的小點;嚴格用仿射近似 / EWA splatting),可直接用 GPU rasterization 畫,不必像 NeRF 那樣每個像素打光線去積分 → 快到能即時 |
| 照片級品質 | 橢球可大可小、可拉長,貼合表面細節,畫面接近真實照片 |
| 相容既有工具 | 是「顯式」表示(看得到每顆橢球在哪),可轉成點雲,接得上標準 3D 流程 |
限制:沿原始拍攝軌跡很銳利,但離拍攝路徑太遠的全新視角品質會下降(沒拍到的地方只能猜)。
感測器資料 → 模擬場景的流程
跟送餐機器人 / AMR 的關聯
- 少回現場、多在電腦裡測:用相機/LiDAR 把一間餐廳掃一遍、重建成 3D 高斯場景,之後改桌位、加人潮、換光線都在模擬裡做,不必每次回現場重佈置。
- 合成資料規模化:同一個重建場景可隨機化(domain randomization)生出成千上萬種變化,訓練避障策略,降低真實採集的成本與風險。
- 接回既有導航:模擬場景可餵 Isaac Sim / Omniverse,與筆記裡的 ROS2 導航、SLAM、定位串起來做 sim-to-real。
補充:為什麼一堆模型演算法都掛個「高斯」
高斯(Gauss,1777–1855)兩百多年前就在了,「常態分布」又叫「高斯分布」。從那之後,影像處理、機器學習、機器人定位、3D 重建……到處都看到 Gaussian。不是大家趕流行,而是高斯這個工具同時佔了三個便宜:
1. 它最像真實世界的雜訊(中央極限定理)。 任何量測都是一堆獨立小誤差疊加的結果——溫度漂移、電路噪聲、機械震動……中央極限定理告訴我們:大量獨立隨機因素加總,結果會趨近常態分布。所以感測器噪聲、量測誤差天生就接近高斯,用高斯建模就是用最貼近現實的模型。
2. 它數學上最好算。 高斯分布只要平均值 + 變異數(多維就是協方差) 兩個東西就描述完了;而且它對許多運算「封閉」——兩個高斯密度相乘+正規化、做卷積、做傅立葉變換、經過仿射變換後,結果還是高斯(但非線性運算就不成立)。這讓推導可以一路解析地算下去,不會越算越複雜。3DGS 能即時 render,靠的就是「高斯投影後還是高斯」這條性質。
3. 它是「假設最少」的分布(最大熵)。 在「我只知道平均和變異數、其他一無所知」的前提下,高斯是最不自作主張、最不偏的選擇(最大熵分布)。沒有額外資訊時,假設高斯最誠實。
外加一個工程上的便利:高斯函數平滑、處處可微、隨距離平緩衰減,拿來當「權重核」做模糊、內插、加權再自然不過——這就是 Gaussian blur / Gaussian filter 的由來。
掛著高斯的常見家族,各自用到上面哪條:
| 名稱 | 用高斯做什麼 | 靠哪個優點 |
|---|---|---|
| 高斯/常態分布 | 描述隨機變數 | 1 + 3 |
| 高斯模糊 / 高斯濾波 | 影像平滑、去噪的權重核 | 平滑核 |
| 高斯雜訊 | 建模感測器噪聲 | 1 |
| 卡爾曼濾波 / EKF | 假設狀態與雜訊都是高斯,融合多感測器 | 1 + 2 |
| 高斯過程(GP) | 對未知函數做機率預測 | 2 + 3 |
| 高斯混合模型(GMM) | 用多個高斯疊出複雜分布 | 2 |
| 3D Gaussian Splatting | 用高斯橢球當 3D 積木 | 2(投影後仍是高斯 → 即時 render) |
和這份筆記的連結:定位 裡的 AMCL(粒子濾波)與 robot_localization 的 EKF,融合 odometry + IMU 時就是假設誤差服從高斯——和這裡的 3D Gaussian 重建,本質上是同一個高斯在不同問題裡各自發揮。
一句話:高斯不是流行語,是「最像真實雜訊 + 數學最好算 + 假設最少」三合一的工具,所以兩百年來在一個又一個新問題裡,反覆被發現是最佳解。
想從第一性原理徹底理解(高斯式子怎麼推出來、四條核心性質、以及 blur/Kalman·EKF/GP/GMM/3DGS 各用到哪條)→ 見 高斯分布:第一性原理。