何愷明團隊開源3D目標檢測新框架VoteNet:模型更簡單、效率更高

當前主流的3D目標檢測方法,很大程度上受2D檢測器的影響。爲了利用2D檢測器,研究人員通常將3D點雲轉換爲規則的網格(體素網格或鳥瞰圖像),或者依靠2D圖像檢測器來提取3D邊界框。很少有研究嘗試直接探測點雲中的物體。何愷明團隊在ICCV2019發表的論文《基於深度霍夫投票的3D目標檢測》(Deep Hough Voting for 3D Object Detection in Point Clouds)中,迴歸第一原則,爲點雲數據構建儘可能通用的3D檢測方法。本文是AI前線第91篇論文導讀,我們將爲大家詳細解讀本論文的技術要點。

由於數據的稀疏性,直接從場景點預測邊界框參數時面臨着一個重大挑戰:3D對象的質心可能遠離任何表面點,因此很難用一個步驟準確地迴歸。爲了解決這一問題,作者提出了一種基於深度點集網絡和霍夫投票的端到端3D目標檢測網絡VoteNet。該模型設計簡單、模型尺寸緊湊,而且效率高。在ScanNet和SUN RGB-D兩個大型數據集上取得了最先進的3D檢測精度。VoteNet通過使用純幾何信息而不依賴彩色圖像,取得了比以前的方法更好的結果。論文已被ICCV 2019收錄,且論文代碼已在GitHub開源。

介紹

3D目標檢測的目的是定位和識別3D場景中的對象。具體地說,在這項工作中,作者的目的是從點雲數據中估計定向的3D邊界框以及對象的語義類別。

image

圖1:使用深度霍夫投票進行點雲中的3D目標檢測
  與2D圖像相比,3D點雲具有精確的幾何形狀和對光照變化的魯棒性。但是,點雲是不規則的。因此,典型的CNN不太適合直接用於處理點雲數據。   爲了避免處理不規則點雲,目前的3D探測方法在很多方面都嚴重依賴基於2D的檢測器。例如將Faster或Mask R-CNN等2D檢測框架擴展到3D,或者將點雲數據投影爲規則的2D鳥瞰圖像,然後應用2D檢測器定位對象。然而,這種方法會犧牲幾何細節,而這些細節在雜亂的室內環境中可能是至關重要的。   在這項工作中,作者提出了一個以點雲數據爲中心的3D檢測框架VoteNet。該框架**直接處理原始數據,不依賴於任何2D檢測器**。VoteNet基於點雲3D深度學習模型的最新進展,並受到用於對象檢測的廣義霍夫投票過程的啓發。   作者利用PointNet++,這是一個用於點雲學習的分層深度網絡,以減少將點雲轉換爲規則結構的需要。通過直接處理點雲,不僅避免了量化過程中信息的丟失,而且通過僅對感測點進行計算,也利用了點雲的稀疏性。   雖然PointNet++在對象分類和語義分割方面都很成功,但很少有研究使用此類架構來檢測點雲中的3D對象。一個簡單的解決方案是遵循2D檢測器的常規做法——密集目標候選(dense object proposal),即直接從感測點(及其所學特徵)中提出3D邊界框。然而,點雲固有的稀疏性使得這種方法並不適合。在圖像中,通常在目標中心附近存在一個像素,但在點雲中往往不是這樣。由於深度傳感器僅能捕獲物體的表面,因此3D物體的中心很可能位於遠離任何點的空白空間中。因此,基於點的網絡很難在目標中心附近聚集場景上下文。簡單地增加感受野並不能解決這個問題,因爲當網絡捕獲更大的上下文時,它也會包含更多的附近的目標和雜物。   爲此,作者提出賦予點雲深度網絡一種類似於經典霍夫投票(Hough voting)的投票機制。通過投票,基本上生成了靠近對象中心的新點,可以對這些點進行分組和聚合(grouped and aggregated),以生成候選框(box proposals)。   與傳統的多獨立模塊、難以聯合優化的霍夫投票相比,VoteNet是端到端優化的。具體來說,在通過主幹網絡傳遞輸入點雲之後,對一組種子點進行採樣,並根據它們的特徵生成投票。投票的目的是到達目標中心。因此,投票集羣出現在目標中心附近,然後可以通過一個學習模塊進行聚合,生成候選框。這種方法可以得到一個強大的3D物體探測器,它是純幾何的,可以直接應用於點雲。   作者在兩個具有挑戰性的3D目標檢測數據集上評估了VoteNet:SUN RGB-D和ScanNet。在這兩個數據集上,僅使用幾何信息的VoteNet顯著優於使用RGB和幾何甚至多視圖RGB的現有技術。該研究表明,投票方案支持更有效的上下文聚合,並驗證了當目標中心遠離目標表面時(如桌子、浴缸),VoteNet能夠提供最大的改進。   這篇論文的貢獻如下:
  • 通過端到端的可微架構,在深度學習的背景下重新定製了霍夫投票,稱之爲VoteNet。

  • 在SUN RGB-D和ScanNet兩個數據集上實現了最先進的3D目標檢測性能。

  • 深入分析了投票在點雲3D目標檢測中的重要性。

