值得收藏!基於光學雷達數據的深度學習目標檢測方法大合集(下)
- 2019 年 10 月 7 日
- 筆記
來源 | 轉載自知乎專欄自動駕駛的挑戰和發展
【導讀】在近日發布的《值得收藏!基於光學雷達數據的深度學習目標檢測方法大合集(上)》一文中,作者介紹了一部分各大公司和機構基於光學雷達的目標檢測所做的工作,本文是補充的第二部分。
繼續介紹一些工作。沒想到,這個研究方向很熱。
「FVNet: 3D Front-View Proposal Generation for Real-Time Object Detection from Point Cloud」
這是一個稱為FVNet的框架,從點雲生成3D前視圖提議和目標檢測。它包括兩步:生成前視圖提議和估計3D邊框參數。
首先將點雲投影到圓柱面上以生成保留豐富資訊的前視特徵圖,而不是從攝像機影像或鳥瞰圖中生成提議。然後,引入提議生成網路(proposal generation network),從生成的圖中預測3D區域提議,並進一步從整個點雲中提取出感興趣的目標。最後提出了另一個網路,用於從提取出的目標點中提取點特徵,並在規範坐標中回歸最終的3D邊框參數。該框架實現了每點雲樣本處理時間12ms的實時性能。
如圖(a)FVNet的概述。由兩個子網組成:(b)用於生成3D區域提議的提議生成網路(PG-Net)和用於估計3D邊框參數的參數估計網路(PE-Net)。

如圖是PG-Net架構。頂部是主幹網,底部分別顯示殘餘塊、卷積塊和上取樣塊的細節。

如圖顯示一個3D邊框及其相應的圓柱片段。左:具有維度先驗(Pw,Ph)、位置預測(bx,by)和截斷距離預測(r1,r2)的3D邊框。右:3D空間中的相應圓柱片段,它通過截取具有兩個徑向距離r1和r2的平截頭( frustum)生成。

形成圓柱投影的公式是:

「Part-A^2 Net: 3D Part-Aware and Aggregation Neural Network for Object Detection from Point Cloud」
本文提出從點雲中進行三維物體檢測的部件-覺察(part-aware)和聚合神經網路(Part-A^2 Net)。整個框架由部件-覺察階段和部件聚合階段兩個組成。
首先,部件覺察階段學慣用3D真實(GT)框導出的免費監督同時預測粗略3D提議和準確目標內(intra-object)部件位置。通過設計的RoI-覺察(-aware)點雲池化模組對相同提議中預測的目標內(intra-object)部件位置進行分組,從而實現3D提議特徵編碼的有效表示。
然後,部件聚合階段學習重新對邊框進行評分並基於池化部件位置來細化邊框位置。
下圖所示,即使當目標被部分遮擋時,所提出的部件-覺察和聚合網路也可以魯棒地預測目標內部件位置和分割掩碼。這樣的部件位置可以輔助更準確的3D目標檢測。

下圖是用於3D目標檢測的部件-覺察(part-aware)和聚合神經網路(Part-A^2 Net)總體框架。它包括兩個階段:(a)第一個部分,部件-覺察階段準確地估計目標內部件位置,並通過將原始點雲饋送到設計的骨幹網路來生成3D提議。(b)第二部分,聚合階段進行提議的RoI-覺察點雲池化操作對每個3D提議的部件資訊進行分組,然後利用部件聚合網路根據部件特徵和資訊對邊框進行評分和細化位置。

下面介紹稀疏上取樣和特徵細化塊。該模組在基於稀疏卷積的UNet骨幹解碼器中採用。橫向特徵和底部特徵首先通過稀疏卷積融合和變換。然後通過稀疏逆卷積對融合特徵進行上取樣。

再說RoI-覺察點雲特徵池化圖。由於上述BEV圖中顯示的模糊性,無法使用先前的點雲池化方法恢復原始邊框形狀。提出的RoI-覺察點雲池化方法可以通過保持空體素來編碼邊框形狀,這個只需要跟著稀疏卷積即可。

如下圖是一些結果展示:

「Voxel-FPN: multi-scale voxel feature aggregation in 3D object detection from point clouds」
點雲數據中的目標檢測是電腦視覺系統中的關鍵組件之一,尤其是自動駕駛場景。Voxel-FPN,是一種單步3D目標探測器,僅利用LIDAR感測器的原始數據。
核心框架包括編碼器網路和相應的解碼器,後跟區域提議網路。編碼器以自下而上的方式提取多尺度體素資訊,而解碼器以自上而下的方式融合來自不同尺度的多個特徵圖,如下所示。

