值得收藏!基於光學雷達數據的深度學習目標檢測方法大合集(上)

  • 2019 年 10 月 5 日
  • 筆記

作者 | 黃浴

轉載自知乎專欄自動駕駛的挑戰和發展

【導讀】上周,我們在《光學雷達,馬斯克看不上,卻又無可替代?一文中對自動駕駛中廣泛使用的光學雷達進行了簡單的科普,今天,這篇文章將各大公司和機構基於光學雷達的目標檢測工作進行了列舉和整合。由於文章列舉方法太多,故作者將其分成上下兩部分,本文為第一部分。

「Vehicle Detection from 3D Lidar Using FCN「

是百度早期自動駕駛組在2016年工作。

將全卷積網路技術移植到三維距離掃描數據檢測任務。具體地,根據Velodyne 64E光學雷達的距離數據,將場景設置為車輛檢測任務。在2D點圖呈現數據,並使用單個2D端到端全卷積網路同時預測目標置信度和邊框。通過設計的邊框編碼,使用2D卷積網路也能夠預測完整的3D邊框。

2D點圖的形成通過如下公式:

其中p =(x,y,z)表示3D點,(r,c)表示其投影的2D圖位置。θ和φ表示觀察點時的方位角和仰角。Δθ和Δφ分別是連續光束髮射器之間的平均水平和垂直角解析度。投影點圖類似於圓柱影像。用2-通道數據(d,z)填充2D點圖中的(r,c)元素,其中d =(x ^ 2 + y ^ 2)^ 0.5。

如圖所示:(a)對於每個車輛點p,定義一個以p為中心的特定坐標系;坐標系的x軸(rx)與從Velodyne原點到p(虛線)的光線一致。(b)關於觀察車輛時的旋轉不變性的說明,載體A和B具有相同的外觀。

下圖是FCN結構圖:

FCN結構

目標度圖deconv6a由對應於前景,即位於車輛上的點,以及背景,的2個通道組成。2個通道由softmax標準化表示置信度。

邊框圖的編碼需要一些額外的轉換。

下圖在不同階段生成數據的可視化結果。(a)輸入點圖(d, z),其中 d 通道可視化。(b)FCN中deconv6a輸出口目標度分支輸出的置信度圖。紅色表示更高的置信。(c)對應於預測為正的所有點的邊框候選,即(b)中的高置信度點。(d)非最大抑制後的剩餘邊框。紅點是車輛的基本點供參考。

「VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection」

Apple的工作:為消除對3D點雲的手動特徵工程的需求,提出VoxelNet,一種通用的3D檢測網路,可將特徵提取和邊框預測統一到單步端到端可訓練的深度網路中。

具體而言,VoxelNet將點雲劃分為等間距的3D體素,並通過體素特徵編碼(VFE)層將每個體素內的一組點轉換為統一的特徵表示。

通過這種方式,點雲被編碼為描述性體積表示,然後將其連接到區域建議網路(RPN)以生成檢測。

下面是VFE層的結構:

如圖是RPN的結構:

「Object Detection and Classification in Occupancy Grid Maps using Deep Convolutional Networks」

基於網格圖的環境表示,非常適合感測器融合、自由空間的估計和機器學習方法,主要使用深度CNN檢測和分類目標。

作為CNN的輸入,使用多層網格圖有效地編碼3D距離感測器資訊。

推理輸出的是包含一個帶有相關語義類別的旋轉邊框列表。

如圖所示,將距離感測器測量值轉換為多層網格圖,作為目標檢測和分類網路的輸入。從這些頂視圖網格圖,CNN網路同時推斷旋轉的3D邊框與語義類別。將這些框投影到攝像機影像中進行視覺驗證(不是為了融合演算法)。汽車被描繪成綠色,騎自行車的人是海藍寶石,行人是青色。

以下是獲得佔有網格圖(occupancy grid maps)的預處理。

由於僅在攝像機影像中有標記目標,因此刪除不在攝像機視野中的所有點。

