1 前言
大多數現(xiàn)有的3D網絡架構通過稠密且規(guī)則的三維體素網格來代替2D像素陣列,并使用3D卷積和池化操作來處理該網格。然而,對于稠密的三維數據,計算和內存需求隨著分辨率的提高呈三次方增長。因此,現(xiàn)有的3D網絡僅限于較低的3D分辨率,通常為30的3次方個體素。
2 相關背景
盡管2D卷積網絡在從圖像中提取信息方面已被證明是非常成功的,但在處理三維數據方面的工作相對較少。我們回顧關于稠密模型和稀疏模型的現(xiàn)有工作。稠密模型:由于計算和內存的限制,稠密模型的常用方法都只能在非常粗的分辨率下處理和生成形狀,通常在30的3次方個體素的數量級。此外,當需要高分辨率的輸出時,例如用于標記三維點云時,采用有限的低效滑動窗口技,分辨率的提高降低了網絡的深度,從而降低了網絡的表現(xiàn)力。相比之下,所提出的OctNets允許在更高的分辨率下訓練深層結構。稀疏模型:只有少數網絡架構明確地利用了數據中的稀疏性。由于這些網絡不需要窮舉密集卷積,它們具有處理更高分辨率的潛力。部分工作具有減少卷積數量的潛力,但不會減少所需的內存量。因此,他們的工作只考慮最多三層的非常淺的網絡。
3 方法
為了減少卷積網絡在稀疏的三維數據上的內存占用,作者提出了一個自適應的空間劃分方案,將計算集中在相關區(qū)域。由于深度網絡的數學運算,特別是卷積網絡,在規(guī)則的網格上最容易被理解,作者把注意力限制在三維體素網格的數據結構上。在體素網格上最流行的空間劃分結構之一是八叉樹,由于其靈活的分層結構,八叉樹已被廣泛采用。應用的領域包括深度融合、圖像渲染和三維重建。在本文中,我們提出了八叉樹形式的三維卷積網絡,以從高分辨率的三維數據中學習表征。
3.1 .混合網格-八叉樹數據結構
隨著八叉樹深度的增加,其所存在的問題不斷增加。作者使用一種類似于Miller等人提出的混合網格-八叉樹結構來代替單個非平衡八叉樹來表示整個高分辨率3D輸入。作者的核心思想是將一棵八叉樹的最大深度限制在一個很小的數值,如3層,并將若干個這樣的淺八叉樹沿一個規(guī)則的網格放置。雖然這種數據結構可能沒有標準八叉樹那樣的內存效率,但仍然可以實現(xiàn)顯著的壓縮比。淺層八叉樹集合的另一個好處是,它們的結構可以使用位串表示進行非常有效的編碼,從而進一步降低訪問時間,并允許高效的GPU實現(xiàn)。通過給定一個深度為3的淺八叉樹,我們用73 bit表示完整的樹。索引為0的第1位表示根節(jié)點是否分裂。進一步,比特1到8表示是否對其中一個子節(jié)點進行了剖分,比特9到72表示孫子節(jié)點的剖分,如圖3所示。樹的深度為3在內存消耗和計算效率之間給出了一個很好的折衷。增加八叉樹深度導致存儲樹結構所需的比特數呈指數增長,進一步增加了單元遍歷時間。
3.2. 針對網絡操作
我們現(xiàn)在討論混合網格-八叉樹數據結構再網絡操作上的高效實現(xiàn)。重點介紹卷積網絡[中最常見的操作:卷積、池化和去池化。卷積卷積操作是深度卷積網絡中最重要的,同時也是計算開銷最大的操作。對于單個特征圖,將三維張量T與三維卷積核W∈RL × M × N卷積可寫為:
類似地,網格-八叉樹數據結構上的卷積定義為:
雖然這個計算結果與單特征圖的張量卷積與oc2ten、ten2oc包裝器相同,但我們現(xiàn)在能夠定義一個計算上更有效的卷積算子。我們的關鍵觀察是,對于小的卷積核和大的體素,在體素的小范圍內是恒定的,因為它的恒定支持]。因此,我們只需要計算一次體素內的卷積,然后沿著體素的表面進行卷積,由于相鄰的體素取值不同,支持度會發(fā)生變化(圖4)。這使83個體素的計算次數減少了4倍。同時,它還能實現(xiàn)一個更好的緩存機制。
圖4:卷積。該圖說明了33個核(紅色)與83個網格-八叉樹單元(黑色)的卷積。圖中只顯示了三個維度中的兩個。如(a)所示,在網格樹單元內的每個位置(i, j, k)都有一個直接的實現(xiàn),對內核進行評估。在這個例子中,這導致了約1萬4千次乘法。相比之下,(b)描述了我們對同一操作的有效實現(xiàn),只需要約3千次乘法。由于網格-八叉樹單元內的所有83個體素都是相同的值,單元內的卷積核只需要評估一次。單元邊界的體素需要整合來自相鄰單元的信息。這可以通過截斷內核的求和來有效實現(xiàn)。
池化:深度卷積網絡中另一個重要的操作是池化。池化降低了輸入張量的空間分辨率,聚合更高層次的信息進行進一步處理,從而增加感受野和捕獲上下文。
圖5:池化。在grid-octree結構上的23個池化操作將8個相鄰的淺八叉樹(a)合并為一個淺八叉樹(b)。每個體素的大小被減半并復制到新的淺八叉樹結構中。最細分辨率的體素被集中起來。不同的淺層八叉樹用不同的顏色來描述。
例如,卷積步長為 23 最大池化將輸入張量Tin分成23個不重疊的區(qū)域,并計算每個區(qū)域的最大值。形式上,我們有
為了在網格八叉樹數據結構上實現(xiàn)池化,我們減少了淺八叉樹的數量。對于一個具有2D × 2H × 2W淺八叉樹的輸入網格樹Oin,輸出Oout包含D × H × W淺八叉樹。Oin的每個體素的大小減半,并在淺層八叉樹中復制一個層次。Oin中深度為3的體素被集合起來。這可以被表述為
其中vxd(-)計算淺層八叉樹中索引體素的深度。圖5中描述了一個直觀的例子。
作者為了捕捉精細的細節(jié),體素可以根據相應集合層的原始八叉樹,以最精細的分辨率再次分割。這使我們能夠充分利用跳躍連接。在作者的語義三維點云標簽實驗中,其遵循這種方法。去池化對于語義分割等多個任務,期望的網絡輸出與網絡輸入大小相同。雖然池化對于增加網絡的感受野大小和捕獲上下文至關重要,但它會損失空間分辨率。為了提高網絡的分辨率,U型網絡架構已經成為流行的,其使用池化操作編碼信息,并在解碼器部分使用去池化或反卷積層提高分辨率[ 51 ],可能與跳躍連接(skip-connections)[ 9、19]結合以提高精度。最簡單的去池化策略使用最近鄰插值,可以在稠密輸入T in∈RD × H × W和輸出T out∈R2D × 2H × 2W張量上進行如下形式化:
同樣,我們可以在混合網格-八叉樹數據結構上定義類似的操作,即
這個操作也改變了數據結構:淺層八叉樹的數量增加了8倍,因為每個深度為0的節(jié)點會產生一個新的淺層八叉樹。所有其他節(jié)點的大小都增加了一倍。因此,在這個操作之后,樹的深度減少了。這個操作的直觀例子見圖6。備注:為了捕捉精細的細節(jié),體素可以根據相應集合層的原始八叉樹,以最精細的分辨率再次分割。這使我們能夠充分利用跳過的連接。在我們的語義三維點云標簽實驗中,我們遵循這種方法。
4 .實驗評估
在本節(jié)中,作者利用OctNet來研究輸入分辨率對三種不同3D任務的影響:3D形狀分類、3D方向估計和3D點云語義分割。為了將分辨率的影響從其他因素中分離出來,作者考慮較為簡單的網絡結構。數據增強、2D / 3D聯(lián)合建?;蚣蓪W習等正交技術可能會進一步提高模型的性能。
4.1. 3D Classification
作者使用流行的ModelNet10數據集進行3D形狀分類任務。該數據集包含10個形狀類別,包括用于訓練的3991個3D形狀和用于測試的908個3D形狀。每個形狀被提供為一個三角形網格,以規(guī)范的姿態(tài)定向。作者將三角形網格轉換為稠密的各自的網格-八叉樹占用網格,其中一個體素如果與網格相交則設置為1。我們對每個網格進行縮放以擬合成一個( N-P)3體素的3D網格,其中N是輸入網格中每個維度的體素數,P = 2是填充參數。我們首先研究了輸入分辨率對內存占用、運行時間和分類精度的影響。為了實現(xiàn)這個目標,作者創(chuàng)建了一系列從83到2563個體素的不同輸入分辨率的網絡。作者考慮了三種不同類型的網絡:馬圖拉納等人[ 30 ]的原始VoxNet架構,它運行在固定的323個體素網格上,OctNet和它的稠密版本,我們在下文中表示為" DenseNet "。雖然可以通過使用正交方法如網絡集成[ 5 ]或3D和2D卷積網絡[ 20 , 42]的組合來獲得性能增益,但在本文中,作者特意關注"純" 3D卷積網絡方法,以將分辨率的影響與其他影響因素隔離開來。
圖7 展示了結果。首先,我們比較了我們的Oct Net 的內存消耗和運行時間,如圖7a和7b所示。重要的是,與密集輸入網格相比,OctNets需要更少的內存和運行時間來實現(xiàn)高輸入分辨率。
作者注意到,盡管OctNet具有池化表示,但它的性能與它的稠密等價類相當。稀疏數據允許自適應地分配資源而不會損失性能。此外,兩個模型都優(yōu)于較淺的VoxNet架構,表明了網絡深度的重要性。關于分類精度,我們觀察到低分辨率的改善,但超過323個體素的輸入分辨率的回報遞減。較高的輸入分辨率有助于某些類別,如浴缸,而其他類別則與分辨率無關,如梳妝臺v。我們通過從ModelNet10數據庫中顯示三維形狀的體素化表示來可視化這種缺乏辨別力的情況,如圖8所示。雖然浴缸在低分辨率下看起來與床(或沙發(fā)、桌子)相似,但在更高分辨率下可以成功區(qū)分。
4.2. 3D Orientation Estimation
在本節(jié)中,我們研究了輸入分辨率對三維方向估計的重要性。大多數現(xiàn)有的三維姿態(tài)估計方法都假設物體實例的真實三維形狀是已知的。為了評估3D卷積網絡的泛化能力,我們考慮了一種只知道物體類別的略有不同的設置。在單個類別的3D形狀的保留集合上訓練模型后,我們測試了模型對來自同一類別的未知3D形狀的3D方向的預測能力。圖10展示了作者得到的結果。可以觀察到,與分類任務相比,精細細節(jié)對于位姿的估計更為重要。對于OctNet 1 - 3架構,我們觀察到性能的穩(wěn)步增加,而對于跨分辨率容量恒定的網絡(圖10b ),性能水平超過1283體素輸入分辨率。后一實驗的定性結果如圖11所示。每一行顯示了在幾個輸入分辨率上對兩個隨機選擇的椅子實例的10個不同的預測,范圍從163到1283。較暗的顏色表示較大的誤差,這些誤差在較低分辨率下出現(xiàn)的頻率更高。相比之下,較高網絡分辨率下的預測集中在真實姿態(tài)附近。
在Modelnet10上進行朝向估計。圖中顯示了輸入分辨率從163到1283變化時,3個椅子實例的10個旋轉估計值。較暗的顏色表示與真實值有較大的偏差。
4.3. 3D Semantic Segmentation
對于該任務,我們在643、1283和2563三種不同的輸入分辨率上訓練了一個U型網絡,其中體素大小被選擇使得所有建筑物的高度都與輸入體積相符合。我們首先將點云映射為網格-八叉樹結構。對于所有包含一個點以上的葉子節(jié)點,我們對輸入特征進行平均,并計算地面真值標簽的多數投票進行訓練。作為特征,我們使用了二進制體素占有率、RGB顏色、法向量和地面高度。由于訓練樣本數量較少,我們通過施加小幅度的旋轉來增加該任務的數據。圖12,作者的結果清表明,提高輸入分辨率對于獲得最先進的結果是必不可少的,因為在較粗的分辨率下,更精細的細節(jié)會消失。
5 總結
該作者所提出的OctNet,作為一種新穎的三維表示和數據結構表達,使得高分辨率輸入的深度學習變得容易。作者提供了一種實現(xiàn)高分辨率輸入的方式,這對物體分類、姿態(tài)估計和語義分割等多個3D學習任務做出了一定的貢獻。隨著對象數據集從低分辨率向高分辨率大規(guī)模三維數據地轉變,OctNet將能夠實現(xiàn)進一步的改進,其為未來的研究的提供了一個高效處理高分辨率體素化數據的途徑。
審核編輯:彭菁
-
3D
+關注
關注
9文章
2843瀏覽量
107178 -
數據
+關注
關注
8文章
6754瀏覽量
88613 -
三維
+關注
關注
1文章
486瀏覽量
28910 -
卷積網絡
+關注
關注
0文章
42瀏覽量
2145
原文標題:八叉樹,內存無憂!
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論