0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

YB7m_Apollo_Dev ? 來源:未知 ? 作者:李倩 ? 2018-10-10 14:58 ? 次閱讀

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

上周,來自百度美研Apollo感知團(tuán)隊(duì)的資深軟件架構(gòu)師——陳光,在Apollo開發(fā)者社群內(nèi)為我們帶來關(guān)于《基于單目攝像頭的物體檢測》的內(nèi)容分享。幫助開發(fā)者更加了解Apollo 2.5和3.0里廣泛使用的單目攝像頭物體檢測模塊。

錯過社群直播的開發(fā)者可以從以下資料回顧干貨內(nèi)容:

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

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

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

二、單目攝像頭下的物體檢測神經(jīng)網(wǎng)絡(luò)

三、訓(xùn)練預(yù)測參數(shù)的設(shè)計(jì)

四、模型訓(xùn)練與距離測算

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

物體檢測(Object Detection)是無人車感知的核心問題,要求我們對不同的傳感器(如圖中覆蓋不同觀測范圍FOV的無人車傳感器)設(shè)計(jì)不同的算法,去準(zhǔn)確檢測出障礙物。例如在Apollo中,為3D點(diǎn)云而設(shè)計(jì)的的CNN-SEG深度學(xué)習(xí)算法,為2D圖像而設(shè)計(jì)的YOLO-3D深度學(xué)習(xí)算法等。

物體檢測要求實(shí)時準(zhǔn)確的完成單幀的障礙物檢測,并借助傳感器內(nèi)外參標(biāo)定轉(zhuǎn)換矩陣,將檢測結(jié)果映射到統(tǒng)一的車身坐標(biāo)系或世界坐標(biāo)系中。準(zhǔn)確率、召回率、算法時耗是物體檢測的重要指標(biāo)。本次分享只覆蓋Apollo中基于單目攝像頭的物體檢測模塊。

相關(guān)文獻(xiàn)如下:

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

在眾多物體檢測模型中,我們?nèi)绾芜x擇最合適的算法?尤其是以2-stage為代表的Faster-RCNN, RFCN 和以 single stage為代表的SSD、YOLO之中應(yīng)該如何選擇?CVPR 2017一篇來自谷歌的論文《Speed/Accuracy Trade-offs for Modern Convolutional Object Detectors》做了比較細(xì)致的比較和評測。它將物體檢測神經(jīng)網(wǎng)絡(luò)拆解為主框架Meta-architecture和特征描述模塊Feature Extractor。并選擇了不同的組合方式,去驗(yàn)證模型的實(shí)效性和準(zhǔn)確率。

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

2單目攝像頭下的物體檢測神經(jīng)網(wǎng)絡(luò)

Apollo 2.5和3.0中,我們基于YOLO V2設(shè)計(jì)了單目攝像頭下的物體檢測神經(jīng)網(wǎng)絡(luò), 我們簡稱它 Multi task YOLO-3D, 因?yàn)樗罱K輸出單目攝像頭3D障礙物檢測和2D圖像分割所需的全部信息。

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

1. 實(shí)現(xiàn)多任務(wù)輸出:

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

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

2. 特征描述模塊引入了類似FPN的Encoder和Decoder設(shè)計(jì):在原始Darknet基礎(chǔ)上中,加入了更深的卷積層(Feature Map Size更?。┩瑫r添加反卷積層,捕捉更豐富圖像上下文信息(Context Information)。高分辨率多通道特征圖,捕捉圖像細(xì)節(jié)(例如Edge,Corner),深層低分辨率多通道特征圖,編碼更多圖像上下文信息。和FPN類似的飛線連接,更好的融合了圖像的細(xì)節(jié)和整體信息。

3. 降低每層卷積核數(shù)目,加快運(yùn)算速度。例如我們發(fā)現(xiàn)卷積核數(shù)目減半,實(shí)驗(yàn)中準(zhǔn)確率基本不變。

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

和YOLO V2算法一樣, 我們在標(biāo)注樣本集中通過聚類,產(chǎn)生一定數(shù)目的“錨”模板,去描述不同類別、不同朝向、不同大小的障礙物。例如對小轎車和大貨車,我們會定義不同的錨模板,去描述它們的實(shí)際物理尺寸。

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

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

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

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

3訓(xùn)練預(yù)測參數(shù)的設(shè)計(jì)

而通過神經(jīng)網(wǎng)絡(luò)直接預(yù)測3D障礙物的9維參數(shù),也會比較困難,尤其是預(yù)測障礙物3D中心點(diǎn)坐標(biāo)。所以我們要根據(jù)幾何學(xué)來設(shè)計(jì)我們到底要訓(xùn)練預(yù)測哪些參數(shù)。

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

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

從右圖可以看到,我們現(xiàn)在只有6維3D信息需要預(yù)測,但還是沒有辦法避免預(yù)測中心點(diǎn)坐標(biāo)X和Y分量。

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

第三,對3D障礙物里的6維描述,我們可以選擇訓(xùn)練神經(jīng)網(wǎng)絡(luò)來預(yù)測方差較小的參數(shù),例如障礙物的真實(shí)物理大小,因?yàn)橐话阃活悇e的障礙物的物理大小不會出現(xiàn)量級上的偏差(車輛的高度一般在2-5米之間,很少會出現(xiàn)大幅變化)。而yaw 轉(zhuǎn)角也比較容易預(yù)測,跟障礙物在圖像中的位置關(guān)系不大,適合通用物體檢測框架來訓(xùn)練和預(yù)測。實(shí)驗(yàn)中也多次證明此項(xiàng)。

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

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

