天天看點

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

論文:《Real-time Detection, Tracking, and Classification of Moving and Stationary Objects using Multiple Fisheye Images》

作者:Iljoo Baek∗, Albert Davies∗, Geng Yan, and Ragunathan (Raj) Rajkumar 發表日期:2018.3.16

摘要:

   檢測行人以及其他運動目标對自動駕駛來說至關重要。這必須以最小系統開銷做到實時處理。本文讨論了利用環視系統來對本車(裝有環視系統車輛)附近的運動及靜止目标做識别。4個魚眼攝像頭分别捕獲圖像後融合成的一張圖像,算法是在該融合圖像上做的處理。運動目标檢測與跟蹤解決方案利用最小系統隔離出ROI區域,這些ROI區域包含運動目标。利用DNN來對這些ROI中的運動目标做分類。我們在一輛車上布置該套系統并在城市工況下做了測試,驗證了該算法實踐靈活性。

1.介紹(抽重點翻譯)

      本文呈現了一個能夠對車輛周邊物體做實時檢測與分類一些運動目标的解決方案。并搭載在Carnegie Mellon University的自動駕駛研究車——Cadillac SRX上。

A.相關工作

       檢測車輛周邊障礙物的方法有: 用基于lidar和radar的方法 [2] H. Wang, B. Wang, B. Liu, X. Meng, and G. Yang, “Pedestrian recognition and tracking using 3d lidar for autonomous vehicle,” Robotics and Autonomous Systems, vol. 88, pp. 71–78, 2017.。 基于立體攝像頭擷取額外深度資訊的方法 [3] N. Bernini, M. Bertozzi, L. Castangia, M. Patander, and M. Sabbatelli, “Real-time obstacle detection using stereo vision for autonomous ground vehicles: A survey,” in Intelligent Transportation Systems (ITSC), 2014 IEEE 17th International Conference on. IEEE, 2014, pp. 873–878.。 用來自4個魚眼攝像頭做目标檢測與跟蹤的方法 [4] M. Bertozzi, L. Castangia, S. Cattani, A. Prioletti, and P. Versari, “360 detection and tracking algorithm of both pedestrian and vehicle using fisheye images,” in Intelligent Vehicles Symposium (IV), 2015 IEEE. IEEE, 2015, pp. 132–137.。 基于多傳感器的資料融合方法。 一旦擷取環境資訊後,可通過 處理單幀圖像或者 對比相鄰幀圖像來檢測目标。其中 通過處理單幀圖像可利用 基于特征或 機器學習的方法實作,這類方法是在單幀中尋找多種類别,諸如行人,自行車, 缺點是需要大的計算量,并且可能對潛在危險目标(這類目标由于在訓練時沒有先驗知識,本人了解為在訓練模型時可能樣本隻有人,自行車這類,如實際中可能出現過來的狗,貓等)遺漏的情況。其中 通過處理相鄰幀的檢測方法的 優勢在于利用了目标運動特性來減少搜尋區域和計算時間,基于光流的方法是這類方法中較為流行的。當與跟蹤相結合時,這些方法即使在沒有相對運動的情況下也能檢測到物體,如果物體在過去任何時候都在移動的話。其他的方法是将這類方法結合在一起來開發出一種混合方法 [6] J. Choi, “Realtime on-road vehicle detection with optical flows and haar-like feature detectors,” Tech. Rep., 2012.。

B.本文貢獻(重點哈)

     為了達到實際需求,我們做了些設計選擇。運動目标的檢測時再CPU中進行,基于DNN的分類器是在GPU中進行。最大的挑戰是維持低計算量,這對于能同時實時處理來自4個魚眼攝像頭圖像流至關重要。為了實作低計算量,我們規避了相似解決方案中常會用到的De-Wrap這個步驟[4] M. Bertozzi, L. Castangia, S. Cattani, A. Prioletti, and P. Versari, “360 detection and tracking algorithm of both pedestrian and vehicle using fisheye images,” in Intelligent Vehicles Symposium (IV), 2015 IEEE. IEEE, 2015, pp. 132–137.。 我們的算法是直接在擷取的魚眼攝像頭捕獲圖像上開發。     我們将 四個魚眼視訊流融合成一個視訊流做處理,而不是4個分别處理。我們 處理4個視訊流中固定ROI的内容,如圖1所示(每個視野中都有3個固定的ROI區域)。這使我們能夠縮小搜尋範圍,并将查找移動對象所在位置的任務轉換為更簡單的任務——隻需确定某一特定區域是否包含一個移動的對象。為了確定在它停止移動之後仍然檢測到一個先前檢測到的移動對象,我們已經開發了一個使用稀疏LK算法的更簡單的跟蹤版本。

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

     我們的解決方案另一個優勢是具有足夠的可移植性,可以獨立于平台。為了實作這一目标,在OpenCV中實施檢測和跟蹤。這些子產品也互相獨立開發,這允許我們在必要時隻啟用某個子子產品。這也使得子產品可以在不需要大量使用新解決方案的情況下內建。我們已經對一輛真車進行了廣泛的測試,并使用了離線計算。我們的整個解決方案已經移植到x86、TI TDA2x和NVIDIA TX2。