下圖是VFE框架:體素特徵提取。

這是RPN-FPN框架圖:

如圖是可視化汽車檢測結果:綠色立方體表示真實3D框,紅色表示檢測結果。

「STD: Sparse-to-Dense 3D Object Detector for Point Cloud 」
本文提出了一種兩步3D目標檢測框架,稱為從稀疏到密集的3D目標探測器(STD)。第一步是自下而上的提議生成網路,使用原始點雲作為輸入,通過使用球形錨點(spherical anchor)為每個點撒種來生成準確的提議。實現了高召回率,計算量更少。
然後,應用PointsPool將其內部點特徵從稀疏表達轉換為緊湊表示,生成提議特徵,從而節省更多的計算時間。
在第二步的邊框預測中,實現了並行的交叉聯合(IoU)分支,提高對定位精度的覺察,從而進一步提高性能。
下面是包括三個不同部分的框架示意圖。第一部分是提議生成模組(proposal generation module,PGM),用於從人工基於點的球形錨點生成準確的提議。第二部分是PointsPool層,用於將提議特徵從稀疏表達轉換為緊湊表示。最後一個是邊框預測網路,對提案進行分類和回歸,並選擇高品質的預測。

接著說提議生成模組的網路。(a)3D分割網路(基於PointNet ++),將原始點雲(x,y,z,r)作為輸入,並通過堆疊集合抽象(set abstraction,SA)層和特徵傳播(feature propagation,FP)模組為每個點生成語義分割分以及全局上下文特徵。(b)提議生成網路(基於PointNet)。它將錨點內點的歸一化坐標和語義特徵作為輸入,產生分類和回歸預測。

下圖是可視化的KITTI測試結果。汽車、行人和騎自行車者分別以黃色、紅色和綠色突出顯示。每個影像的上行是投影到RGB影像上的3D對象檢測結果。另一個是LiDAR階段的結果。

「Fast Point RCNN」
這個騰訊的工作是為基於點雲的三維目標檢測提供統一、高效和有效的框架。這種兩步法同時利用體素表示和原始點雲數據來利用各自的優勢。
第一步中以體素表示為輸入的網路僅由輕卷積運算組成,產生少量高品質的初始預測。初始預測中每個點的坐標和索引卷積特徵(indexed convolutional feature)與注意機制有效融合,保留了準確的定位和上下文資訊。
第二步利用其融合特徵在內部點上工作,以進一步細化預測。
如圖給出兩步法框架概述。在第一步,將點雲體素化並將它們饋送到VoxelRPN產生少量初始預測。然後通過融合VoxelRPN的內部點坐標和上下文特徵為每個預測生成框特徵。邊框特徵被送到RefinerNet進行進一步改進。

假設點雲的感興趣區域是大小為(L,W,H)的長方體,並且每個體素大小(vl,vw,vh),3D空間被劃分為大小(L/ vl,W/ vw,V/ vh)的3D體素網格。
下圖是VoxelRPN的網路結構。圖中使用的層格式如下(內核大小)(通道)/(步幅),即(kx,ky,kz)(chn)/(sx,sy,sz)。除非另有說明,否則默認步幅為1。

下圖是RefinerNet架構:

而這個是邊框的經典化,其中數字表示RefinerNet中角點預測的順序。

給個結果:

「StarNet: Targeted Computation for Object Detection in Point Clouds」
這是Google的工作。提出一個專門為單步和兩步法的點雲數據混合(blending)的目標檢測系統。觀察到點雲的目標與傳統的相機影像截然不同:目標稀疏且位置變化很大,但沒有展示出在單個相機視角中觀察到的尺度失真。這兩個觀察現象表明,簡單且廉價的數據驅動目標提議可以使空間覆蓋最大化,或與觀察到的點雲數據密度相匹配。這種識別與局部非卷積的基於點網路相結合,允許為點雲建立目標探測器,該檢測器可以僅訓練一次,但適應不同的計算設置 – 針對不同的預測優先順序或空間區域。在KITTI檢測數據集以及大規模Waymo Open Dataset上,他們展示了這種靈活性和有針對性的檢測策略。StarNet如圖結構:

