3D 機器學習課程文件

這是什麼?

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

這是什麼?

高斯潑濺是一種可微分光柵化技術

可微分光柵化

簡單來說

  • “可微分”可以被認為是“AI相容”的一種花哨說法
  • “光柵化”意味著將資料繪製到螢幕上

光柵化已經非常普遍。它通常以三角形光柵化的形式出現,即將3D資料轉換為2D畫素資料並繪製到螢幕上。這是通常渲染網格的方式。

Mesh

然而,三角形光柵化並不是很相容AI。這是因為它包含離散決策,例如

  • 這個畫素在三角形內部嗎?

神經網路不喜歡離散決策。它們希望一切都是模糊和連續的——換句話說,是可微分的

高斯潑濺

高斯潑濺是一種可微分光柵化技術。但它究竟是如何工作的呢?

潑濺由數百萬個點組成,每個點由四個引數構成

  • 位置:它在哪裡(XYZ)
  • 協方差:它如何拉伸(3x3 矩陣)
  • 顏色:它是什麼顏色(RGB)
  • Alpha:它有多透明(α)

然後,為了光柵化一個潑濺,這些點被投影到2D。接著,對於每個畫素,計算每個點的貢獻。或者,用偽程式碼表示

splat2d = splat.project_and_sort()
for point in splat2d:
    for pixel in image:
        pixel += compute_contribution(point, pixel)

一個點的貢獻會隨著它與畫素的距離增加而減小。點還需要排序,因為它們是按從後到前的順序混合的。

理論上,每個點都對每個畫素有貢獻,這效率非常低。然而,這沒關係,因為它是可微分的

在實踐中,這透過基於瓦片的光柵化方法進行最佳化,詳情請參閱原始論文

推理

如果你不訓練模型,那麼它是否可微分並不重要。你可以將每個點視為一個例項化的四邊形,就像在開源網頁檢視器(如gsplat.js)中那樣。

你可以在這裡看到它的實際應用。

訓練

原始論文使用運動恢復結構(一種傳統的3D重建演算法)來初始化這些點。

Structure from Motion

然後使用基於瓦片的方法對這些點進行光柵化,並透過將光柵化影像與真實資料進行比較來計算損失。梯度下降用於調整點引數(位置、協方差、顏色、alpha)。

Trained

原始論文還使用了自動密集化和修剪,以根據需要自動新增和刪除點。更多細節可在此處找到。

Final

生成式3D

原始方法適用於從照片中學習單個場景。然而,可微分光柵化的概念可以推廣到更復雜的模型,如神經網路。

生成式3D模型就是這種情況,例如LGM,我們將在下一節中使用它來構建我們自己的生成式3D演示。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.