2.架構與算法(抽重點翻譯)

      整個方案的架構包含 檢測, 跟蹤和 分類子產品。 檢測子產品對每個視野中固定的ROI區域做運動目标檢測。 跟蹤子產品確定那些之前檢測到的目标能夠持續被檢測到,即使它停止運動。 分類子產品用深度學習來對運動目标做分類。各類子產品的設計與功能解釋一下。

A.檢測

    圖2是我們檢測與跟蹤的pipeline。如圖所示, 第一步是對相鄰幀做背景提取,這麼做能将我們的搜尋範圍縮小到隻有運動目标的區域。接着在背景提取後的圖像上 找适當的特征點用作跟蹤,類似可使用的特征描述子有SIFT( D. G. Lowe, “Object recognition from local scale-invariant features,” in Computer vision, 1999. The proceedings of the seventh IEEE international conference on, vol. 2. Ieee, 1999, pp. 1150–1157.),SURF( H. Bay, T. Tuytelaars, and L. Van Gool, “Surf: Speeded up robust features,” Computer vision–ECCV 2006, pp. 404–417, 2006.),BRIEF( M. Calonder, V. Lepetit, C. Strecha, and P. Fua, “Brief: Binary robust independent elementary features,” Computer Vision–ECCV 2010, pp. 778–792, 2010.),和ORB(  E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, “Orb: An efficient alternative to sift or surf,” in Computer Vision (ICCV), 2011 IEEE international conference on. IEEE, 2011, pp. 2564–2571.)。我們 使用ORB特征描述子因為它計算效率好。一旦特征點被提取出來後,我們使用 LK算法尋找接下來幀中相應的特征點。分别統計每個ROI區域中連接配接目前幀特征點和下一幀特征點的光流矢量數,通過對光流矢量的長度( 還是個數??)進行門檻值化處理來判斷每個ROI區域是否包含運動目标。

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

B.跟蹤

   上述簡單的檢測,存在缺陷是:當運動目标進入ROI區域并停止運動會導緻檢測失敗。我們引入一個跟蹤子產品,能夠跟蹤之前檢測到的目标,即使它停止運動。跟蹤視訊流中的移動物體是一個被廣泛研究的問題,許多最先進的追蹤器都可以使用 [12] M. Kristan, J. Matas, A. Leonardis, M. Felsberg, L. Cehovin, G. Fern´andez, T. Vojir, G. Hager, G. Nebehay, and R. Pflugfelder, “The visual object tracking vot2015 challenge results,” in Proceedings of the IEEE international conference on computer vision workshops, 2015, pp. 1–23.。由于本文的需求是隻需檢測在ROI中目标是否出現,要求不高,也不需要跟蹤多目标,隻是對ROI中有無目标出現做報警而已,不需要對提取的目标BBOX做跟蹤,基于這些寬松的需求以及考慮計算負載,我們的方案是,一旦我們檢測到移動目标的存在,我們就會存儲這些特征點。當檢測器從正向負過渡時,我們将在先前幀存儲的特征點上運作另一個稀疏LK算法。如果在目前幀中檢測到特征點,并且具有較高的可信度,并且特征點的運動矢量很小,我們得出結論,移動的對象仍然存在于ROI中,但是已經停止移動。這個ROI被認為包含移動的對象,直到檢測器子產品啟動并新檢測到一個移動的對象,此時,存儲的特征點将被丢棄。

C. 分類

   檢測和跟蹤子產品是用來尋找ROI中的運動目标的。本文還需要明确運動目标的屬性,特别是它的類别(如人,自行車,購物車等)。我們引入一個基于深度神經網絡的分類子產品。