如圖是StarNet點特徵器(point featurizer)。(a)StarNet塊將一組點作為輸入,其中每個點都有一個相關的特徵向量。每個塊首先計算點雲的聚合統計數據(最大值)。接下來,將全局統計數據連接回每個點特徵。最後,應用兩個全連接層,每個層由BN、線性投影和ReLU激活組成。(b)StarNet點特徵器(point featurizer)堆疊多個StarNet塊,並使用平均聚合(mean aggregation)讀出每個塊輸出。讀數連接在一起形成點雲特徵(featurization)。

注意看演算法偽程式碼:

「Class-balanced Grouping and Sampling for Point Cloud 3D Object Detection」
本文介紹了一個贏得自動駕駛研討會(WAD,CVPR 2019)中nuScenes 3D檢測挑戰賽的冠軍方法。通常,利用稀疏3D卷積來提取豐富的語義特徵,然後將其饋送到類平衡(class-balanced)的多頭網路執行3D目標檢測。為了處理自動駕駛場景中固有的嚴重類別不平衡問題,設計了一種類平衡的取樣和增強策略,以生成更平衡的數據分布。
此外,提出了一個平衡的分組頭,以提高具有相似形狀的類別性能。如圖是其網路架構。3D特徵提取器由子流形(submanifold)和常規3D稀疏卷積組成。3D特徵提取器的輸出具有16×縮減比,其沿著輸出軸扁平化並且饋送到隨後的區域提議網路(RPN)生成8×特徵圖,隨後是多組頭部網路以生成最終預測。註:頭部的組數是根據分組規範來設置的。

如下是驗證分開的檢測結果示例。GT注釋為綠色,檢測結果為藍色。每個點雲鳥視圖影像頂部的標記是其對應的樣本數據標記。

「Deep Hough Voting for 3D Object Detection in Point Clouds」
當前的3D目標檢測方法受2D檢測器的嚴重影響。為了利用2D檢測器的架構,經常將3D點雲轉換為常規網格(即,到體素網格或鳥瞰影像),或者依賴於2D
影像的檢測來提出3D框。很少有人嘗試直接檢測點雲中的目標。
這項工作回到第一個原則來構建點雲數據的3D檢測流程圖,並儘可能通用化。然而,由於數據的稀疏性 – 來自3D空間中的2D流形的樣本 – 當從場景點直接預測邊框參數時,面臨一個主要挑戰:3D目標質心可能遠離任何錶面點,因此難以準確地回歸一步到位。
為了應對這一挑戰,提出了VoteNet,一種基於深度點集網路和Hough投票(voting)協同工作的端到端3D目標檢測網路。VoteNet使用純粹的幾何資訊而不依賴於彩色影像。
注意該方法提供了開源程式碼:github.com/ facebookresearch/votenet。
如下圖所示即具有深度Hough投票模型的點雲三維目標檢測。給定3D場景的點雲,VoteNet投票到目標中心,然後分組並聚合投票以預測3D邊框和目標的語義類。

下圖是VoteNet架構在點雲3D對象檢測示意圖。給定具有XYZ坐標的N個點的輸入點雲,一個骨幹網路(PointNet++層實現)亞取樣並且學習點深度特徵並輸出M個點子集,但被C維度特徵擴展。
該點子集被視為種子點。每個種子通過投票模組獨立地產生投票。然後,將投票分組為集群(clusters )並由提議模組處理以生成最終提議。分類和非最大抑制(NMS)處理的提議成為最終的3D 邊框輸出。

下圖解釋投票如何有助於增加檢測上下文資訊。生成好的邊框(BoxNet)或好的投票(VoteNet)的種子點反過來生成好邊框,就疊加在代表性的ScanNet數據場景上(藍色)。由於投票步驟有效地增加了上下文,VoteNet展示了更密集的場景覆蓋面,因此增加了準確檢測的可能性。

大家可以看出來,一些光學雷達點雲的3D目標檢測器和2-D目標檢測器有相似之處,也分單步法和兩步法,也有區域提議網路(RPN),特徵提取的設計上自由度更大,可以在投影(多是鳥瞰視圖)影像,也可以在3-D體素空間,甚至直接點雲空間,並可能設計2-D投影和3-D之間的轉換通道提供某種特徵聚合機制。
(*本文為AI科技大本營轉載文章,轉載請聯繫作者)