設計一個通用的框架!3D場景理解最新研究進展
3D場景理解是指利用計算機視覺和機器學習技術來解釋和理解三維空間中的環境和對象,通常涉及到從3D數據中識別和分類對象、理解對象之間的關系以及場景的語義信息。傳統的3D場景理解包括但不限于:(1)語義分割:識別并分割出圖像中每個像素所屬的類別(但不同實例的同一類別對象(如多輛汽車)通常無法區分)(2)實例分割:不僅識別圖像中每個像素的對象類別,還區分同一類別中不同的實例(3)對象檢測(4)視覺定位。3D場景理解廣泛應用于自動駕駛、具身智能等領域,比如輔助車輛理解周圍的3D環境,進行導航和避障、幫助機器人在復雜環境中自主導航、與環境交互等。
目前對于3D場景理解的最新研究進展如下:(1)部分學者致力于提高3D場景理解模型的計算效率,比如改進自注意力機制的計算復雜度。(2)也有大部分學者關注開放詞匯的3D場景理解,即在沒有明確標記數據的情況下,對3D場景進行理解和分類的方法。這與傳統的3D場景理解方法不同,傳統方法通常依賴于有限的、預先定義好的類別標簽,而開放詞匯3D場景理解允許模型理解和分類更廣泛的對象、屬性和場景特征,而無需針對每個新類別進行重新訓練。為了實現開放詞匯的3D場景理解,學者們致力于將視覺語言模型(如CLIP)的先驗知識引入3D場景理解,具體來說需要將3D點云特征與文本特征、圖像特征對齊。(3)另外,鑒于目前對于各個單一任務的3D場景理解研究已卓有成就,并且大多數3D場景理解框架僅適用于特定任務,還有學者希望設計一個通用的任務框架來應用在各種3D場景理解的任務上,包括語義分割、實例分割、全景分割、交互分割、開放詞匯分割等,具體方法比如通過知識蒸餾將通用框架在某一任務上的知識向其他任務轉移,從而實現了任務間的知識共享。
來看下近年來的一些研究。
Swin3D:用于 3D 室內場景理解的預訓練 Transformer 主干
3D Transformer網絡在處理3D點云數據時面臨的高計算復雜度問題。在傳統的3D Transformer網絡中,自注意力(self-attention)模塊的空間復雜度通常是二次方的,因為對于每個輸入點,都需要計算它與所有其他點之間的關系,這意味著隨著點云數據量的增加,計算和內存需求會急劇上升。這不僅限制了模型的規模,也限制了其在大規模數據集上的應用。為了解決這一問題,文章提出了一種改進的自注意力機制,能夠在稀疏體素(voxels)網格上以線性空間復雜度運行,顯著降低了內存和計算成本,使得模型能夠處理更大規模的數據集。
- 高效的自注意力算法:文章設計了一種新型的3D自注意力操作符,用于在局部窗口內計算稀疏體素的自注意力。這種算法將自注意力的內存成本從二次降低到線性,相對于窗口內稀疏體素的數量,從而使得模型能夠高效地運行而不會犧牲自注意力的準確性。
- 首先,文章使用稀疏體素(voxels)來表示3D點云數據。體素化是一種將連續的3D空間離散化成網格單元(體素)的方法,其中只有非空的體素才會存儲點云數據。這種方法可以有效地減少內存占用,因為只處理非空體素,而不是整個空間。
- 此外,文章將3D空間劃分為局部窗口,并在這些窗口內計算自注意力。這種方法限制了自注意力計算的范圍,從而減少了計算量和內存需求。
- 文章提出的新型自注意力操作符通過優化計算過程,使得內存需求與窗口內非空體素的數量呈線性增長。這是通過避免存儲所有點對之間的注意力權重來實現的,而是直接在計算過程中累加這些權重。
- 層次化結構:SWIN3D采用了類似Swin Transformer的層次化結構,由多個階段的SWIN3D塊組成,每個階段處理不同分辨率的體素特征,實現了多尺度特征編碼。
- 上下文相對位置編碼(cRPE):為了捕捉點云信號的不規則性,文章提出了一種泛化的上下文相對位置編碼方案。這種編碼方案不僅考慮了點的位置信息,還考慮了顏色、法線等其他信號的不規則性,通過將這些信號的相對變化納入自注意力計算中,進一步提升了網絡的性能。
OpenScene:用開放詞匯理解3D場景
開放詞匯3D場景理解是指能夠在沒有明確標記數據的情況下,對3D場景進行理解和分類的方法。這與傳統的3D場景理解方法不同,傳統方法通常依賴于有限的、預先定義好的類別標簽,并且需要大量的標記3D數據來訓練模型,以便模型能夠在特定任務上表現出色。這種方法的難點在于:(1)數據標記成本高(2)泛化能力有限(3)任務特定性強。開放詞匯3D場景理解旨在解決這些限制,它允許模型理解和分類更廣泛的對象、屬性和場景特征,而無需針對每個新類別進行重新訓練。
文章提出的模型架構OpenScene,是一種零樣本學習方法,它利用了大規模預訓練的文本-圖像嵌入模型(如CLIP)來增強3D場景理解的能力。模型將3D點的特征與文本和圖像像素在CLIP特征空間中共同嵌入。這意味著3D點的特征不僅與視覺信息相關聯,還與語言概念對齊,從而允許使用文本查詢來探索3D場景。模型具體通過以下步驟將3D點的特征與視覺特征和語言特征的對齊:
- 圖像特征提取及2D-3D配對:首先,對于每個RGB圖像,使用一個預訓練的2D視覺-語言分割模型(如OpenSeg或LSeg)來計算每個像素的嵌入特征。這些特征被用來表示圖像中的視覺信息。接著,對于3D點云中的每個3D表面點,通過相機的內參和外參矩陣將其投影回對應的2D圖像平面上。這個步驟確保了每個3D點都能找到它在2D圖像中的對應像素。這樣,每個3D點都獲得了一個融合了多個視角下視覺信息的特征向量。
- 3D網絡蒸餾:盡管可以直接使用融合的2D特征進行語言驅動的3D場景理解,但為了提高魯棒性并處理只有3D點云數據的情況,文章提出了一個3D網絡(如MinkowskiNet),它只使用3D點的位置信息作為輸入,并訓練這個網絡來復現融合的2D特征。通過最小化3D網絡輸出和融合的2D特征之間的差異,3D網絡學習到了與2D特征對齊的特征表示。
- 2D-3D特征集成:為了結合2D圖像特征和3D幾何特征的優勢,文章提出了一個集成方法。通過計算每個3D點的2D融合特征和3D蒸餾特征與一組文本提示的相似度,選擇與文本提示最相似的特征作為最終的集成特征。
由于CLIP模型是在大規模的圖像和文本數據上預訓練的,它能夠捕捉到比傳統對象類別標簽更豐富的概念,包括物理屬性、材料、功能等。OpenScene利用這一點,允許用戶輸入任意文本查詢,并在3D場景中找到與這些查詢匹配的部分。
CLIP2Scene:通過CLIP實現標簽高效的3D場景理解
類似于上文,CLIP2Scene也是應用 CLIP 來幫助學習 3D 場景理解,將CLIP知識從2D圖像-文本預訓練模型轉移到3D點云網絡。CLIP2Scene的框架通過語義和時空一致性正則化來預訓練3D點云網絡,使得3D點云特征能夠與CLIP的視覺和文本特征對齊。下面是具體的對齊方法:
- 語義一致性正則化(Semantic Consistency Regularization):利用CLIP的文本語義來選擇正樣本和負樣本。具體來說,通過將類別名稱放入預先定義的模板中,使用CLIP的文本編碼器生成文本嵌入(text embeddings),這些嵌入包含了對應類別的語義信息。然后,將這些文本嵌入與3D點云特征進行對比學習。通過對比損失函數,拉近具有相同語義的點云特征和文本嵌入之間的距離,同時推遠不同語義的點云特征和文本嵌入,從而使得3D網絡學習到的特征能夠與CLIP的文本語義對齊。
- 時空一致性正則化(Spatial-Temporal Consistency Regularization):此外,還將點云數據與對應的圖像數據進行校準,建立圖像像素特征與點云特征之間的對應關系。為了使多掃描點云具有時間一致性,即在連續時間幀內捕獲的點云數據具有空間和時間上的連貫性,在正則化過程中,強制使得同一空間位置和時間戳內的點云特征與圖像像素特征保持一致。這通過計算點云特征和對應圖像像素特征之間的相似度,并使用損失函數來最小化它們之間的差異來實現。
通過上述兩個正則化策略,CLIP2Scene框架能夠將3D點云特征與CLIP的豐富視覺和文本信息有效地結合起來,從而提高3D場景理解的性能。這種跨模態的對比學習方法不僅使得3D網絡能夠進行零樣本(annotation-free)的語義分割,而且在有少量標注數據進行微調(fine-tuning)時也能顯著提高性能。
PLA:語言驅動的開放詞匯3D場景理解
提出了一種名為PLA(Point-Language Association)的方法,也是希望利用視覺語言模型輔助3D特征與文本特征對齊,實現開放詞匯3D場景理解。具體如下:
- 首先,從3D場景中獲取多個視角的圖像。這些圖像通常由圍繞3D場景的不同位置的相機拍攝得到,能夠提供場景的全面視圖。利用3D場景和這些多視圖圖像之間的幾何關系,例如相機的內參和外參,以及3D點與2D圖像之間的投影關系。這些幾何約束確保了從不同視角觀察到的同一物體在3D空間中的位置是一致的。
- 構建分層的3D-字幕對:然后文章使用一個預訓練的視覺語言基礎模型(具體為GPT-ViT2)來為3D場景的多視圖圖像添加字幕,提供與3D場景相關的語義豐富的描述。文章設計了分層的3D字幕對,包括場景級(將整個3D場景與一個匯總的字幕相關聯)、視圖級(將每個視角下的3D點云與對應圖像的字幕相關聯)和實體級(通過分析相鄰視圖級點集的差異和交集,構建與特定實體(如單個物體實例)相關的字幕)。這些層次化的字幕對利用3D場景和多視圖圖像之間的幾何約束,從而在不同的空間尺度上建立3D點云與文本之間的關聯。
- 3D點云特征與文本特征對齊:最后,通過對比學習的方法,使得3D點云的特征與相應文本描述的特征在特征空間中相互靠近,從而學習到能夠反映文本描述內容的3D特征表示。
這種方法的優勢在于,它不僅能夠利用豐富的文本信息來增強3D數據的理解,還能夠處理不同尺度和粒度的3D場景內容,從而提高模型在開放詞匯3D場景理解任務中的性能和泛化能力。
UniSeg3D:三維場景理解的統一框架
以往的大多數 3D 場景分割方法都專門用于特定任務,因此將他們對 3D 場景的理解限制在特定于任務的視角上。這篇文章提出了 UniSeg3D,它使用一個統一的Transformer作為核心處理單元,這個Transformer接收統一的輸入表示,并為所有任務生成特征。這種設計允許模型在不同任務之間共享知識,提高了模型的泛化能力和效率。
- 首先,為了處理不同的任務,UniSeg3D引入了多種類型的輸入查詢(queries):
- 通用分割任務(如語義分割、實例分割、全景分割)使用點云作為輸入,通過3D U-Net提取特征。
- 交互分割任務通過視覺提示(如點擊或畫框)來指定感興趣的區域。
- 引用分割任務使用文本描述來指定分割目標。
- 開放詞匯分割任務處理未在訓練集中出現的類別。
- 然后,UniSeg3D利用知識蒸餾從交互分割任務(由于其視覺提示的可靠性,通常具有較高的分割性能)向其他任務轉移知識。具體來說,使用匈牙利算法(Hungarian algorithm)將交互分割任務的預測結果與真實標簽進行匹配,從而得到正樣本。然后,在交互分割任務的預測掩碼中,選擇具有最高置信度(例如,前k%)的區域作為學習區域。在這些學習區域內,計算交互分割任務的預測掩碼與“學生”任務的預測掩碼之間的損失。這個損失通過比較匹配區域內的預測掩碼來衡量,使用二元交叉熵損失(Binary Cross-Entropy, BCE)來實現。通過最小化這個損失,將交互分割任務的知識轉移到其他任務中,從而提高這些任務的性能。
- 此外,為了將文本描述與3D場景中的相應對象或區域關聯起來,設計了一種基于排名的對比學習方法。具體來說,首先使用Transformer架構來獲取點云特征、使用預訓練的CLIP模型來獲取文本特征。然后通過一個對比學習框架匹配點云特征和文本特征。為了進一步優化對比學習的效果,UniSeg3D引入了排名規則。這個規則確保在對比學習過程中,與特定文本描述最相關的點云特征在相似度排序中位于最前面。通過這種方式,模型能夠更好地理解和處理引用分割任務中的文本描述。