應用地面分割並估計不同的網格單元特徵,得到的多層網格圖的大小為60m×60m,單元格大小為10cm或15cm。如所觀察到的,在大多數情況下地面是平坦的,因此將地平面擬合到代表點集。

然後,使用完整點集或非地面子集來構造包含不同特徵的多層網格圖。

「RT3D: Real-Time 3-D Vehicle Detection in LiDAR Point Cloud for Autonomous Driving」

這是一種實時三維(RT3D)車輛檢測方法,利用純LiDAR點雲來預測車輛的位置、方向和尺寸。

設計的是兩步檢測法,文中應用pre-RoI pooling卷積,將大部分卷積運算移到RoI池之前,只留下一小部分,這樣可以顯著提高計算效率。

姿勢敏感的特徵圖設計特別通過車輛的相對姿勢激活,帶來車輛的位置、方向和尺寸的高回歸精度。

文中聲稱RT3D是第一款在0.09秒內完成檢測的LiDAR 3-D車輛檢測工作。

下圖是RT3D的結構圖:

「BirdNet: a 3D Object Detection Framework from LiDAR information」

這個基於LiDAR的3D物體檢測流水線,需要三個階段:

  • 首先,雷射數據被投射到鳥瞰圖的新單元編碼中。
  • 之後,通過最初設計用於影像處理的卷積神經網路,估計平面目標的位置及其航向。
  • 最後,後處理階段計算面向3D的檢測。

上圖可以看到預處理的ground estimation模組,檢測模組中的RPN。

下圖是一些結果:

「LMNet: Real-time Multiclass Object Detection on CPU using 3D LiDAR」

這是一種優化的單步城市環境目標深度CNN檢測器,不過僅使用點雲數據。

隨著深度的增加,網路結構採用擴散卷積(dilated convolutions)逐漸增加感知場(perceptive field ),這樣將計算時間減少約30%。

輸入包括無組織點雲數據的5個透視表示。網路輸出目標度圖和每個點的邊框偏移值。

在3個軸的每個軸採用反射值、範圍和位置等,有助於改善輸出邊框的位置和方向。

使用桌面GPU的執行時間為50 FPS,英特爾Corei5 CPU的執行時間高達10 FPS。

如圖是點雲資訊編碼:

這個是LMNet的結構圖:

下表是擴散卷積的參數:

「HDNET: Exploit HD Maps for 3D Object Detection」

高清(HD)地圖提供強大的先驗知識,可以提高3D目標探測器的性能和魯棒性。

這是一個從高清地圖中提取幾何和語義特徵的單步目標探測器。

由於地圖可能不是隨時可用,因此地圖預測模組會根據原始LiDAR數據動態地估算地圖。

整個框架以每秒20幀的速度運行。

下圖是幾何和語義高清地圖資訊的鳥瞰圖LiDAR表示:(a)原始LiDAR點雲;(b)結合幾何地面先驗知識;(c)LiDAR點雲的離散化;(d)結合語義道路先驗知識。

下圖左邊是目標檢測架構圖,而右邊是在線地圖估計架構:

「PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 」

CVPR2017發表。

點雲是一種重要的幾何數據結構。由於其不規則的格式,大多數研究人員將這些數據轉換為常規3D體素網格或影像集合。然而,這會使數據不必要地大量增加並導致問題。

本文設計了一種神經網路,它直接消費點雲數據,並且很好地尊重輸入的點置換不變性。網路名為PointNet,為從目標分類、部分分割到場景語義分析等應用程式提供統一的體系結構。

下圖是PointNet架構:分類網路將n個點作為輸入,應用輸入和特徵變換,然後最大池化來聚合點特徵。輸出是k類的類分數。分割網路是分類網路的擴展。它連接每個點數的全局和局部特徵和輸出。

「PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space」

PointNet不會捕獲由度量空間點引入的局部結構,限制了它識別細粒度模式的能力和對複雜場景的泛化能力。在這項工作中,引入了一個分層神經網路PointNet++,將PointNet遞歸地應用於輸入點集的嵌套分區。通過利用度量空間距離,網路能夠通過增加上下文尺度來學習局部特徵。

