3D目标检测论文阅读多角度解析
3D目標檢測論文閱讀多角度解析
一.前言
CNN(convolutional neural network)在目標檢測中大放異彩,R-CNN系列,YOLO,SSD各類優秀的方法層出不窮在2D圖像的目標檢測上,不少學術界提出的框架已經投入商用。但是,具體落實到自動駕駛,機器人這類應用場景上時,2D場景下的目標檢測對于3D真是世界的場景描述依然不夠。
目標檢測問題實際上包含了兩個任務:定位和分類。3D目標檢測在定位這一任務上的目標是返回3D bounding boxes,而其需要的信息除了2D的RGB圖像以外,還包含了與之對應的深度信息Depth Map:
RGB-D=普通的RGB三通道彩色圖像+DepthMap
在3D計算機圖像中,Depth Map(深度圖)是包含與試點的場景對象的表面的距離有關的信息的圖像或圖像通道。其中,Depth Map類似于灰度圖像,只是它的每個像素值是傳感器距離物體的實際距離。通常RGB圖像和Depth圖像是配準的,因而像素點之間具有一對一的對應關系。本文以時間為主軸,帶你速覽自2014年依賴的,在RGB-D圖像上進行目標檢測的典型論文。
有一些圖像分割的背景知識也很有意思,簡單列下, 概述下來,主要是五大任務, 六大數據集, 七大牛人組,一個效果評估。
二.基于深度學習的圖像目標檢測歷史介紹
五大圖像處理任務
- 圖像分類
- 分類和定位
- 目標物體檢測
- 語義分割
一下子從框的世界進入了像素點的世界。
- 實例分割
六大圖像數據庫
- PASCAL
Visual Object Classes (VOC) 挑戰
人、車、自行車、公交車、飛機、羊、牛、桌等20大類
- MS
COCO: Microsoft Common Object in Context
80大類, 多目標
- ImageNet
Object Detection: ILSVRC DET 任務
200類別,578,482 圖片
- Oxford-IIIT
Pet Dataset
37 類別,每個類別 200 圖片
- Cityscapes
Dataset
30 類別,25,000 + 真實開車場景圖片
- ADE20K
Dataset
150+ 類別,22,000 + 普通場景圖片
七大牛人組
- Navneet
Dalal 和
Bill Triggs (INRIA)
兩人提出了Histogram of Gradient (HOG) 獲得2015年的
Longuet-Higgins Prize大獎
- Pedro
Felipe Felzenszwalb
和學生Ross Girshick一起發明了DPM,深化了HOG.
- Ross Girshick
Felzenszwalb的高徒, RBG大神、發明了R-CNN、Mask R-CNN。 Ross目前在Facebook人工智能研究院 FAIR。
- Koen
van de Sande
提出Selective Search的大神。
- Jitendra
Malik
去噪模型Perona-Malik擴散和聚類分割里面的歸一化分割Normalized Cut的發明人, RBG大神的博士后導師,鼓勵RBG引入CNN做目標檢測, R-CNN發明人之一。
-
Pietro
Perona去噪模型Perona-Malik擴散的發明人,
李飛飛的博士導師, 2013獲得Longuet-Higgins Prize。
和高徒Piotr Dollar一起提出Fast Feature
Pyramids的神器。他的另外一個高徒Stefano Soatto搞出了 Structure From Motion SFM,視覺運動信息的多幅二維圖像序列估計三維結構的技術。 他弟子Piotr Dollar目前在FAIR。
-
何凱明 ResNet,SPP, Mask-CNN發明人,目前在FAIR。
一個效果評估mAP(mean average precision)
借用了文檔檢索里面的標準,
假設目標物體的預測在所有的圖像中都進行預測, 在每個圖像上計算準確和召回。 但是最后計算每個目標物體的AP的時候,
僅僅選用相關的圖像,進行平均average, 最后計算mAP的時候再求平均mean。 是一個奇怪的名字,卻是一個蠻直觀的評價!
R-CNN系列
R-CNN的橫空出世, 隨后經過一系列改進, 走到了Mask R-CNN和Mask^X R-CNN的神奇境界。
CNN結構上從AlexNet過渡到ResNet, 中間也受到Overfeat和SPPNet的影響深遠!
1, R-CNN的前世
2013年之前, 基本由RBG和他導師的DPM主導, 當然離不開SS和SVM的應用,和后續Box
Regression的修正。
1).
Histogram of Gradient (HOG) 特征
8x8像素框內計算方向梯度直方圖
2).
HOG Pyramid
特征金字塔,對于不同大小的物體進行適應。
3).
HOG特征 -> SVM分類
4).
DPM模型 Deformable Part Model
加組件組合的HOG特征, 組件間計算彈性得分,優化可變形參數。
如果沒有彈性距離,就是BoW (Bag of Word)模型, 問題很大, 位置全部丟失:
n個組件的DPM計算流程
5).
Selective Search 思想
首先, 過分割后基于顏色紋理等相似度合并,
然后,過分割、分層合并、建議區域排序
6).
基于Selective Search + DPM/HoG + SVM的物體識別
7).
AlexNet的圖像分類
2012年AlexNet贏得LSVRC的ImageNet分類競賽。深度CNN結構用來圖像特征提取。
8)bounding-box
regression 框回歸
BBR 在DPM時代就和SVM分類結合,一般直接使用線性回歸,或者和SVR結合。
2, R-CNN的出世
這個工作是RBG在Malik那里讀博士后的產出。
這個工作的影響巨大!
2.1 R-CNN的本質, 用深度CNN網絡取代了HoG/DPM的特征提取!
2.2 R-CNN依賴分類預訓練的特征
2.3 通過bounding-box regression改進效果,對于SS推薦的, 經過SVM分類的結果進行修正。
這樣,我們就得到了最后RNN的框架,我們看到區域推薦、SVM和Bound Box Regression都是成熟的技術的整合:
R-CNN優點:
-
效果比DPM方法大幅度提高
-
開啟了CNN網絡的目標檢測應用
-
引入了BBR和分類結合的思想
-
定義了RoI, 基于推薦區域的思想
R-CNN問題:
不是端到端的模型,依賴SS和SVM!
計算速度相當慢!
對于過大過小的東西,效果很不好。
譬如,對于長凳, 或者眼鏡等等。
3,MR-CNN的改進
Multi-Region的提出, 開始對Box進一步做文章, 相當于對Box進一步做增強,希望改進增強后的效果,主要改善了部分重疊交叉的情況。
但是特征拼接后使得空間變大,再使用SVM處理, 效果和R-CNN基本類似。
MR-CNN改進有限!
4, Overfeat的改進
LeCun的Overfeat是個端到端的模型,直接拋棄了SVM,并且把BBR整合一起使用FCN(Fully-Connected
Net)搞定, 解決了后面一端的問題(取代了SVM和BBR)。
另外, 也直接拋棄了SS,采用CNN上滑動窗口來進行框推薦,搞定前面一端。
然后直接根據滑動窗口的不準確的判斷, 進行Box 回歸(BR)來進行準確定位。
并且在計算上做了三大優化: 第一, 先進行CNN再滑動窗口, 而不是先滑動窗口再進行CNN計算。 把窗口滑動放到CNN之后進行。 避免重復的特征計算。
第二, 多類別并行計算框架, 進一步減少CNN特征計算因為沒有找到特定類別而浪費。
第三, 把FCN直接用CNN網絡取代, 計算量大大減少。怎么做到的呢?
結合上面兩點, 利用每個類別實現一個0-1的CNN網絡, 然后所有類別并行處理。
還做了一大改進, 考慮了多尺度衍生:
Overfeat優點:
1). 端到端的模型
2). 回歸和分類結合的計算模型
3). 首次將區域計算后移, 極大節省計算量, 優化速度
4). 有多尺度考量,試圖優化極大極小目標問題
Overfeat問題:
1). 取消區域推薦, 依賴窗口滑動和BR效果后的推薦效果一般。
2). 定位準確, 但是對于重疊目標物體的情況,效果很差。
5, SPPNet的改進
這個工作是何凱明在孫劍指導下, 微軟的工作。 后來孫劍去了曠視科技, 而何凱明去了Facebook人工智能實驗室FAIR。 前面, 我們提到R-CNN和Overfeat都存在部分多尺度,重疊效果的問題。 某種意義上, 應對了HoG特征, 這樣對于物體來說類似BoW模型, 我們知道DPM里面,是帶有組件空間分布的彈性得分的, 另外也有HoG
Pyramid的思想。 如何把Pyramid思想和空間限制得分加入改善多尺度和重疊的效果呢? MR-CNN里面嘗試了區域增強, Overfeat里面嘗試了多尺度輸入。 但是效果都一般。 這里我們介紹另外一個技術Spatial Pyramid
Matching, SPM。把空間和Pyramid結合的思想。
1). SPM
把BoW修改金字塔Pyramid方式進行空間限制,做特征提取。
2). SPM用在CNN特征之后,R-CNN里面 SVM分類之前。
3). 基于CNN的Pooling技術來實現SPM, 通過不同尺度的Pooling技術很容易就實現了CNN特征的SPM特征。
4). 先特征后區域的處理, 某種意義上取代了多尺度輸入,或者特征增強。
和R-CNN相比做到了先特征后區域, 和Overfeat相比自帶Multi-Scale。
于是SPPNet(Spatial Pyramid
Pooling Net)很空出世!
SPPNet優點:
1). 提取SPP的概念, 把CNN的Pooling用的出神入化, 取代了HoG Pyramid的改進。 對于大小尺度的物體識別有改進。
2). 進一步強調了CNN特征計算前移, 區域處理后移的思想, 極大節省計算量。
SPPNet缺點:
-
依然不是端到端的模型
-
過于注重CNN特征的分離, CNN特征提取沒有聯動調參數!
Fast R-CNN的改進
RBG從后來去了微軟,在微軟了解了何凱明的SPPNet工作。 所以Fast
R-CNN 基本和SPPNet類似, 但是進一步聯動改進!全部打通區域推薦之后到目標識別后一端!而且效果較好!
基于SPPNet, Fast R-CNN做了兩大改進:
1), 簡化SPP成為RoI Pooling, 只用了最細分的SPPNet。 把RoI區域變成了RoI Pooling, 這就是RoI Pooling的思想的來源。 Pyramid上層更粗的特征, 可以依賴FCN進行整合學習。
2), CNN特征網絡聯動調參數!
這樣, Softmax分類誤差和線性回歸誤差疊加的誤差, 可以反傳通過FCN, ROI Pooling和ConvNet層。
Fast R-CNN優點:
1). 吸收了SPPNet和R-CNN的精華,極大的打通并且改進了從區域推薦到目標檢測一端。
2). RoI Pooling技術橫空出世, 極大的發揮了區域計算后移的優勢, 加快了訓練速度。
3). Log 損失和Smooth L1的損失下的FCN、RoI Pooling、ConvNet三層聯動調參數成熟, 并且帶來效果上的提升。
4). 并且應用VGG16,取代AlexNet作為CNN網絡模型
Fast R-CNN缺點:
依然沒有實現端到端的模型,對SS區域推薦依賴嚴重。
Faster R-CNN的改進
SPPNet和Fast R-CNN都面臨著并非端到端模型的困惑, 那么RBG、何凱明和孫劍,
微軟的3位牛人合作開啟了端到端模型的開發。
提出RPN(Region Proposal Net)取代了SS區域推薦。 RPN有點類似Overfeat的ConvNet的滑動窗口, 但是加入了Anchor Box的設計。
在Overfeat的ConvNet上的滑動窗口,
加上Multi-Scale的圖像輸入設計, 編程了帶Anchor Box推薦的區域Pyramid。 這種機制, 某種意義上是帶了先驗的Attention機制。
這樣 RPN的Anchor和Pyramid和定位都可以是參數學習, 例如:9 anchors x 2 scores x width x height。
如果在考慮ROI Pooling對推薦區域的修正作為新的RPN,就會帶來ROI Pooling的迭代:
所以最初, RPN的損失是單獨計算進行參數學習的。
但是后來, RPN的誤差也全部整合處理了, 一個端到端的模型誕生,并且具有較好的區域推薦、特征Pyramid,和Box回歸的效果保證。
Faster R-CNN優點:
1). 和Overfeat一樣是一個端到端的模型, 但是集成了以前圖像處理里面的思想: 區域推薦, 特征Pyramid和Box回歸。
2). 較好的ConvNet特征共享, 效率更高
3). 提出了RPN網絡,并且整合后的效果和Fast R-CNN一樣
Faster R-CNN缺點:
1). 依然難以做到實時高效
2). 功能上沒有進入實例分割階段。
結論
我們發現, 單純的端到端ConvNet模型的Overfeat很難達到較好的效果。
如何融合圖像處理經典思想里面的區域推薦, 特征金字塔, 和框回歸,還是非常有必要。 而Faster R-CNN做到了這些。 這個過程中一直伴隨著性能的提升, 其中重要一步就是如何讓特征計算不要重復,做到一次計算。 如何進一步提高速度,
和增強功能, 是后續網絡的要改進的地方。 例如, 我們發現ConvNet的計算在Faster R-CNN已經達到很高的共享, 但是ROI之后依然有ConvNet的計算, 如何進一步共享這部分計算呢? 請看下期。
- 論文
2014年:Learning Rich Features RGB-D Images for
Object Detection and Segmentation (ECCV’ 14)。
本文是rbg大神在Berkeley時的作品。“基于CNN已經在圖像分類,對象檢測,語義分割,細粒度分類表現出了相當的優勢,不少工作已經將CNN引入在RGB-D圖像上的數額任務上。這些工作中一部分直接采用4-channel的圖像來進行予以分割任務(not object detection),一部分只是在非常理想的環境下對小物體進行目標檢測。”
作者的方法實在2D目標檢測框架R-CNN的基礎上,增加對Depth Map進行利用的module,總體結構如下:
(1)
基于RGB圖像和Depth Map,檢測圖像中的輪廓,并生成2.5D的proposals(從overview上可以看到,所謂2.5D實際包括目標每個像素的視差,高度,傾斜角)。
(2)
利用CNN進行特征提取,這里的網絡包括兩個:Depth CNN學習深度圖上的特征,RGB CNN學習2D圖像上的特征,最后,利用SVM進行分類。
在對Depth Map的利用上,論文所述方法并沒有直接利用CNN對其進行學習,而是encode the depth image with
three channels at each pixel: horizontal disparity(水平視差),height above ground(亮度),and the angle the
pixel’s local surface normal makes with the inferred gravity direction(相對于重力的傾斜角)。
2015年:3D Object Proposals for Accurate Object Class
Detection (NIPS’ 15)。清華的陳曉智的作品(也是CVPR17: Multi-View 3D Object Detection
Network for Autonomous Driving的論文的第一作者)。
作者首先指出,目前最先進的RCNN方法在自動駕駛數據集KITI上表現不好,原因之一在于KITI上的測試圖像中,包含許多小型物體,遮擋,陰影,是的實際包含了object的proposals被認為是不包含的。此外,KITTI對區域的驚喜程度要求很高(overlap),而目前大多數區域推薦都基于強度和紋理的grouping super
pixels,它們無法獲得高質量的proposals。
文章面向自動駕駛場景,提出了一種新的object proposal方法。對于每一個3D bounding box(記為y),將其用一個元組來表示(x,y,z,θ,c,t),(x,y,z)表示3D box的中心,θ表示其方位角,c代表object是哪一類,t代表相應的3d
box模板集合。
以x代表點云,y代表proposal。作者認為y應該有以下特性:
包含點云的高密度區域
不能與free
space重疊
點云不應該垂直延伸在3d
box之外
Box附近的點云高度應該比它低
基于這些特性,作者列出了能量方程,目標為最小化E(x,y),采用ICML2004上一篇文章中所述的structured SVM進行訓練。
文章中所述方法的效果,代碼,數據: 3D Object Proposals for Accurate Object Class Detection。
文章中所述方法的效果、代碼、數據:3D Object Proposals for Accurate Object Class Detection
2016年: Deep Sliding Shapes for Amodel 3D Object
Detection in RGB-D Images (CVPR’16)。
文章來自普林斯頓大學,提出的方法為Faster R-CNN的3D版本,側重于indoor scene下的object detection。
目前關于3D目標檢測任務的方法,有采用2D方法來結合深度圖的,也有在3D空間內進行檢測的。這不僅讓作者發文: which representation is
better for 3D a model object detection, 2D or 3D?接著指出,目前2D方法表現更優異的原因,可能是因為其CNN模型更為powerful (well designed & pretrained
with ImageNet),而不是由于其2D表達。
作者的方法是設計名為Deep Sliding Shapes的3D CNN,輸入3D立體場景,輸出3D
bounding boxes,由此,提出了Multi-scale 3D RPN(Region Proposal Network):
Figure 1.3D A model region Proposal Network: Taking a 3D volume
from depth as input, our fully convolutional 3D network extracts 3D proposals
at two scales with different receptive fields.
類似于Faster R-CNN中的RPN網絡,對于每一個滑動窗口,作者定義N=19種anchor boxes:
而后,為了檢測大小不一的目標,作者增加了多尺度的檢測手段。具體來說,在不同的卷積層上進行滑窗。這里的滑窗是3D sliding window,因為整個網絡結構就是接收3D input的。為了精修區域,作者改進了box regression,提出3D box regression:一個3D box可以由中心坐標[cx,cy,cz],長寬高[s1,s2,s3] 來表示,最后要得到的是6個偏移量。
采用與2D box regression同樣的smooth
L1 loss即可。
補充:如何從Depth Map得到3D
Input?
Encoding 3D Representation:不同于Depth RCNN的disparity+height+angle表達,作者在這里采用了TSDF方法,可以看如下的引用:
KinectFusion在世界坐標系中定義了一個立方體,并把該立方體按照一定的分辨率切割成小立方體(voxel)。以圖上例所示,圖中定義了一個333立方米的立方體,并把立方體分為不同分辨率的小立方體網格。也就是說,這個立方體限制了經過掃描重建的模型體積。然后,KinectFusion使用了一種稱為“截斷有符號距離函數”(truncated
signed distance function,簡稱TSDF)的方法來更新每個小網格中的一個數值,該數值代表了該網格到模型表面的最近距離,也稱為TSDF值。對于每個網格,在每一幀都會更新,并記錄TSDF的值,然后再通過TSDF值還原出重建模型。例如,通過兩幅圖中的網格的TSDF數值分布,可很快還原出模型表面的形狀和位置。這種方法通常被稱為基于體數據的方法(Volumetric-based method)。該方法的核心思想是,通過不斷更新并“融合”(fusion)TSDF這種類型的測量值,能夠越來越接近所需要的真實值。
2017:Learning Cross-Modal Deep Represnetations for
Robust Pedestrian Detection (CVPR’ 17)。
這篇文章雖然是針對于專門的pedestrians detection任務,但是,其做法是很有啟發性的,所以,也貼在這里。
作者指出,“行人檢測任務在深度學習的幫助下已經取得重大突破,同時,新型傳感器(如thermal
and depth cameras)也為解決不利照明和遮擋提供了新的機會。但是,現有監控系統絕大多數仍然采用傳統的RGB傳感器,因此,在illumination variation, shadows,and low external light仍然具有十分挑戰。”
在針對照明條件不利環境下的行人檢測任務,文章描述了一種依賴于cross-modify
learning framework的學習框架,由兩個網絡組成:
Figure 1. Overview of our framework. Our approach relies on two
networks. The first network, named Region Reconstruction Network (RRN) is used
to learn a non-linear feature mapping between RGB and thermal image pairs.
Then, the learned model is transferred to a target domain where thermal inputs
are no longer available and a second network, the Multi-Scale Detection Network
(MDN), is used for learning an RGB-based pedestrian detector.
(1) Region
Reconstruction Network (RRN)
RRN 用于學習在RGB圖像和thermal
image間的映射,而后學習得到的模型就可以用于依據RGB生成thermal
image。RRN接收RGB+行人proposals,在ROI Pooling后加了重建網絡(全卷積)。這里的重建網絡不重建整幅圖像的thermal image,而是只對行人區域進行重建。
(2) Multi-Scale
Detection Network (MSDN)
MSDN利用RRN學習的cross-modal
representations來進行檢測。其包含兩個子網(sub-net A和sub-net B),其中sub-net B中的參數從RRN中遷移而來,最后的fc分別做multi-task:bbox regression和softmax。
Figure 4. Architecture of the Multi-Scale Detection Network. Two
Sub-networks(Sub-Net B) with the
same structure are used in MSDN. The parameters of all the convolutional layers
of sub-net B (highlighted in yellow) are transferred from the Region
Reconstruction Network.
2017: A modal Detection of 3D Objects: Inferring 3D Bounding
Boxes from 2D Ones in RGB-Depth Images (CVPR’17)。
來自斯坦普爾大學的文章。作者在這里與2016的Deep
Sliding Shapes思路不同,重新回到2.5D方法來進行3D目標檢測。所謂2.5D方法,實則就是從RGB-D上提取何時的表達,而后building modals to convert
2D results to 3D space。“雖然利用三維幾何特征檢測前景光明,但在實踐中,重建的三維形狀往往不完整,由于遮擋,反射等原因而含有各種噪聲。”
整個系統的overview如下,其基于Fast
R-CNN實現:
Figure 1. Overview of the proposed 3D object detection system.
For each 2D segment proposal, we firstly initialize the localization of a 3D
box (yellow dash box) based on depth information and its size according to
classwise prior knowledge. Then object class and 3D regression offsets are
jointly learned based on 2D features only, with the goal of obtaining the final
3D detection (green solid box) by adjusting the location, dimension, and
orientation of the initial 3D box.
對于每一個2D的proposal(這里關于2D proposals的方法就是用的Depth R-CNN中的方法),由分類結果和depth information來初始化一個3D bounding box(圖中黃色虛線框),而后,也是用一個3d box regression來進行區域精修。重點關注3D box proposal
and regression:
圖中是3D box proposal的一個實例。每一個3d box由向量[xcam, ycam, zcam, I, w, h, θ]來表達,[xcam, ycam, zcam]表中心位置,[I, w, h]表是尺寸,θ∈[-π/2,
π/2]表示方位角,即圖中黃色的箭頭與z軸形成夾角。在初始化的時候,關于尺寸是由某一類物體的類別來進行確定的。最后,輸出7個調整量[δx,δy,δz,δl,δw,δh,δθ],利用smooth L1 Loss作為損失函數。
結語
3D目標檢測對于自動駕駛與機器人等領域意義重大。本文以時間為序,重點關注和分析了基于RGB-D的3D Object Detection方法。從Depth R-CNN到3D Faster-RCNN,似乎始終基于2D的目標檢測框架在循環改進。
總結
以上是生活随笔為你收集整理的3D目标检测论文阅读多角度解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D目标检测论文阅读摘要
- 下一篇: 深度学习目标检测详细解析以及Mask R