車輛3D檢測:Deep MANTA論文閱讀筆記

一、研究背景及思路:

在2D圖像物體檢測任務中,RCNN、Fast RCNN、Faster RCNN以及剛發布的mask-RCNN等演算法,對於單張圖像物體檢測均取得了較好的效果,對自動駕駛場景分析有著重要的作用,但是對於3D真實世界場景依然描述不夠。

在自動駕駛中,除了能夠檢測車輛、行人、障礙物以外,對於其物體速度、方向的檢測與定位也是非常重要的。在這篇論文中,作者實現了僅通過單張圖像進行:

(1)精確的車輛區域檢測;(2)車輛部件(如車輪、車燈、車頂等)定位;(3)車輛部件可見性檢測(車輛部件在圖像中是否可見);(4)車輛3D模板匹配及3D定位。

為了實現上述多重任務,作者充分利用了車輛幾何特徵,將幾何特徵與語義特徵(卷積神經網路中多層次特徵)進行結合,下面將對從各方面進行解析:

二、演算法流程及各環節基本原理:

下圖是論文的流程示意圖:

Phase

I : Deep MANTA Network

1、各符號含義解析:

論文第一個階段是Deep

MANTA Network,目標輸出是:B、S、V、T。由於這篇論文採用了創新的研究思路,因此,有較多關於自定義變數的解釋,如果不清晰界定各變數代表的物理含義,則無法理解網路的前後因果,所以,第一步,應該把作者對於相關符號的定義理解清楚。

(1)B :B 是box的首字母,表示物體邊界框,在論文中有兩種表示:2D物體區域表示、3D物體區域表示。

對於2D車輛邊界框,使用四個變數進行表示:中心位置坐標(cx,cy),及邊界框寬高(w,h),與Faster RCNN等物體檢測方法定義邊界框方式一致;

對於3D車輛邊界框,使用五個變數進行表示:車輛中心位置3D坐標(cx,cy,cz),車輛方向θ,車輛實際長寬高t = (w,h,l)

(2)S :S 表示part coordinates,即物體關鍵部位(幾何節點)的坐標,汽車的各部件節點如下圖紅色節點圖所示:

我們可以通過這個節點圖較為順利的識別出車輛的基本形狀與大小,能夠較好地反映車輛信息

同上,S也有兩種形式,2D與3D,分別描述車輛關鍵部位在2D圖像與3D真實坐標系中的坐標位置

(3)V :V 表示車輛各部件的可見性,這裡作者定義了4 classes of visibility,分別是:

a. 可見:visible if

the part is observed in the

image

b.

被其他物體遮擋:occluded if the part is occluded by another object

c.

被自身遮擋:self-occluded if the part is occluded by the vehicle

d. 截斷:truncated

if the part is out of the image

我們可有效利用V,確定攝像機拍攝位置及車輛的3D坐標,因為只有在特定的位置觀測,才能與V相符合。

(4)T:T表示模板相似性向量,3D

template similarity vector,用以衡量圖像中車輛與每個車輛模板的相似性,用rm = (rx, ry,

rz)表示,分別對應著三個坐標軸對應的縮放因子。

上圖第一行是車輛3D model,第二行是3D

template,第三行是3D shape

2、Level 1 階段 : region proposal network

首先,輸入單張RGB圖像,經過卷積層,得到Feature

Maps,這個Feature Maps在Level 1、Level 2、Level 3階段中共享

在Level 1階段,將Feature Maps送入卷積層+RPN(使用Faster-RCNN論文中的方法),可生成系列物體區域坐標集,用B1表示,原理與Faster-RCNN方法一致。

2、Level 2 階段: first

refinement

將ROI對應區域的特徵圖,經過ROI Pooling(Fast-Rcnn),生成固定大小的regions,經過兩步卷積(Levell卷積層+level2卷積層),再經過re-fined by offset transformations,生成系列物體區域坐標集,用B2表示。

3、Level 3 階段:

second refinement

重複Level2,生成系列物體區域坐標集,用B3表示。

論文作者分析了採用這種三層網路的原因:(1)克服大的物體大小變化,提供更高的準確度;(2)保持高解析度,用於檢測難以檢測的車輛;

作者原話是:This

procedure differs than Faster-RCNN [33] in that our iterative refinement steps overcome the constraints of large object scale variations and provide

more accurate detection. Furthermore,

in our approach, ROI pooled

regions are extracted on the