進一步觀察發現:通常以不同的密度對點集進行取樣,這樣在均勻密度訓練的網路上的性能大大降低,所以提出了集合學習層(set learning layer)以自適應地組合來自多個尺度的特徵。

「IPOD: Intensive Point-based Object Detector for Point Cloud」

這是基於原始點雲的3D對象檢測框架,IPOD。

它為每個點生成目標提議,這是基本單元。採用一種端到端可訓練架構,提議中的所有點特徵從骨幹網路中提取,這種提議特徵用於最終邊框推斷。(註:骨幹網路是PointNet++)

注意,這些特徵包含上下文資訊,而精確的點雲坐標能改善性能。

如下圖是基於點的提議生成的插圖:(a)影像上的語義分割結果。(b)點雲上的預測分割結果。(c)NMS之後正樣本點的基於點提議。

如下是提議特徵生成模組的示意圖。它結合了位置資訊和上下文特徵,用於生成從內部點的質心到目標實例對象的中心偏移。為了使特徵對幾何變換更加魯棒,預測的殘差被添加回位置資訊。

如圖是主幹網路(左)和邊框預測網路(右)的架構圖:

「PIXOR: Real-time 3D Object Detection from Point Clouds」

該方法通過鳥瞰圖(BEV)場景表示更有效地利用3D數據,並提出PIXOR(ORiented 3D object detection from PIXel-wise NN predictions)3D目標檢測方法。這是一種無需提議的單步檢測器,從像素方式的神經網路預測中解碼出面向3D目標估計。

其輸入表示、網路架構和模型優化,專門用於平衡高精度和實時效率。

下圖是PIXOR架構圖:

「DepthCN: Vehicle Detection Using 3D-LIDAR and ConvNet」

這是基於假設生成(HG)和假設驗證(HV)範例的車輛檢測。

輸入到系統的數據是3D-LIDAR獲得的點雲,其被變換為緻密深度圖(DM)。

解決方案首先刪除地面點,然後進行點雲分割。然後,將分割的障礙物(目標假設)投射到DM上。邊框作為車輛假設(在HG步)擬合成分割目標。

邊框用作ConvNet的輸入,分類/驗證為「車輛」類的假設(在HV步)。

如下是DepthCN的演算法流程圖:

如圖是一些結果示意圖。頂部:檢測到的地面點用綠色表示,在攝像機視野之外的LIDAR點以紅色顯示。底部:以2D邊框的形式表示的投影的聚類和HG。右邊:縮放視圖,垂直橙色箭頭表示相應的障礙物。

「SECOND: Sparsely Embedded Convolutional Detection「

這種網路改進稀疏卷積方法,顯著提高了訓練和推理的速度。

它引入一種角度損失的回歸函數來改善方向估計性能,還有一種數據增強方法,可以提高收斂速度和性能。

提出的網路在KITTI 3D對象檢測基準上產生SoA結果,同時保持快速的推理速度。

如圖是演算法流程圖:檢測器將原始點雲作為輸入,轉換為體素特徵和坐標,並應用兩個VFE(體素特徵編碼)層和一個線性層;應用稀疏CNN並且採用RPN生成檢測。

下圖給出更多的演算法細節:稀疏卷積演算法在上圖,GPU規則生成演算法在下圖。

其中Nin表示輸入要素的數量,Nout表示輸出要素的數量。N是聚集的特徵的數量。Rule是規則矩陣,其中Rule [i,:,:]是與卷積內核中的第i個核矩陣相對應的第i個規則。除白色之外的顏色框表示具有稀疏數據的點,而白色框表示空點。

下圖是稀疏中間特徵提取器的結構。黃色框表示稀疏卷積(sparse convolution),白色框表示子流形(submanifold)卷積,紅色框表示稀疏-密集層(sparse-to-dense layer)。該圖的上半部分顯示了稀疏數據的空間維度。

如下是RPN的架構圖:

這是一些在KITTI數據的檢測結果圖:

「YOLO3D: E2E RT 3D Oriented Object Bounding Box Detection from LiDAR Point Cloud」