1. 訓(xùn)練網(wǎng)絡(luò),并預(yù)測出大部分參數(shù):

(1)圖像上2D障礙物框預(yù)測,因?yàn)橛袑?yīng)的大量成熟算法文獻(xiàn);

(2)障礙物物理尺寸,因?yàn)橥悇e內(nèi)方差較??;

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

2. 通過圖像幾何學(xué),來計(jì)算出障礙物中心點(diǎn)相對相機(jī)坐標(biāo)系的偏移量X分量和Y分量。

4模型訓(xùn)練與距離測算

模型訓(xùn)練上,我們需要注意一些潛在的細(xì)節(jié):

1) 確保標(biāo)注質(zhì)量,尤其是3D障礙物框??梢越柚す饫走_(dá)等來輔助標(biāo)注障礙物尺寸,偏轉(zhuǎn)角等等;

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

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

當(dāng)我們訓(xùn)練好相應(yīng)的神經(jīng)網(wǎng)絡(luò),輸出我們需要的各個參數(shù)之后,我們需要考慮的是如何計(jì)算出障礙物離攝像頭的距離。根據(jù)之前介紹,通過內(nèi)參和幾何學(xué)關(guān)系,我們可以鏈接起圖像中3D障礙物大?。▎挝粸橄袼兀┖驼鎸?shí)3D坐標(biāo)系下障礙物大小(單位為米)。

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

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

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

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

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

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

綜上,我們可以整理出Apollo里單目攝像頭下的障礙物檢測流程圖:輸入單幅圖像,預(yù)測大部分參數(shù);基于單視圖度量衡,我們可以預(yù)測出剩余的參數(shù)距離和中心點(diǎn)坐標(biāo)。

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

Apollo里單目攝像頭下的障礙物算法已經(jīng)成功入庫到Apollo 2.5 和 Apollo 3.0,并在CIDI等項(xiàng)目中使用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 攝像頭
    +關(guān)注

    關(guān)注

    60

    文章

    4852

    瀏覽量

    95965
  • Apollo
    +關(guān)注

    關(guān)注

    5

    文章

    342

    瀏覽量

    18481

原文標(biāo)題:社群分享內(nèi)容 | 基于單目攝像頭的物體檢測