深度霍夫投票(Deep Hough Voting)

傳統的霍夫投票2D檢測器包括離線和在線兩個步驟。首先,給定一組帶有標註的對象邊界框的圖像,用圖像塊(或其特徵)及其到相應目標中心的偏移量之間的映射關係構建一個codebook。在推理時,從圖像中選擇興趣點以提取周圍的圖像塊。然後將這些圖像塊與codebook中的圖像塊進行比較,以檢索偏移量並計算投票。由於目標的圖像塊傾向於一致投票,因此將在目標中心附近形成集羣。最後,通過追溯集羣投票到生成的圖像塊來檢索目標邊界。
 
這種方法非常適合點雲數據3D目標檢測的問題。首先,基於投票的檢測比區域候選網絡(RPN)更適合於稀疏集。其次,它基於自下而上的原理,積累少量的局部信息以形成可靠的檢測。
 
然而,由於傳統的霍夫投票是由多個獨立的模塊組成的,如何將其集成到點雲網絡仍然是一個開放的研究課題。爲此,作者建議對流程的不同成分進行以下調整。
 
興趣點(Interest points)由深度神經網絡來描述和選擇,而不是依賴手工提取的特徵。
 
投票(Vote)生成是由網絡學習的,而不使用codebook。利用更大的感受野,可以減少投票的模糊,使投票更有效。此外,還可以使用特徵向量對投票位置進行增強,從而實現更好的聚合。
 
投票聚合(Vote aggregation)是通過可訓練參數的點雲處理層實現的。利用投票功能,網絡可以過濾掉低質量的投票,並生成改進的候選區域(proposals)。
 
目標候選(object proposal)的形式爲:位置、維度、方向,甚至語義類別,都可以直接從聚合特徵中生成,從而減少了追溯投票來源的需要。
 
下面的內容將介紹如何將上述的所有成分組合成端到端的網絡VoteNet。

VoteNet結構

圖2給出了端到端檢測網絡VoteNet的結構。整個網絡可以分爲兩部分:一部分處理現有的點來生成投票;另一部分處理虛擬點——投票——來提出和分類目標。

image

圖2:用於點雲中3D目標檢測的VoteNet結構。給定一個包含N個點和XYZ座標的輸入點雲,一個主幹網絡(使用PoingNet++實現),對這些點進行採樣和學習深度特徵,並輸出M個點的子集。這些點的子集被視爲種子點。每個種子通過投票模塊獨立地生成一個投票。然後將投票分組爲集羣,並由proposal模塊處理,生成最終的proposal。經過分類得到的proposal經過NMS(非極大值抑制),即爲最終的3D邊界框。

從點雲數據中學習投票

給定一個大小爲N×3的輸入點雲,N個點中的每個點都有一個3D座標,目標是生成M個投票,其中每個投票都有一個3D座標和一個高維特徵向量。主要有兩個步驟:通過主幹網絡學習點雲特徵和從種子點學習霍夫投票。
 
點雲特徵學習。生成一個準確投票需要幾何推理和上下文信息。作者利用最近提出的深度網絡在點雲上進行點特徵學習。作者採用了PointNet++作爲主幹網絡。主幹網絡有多個集抽象層和跳躍連接的特徵傳播(上採樣)層,這些層輸出的是輸入點的子集,包含XYZ座標和一個C維特徵向量。結果爲M個種子點,維度爲3+C。每個種子點生成一個投票。
 
深度網絡霍夫投票。傳統的霍夫投票是通過在預先計算的codebook中查找決定的,作者使用一個基於深度網絡的投票模塊生成投票,不僅效率更高,而且更準確,因爲它是與剩下的步驟一起訓練的。
 
