了解Apollo 2.5和3.0裡廣泛使用的單目攝像頭物體檢測模塊

2021-01-07 電子發燒友

攝像頭是無人車系統中最重要的傳感器之一,具有明顯的優點和缺點:廉價、高幀率、信息豐富、觀測距離遠,但是易受環境影響、缺乏深度信息。因此,如何建立高準確率、高召回率的物體識別系統,是無人車感知模塊的核心問題。

上周,來自百度美研Apollo感知團隊的資深軟體架構師——陳光,在Apollo開發者社群內為我們帶來關於《基於單目攝像頭的物體檢測》的內容分享。幫助開發者更加了解Apollo 2.5和3.0裡廣泛使用的單目攝像頭物體檢測模塊。

錯過社群直播的開發者可以從以下資料回顧乾貨內容:

基於單目攝像頭的物體檢測

本次分享將會從以下四個方面展開:

一、物體檢測模型中的算法選擇

二、單目攝像頭下的物體檢測神經網絡

三、訓練預測參數的設計

四、模型訓練與距離測算

物體檢測模型中的算法選擇

物體檢測(Object Detection)是無人車感知的核心問題,要求我們對不同的傳感器(如圖中覆蓋不同觀測範圍FOV的無人車傳感器)設計不同的算法,去準確檢測出障礙物。例如在Apollo中,為3D點雲而設計的的CNN-SEG深度學習算法,為2D圖像而設計的YOLO-3D深度學習算法等。

物體檢測要求實時準確的完成單幀的障礙物檢測,並藉助傳感器內外參標定轉換矩陣,將檢測結果映射到統一的車身坐標系或世界坐標系中。準確率、召回率、算法時耗是物體檢測的重要指標。本次分享只覆蓋Apollo中基於單目攝像頭的物體檢測模塊。

相關文獻如下:

1. Object Detection with Discriminatively Trained Part Based Models. IEEE Trans. PAMI, 32(9):1627–1645, 2010.

2. Faster RCNN, ICCV 2015

3. SSD: Single Shot MultiBox Detector, ECCV 2016

4. yolo9000: Better, Faster, Stronger, CVPR 2017 

5. Focal Loss for Dense Object Detection, ICCV 2017

在眾多物體檢測模型中,我們如何選擇最合適的算法?尤其是以2-stage為代表的Faster-RCNN, RFCN 和以 single stage為代表的SSD、YOLO之中應該如何選擇?CVPR 2017一篇來自谷歌的論文《Speed/Accuracy Trade-offs for Modern Convolutional Object Detectors》做了比較細緻的比較和評測。它將物體檢測神經網絡拆解為主框架Meta-architecture和特徵描述模塊Feature Extractor。並選擇了不同的組合方式,去驗證模型的實效性和準確率。

如圖所示,在 MS COCO數據集上,YOLO V2取得了實時速度下良好的檢測準確率。Faster RCNN+重載的 Inception ResNet V2雖然取得了最好準確率,但是時耗過長。完全不能滿足無人車對實時性的要求。基於這種理論分析和在百度自有數據集上的評測,我們最終選擇了YOLO作為主框架,以改進的DarkNet作為特徵描述模塊(Feature Extractor)。

2單目攝像頭下的物體檢測神經網絡

Apollo 2.5和3.0中,我們基於YOLO V2設計了單目攝像頭下的物體檢測神經網絡, 我們簡稱它 Multi task YOLO-3D,  因為它最終輸出單目攝像頭3D障礙物檢測和2D圖像分割所需的全部信息。

它和原始的YOLO V2有以下幾種不同:

1. 實現多任務輸出:

(1)物體檢測,包括2D框(以像素為單位),3D真實物體尺寸(以米為單位),障礙物類別和障礙物相對偏轉角(Alpha Angle,和KITTI數據集定義一致)。下文會詳細講解各個輸出的意義。

(2)物體分割:車道線信息,並提供給定位模塊,這裡不做敘述。