基於2D透視影像空間中一次性回歸元架構的成功應用,這裡將其擴展為從LiDAR點雲生成定向的3D對象邊框。

這個想法是擴展YOLO v2的損失函數成為一個將偏航角、笛卡爾坐標系的3D框中心和框高度包括在內的直接回歸問題。

這種公式可實現實時性能,對自動駕駛至關重要。

在KITTI,它在Titan X GPU上實現了實時性能(40 fps)。

投射點雲以獲得鳥瞰網格圖。從點雲投影創建兩個網格地圖。第一個要素圖包含最大高度,其中每個網格單元(像素)值表示與該單元關聯的最高點的高度。第二個網格圖表示點的密度。

在YOLO-v2中,使用k-means聚類在真實目標框的寬度和長度上計算錨點。

使用錨點的背後,是找到盒子的先驗,那麼模型可以預測修改。

錨點必須能夠覆蓋數據中可能出現的任何方框。

選擇不使用聚類來計算錨點,而是計算每個目標類別的平均3D框尺寸,並使用這些平均框尺寸作為錨點。

「YOLO4D: A ST Approach for RT Multi-object Detection and Classification from LiDAR Point Clouds」

在YOLO4D,3D LiDAR點雲隨著時間的推移聚合為4D張量; 除了時間維度之外的3D空間維度,基於YOLO v2架構,被饋送到一次全卷積檢測器。YOLO3D與卷積LSTM一起擴展。用於時間特徵聚合。

除了長度(L),寬度(W),高度(H)和方向(偏航)之外,輸出還是定向的3D目標邊框資訊,以及目標類和置信度分數。其中兩種不同結合時間維度的技術被評估:遞歸( recurrence )和幀堆疊(frame stacking)。

如下圖,左邊是幀堆疊,右邊是卷積LSTM。

「Deconvolutional Networks for Point-Cloud Vehicle Detection and Tracking in Driving Scenarios」

這是一個完整的車輛檢測和跟蹤系統,僅適用於3D光學雷達資訊。

檢測步驟使用CNN,接收由Velodyne HDL-64感測器提供的3D資訊特徵表示作為輸入,並返回其是否屬於車輛的逐點分類。

然後,對分類的點雲幾何處理,生成一個多目標跟蹤系統的觀測值,其通過多個假設擴展卡爾曼濾波器(MH-EKF)實現,主要是估計周圍車輛的位置和速度。

如下圖所示:點雲的編碼表示送入模型,每個點計算其屬於車輛的概率;然後,對分類的點進行聚類,產生可信賴的觀察結果,這些觀察結果被饋送到基於MH-EKF的跟蹤器。

要獲取檢測器一個有用的輸入,通過變換G(·)將3D點雲原始數據投影到一個包含距離和反射資訊的特徵化影像表示中 。

先在3D Velodyne資訊投影基於影像的Kitti軌跡(tracklet),然後在所選點上再次應用變換G(·),這樣獲得用於學習分類任務的真實數據,如下圖所示。

下圖是網路架構圖:該網路僅包含卷積層和去卷積層,每個塊後面是BN和非線性ReLU;前3個塊根據車輛檢測目標進行特徵提取,控制感受野和產生的特徵圖大小;接下來3個反卷積塊擴展了資訊實現逐點分類;在每次去卷積之後,而在應用歸一化和非線性ReLU之前,來自網路下半部的特徵映射被連接(CAT),從而提供更豐富的資訊和更好的表現;在訓練期間,在不同的網路點計算3個損失函數。

下圖顯示了原始輸入點雲、深度探測器輸出、最終跟蹤的車輛以及提交用於評估的RGB投影邊框。

「Fast and Furious: Real Time E2E 3D Detection, Tracking and Motion Forecasting with a Single Convolutional Net」

這是一個深度神經網路,給定3D感測器捕獲的數據,共同推理3D檢測、跟蹤和運動預測。

通過共同推理這些任務,整個方法對於遮擋以及距離稀疏數據更加魯棒。

通過3D世界的鳥瞰圖表示,它在空間和時間上執行3D卷積,這在記憶體和計算方面都非常有效。該方法可以在短短30毫秒內完成所有任務。

