提速199倍!清華&哈佛發(fā)布三維語義高斯?jié)姙RLangSplat|CVPR‘24 Highlight
入選CVPR 2024 Highlight的三維語義高斯?jié)姙R最新成果,查詢速度比之前的SOTA方法LERF快了199倍!
清華&哈佛團(tuán)隊提出LangSplat,在開放文本目標(biāo)定位和語義分割任務(wù)上達(dá)到SOTA性能。
該工作目前在??(Twitter)上受到廣泛關(guān)注,論文視頻累計瀏覽量超過100,000,論文代碼已開源。
結(jié)合三維高斯?jié)姙R技術(shù)重建三維語義場
人類生活在一個三維世界中,并通過文本語言描述三維場景。構(gòu)建三維語義場以支持在三維空間中的開放文本查詢最近越來越受到關(guān)注。
LangSplat方法結(jié)合三維高斯?jié)姙R技術(shù)重建三維語義場,能夠?qū)崿F(xiàn)準(zhǔn)確高效的開放文本查詢。
現(xiàn)有方法在NeRF的基礎(chǔ)上嵌入CLIP語義特征,LangSplat則通過結(jié)合三維高斯?jié)姙R,在每個高斯點上編碼了從CLIP提取的語義特征。
LangSpla采用tile-based的三維高斯?jié)姙R技術(shù)來渲染語義特征,從而避免了NeRF中計算成本高昂的渲染過程。
首先訓(xùn)練特定場景下的語義自編碼器,然后在場景特定的低維latent space上學(xué)習(xí)語義特征,而不是直接學(xué)習(xí)高維的CLIP語義特征,從而降低了計算量。
現(xiàn)有基于NeRF的方法的三維語義場比較模糊,無法清晰地區(qū)分目標(biāo)的邊界。本文深入研究了這一問題,提出使用SAM學(xué)習(xí)多層次語義,在不引入DINO特征的情況下獲得了更準(zhǔn)確的語義場。
廣泛的實驗結(jié)果表明,LangSplat在開放文本目標(biāo)定位和語義分割任務(wù)上的性能顯著超過了之前的SOTA方法LERF。值得注意的是,LangSplat在1440×1080分辨率的圖像上,查詢速度比LERF快了199倍。
團(tuán)隊強烈推薦查看在項目主頁中的更多視頻結(jié)果。
https://langsplat.github.io/
具體方法
首先來看LangSplat的主要貢獻(xiàn),分別為:
- 通過引入帶有語義特征的3D高斯?jié)姙R來進(jìn)行三維場景感知。
- 與以前的方法相比,實現(xiàn)了顯著的速度提升,使其適合實時應(yīng)用。
- 通過采用層次語義和新的渲染技術(shù),LangSplat提高了3D語義場的精確度。
- 通過使用場景特定的自動編碼器,減少了處理高維數(shù)據(jù)所需的計算和內(nèi)存開銷。
具體來說,采用了如下方法:
層次語義學(xué)習(xí):LangSplat利用Segment Anything Model(SAM)學(xué)習(xí)層次語義,解決了三維語義場的邊界模糊問題。
3D語義高斯?jié)姙R:LangSplat引入了一種新的技術(shù),即3D高斯?jié)姙R,它使用包含語義特征嵌入的3D高斯來表示3D場景。這種方法比NeRF-based的方法渲染過程更快。
特定場景的語義自編碼器:為了緩解高維語義特征嵌入導(dǎo)致的內(nèi)存out of memory問題,LangSplat構(gòu)建特定場景的語義自編碼器將這些文本語義特征降維。
層次語義學(xué)習(xí)
在本文中,團(tuán)隊利用SAM來獲得實例級的精確對象掩碼,然后用這些掩碼對應(yīng)的圖像區(qū)域提取像素對齊的特征。團(tuán)隊還明確地建模了SAM定義的語義層次,以解決點模糊性問題。
具體來說,團(tuán)隊將一個32×32點提示的常規(guī)網(wǎng)格輸入SAM,以獲得三個不同語義層次下的掩碼,分別代表子部分、部分和整體層次的掩碼。
然后基于SAM預(yù)測的IoU分值、穩(wěn)定性分值和掩碼之間的重疊率,為每一組掩碼去除冗余的掩碼。
每個過濾后的掩碼集合獨立地根據(jù)其各自的語義層次做全圖分割,從而得到三個分割圖: Ms,Mp,Mw。
這些分割圖準(zhǔn)確地勾勒出對象在其層次結(jié)構(gòu)中的邊界,有效地將場景劃分為語義上有意義的區(qū)域。通過獲得的分割圖,團(tuán)隊繼續(xù)為每個分割區(qū)域提取CLIP特征。數(shù)學(xué)上,得到的像素對齊的語義嵌入是:
如此,從三維語義場景渲染的每個像素都具有與其精確語義上下文相匹配的CLIP特征。這種匹配減少了模糊性,提高了基于語義的查詢的準(zhǔn)確性。
此外,由于團(tuán)隊在“整體”、“部分”和“子部分”層次上都有不同的分割圖,團(tuán)隊可以直接在這些預(yù)定義的尺度上查詢?nèi)S語義場。這消除了在多個絕對尺度上進(jìn)行密集搜索的需要,使查詢過程更加高效。
3D語義高斯?jié)姙R
在一組2D圖像上獲得語義嵌入后,團(tuán)隊可以通過建模3D點和2D像素之間的關(guān)系來學(xué)習(xí)一個3D語義場。大多數(shù)現(xiàn)有方法使用NeRFs進(jìn)行3D建模,但它們面臨著耗時的渲染過程。
為了解決這個問題,團(tuán)隊提出了基于3D高斯散射的3D語義場建模方法。這種3D高斯散射方法明確地將3D場景表示為各向異性的3D高斯分布的集合,每個高斯分布G(x)由均值μ∈R^3和協(xié)方差矩陣∑描述:】
3D高斯投影到2D圖像平面上后,用基于tile的光柵化策略進(jìn)行渲染:
其中, ci是第i個高斯的顏色,N表示瓦片中的高斯數(shù)量, C(v)是在像素 v 處渲染的顏色。
這里是oi第i個高斯的不透明度,Gi2D (?)代表投影到二維上的第 i 個高斯的函數(shù)。
在本文中,團(tuán)隊提出了3D語義高斯,為每個高斯增加三個語義嵌入{fs, fp, fw} 。這些嵌入源自CLIP特征,捕捉了SAM提供的層次語義。增強后的高斯被命名為3D語義高斯。并采用基于tile的光柵化器以保持渲染效率:
其中, Fl(v)代表在像素 處以語義層次l渲染的語義嵌入。通過直接將語義信息引入高斯中,團(tuán)隊使三維語義場能夠響應(yīng)基于文本的查詢。
特定場景的語義自編碼器
作為一種顯式建模方法,表征一個復(fù)雜場景可能需要數(shù)百萬個3D點。直接在高維的CLIP潛空間直接學(xué)習(xí)高斯的語義特征會顯著增加內(nèi)存消耗,容易導(dǎo)致“內(nèi)存不足”的問題。
為降低內(nèi)存消耗并提高效率,團(tuán)隊引入了基于場景的語義自編碼器,將場景中的CLIP嵌入映射到低維潛在空間。CLIP模型是通過4億對(圖像,文本)訓(xùn)練的,其D維潛在空間可能非常緊湊。
然而,團(tuán)隊在這里訓(xùn)練的語義場Φ是特定于場景的,這意味著團(tuán)隊可以利用場景先驗知識壓縮CLIP特征。事實上,對于每個輸入圖像,團(tuán)隊將獲得由SAM分割的數(shù)百個掩碼,這顯著少于CLIP訓(xùn)練中使用的圖像數(shù)量。因此,場景中的所有分割區(qū)域在CLIP潛在空間中稀疏分布,使團(tuán)隊能夠通過基于場景的自編碼器進(jìn)一步壓縮這些CLIP特征。
實驗結(jié)果
實驗設(shè)置:實驗測試了該方法在開放詞匯3D對象定位和語義分割任務(wù)上的性能,使用的數(shù)據(jù)集包括LERF和3D-OVS。
結(jié)果:LangSplat顯著優(yōu)于先前的最先進(jìn)方法。特別是,它在1440×1080分辨率下比LERF快199倍,顯示出在速度和效率上的顯著提高。
可視化和消融研究:論文包括了詳細(xì)的可視化和消融研究,展示了LangSplat各組成部分的有效性。
項目主頁: https://langsplat.github.io/
論文: https://arxiv.org/pdf/2312.16084.pdf
視頻: https://youtu.be/K_9BBS1ODAc?si=gfo5TrLK-htyWyuT
開源代碼: https://github.com/minghanqin/LangSplat