2. 特徵描述模塊引入了類似FPN的Encoder和Decoder設計:在原始Darknet基礎上中,加入了更深的卷積層(Feature Map Size更小)同時添加反卷積層,捕捉更豐富圖像上下文信息(Context Information)。高解析度多通道特徵圖,捕捉圖像細節(例如Edge,Corner),深層低解析度多通道特徵圖,編碼更多圖像上下文信息。和FPN類似的飛線連接,更好的融合了圖像的細節和整體信息。

3. 降低每層卷積核數目,加快運算速度。例如我們發現卷積核數目減半,實驗中準確率基本不變。

如前文所述,物體檢測最終輸出包括2D框(以像素為單位),3D真實物體尺寸(以米為單位),障礙物類別和障礙物相對偏轉角(Alpha Angle,和KITTI數據集定義一致)等信息。

和YOLO V2算法一樣, 我們在標註樣本集中通過聚類,產生一定數目的「錨」模板,去描述不同類別、不同朝向、不同大小的障礙物。例如對小轎車和大貨車,我們會定義不同的錨模板,去描述它們的實際物理尺寸。

為什麼我們要去訓練、預測這些參數呢?我們以相機成像的原理來解釋:針孔相機(Pinhole Camera)通過投影變換,可以將三維Camera坐標轉換為二維的圖像坐標。這個變換矩陣解釋相機的內在屬性,稱為相機內參(Camera Intrinsic) K。(本圖及下文中部分圖像引自三方論文等)

對任意一個相機坐標系下的障礙物的3D框,我們可以用它的中心點 T = {X, Y, Z},長寬高 D = {L, W, H},以及各個坐標軸方向上的旋轉角 R = {ϕ, φ , θ}來描述。這種9維的參數描述和3D框8點的描述是等價的,而且不需要冗餘的8*3個坐標參數來表示。

因此,對一個相機坐標系下3D障礙物,我們通過相機內參,可以投射到2D圖像上,得到2D框[c_x,  c_y,  h,  w]。從圖中可以看到,一個障礙物在相機下總共有9維3D描述和4維2D描述,他們之間通過相機內參矩陣聯繫起來。

然而,只通過2D框[c_x,  c_y,  h,  w],是沒有辦法還原成完整的3D障礙物信息。

3訓練預測參數的設計

而通過神經網絡直接預測3D障礙物的9維參數,也會比較困難,尤其是預測障礙物3D中心點坐標。所以我們要根據幾何學來設計我們到底要訓練預測哪些參數。

首先利用地面平行假設,我們可以降低所需要預測的3D參數。

例如:(1)我們假設3D障礙物只沿著垂直地面的坐標軸有旋轉,而另外兩個方向並未出現旋轉,也就是只有yaw偏移角,剩下的Pitch Roll均為0。(2)障礙物中心高度和相機高度相當,所以可以簡化認為障礙物的Z=0。

從右圖可以看到,我們現在只有6維3D信息需要預測,但還是沒有辦法避免預測中心點坐標X和Y分量。

第二,我們可以利用成熟的2D障礙物檢測算法,準確預測出圖像上2D障礙物框(以像素為單位)。

第三,對3D障礙物裡的6維描述,我們可以選擇訓練神經網絡來預測方差較小的參數,例如障礙物的真實物理大小,因為一般同一類別的障礙物的物理大小不會出現量級上的偏差(車輛的高度一般在2-5米之間,很少會出現大幅變化)。而yaw 轉角也比較容易預測,跟障礙物在圖像中的位置關係不大,適合通用物體檢測框架來訓練和預測。實驗中也多次證明此項。

所以現在我們唯一沒有訓練和預測的參數就是障礙物中心點相對相機坐標系的偏移量X分量和Y分量。需要注意的是障礙物離相機的物理距離Distance=sqrt(X^2+Y^2)。所以得到X和Y,我們自然就可以得到障礙物離相機的真實距離,這是單目測距的最終要求之一。

綜上,我們可以合理的推斷出, 實現單目攝像頭的3D障礙物檢測需要兩部分:

1. 訓練網絡,並預測出大部分參數: 

(1)圖像上2D障礙物框預測,因為有對應的大量成熟算法文獻; 