文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    微型攝像頭 應(yīng)用案例

    一套完整產(chǎn)品。攝像頭和顯示設(shè)備之間圖像傳輸可選擇有線或者無線的方式。     這套微型可視設(shè)備可廣泛可用于黑暗而細(xì)小的空間,例如
    發(fā)表于 04-23 13:50

    如何利用攝像頭將處于攝像頭正下方的物體進(jìn)行拍照

    有一個難題,攝像頭處于視頻模式,當(dāng)物體進(jìn)入到攝像頭的視野內(nèi)后,再進(jìn)行圖片的保存;物體緩慢的進(jìn)入過程中,不保存。在以上方法中,不能采用紅外等傳感器,如何利用圖像處理的方法進(jìn)行?求各位大神
    發(fā)表于 06-13 11:19

    攝像頭和FPGA的ADAS產(chǎn)品原型系統(tǒng)

    `1月5日-8日拉斯維加斯消費(fèi)電子展(CES)上,地平線機(jī)器人(以下簡稱“地平線”)將與英特爾聯(lián)合展示一款基于攝像頭和FPGA的ADAS產(chǎn)品原型系統(tǒng)。車輛檢測結(jié)果該原型由英特爾和地
    發(fā)表于 01-06 18:09

    最新攝像頭技術(shù)給車輛以強(qiáng)大的視覺功能

    ,這都得益于圖像處理技術(shù)。 因?yàn)檫@些系統(tǒng)越來越復(fù)雜,有些使用雙攝像頭實(shí)現(xiàn) 3D 立體視覺或物體檢測,或只是單純?yōu)榱双@得前端和后端視野(通過前后窗口)。圖 4:(a) Lattice 雙輸入?yún)⒖荚O(shè)計(jì)框圖
    發(fā)表于 04-12 14:44

    Firefly RK3399Pro開源主板 + 攝像頭,人體特征點(diǎn)檢測方案

    高達(dá)1.8GHz,四核圖形處理器Mali-T860 MP4,集成神經(jīng)網(wǎng)絡(luò)處理器NPU,算力高達(dá)3.0Tops,兼容多種AI框架。高檢測精度配置高清單攝像頭,可以清晰地
    發(fā)表于 04-01 15:55

    本田ADAS采用博世攝像頭,大幅增強(qiáng)行人檢測能力

    本田通過轉(zhuǎn)用博世攝像頭,大大地提升了汽車白天檢測行人的能力,此功能正是高級駕駛員輔助系統(tǒng)的主要功能之一。
    的頭像 發(fā)表于 07-09 18:34 ?9012次閱讀

    攝像對比立體攝像頭的優(yōu)點(diǎn)

    攝像頭的探測距離也有了長足的進(jìn)步。 盡管目前的ZYDAS-1的水平的度角已有56度,但ZYDAS-2則更進(jìn)一步,達(dá)到了135度。 像素也從720提高到了1920,從ZYDAS-1的每度12.8個
    的頭像 發(fā)表于 08-09 10:51 ?5930次閱讀

    人臉識別中雙目、、3D結(jié)構(gòu)光攝像頭的區(qū)別

    選擇更具性價比的人臉識別模組。 介紹一下攝像頭,攝像頭定義通過
    發(fā)表于 06-18 14:38 ?3w次閱讀

    專訪模組廠商:人臉識別中攝像頭和雙攝像頭該如何選型

    高交會,筆者對專注做影像采集行業(yè)、具備較強(qiáng)專業(yè)能力的攝像頭模組廠商金視康康總經(jīng)理何世錕介紹進(jìn)行了一場關(guān)于人臉識別攝像頭如何選型的深度溝通。 關(guān)鍵點(diǎn)一:選單還是雙目?具體還需看活體檢測
    的頭像 發(fā)表于 11-26 17:10 ?2130次閱讀

    人臉識別中雙目、、3D結(jié)構(gòu)光攝像頭之間的區(qū)別

    詳細(xì)解析,幫助大家選擇更具性價比的人臉識別模組。 首先介紹一下攝像頭,攝像頭定義通過
    發(fā)表于 02-26 14:32 ?1.1w次閱讀

    ESP32 CAM:遙控物體檢測攝像頭

    電子發(fā)燒友網(wǎng)站提供《ESP32 CAM:遙控物體檢測攝像頭.zip》資料免費(fèi)下載
    發(fā)表于 12-15 09:56 ?2次下載
    ESP32 CAM:遙控<b class='flag-5'>物體檢測</b><b class='flag-5'>攝像頭</b>

    激光雷達(dá)、攝像頭、雙目攝像頭原理和優(yōu)缺點(diǎn)

    激光雷達(dá)、攝像頭、雙目攝像頭原理和優(yōu)缺點(diǎn) 激光雷達(dá)是目前定位選擇的主流傳感器,帶自主導(dǎo)航的室內(nèi)掃地機(jī)的商用產(chǎn)品,一般都會配備激光雷達(dá)。在自動駕駛領(lǐng)域,高精地圖的采集及定位應(yīng)用, 使
    的頭像 發(fā)表于 03-26 15:58 ?1.5w次閱讀
    激光雷達(dá)、<b class='flag-5'>單</b><b class='flag-5'>目</b><b class='flag-5'>攝像頭</b>、雙目<b class='flag-5'>攝像頭</b>原理和優(yōu)缺點(diǎn)

    如何使用usb接口wifi模塊的網(wǎng)絡(luò)攝像頭_模塊應(yīng)用

    智能家居、無線通訊網(wǎng)絡(luò)連接每個家庭的居家安防安全或辦公生活,如何使用USB接口WiFi模塊的網(wǎng)絡(luò)攝像頭的知識分享,需要先了解無線wifi模塊產(chǎn)品應(yīng)用、使用方法;wifi
    的頭像 發(fā)表于 10-29 22:03 ?2769次閱讀
    如何使用usb接口wifi<b class='flag-5'>模塊</b>的網(wǎng)絡(luò)<b class='flag-5'>攝像頭</b>_<b class='flag-5'>模塊</b>應(yīng)用

    使用python和opencv實(shí)現(xiàn)攝像機(jī)測距

    我的論文方向目前是使用攝像頭實(shí)現(xiàn)機(jī)器人對人的跟隨,首先攝像頭與kinect等深度
    的頭像 發(fā)表于 07-03 10:01 ?3108次閱讀
    使用python和opencv實(shí)現(xiàn)<b class='flag-5'>單</b><b class='flag-5'>目</b><b class='flag-5'>攝像</b>機(jī)測距

    多光譜火焰檢測攝像頭

    隨著工業(yè)化進(jìn)程的加快,火災(zāi)安全問題日益受到重視。傳統(tǒng)的火焰檢測技術(shù)主要依賴于溫度傳感器和煙霧探測器,但這些方法在某些情況下存在響應(yīng)慢、誤報率高等缺陷。為了解決這些問題,多光譜火焰檢測攝像頭
    的頭像 發(fā)表于 12-11 10:50 ?169次閱讀
    多光譜火焰<b class='flag-5'>檢測</b><b class='flag-5'>攝像頭</b>