2020-ImVoteNet: Boosting 3D Object Detection in Point Clouds with Image Votes-結合圖像投票提升點雲3D檢測

在這裏插入圖片描述

1. 摘要

這篇文章的第一作者是Charles R. Qi,同時也是PointNet,PointNet++,Frustum PointNets和VoteNet的一作,代碼目前沒有開源。之前進行室內3D檢測的SOTA算法VoteNet只使用了point cloud,而point cloud具有以下劣勢,點雲稀疏,缺少顏色信息,而且數據包含傳感器噪聲。相對而言,images具有更高的分辨率以及豐富的紋理信息,因此圖像可以輔助點雲進行3D detection,難點在於如何有效結合。這篇論文基於VoteNet框架,提出了一個專門針對RGB-D場景的3D檢測算法框架ImVoteNet,融合了image上的2D Votes和point cloud的3D Votes。和之前進行多模態檢測的工作相比,該論文顯式地從2D image中提取幾何和語義特徵,並結合相機內參將這些特徵提升至3D空間。爲了提高2D-3D特徵融合效果,作者還提出了一個multi-tower訓練框架。ImVoteNet在SUN RGB-D數據集上達到了SOTA,比之前SOTA的VoteNet又提高了5.7mAP。

2. 簡介

19年提出的VoteNet在室內3D檢測任務上達到了SOTA,但這是否到極限了呢,是否存在一種有效方式結合RGB image來提升效果?通過分析point cloud和image數據,可以看出RGB image和point cloud之間存在互補關係,因此可以肯定image能夠輔助point cloud帶來效果提升。RGB image相比與depth image或者Lidar data具有更高的分辨率,包含豐富的紋理信息,而且images可以覆蓋blind regions,這些區域由於反光等原因無法由depth sensors獲取數據;另一方面,images缺乏絕對深度和尺度,而這些由point cloud可以提供。

如何結合image和point cloud是關鍵。一種直觀的方式是將原始RGB值附加到點雲上,通過投影可以得到point-pixel的一一對應。然而,由於3D點太稀疏了,這樣做會丟失image空間的稠密特性。基於此,涌現了一些較爲高級的方式來融合2D和3D數據。一類方法藉助成熟的2D detectors來提供frustum point clouds,能夠極大減少進行3D包圍盒估計的3D檢索空間。然而這種層疊式設計給出的初始proposals沒有考慮3D信息,如果2D detectors檢測不出物體,那麼不會進行後續的3D detection。另外一類方法採用3D爲主的方式,將從2D images中抽取的ConvNet特徵concatenate到3D voxels或者points上,之後再生成候選以及迴歸3d bboxes。然而,這類方法沒有直接基於2D image進行定位,不能爲3D detection提供有效的guidance。

3. 方法概述

該論文提出了ImVoteNet,基於VoteNet使用一種聯合的2D-3D投票框架進行3D檢測。算法利用了成熟的2D detectors,也保留了從完整的點雲進行推斷物體的能力,並且是避免了各自的缺陷。

設計算法時主要考慮的是如何有效利用2D image中的幾何、語義及顏色信息。其中,幾何信息:給定2D BBox,可以獲取2D votes,如圖1,也即從當前像素指向物體中心像素,之後結合相機內參和像素的深度值,將2D votes提升到3D,產生僞3D Votes,進而附加到3D點上進行生成後續的proposals;語義信息:one-hot向量給出物體類別;顏色信息:三維的RGB信息。這些從images獲取到的所有features,將會concatenate到由pointnet++獲得的3D seed point featurs上。
在這裏插入圖片描述
圖1:使用室內場景的image和point cloud共同進行投票。2D vote將物體3D中心的搜索空間簡化爲一條射線。

基於聯合後的features,仿照VoteNet框架生成3D Hough Votes,再生成最後的3D bboxes。由於seed features包含了2D和3D信息,因此在本質上攜帶了更多的信息來回歸遮擋或者點數目少的物體,而且在處理幾何近似物體時更爲有效。

另外,作者還發現,進行融合2D和3D信息時,必須很小心地平衡兩者,以避免單源信息佔主導。因此作者引入了一個使用梯度混合的multi-towered網絡結構,確保能夠最大化地利用2D和3Dfeatures。在測試時,只有主要的tower作用於聯合的2D-3D特徵,能夠最小化在效率上的犧牲。