給定一組種子點{si},si=[xi;fi];xi表示三維座標,fi表示C維特徵矢量,一個共享的投票模塊從每個種子中獨立地生成投票。具體來說,投票模塊是通過多層感知器(MLP)網絡實現的。MLP輸入種子特徵fi,輸出歐幾里得空間偏移量Δxi和特徵偏移量Δfi,那麼從種子生成的投票vi=[yi;gi],其中yi=xi+Δxi,gi=fi+Δfi。
 
預測的3D偏移量Δxi由迴歸損失監督:

image

其中1[si on object]表示種子點si是否在目標表面上,Mpos是目標表面上種子的總數。Δxi *是從種子位置xi到它所屬物體的邊界框中心的真實偏移量。

從投票中得到目標的proposal和分類

通過抽樣和分組對投票聚類。作者選擇了一種簡單的策略對投票聚類,即根據空間鄰近度進行統一採樣和分組。具體地說,從一組投票{vi=[yi;gi]}中,作者基於{yi}進行最遠點採樣,得到包含K個投票的子集{vik}。然後通過找到每個vik 3D位置的近鄰投票來形成K個聚類:
 
從投票聚類中得到proposal和分類。由於投票聚類本質上是一組高維點,因此可以利用一個通用的點集學習網絡來聚合投票,以生成目標proposal。作者採用共享的PointNet。給定一個投票聚類C={wi},其中wi=[zi;hi],zi爲投票位置,hi爲投票特徵,聚類中心爲wj。爲了利用局部投票幾何,將投票位置轉換成局部標準化座標系。然後對於聚類C的目標proposal p©就可以通過把集合輸入一個類似PointNet的模塊得到:

image

其中,來自每個聚類的投票由MLP1獨立處理,然後按通道最大池化爲單特徵向量,並傳遞到MLP2,在那裏,來自不同投票的信息進一步組合。作者將proposal p表示爲一個多維向量,包括目標性得分、邊界框參數和語義分類得分。
 
損失函數。Proposal和分類階段的損失函數包括目標性、邊界框估計和語義分類損失。
 
對於目標性分數,監督信息爲投票與真實目標中心更近(0.3米以內)或遠離任何中心(0.6米以上)。作者將這些投票產生的proposal分別視爲積極proposal和消極proposal。對於其他proposal的對象性預測不進行懲罰。對象性是通過交叉熵損失來監督的,該交叉熵損失由一個batch中不被忽略的proposal的數量進行歸一化。對於積極的proposal,將根據最近的真實邊界框進一步監督邊界框估計和語義類預測。具體來說,作者將邊界框損失與中心迴歸、航向角估計和邊界框尺寸估計分開。對於語義分類,使用標準的交叉熵損失。

實驗結果

作者首先在兩個大型3D室內目標檢測基準上,將基於霍夫投票的檢測器與之前最先進的方法進行比較。然後,作者提供了分析實驗來了解投票的重要性、不同的投票聚合方法的效果,並展示了該方法在緊湊性和效率方面的優勢。最後,作者展示了檢測器的定性結果。

與SOTA方法進行比較

####數據集
SUN RGB-D是一個單視圖RGB-D數據集,用於3D場景理解。包含5K的RGB-D訓練圖像,包含37個類別的標註框。作者使用提供的相機參數將深度圖像轉換爲點雲數據。
 
ScanNetV2是一個註釋豐富的室內場景3D重建網格數據集。包含從數百個不同房間收集的1.2K訓練樣本,並用語義和實例分割對18個目標類別進行標註。與SUN RGB-D相比,ScanNetV2中的場景更完整,平均覆蓋的區域更大,目標更多。作者從重建的網格中抽取頂點作爲輸入點雲。
####方法比較

image

表1:SUN RGB-D val數據集上的3D目標檢測結果。評價標準爲3D IoU閾值爲0.25的平均精度。
  !image
表2:ScanNetV2 val數據集上的3D目標檢測結果。
  實驗結果如表1和表2所示。在SUN RGB-D和ScanNet兩個數據集中,VoteNet的性能都優於所有先前的方法,分別增加了3.7和18.4個mAP。

表1表明,當類別爲訓練樣本最多的“椅子”時,VoteNet比以前的最優方法提高了11AP。表2表明,僅採用幾何輸入時,VoteNet顯著優於基於3D CNN的3D-SIS方法,超過了33AP。

分析實驗

####投票好還是不投票好呢?

作者採用了一個簡單的基線網絡,稱之爲BoxNet,它直接從採樣的場景點提出候選框,而不需要投票。BoxNet與VoteNet具有相同的主幹,但它不是投票,而是直接從種子點生成框。表3顯示,在SUN RGB-D和ScanNet上,相比BoxNet,投票機制的網絡性能分別提高了5 mAP和13 mAP。