first convolution feature maps for keeping high resolution to detect hard vehicles.

4、多任務預測/回歸:Many-task prediction

對於B3中的每一個bounding box,同時輸出其對應的:S,V,T,各符號含義在文章開頭已經介紹。

這個環節比較神奇,作者也沒有進行過多的描述,更是整篇論文的精髓所在。我在最初閱讀論文的時候,無法理解網路為什麼具有這麼強大的功能,能夠同時輸出2D bounding box坐標B、2D 車輛部件坐標S、部件可見性V、車輛模型縮放因子T,那麼它是如何實現的?這裡給出我自己的初步理解,由於我缺乏網路訓練實踐,因此更多的形象感性的理解。

首先,回顧一下在Faster-RCNN中,如何輸出bounding

box的,如何利用卷積層中的特徵,回歸出物體邊界框?

我們都知道,物體邊界框可由其中心點及邊界框高寬唯一確定。那麼,在得到conv feature map的基礎上,對於feature

map中的一個像素點(如上圖左邊紅色方框中藍色中心點),選擇某個anchor boxes(k個anchor boxes),如果我們回歸出該anchor boxes與實際物體邊界框的差別兩框中心點之差,以及兩框形狀之差,具體計算如下圖公式所示),而anchor boxes的中心點坐標(上圖左邊紅色方框中藍色中心點)位置是已知的,我們就能計算出邊界框坐標。

因此,上述「關於如何利用卷積層中的特徵,回歸出物體邊界框」的問題,可以變為「如何利用卷積層中的特徵,回歸出該anchor boxes與實際物體邊界框的差別」,這個問題我個人認為是Faster RCNN論文中的妙筆,這裡我是這樣理解的:

為了一步步理解,我們先假設圖像中車輛邊界框大小固定,即圖像中車輛scale固定。

對於車輛而言,有低層特徵與高層特徵,這裡不妨認為低層特徵如邊緣,高層特徵如車輪、車燈、車窗。在車輛邊界框大小固定的情況下,這些車輛的小零部件與車輛整體的相對位置及距離一般是固定的,如人臉與人體的相對位置,所以這個參數變換是可學習的,能夠根據特徵的位置與種類進行確定。

當檢測框檢測到汽車的所有特徵,256-d的所在特徵層會全部響應,此時回歸值例如(0,0,1,1),表示沒有偏移,大小一致;當檢測框檢測到前車輪(車燈+車輪)特徵(紅色線框內為anchor box所在區域),回歸值例如(-5,-5,3,3),表示應該向左上偏移,放大三倍;

因此,能夠利用卷積層中的特徵,回歸出該anchor boxes與實際物體邊界框的差別。思想感覺與DPM演算法有一點點的聯繫。

4、Deep MANTA Training:

作者將refinement分為三個層次:lin left{ 1,2,3 right} ,需要最小化五個損失函數,分別是:L_{rpn} ,L_{det} ,L_{parts} ,L_{vis} ,L_{temp} ,對於一張輸入圖像,網路聯合最優最小化全局損失函數:L = L^{1} + L^{2} + L^{3},其中:

L_{rpn}與Faster RCNN中的定義一致;L_{det}表示區別車輛與背景以及box回歸的損失,一部分是類別損失,在屬於車輛區域的情況下,加上檢測框位置回歸損失,用位置差(兩框中心點之差,以及兩框形狀之差)進行計算。

還有其他三個損失函數,定義也進行了詳細的描述,這裡只展示截圖:

Phase

II : Deep MANTA Inference

這部分實現了由2D坐標到3D空間確定的轉換,用到了perspective-n-point-problem方面的計算機視覺基礎知識。

參考文獻:

[1] Shaoqing Ren, Kaiming He, Ross B. Girshick, Jian Sun:Faster R-CNN: Towards Real-Time Object Detection with Region

Proposal Networks. NIPS 2015: 91-99

[2] Florian Chabot, Mohamed Chaouch, Jaonary Rabarisoa, Céline Teulière,

Thierry Chateau:Deep

MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis

from monocular image. CVPR 2017


推薦閱讀:

AI為人民服務:視覺缺陷檢測
1.11【OpenCV圖像處理】形態學操作
視覺演算法研發工程師/嵌入式AI全棧(實習/全棧)(20K-40K/月)
Neural Artistic Style
1.15【OpenCV圖像處理】自定義線性濾波

TAG:无人驾驶车 | 计算机视觉 | 图像识别 |