算法的整體流程如圖2所示:
在這裏插入圖片描述
圖2:ImVoteNet算法的3D檢測流程。給定RGB-D輸入,算法包含兩個分支,一個分支進行2D detection,一個分支進行point cloud的feature抽取。之後,將image中抽取的geometric,semantic以及texture cues提升到3D,附加於seed point features。聯合後的seed points生成指向3D物體中心的投票,進而估計3D BBoxes。爲了使多模態融合更爲有效,作者使用了另外2個towers分別輸入圖像特徵和點雲特徵進行投票和box的迴歸。

後面章節進行如下介紹:3.1介紹VoteNet,3.2介紹從2D檢測獲取的image votes,3.3介紹特徵融合以及multi-tower訓練。4介紹實驗,其中4.14.2介紹和當前方法的對比,包括精度以及圖示結果,4.3介紹ablation study,4.4介紹處理sparse point cloud時的情況。最後5對全文進行總結。

3.1 VoteNet簡介

對應論文爲《Deep Hough Voting for 3D Object Detection in Point Clouds (VoteNet)》,代碼開源。受通用Hough變換的啓發,作者提出了一種基於深度學習進行3D檢測的投票框架,其主要框架如圖3,也就是圖2的下半部分。VoteNet在室內數據集SUN RGB-D上達到了SOTA,但沒有利用圖像信息。
在這裏插入圖片描述
圖3:VoteNet結構展示:給定一個具有N個點(包含座標XYZ)的點雲作爲輸入,使用Backbone網絡(PointNet++)進行下采樣,並且對每一個點學習深度特徵,得到M個點,每個點具有(3+C)維特徵;這M個點作爲種子點;通過一個投票模塊,每一個種子點都獨自產生一個投票點,得到新的M個點,每個點具有新的(3+C)維特徵;之後,這M個點被聚類成K個類別,然後通過一個聚合模塊產生K個建議框;最後,通過3D的NMS(非極大值抑制)得到最終的K’個3D包圍盒。

3.2 從2D檢測獲取的Image Votes

作者根據2D detectors產生的一些candidate boxes產生image votes,一個image vote是一個向量,由當前圖像像素位置指向2D BBox的中心,如圖1所示。這裏默認的是,由相機系中心經過2D bbox中心的射線,一定經過物體3D BBox的中心。除了image vote,每一個像素還會額外增加semantic cues和texture cues,最終具有F’維特徵,如圖2所示。

作者採用了現成的2D detector(Faster R-CNN),在RGB-D數據集的RGB通道上訓練。檢測器能夠產生M個最有可能的2D bboxes,以及每個bbox對應的class。每一個被檢測到的bbox內部的像素都被賦予一個vote,指向bbox的中心。如果一個像素屬於多個bboxes,那麼該像素就被賦予多個votes(其對應的3D點被複制)。在任何bbox以外的像素點置爲0。下面詳細介紹image vote包含的geometric,semantic以及texture cues。

a. Geometric cues: 將image votes提升到3D空間

2D votes能夠爲3D物體的定位提供極其有用的幾何線索。給定相機內參矩陣,由相機系中心經過2D bbox中心的射線,經過3D物體的中心。將這個信息附加於3D種子點後,能夠有效將3D物體中心的搜素空間降至一維。
在這裏插入圖片描述
圖4:僞3D投票點圖示。P是物體上的一個3D點,C是未知的物體3D中心點,p和c分別是在圖像平面對應的2D投影點。C’是僞3D投票點,vote向量是PC’

具體如圖4所示,給定3D空間的物體以及2D圖像平面的bbox,使用C代表物體的3D中心點,其對應的2D投影點爲c,使用P代表物體上某一3D點,其對應的2D投影點爲p,如果已知由p到c的vote,那麼可以將3D中心點的搜索空間降至射線OC。因此,我們需要考慮如何將射線信息抽取出來附加給3D seed point。

定義相機系下,P=(x1, y1, z1),圖像平面座標系下,p=(u1, v1), c=(u2, v2) ,我們想要恢復物體的真實中心C=(x2, y2, z2) ,也就是3D點P的vote目標點。由P到C的真值vote如下:

在這裏插入圖片描述
對於2D vote,假定使用簡單的針孔模型,焦距爲f,很容易得到以下變換:

在這裏插入圖片描述
之後,作者假定P點的深度和C點的深度近似一致。這也是合理的,如果物體距離相機沒有那麼近,那麼物體上一點和物體中心點的深度應該是接近的。之後,給定z1≈z2,可以得到如下形式:
在這裏插入圖片描述
這也被稱爲僞3D vote,因爲C’位於射線OC上,也是C的近似。這個僞3D vote提供了3D中心點相對於點P的相對位置。然而,PC’ 並不準確,直接將其作爲geometric cues附加到3D seed point上不合適,因此,需要補償由假定深度z1 ≈ z2帶來的誤差,於是,作者將OC射線的方向添加至PC’。下面介紹如何計算OC的方向。

沿着X軸或者Y軸方向的誤差是由深度近似帶來的,根據圖4經過比例約束,可以得到如下:
在這裏插入圖片描述
因此,如果我們給出射線OC的方向,也即得到了(x2/z2, y2/z2),那麼式4中的左邊就已知了,網絡只需要估計深度差異∆z = z2 −z1。但由於我們不知道射線OC的方向,可以用OC’的方向代替,如下:
在這裏插入圖片描述
最後,經過歸一化並且聯合僞vote(式3),最終的image的geometric特徵如式6,共包含5維,前兩維值加上三個角度。
在這裏插入圖片描述
然而,式6沒有考慮到相機的外參,SUN RGB-D數據集中的數據都包含外參矩陣,能夠進行重力方向校正,使場景的重力軸和相機系y軸是平行,進而作爲輸入數據進行3D檢測。因此,需要對僞3D vote進行變換。

在這裏插入圖片描述
圖5:考慮外參的image vote。這裏分別給出點P和點C在相機座標系和豎直座標系下的座標(OY與重力方向平行)。其中PC是真值3D vote,PC’ 是根據式6計算的僞3D vote,而PC’’ 是最終進行特徵融合時使用的變換後的僞3D vote。

圖5展示了變換過程,由於輸入的點雲是豎直座標系,點雲深度神經網絡只能估計出P和C在Zupright方向上的深度偏差,而不能估計出沿着相機座標系Zcamera軸方向的偏差(由於網絡不知道座標系間的變換角度)。因此,需要計算一個新的僞3D vote,也即PC’’,其中C’'在射線OC上,PC’’ 垂直於OZupright。首先將PC’ 變換到PC’’,令變換到upright座標系後的P和C’座標分別爲P=(xp, yp, zp),C’=(xc’, yc’, zc’),根據比例關係,可以得到新的僞3D vote的目標點爲式8(第二維分母應是zc’)。

在這裏插入圖片描述

b. semantic cues

在geometric features中,只有利用了2D bboxes的空間關係,而RGB image提供的語義信息沒有被使用。這個信息可以作爲從3D點雲中學習信息的補充,也能夠輔助區分幾何相似的不同類物體。基於此,作者也將這個語義信息提供給3D seed points,如果一個3D seed point的2D投影點位於某一個2D bbox內,那麼將該2D bbox代表的區域語義特徵賦予該3D點。如果一個3D seed point落在N個2D bbox內,那麼複製N-1個點(小於閾值K)。如果一個3D seed point的投影點不落在任何一個2D bbox,那麼傳遞一個全0的特徵向量。

這裏作者提出區域語義特徵不限於複雜的深度學習特徵,僅僅使用一個one-hot class vector足夠包含在3D空間區分物體所需要的語義信息。使用one-hot vector不僅能夠提供一個輕量的輸入(該論文中僅爲10維的向量),而且普適於通用的2D detectors(僅需要最後的分類得分)。因此,該論文使用了這種語義表示。

c. texture cues

Image的每個像素都具有顏色,這些低層次信息可以被利用,輔助3D檢測。利用方式也很簡單,每一個3D seed point都投影到2D空間,尋找最近像素點對應的RGB顏色,附加到該seed point的feature vector中。這裏使用原始的RGB值,同樣也帶來了輕量級的輸入,而且與2D networks無關。實驗結果也驗證了,儘管使用瞭如此簡單的semantic cues和texture cues,和僅使用geometric cues的VoteNet相比,性能也得到了極大提升。