(2)障礙物物理尺寸,因為同類別內方差較小;

(3)不被障礙物在圖像上位置所影響,並且通過圖像特徵(Appearance Feature)可以很好解釋的障礙物yaw偏轉角。

2. 通過圖像幾何學,來計算出障礙物中心點相對相機坐標系的偏移量X分量和Y分量。

4模型訓練與距離測算

模型訓練上,我們需要注意一些潛在的細節:

1) 確保標註質量,尤其是3D障礙物框。可以藉助雷射雷達等來輔助標註障礙物尺寸,偏轉角等等;

2) 定義合適的損失函數,可以參考Zoox的paper《3D Bounding Box Estimation Using Deep Learning and Geometry》;

3) 做好數據增強,避免過擬合, 圖中簡單描繪了一些Data Augmentation的方式。對於無人車,我們可以嘗試更多的方法。

當我們訓練好相應的神經網絡,輸出我們需要的各個參數之後,我們需要考慮的是如何計算出障礙物離攝像頭的距離。根據之前介紹,通過內參和幾何學關係,我們可以連結起圖像中3D障礙物大小(單位為像素)和真實3D坐標系下障礙物大小(單位為米)。

我們採用單視圖度量衡( Oxford教授 A. Zisserman的論文《Single View Metrology》)來解釋這個幾何關係:任一物體,已知它的長寬高、朝向和距離,則它在圖像上的具體形狀大小等可唯一確定;反之亦然。

如圖中房屋的支撐柱,大小高度完全相同,但是處於圖像的不同位置,所佔用的像素、長寬都有差別。

基於單視圖度量衡,我們可以建立一個哈希查詢表,去根據物體圖像尺寸,物理尺寸,朝向角來查詢物體的距離。

對於每種障礙物,我們根據它的平均(或單位)尺寸,去建立查詢表,覆蓋360度yaw 角的變化,來映射不同的距離。(例如2D框的25像素高,yaw角為30度,則它的距離為100米等等)。圖中示例了一個小轎車在不同距離下、不同偏轉角yaw angle情況下,在圖像上的顯示。

對於這樣一個簡單的算法,速度上可以達到0.07毫秒/每幀圖像。而在準確率上,我們分別在KITTI數據集和Apollo內部數據集上做了評測。在KITTI上取得了很好的效果,0-30米內障礙物誤差大概在1米左右。隨著距離增大,誤差會增大,但是最終誤差不超過8%。

在Apollo數據集上,這個簡單算法也取得了不錯的效果。最大誤差不超過6%。

綜上,我們可以整理出Apollo裡單目攝像頭下的障礙物檢測流程圖:輸入單幅圖像,預測大部分參數;基於單視圖度量衡,我們可以預測出剩餘的參數距離和中心點坐標。

Apollo裡單目攝像頭下的障礙物檢測穩定快速,對繁忙路段和高速場景都可以適配。檢測速度在30HZ以上。