image

表3:VoteNet和no-vote基線的比較
  那麼,投票在哪些方面有幫助呢?作者認爲,由於在稀疏的3D點雲中,現有的場景點往往遠離目標的中心點,直接提出的proposal可能置信度較低或不準確。相反,投票讓這些較低的置信點更接近,並允許通過聚合來強化它們的假設。在圖3中,作者在一個典型的ScanNetV2場景中演示了這種現象。如圖所示,VoteNet(右)提供了比BoxNet(左)更廣泛的“好”種子點的覆蓋範圍,顯示了投票帶來的穩定性。

image

圖3:投票有助於增加檢測上下文。由種子點(BoxNet),或投票(VoteNet)在圖中用藍色顯示。隨着投票有效地增加了上下文,VoteNet能夠更密集的覆蓋場景,因此增加了準確檢測的可能性。

image

圖4:當目標點遠離目標中心的情況下,投票更有幫助。
  圖4給出了第二個分析,顯示了在同一個圖上(以不同的比例),對於每個SUN RGB-D的類別:(藍色點)在VoteNet和BoxNet之間mAP的增加,以及(紅色方塊)目標點和邊界框中心之間的最近距離。可以看出,當目標點遠離邊界框中心時,投票會起到更大的作用。

####投票聚合的效果

投票聚合是VoteNet的一個重要組成部分,因爲它允許投票之間的溝通。因此,分析不同的聚合方案對性能的影響是非常有用的。

image

圖5:投票聚合分析

圖5(右)表明,由於存在雜亂投票(即來自非目標種子的投票),使用學習的PointNet和最大池化進行投票聚合比手動聚合局部區域中的投票特徵能獲得更好的結果。圖5(左)給出了投票聚合半徑對檢測的影響。隨着聚和半徑的增加,VoteNet的效果會不斷提高,在0.2半徑處達到峯值。當半徑過大時,引入了更多的雜亂投票,導致性能下降。

####模型大小和速度

VoteNet利用了點雲的稀疏性,避免在空的空間搜索。與以前的最佳方法相比,該模型比F-PointNet小4倍,在速度上比3D-SIS快20倍。

image

表4:模型尺寸和處理時間。

定性結果和討論

圖6和圖7分別給出了VoteNet在ScanNet和SUN RGB-D場景上檢測結果的幾個代表性示例。如圖所示,場景是非常多樣化的,並具有多種挑戰,包括雜亂、掃描僞影等。儘管存在這些挑戰,VoteNet仍然顯示出相當強大的結果。
 
例如,圖6展示了VoteNet在頂部場景中正確地檢測到絕大多數椅子。該方法能夠很好地區分左下角場景中連起來的的沙發椅和沙發,並預測出了右下角場景中那張不完整的、雜亂的桌子的完整邊界框。

image

圖6:ScanNetV2數據集3D目標檢測結果。

image

圖7 SUN RGB-D數據集3D目標檢測結果。
  不過,該方法仍然有侷限性。常見的失敗案例包括遺漏非常薄的物體,如門、窗和圖畫等圖6頂部場景中黑色邊界框表示的部分。由於沒有利用RGB信息,檢測到這些類別幾乎是不可能的。圖7也還顯示了該方法在單視圖深度圖像的部分掃描中的優勢。例如,它在左上方的場景中檢測到的椅子比真實值提供的更多。在右上角的場景中,可以看到儘管只看到沙發的一部分,VoteNet依然成功繪製出了邊界框。

結論

在這項工作中,作者提出了VoteNet:一個簡單但強大的3D目標檢測模型,其靈感來自於霍夫投票。該網絡學習直接從點雲向目標中心投票,並學習通過其特徵和局部幾何信息聚合投票,以生成高質量的目標proposal。該模型僅使用3D點雲,與之前使用深度和彩色圖像的方法相比,有了顯著的改進。在未來的工作中,作者將探索如何將RGB圖像納入這個檢測框架,並在下游應用(如3D實例分割)中彙總利用該檢測器。作者表示霍夫投票和深度學習的協同作用可以推廣到更多的應用領域,如6D姿態估計、基於模板的檢測等,並期待在這方面看到更多的研究。

論文原文:

Deep Hough Voting for 3D Object Detection in Point Clouds

論文代碼:https://github.com/facebookresearch/votenet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章