3.3 特徵融合以及Multi-tower訓練

如圖2所示,基於image得到的image votes具有KxF’維,基於point cloud得到的seed points是KxF維,再加上3D座標,共同構成Kx(3+F+F’)維特徵,可以按照VoteNet框架(圖3)產生K個vote points,再通過增強迴歸出3D BBox。然而,需要格外考慮如何優化網絡結構,才能最大化多源信息。

在論文《 What makes training multi-modal networks hard?》中提到,如果缺乏一種精細的策略,多模態訓練會導致效果下降,反而不如單模態訓練。這是由於不同模態解決任務時會有不同的學習率,一些特定的features可能會主導整個學習過程,導致過擬合。在該論文中,作者使用了上述論文提出的梯度混合策略,賦予不同模態towers的梯度以不同的權重,通過加權損失函數來實現。

該論文的multi-tower實現如圖2所示,包含三個towers,分別對應三種特徵集合:只包含point cloud的feature,只包含image的feature,以及融合的feature。每一個tower都具有相同的檢測3D物體的任務,但是他們每個都具有各自的3D投票和3D BBox迴歸的參數,也具有各自的losses。最終的訓練loss是這三者檢測loss的加權,如式7。

在這裏插入圖片描述
在圖像tower中,僅使用image features不能定位3D物體,因此作者使用了3D點的幾何信息以及相機內參來產生僞3D votes,這也是對於真值3D votes的較好近似。最終結合這個geometric cues,以及semantic cues和texture cues,能夠定位3D空間的物體。

需要注意的是,雖然這種multi-tower結構帶來了額外的參數,但是在推斷時,不需要計算point cloud only tower和image only tower,因此計算開銷並不大。

4. 實驗

4.1 與當前方法對比
a. 基準數據集:

使用SUN RGB-D數據集,包含室內場景單視角下的~10K張RGB-D圖像,其中~5K用於訓練,每一個圖像都標記了完整帶朝向的(amodal oriented)3D bboxes,統共有37個類別。爲方便對比,選擇了10種最常用的類別進行模型訓練和結果對比。爲了提供point cloud network的輸入,將depth images依據相機內參和用於重力方向校正的外參得到最終的point cloud,其中depth是和RGB對齊的。

b. 與相關工作對比

作者將ImVoteNet與之前的多項工作相比較。其中,層次化結合2D和3D的方法有 2Ddriven, PointFusion和F-PointNet,都依賴2D detectors來產生3D的proposals。Deep Sliding Shapes設計了一種3D空間的,類似FasterR-CNN風格的3D CNN network來產生3D proposals,並在其後結合3D和2D RoI特徵估計3D box和識別物體。COG是一種利用類似3D HoG的特徵進行滑動形狀的檢測器。

由於之前的SOTA(VoteNet)僅使用幾何信息,因此作者通過引入額外的image features擴展VoteNet,增加了兩個更強的baselines。第一個baseline只添加了RGB顏色信息,作爲一個三維向量附加給3D seed points。第二個baseline增加了one-hot semantic vector,也添加到在2D box對應視錐體空間的3D seed point上。這兩個baseline也可以看作是ablation versions。

和以上算法的定量對比結果如表1所示。
在這裏插入圖片描述
表1 在SUN RGB-D v1驗證集上的3D物體檢測結果。評估度量使用3D IoU=0.25時的平均精度。其中COG和2D-driven使用房間的layout context來提升效果。

表1展示了每一類物體的3D檢測結果,可以看出ImVoteNet比之前的所有方法都要好一大截,而且比之前的SOTA VoteNet提高了5.7 mAP,這說明了將2D image votes提升到3D的有效性。ImVoteNet幾乎在所有類別上都得到了更好的結果,而且在經常遮擋的類別如bookshelves上提升了12.5 AP,在幾何相似的類別上如dressers提升了11.6 AP,如nightstands提升了7.7 AP。和基於VoteNet的兩個變種相比,ImVoteNet也具有明顯的優勢,而且可以看出直接將RGB features添加到point features會得到更差的效果,或許是由於過擬合。增加用one-hot vector表示的區域特徵能夠帶來提升,但提升非常有限。