Apollo裡單目攝像頭下的障礙物算法已經成功入庫到Apollo 2.5 和 Apollo 3.0,並在CIDI等項目中使用。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • Apollo 2.5技術文檔學習指南
    上個月Apollo 2.5正式發布,開放了視覺感知、實時相對地圖和高速規劃與控制三大能力,幫助開發者迅速起步,快速驗證。同時,開發者也可以使用更多、更高效的開發工具,進一步提升開發效率。這裡,我們將Apollo 2.5的技術文檔進行整理、歸納分享給開發者,幫助開發者更好更快地使用Apollo。
  • 基於平面投影的單目視覺AGV 定位算法
    曹小華 任曉玉0 引言視覺定位是計算機視覺中的一個重要研究問題,廣泛應用於機器人自主導航、機器人定位、視覺伺服、攝像機校正、目標跟蹤、視覺檢測、物品識別和工業零部件裝配等領域。近年來,計算機視覺飛速發展,湧現出大量的技術與算法,如主動視覺、面向任務的視覺、基於知識的視覺、基於模型的視覺以及多傳感器和集成視覺等方法[1]。根據使用鏡頭數目分類,計算機視覺分為單目視覺定位、雙目視覺定位與多目視覺定位。雙目立體視覺是基於視差原理,由多幅圖像獲取物體三維幾何信息。
  • 單目視覺ADAS的技術與體驗升級之路|雷鋒網公開課
    目前,單目視覺ADAS技術相對成熟,同時成本也比較低,應用最為廣泛。那麼,到底單目視覺ADAS背後有哪些技術原理(算法、硬體)?同時如何讓廣大用戶觸手可及?我們採用了精確的邊緣檢測和多幀綜合檢測的算法,可以在不同的光線環境下得到相對精準的用於車距檢測的車輛坐標信息。
  • 這款基於單目視覺的測量算法,看了照片就知道你多高?
    近日,加州大學聖地牙哥分校和Adobe的研究人員提出了一種基於單目視覺的測量方法,它可通過測量照片內目標的高度、相機的高度和視角朝向參數來恢復出場景及目標的絕對尺度,這項技術可以在非受限的環境中利用單目視覺精確實現。基於單目視覺的度量方法,主要依賴於數據驅動的深度學習網絡。
  • 深度學習基於攝像頭和雷射雷達融合的3-D目標檢測
    最後看一些結果示例:從上到下依次是使用單目、立體圖像和雷射雷達點雲的3D檢測結果,這裡還使用實例向量表示形式可視化重建的目標形狀。該文提出一個靈活的虛擬多視圖合成(Virtual Multi-View Synthesis)模塊,用於3D目標檢測方法改善朝向估計。為實現精確的朝向估計,該模塊使用多步過程獲取所需的細粒度語義信息。首先,使用結構保留的深度完整(depth completion)算法對場景的點雲進行緻密化,並用對應的RGB像素對每個點進行著色。
  • 意法半導體最新的飛行時間測距傳感器,讓行動裝置具有多物體檢測和...
    新產品基於新的矽專利技術和模塊級架構,首次在模塊上引入光學鏡頭。鏡頭的加入可提升傳感器內核性能,同時開啟許多新功能,包括多物體檢測、遠距離玻璃蓋板串擾抗噪和可編程多區掃描。這些先進特性將機器人、用戶檢測、無人機、物聯網、穿戴設備等傳感器性能提高到新的水平。
  • 美國滲透率已過10%,從隨機碰撞到自主導航:掃地機器人感知模塊大升級
    ,隨著掃地機器人在我國滲透率的提升,雷射雷達企業也將在掃地機器人產業化中受益;(3)機器視覺在應用場景上逐漸突破工業檢測,其應用邊界逐步向智能生活領域拓展。 其中,雷射SLAM比VSLAM起步早,框架已經初步確定,因此產品落地相對成熟,主要分為單線式和多線式。基於視覺的SLAM又稱為VSLAM(Visual SLAM),目前的主流算法是基於RGBD的深度攝像機,分為單目、多目、結構光(進一步分為單目結構光和多目結構光)、ToF等。
  • 高清攝像頭WiFi模塊是什麼,它有什麼作用
    該模塊兼容802.11b/g/n,射頻採用2x2 MIMO,最高速率可達300Mbps。模塊內部集成了雙路PA和LNA,每路發射輸出功率可達+28dBm以上。空曠地帶有效數據傳輸距離可達1000米以上,用戶利用它可以輕鬆實現遠距離數據傳輸功能。該模塊採用52pin雙排插針方式,外部需提供+5.0V和+3.3V兩路電源,分別給外置PA和主系統供電。
  • 智能家居PM2.5環境檢測儀中PM2.5傳感器的應用
    新風系統是一種新型的室內空氣淨化設備,通過強制送風和排風的方式,實現不開窗讓室內和室外空氣互相置換。新風系統是一套開放式的空氣循環系統,能24小時為室內源源不斷提供新鮮的富氧空氣,早在上個世紀70年代歐美地區住宅早已普及,近幾年在國內的許多家庭住宅和別墅商品房裡也廣泛應用。
  • 從TeslaAP2.0/2.5運算單元看未來無人駕駛域控制器的設計趨勢
    而GPU則是256+1280個CUDA單元,以6個攝像頭的配置,4個作為環視和SFM,兩個前視用於車道線、行人/目標檢測、交通標識檢測以及前向空間(Free Space)的檢測,按DriveWorks提供的代碼和資源佔用情況,其能力是不太夠滿足同時運算的要求。
  • 我們發現一個攝像頭模塊與VivoNEX3上的攝像頭模塊非常相似
    移動到手機背面,我們發現一個攝像頭模塊與Vivo NEX 3上的攝像頭模塊非常相似。該攝像頭模塊似乎只包含兩個傳感器,根據以前的傳言,該攝像頭模塊包括一個內置雲臺的主攝像頭和一個攝像頭。令人難以置信的圖像穩定。當輔助傳感器與潛望鏡鏡頭配對時,可實現更長的變焦。就其他規格而言,Vivo APEX 2020應該配備顯示屏指紋掃描儀。
  • 細粒度物體檢測算法的升級揭秘
    在眾多模型使用場景中,小目標物體的檢測比較常見,一般的目標檢測算法往往效果不理想;因此,EasyDL團隊針對小目標物體的檢測進行了專項優化,並取得了令人矚目的效果提升。自AlexNet在2012年ImageNet比賽上展露頭角以來,計算機視覺各個方向和神經網絡的聯繫變得越發緊密,物體檢測也不例外。
  • Apollo 2.5推基於動態的實時相對地圖解決方案
    在Apollo1.5和2.0中,規劃模塊和控制模塊依靠的是全球定位和高精地圖。通過使用這種方法,我們可以創建一個與高精地圖的數據格式相匹配的相對地圖(RelativeMap),並基於事先錄製好的人工駕駛軌跡和攝像頭實時檢測到的車道線。有的開發者會有疑問:相對地圖與SLAM有什麼區別呢?其實SLAM問題可以描述為:汽車在未知環境中從一個未知位置開始移動,在移動過程中根據位置估計和地圖進行自身定位,同時在自身定位的基礎上建造增量式地圖,實現汽車的自主定位和導航。
  • 【專利解密】華為如何實現物體檢測在大規模場景中的應用 助力智慧...
    例如,物體檢測就是一項基本的計算機視覺任務,它可以識別圖像中物體的位置和類別。在實際應用中,研究員和工程師們會根據應用場景與實際任務需求的不同創建針對不同具體問題的數據集,用於訓練高度定製化和獨特的自動物體檢測器。 而在智慧安防領域,物體檢測也是非常重要的一個環節,在進行很多任務之前,首要的就是將待檢測物體定位並進行類別識別。
  • 港中文李弘揚:物體檢測最新進展
    由中國科學院大學主辦,中國科學院大學學生會承辦,讀芯術作為指定合作自媒體的「AI未來說·青年學術論壇」第三期「計算機視覺」專場已於2019年3月24日下午在中科院舉行。港中文李弘揚博士為大家帶來報告《物體檢測最新進展》。李弘揚,香港中文大學多媒體實驗室(MMLab)博士生,微軟亞洲研究院實習生。博士期間導師為王曉剛教授。
  • Guided Anchoring: 物體檢測器也能自己學 Anchor
    前言進入圖片物體檢測這個坑也有一年出頭了,而且至少短期內還將繼續待在坑裡而且還拉了同夥入坑。值此新(ji)春(xu)佳(ban)節(zhuan)之際,打算介紹一些做過的工作,寫一下對這個領域的理解,另外有空的話也會講講 mmdetection 的設計和一些實現。
  • 更小更靈敏 夏普發布世界最快PM2.5檢測傳感器
    鑑於當前東亞地區嚴重的空氣汙染形勢,夏普宣布,將於2014年2月開始發售PM2.5檢測模塊DN7C3JA001,售價為10500日元(612.15RMB)。這款檢測模塊具有檢測PM2.5以及更大的顆粒物的功能,並且具有世界上最短的檢測時間。