1)MobileNet: (對于這塊的知識點想要詳細了解的話請參考:深刻解讀MobileNet)

   卷積神經網絡在多任務識别,分割和檢測方面的性能優于傳統方法。然而本文同許多真實應用系統,需要執行在小的,低功耗的嵌入式系統,且無強大的GPU以供運作深的網絡。2017年,Andrew等人提出的mobileNet(  A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam, “Mobilenets: Efficient convolutional neural networks for mobile vision applications,” arXiv preprint arXiv:1704.04861, 2017.),用depth-wise卷積和point-wise卷積替代标準的卷積操作,以達到更小,低延遲的模型,這正是我們需求的。 (此處我白話解釋論文中表達含義)MobileNet的作用就是把一個标準的卷積操作分解成先對輸入特征各個通道上(M個)獨立做卷積核大小為Dk x Dk的卷積,輸入特征圖尺寸大小為DFxDF,如果這個卷積stride為2則類似扮演池化操作,輸出特征圖大小DF/2 * DF/2,通道數不變,仍是M的結構;如果這個卷積stride為1則輸出特征大小不變仍DF *DF,通道數為M; 再通過一個1x1卷積(核數為N);以上就是分解的兩個卷積操作,先depth-wise再point-wise;

對于标準的卷積

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

,其計算量将是:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

,而對于depthwise convolution其計算量為:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

,pointwise convolution計算量是:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

,是以depthwise separable convolution總計算量是:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

可以比較depthwise separable convolution和标準卷積如下:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

一般情況下

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

比較大,那麼如果采用3x3卷積核的話,depthwise separable convolution相較标準卷積可以降低大約9倍的計算量。其實,後面會有對比,參數量也會減少很多。

2)分類器:

   MobileNet作為我們提取圖像特征的描述子。我們利用這些描述子來建構一個分類器。我們選擇SoftMax和交叉熵一起使用來作為損失函數。其中,SoftMax的定義如下:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

它常用在網絡最後層,建構真實值到【0,1】機率分布值的映射,用于表達K種目标類别各自的機率分布。

我們用交叉熵來計算損失,并可為反向傳播階段提供梯度,定義如下:

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

訓練前,我們将從攝像頭獲得的圖像幀做處理,将圖像劃分出幾個固定ROI區域。由于MobileNet的網絡輸入圖像大小是224x224,我們把不同分辨率圖像都resize到224x224,如圖3.

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

3.評估

這塊内容主要是講用本文的算法在不同硬體平台和不同區域擷取圖像下的試驗評估。

A.硬體和實作

這塊作者主要講了在哪些硬體上做了實作,用了什麼版本的額軟體之類的,可具體看原論文吧(如下)。

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類
魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

系統的實作架構如下(見對應下圖): 1)Capture/Merge:主要是實作4個魚眼攝像頭圖像捕獲和融合到一張4視角圖(如圖1)。

2)Detection/Tracking:該子產品主要将上面得到的4視角圖做運動目标檢測。輸出的是包含有運作目标的ROI索引号。 3)Detection Output Transfer:利用socket通信,第2步輸出的結果将被轉移到分類子產品中。

4)object classification:該子產品将四視野圖和第2步中ROI索引作為輸入,将這些運動目标分類成不同類别。

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

B.試驗結果

作者主要對以上各個算法子產品做了性能和準确度的測試,為了這麼做,作者将各個子產品間做了一些方式的組合來做評估。

試驗1:隻有檢測; 試驗2:檢測+跟蹤; 試驗3:隻有分類; 試驗4:檢測,跟蹤,分類;

       收集的視訊序列分辨率為1280x720,30fps,4個魚眼FOV 190° ,采用7段視訊流作為訓練資料源。共選了1009幀視訊圖像,12個預先固定的ROI,ROI中的圖像被切成獨立的圖像,每個圖像的label資訊包含是否出現目标以及目标類别以便MobileNet訓練目标類别。我們還另外标注了5個視訊作為測試集,手動标注這12個ROI中是否有目标以及目标類别的groundtruth資訊。訓練資料集和測試資料集采集自室内室外場景。 試驗結果表明,由于算法在做檢測時是對稀疏特征而非像素點做處理,是以檢測和跟蹤子產品所花時間在CPU和GPU上相近,本文作者是以選CPU做目标檢測和跟蹤用。選GPU做分類。

本文測試的性能可參考下面幾個表。并且定義了召回率和準确率的評判公式。

魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類
魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類
魚眼攝像頭 實時動、靜目标的檢測,跟蹤,分類

繼續閱讀