4.2 定性結果與討論

在這裏插入圖片描述
圖6 定性結果展示圖像信息的作用。第一行:bookshelf能夠被檢出,得益於2D detectors提供的線索;第二行:黑色的沙發幾乎沒有點,但由於2D信息的引入,也能夠被檢測出;第三行:由於引入了2d 位置和語義信息,黑色的desk和chair都能夠被檢測出,而其中一些真值都沒有標出。

圖6中給出了ImVoteNet和VoteNet的圖示對比結果,展示了image信息如何幫助了3D檢測。第一行例子展示了2D物體的localization和semantic帶來的幫助,其中雜亂環境下的bookshelf沒有被VoteNet檢測出,而ImVoteNet就具有足夠的置信度確保被檢測出。另外image semantics能夠輔助網絡避免False Positive的chair(coffee table和candles對VoteNet帶來了干擾);第二行例子展示了images如何補償了depth sensor的缺陷。由於黑色沙發的顏色和材質,幾乎沒有採集到點,VoteNet沒有檢測出sofa,而ImVoteNet則成功將其檢測出來;第三行例子展示了遠處被檢測出的物體,而這些物體在真值中都沒有被標出,說明了結合image cues能夠突破3D檢測性能的限制。

4.3 算法結構分析實驗(Ablation Study)

這裏驗證了4個模塊,分別是geometric cues,semantic cues,texture cues以及gradient blending training對整個算法模型的影響,具體結果如表2所示。對於geometric cues,可以看到不使用任何geometric cues會帶來2.2的精度損失,不使用射線的3個角度會帶來1.2的精度損失,說明射線方向還是非常重要的。對於semantic cues,可以看出儘管使用10維的one-hot class vector,相比於其他高維特徵但仍然取得了最好的結果。對於texture cues,也使用最簡單的原始RGB值,比其他複雜的逐像素的features相比仍然效果最好。
在這裏插入圖片描述
表2:針對2d cues的ablation study。

對於gradient blending training,不同tower的權重影響整體梯度融合訓練的效果。作者採用了四種不同的混合模式,如表3所示,分別得到了不同的精度。這裏作者提到僅僅使用image tower,就能夠比表1中很多之前的方法精度要高,展示了ImVoteNet框架的有效性。
在這裏插入圖片描述
表3:針對gradient blending training的分析。

4.4 稀疏點雲檢測結果

由深度圖得到的點雲非常稠密,通常包含10k~100k的點,然而很多情況下只能得到稀疏的點雲,例如使用vSLAM或者SFM重建得到的點雲。這裏分析了ImVoteNet在處理sparse點雲時的性能。這裏對由深度圖得到的點雲,使用兩種方式進行下采樣,一種均勻隨機下采樣,一種提取2D image ORB特徵點對應的3D點。在表4中給出了不同點雲輸入情況的結果,可以看出隨着點雲數目的減少精度迅速下降,也可以看出增加image cues能夠極大提升效果,這在點雲數目少時更爲明顯。另外,由於ORB特徵點對應的3D點在空間分佈不均勻導致結果非常差,如圖7所示。
在這裏插入圖片描述
表4:針對sparse point cloud情況的分析。
在這裏插入圖片描述
在這裏插入圖片描述
圖7: 不同數目點雲在空間中的分佈情況。

5. 總結

這篇文章探索瞭如何使用image信息輔助基於voting的3D檢測框架。之前的VoteNet依靠voting機制有效增強了點雲中的幾何信息。這篇文章展示了ImVoteNet如何使用額外的圖像,提供geometric,semantic和texture信息於3D voting的過程,詳細介紹瞭如何將2D的geometric信息提升到3D。通過使用基於梯度混合的多模態的訓練方法,ImVoteNet極大提升了處理稀疏或不友好分佈點雲的3D檢測性能。

本文中所有圖片均引自改論文。本解讀只講述核心觀點,如需深入瞭解,可閱讀原始論文。如有問題,請隨時交流,如有錯誤,請隨時指正。

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