如下圖是疊加時間和運動預測數據。綠色:帶3D點的邊框。灰色:沒有3D點的邊框。

如圖展示的是FaF(Fast and Furious)工作,需要多個幀作為輸入,並執行檢測、跟蹤和運動預測。

下圖是時域資訊建模:一個是前融合,另一個是後融合。

下圖是運動預測示意圖:

「PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud 「

PointRCNN是一種深度NN方法,從原始點雲進行3D對象檢測。

整個框架由兩步組成:

第一步為自下而上的3D提議生成;

第二步用在規範化坐標中細化提議以獲得檢測結果。

第1步的子網路,不是從RGB影像生成提議或將點雲投射到鳥瞰圖或體素,而是通過分割點雲直接從點雲中生成少量高品質的3D提議,整個場景分為前景和背景。

第2步的子網路,將每個提議的合併點轉換為規範坐標,學習局部空間特徵,其與在第1步中學習的每個點的全局語義特徵相結合,用於精確的邊框細化和置信度預測。

如下圖:該方法不是從鳥瞰圖和前視圖的融合特徵圖或RGB影像生成提議,而是自下而上的方式直接從原始點雲生成3D提議。

如圖是PointRCNN架構。整個網路由兩部分組成:(a)自下而上的方式從原始點雲生成3D提議。(b)規範坐標下細化3D提議。

「PointPillars: Fast Encoders for Object Detection from Point Clouds「

該方法將點雲編碼為適合檢測流程的格式。採用兩種類型的編碼器:固定編碼器往往速度快但犧牲精度,而從數據中學習的編碼器更準確,但速度更慢。

PointPillars是一種編碼器,它利用PointNets來學習在垂直列,也叫柱子(pillars),組織的點雲的表示。雖然編碼特徵可以與任何標準2D卷積檢測架構一起使用,但運行一種精益下游網路(lean downstream networ)。

儘管只使用了光學雷達,但是完整的檢測管道明顯優於SoA,即使在融合方法中也是如此,對3D和鳥瞰KITTI基準測試中勝出。

它在62Hz下運行時實現了這種檢測性能,更快的版本與105 Hz速度的現有技術相匹配。

如圖是網路概述。網路的組件包括支柱特徵網路(Pillar Feature Network,),骨幹網路(2D CNN)和SSD(Single Shot Detection)檢測頭。原始點雲被轉換為堆疊的柱張量(pillar tensor)和柱索引張量(pillar index tensor)。編碼器使用堆疊柱來學習一組可以發散回CNN的2D偽影像特徵。檢測頭使用骨幹網路的特徵來預測物體的3D邊框。

「Complex-YOLO: An Euler-Region-Proposal for Real-time 3D Object Detection on Point Clouds」

Complex-YOLO,是一個僅用點雲數據的實時3D物體檢測網路。它通過特定的複雜回歸策略擴展YOLOv2網路(這是以前一種用於RGB影像的快速2D標準物體檢測器),估計笛卡爾空間中的多類3D邊框。

提出一個特定的歐拉區域 – 提議網路(Euler-Region- Proposal Network,E-RPN),通過對回歸網路添加虛部和實部,來估計對象的姿態。

該網路最終位於封閉的複數空間中,避免了單角度估計所產生的奇點。E-RPN支援在訓練期間的泛化。

Complex-YOLO是一種非常有效的模型,它直接在基於光學雷達的鳥瞰視角RGB-圖上運行,以估計和定位精確的3D多類邊框。下圖顯示了基於Velodyne HDL64點雲(例如預測目標)的鳥瞰圖。

如圖是Complex-YOLO流水線。這是一個用於在點雲上快速準確地進行3D邊框估計的流水線。RGB-圖被饋送到CNN。

E-RPN網格在最後一個特徵圖上同時運行,並預測每個網格單元五個框。每個框預測由回歸參數t和目標度得分p組成,具有一般概率值p0和n個類別得分p1 … pn。

(*本文為AI科技大本營轉載文章,轉載請聯繫作者)