設(shè)為 “星標(biāo)”,DLCV消息即可送達(dá)! 文章導(dǎo)讀 本文針對自動(dòng)駕駛行業(yè)的視覺感知做簡要介紹,從傳感器端的對比,到數(shù)據(jù)的采集標(biāo)注,進(jìn)而對感知算法進(jìn)行分析,給出各個(gè)模塊的難點(diǎn)和解決方案,最后介紹感知模塊的主流框架設(shè)計(jì)。 目錄
視覺感知系統(tǒng)主要以攝像頭作為傳感器輸入,經(jīng)過一系列的計(jì)算和處理,對自車周圍的環(huán)境信息做精確感知。目的在于為融合模塊提供準(zhǔn)確豐富的信息,包括被檢測物體的類別、距離信息、速度信息、朝向信息,同時(shí)也能夠給出抽象層面的語義信息。所以道路交通的感知功能主要包括以下三個(gè)方面:
這三類任務(wù)如果通過一個(gè)深度神經(jīng)網(wǎng)絡(luò)的前向傳播完成,不僅可以提高系統(tǒng)的檢測速度,減少計(jì)算參數(shù),而且可以通過增加主干網(wǎng)絡(luò)的層數(shù)的方式提高檢測和分割精度。如下圖所示:可以將視覺感知任務(wù)分解成目標(biāo)檢測、圖像分割、目標(biāo)測量、圖像分類等。 傳感器組件 1. 前視線性相機(jī):視角較小,一般采用52°左右的相機(jī)模組安裝于車輛前擋風(fēng)玻璃中間,主要用來感知車輛前方較遠(yuǎn)的場景,感知距離一般為120米以內(nèi)。 2. 周視廣角相機(jī):視場角相對較大,一般采用6顆100°左右的相機(jī)模組安裝在車輛周圍一圈,主要用來感知360°的周身環(huán)境(安裝方案與特斯拉大同小異)。廣角相機(jī)存在一定的畸變現(xiàn)象,如下圖所示: 3. 環(huán)視魚眼相機(jī):環(huán)視魚眼相機(jī)視角較大,可以達(dá)到180°以上,對近距離的感知較好,通常用于APA,AVP等泊車場景,安裝于車輛左右后視鏡下方以及前后車牌下方等4個(gè)位置做圖像的拼接、車位檢測、可視化等功能。 相機(jī)標(biāo)定 相機(jī)標(biāo)定的好壞直接影響目標(biāo)測距的精度,主要包括內(nèi)參標(biāo)定和外參標(biāo)定。 內(nèi)參標(biāo)定用于做圖像的畸變校正,外參標(biāo)定用于統(tǒng)一多個(gè)傳感器的坐標(biāo)系,將各自的坐標(biāo)原點(diǎn)移動(dòng)到車輛后軸中心處。 最耳熟能詳?shù)臉?biāo)定方法就是張正友的棋盤格方法,在實(shí)驗(yàn)室里一般會(huì)做一個(gè)棋盤格板子標(biāo)定相機(jī),如下圖: 1. 出廠標(biāo)定 但是自動(dòng)駕駛做前裝量產(chǎn),由于批量生產(chǎn)的緣故,無法一輛輛使用標(biāo)定板做標(biāo)定,而是構(gòu)建一個(gè)場地用于車輛出廠時(shí)標(biāo)定,如下圖所示: 2. 在線標(biāo)定 另外考慮到車輛運(yùn)行一段時(shí)間或者在顛簸的過程中攝像頭位置的偏移,感知系統(tǒng)中也有在線標(biāo)定的模型,常利用消失點(diǎn)或車道線等檢測得到的信息實(shí)時(shí)更新俯仰角的變化。 數(shù)據(jù)標(biāo)注 自然道路場景存在各種各樣的突發(fā)狀況,所以需要采集大量的實(shí)車數(shù)據(jù)用來訓(xùn)練。高質(zhì)量的數(shù)據(jù)標(biāo)注成了一件至關(guān)重要的工作,其中感知系統(tǒng)需要檢測的全部信息均需要進(jìn)行標(biāo)注。標(biāo)注形式包括目標(biāo)級標(biāo)注和像素級標(biāo)注: 目標(biāo)級標(biāo)注如下圖: 像素級標(biāo)注如下圖: 由于感知系統(tǒng)中的檢測和分割任務(wù)常采用深度學(xué)習(xí)的方式實(shí)現(xiàn),而深度學(xué)習(xí)是一項(xiàng)數(shù)據(jù)驅(qū)動(dòng)的技術(shù),所以需要大量的數(shù)據(jù)和標(biāo)注信息進(jìn)行迭代。為了提高標(biāo)注的效率,可以采用半自動(dòng)的標(biāo)注方式,通過在標(biāo)注工具中嵌入一個(gè)神經(jīng)網(wǎng)絡(luò)用于提供一份初始標(biāo)注,然后人工修正,并且在一段時(shí)間后加載新增數(shù)據(jù)和標(biāo)簽進(jìn)行迭代循環(huán)。 功能劃分 視覺感知可以分為多個(gè)功能模塊,如目標(biāo)檢測跟蹤、目標(biāo)測量、可通行區(qū)域、車道線檢測、靜態(tài)物體檢測等。 1. 目標(biāo)檢測跟蹤 對車輛(轎車、卡車、電動(dòng)車、自行車)、行人等動(dòng)態(tài)物體的識別,輸出被檢測物的類別和3D信息并對幀間信息做匹配,確保檢測框輸出的穩(wěn)定和預(yù)測物體的運(yùn)行軌跡。神經(jīng)網(wǎng)絡(luò)直接做3D回歸準(zhǔn)確度不高,通常會(huì)對車輛拆分成車頭,車身,車尾,輪胎多個(gè)部位的檢測拼成3D框。 ![]() 目標(biāo)檢測難點(diǎn):
對于視覺目標(biāo)檢測,在惡劣天氣環(huán)境下,感知性能會(huì)有一定的下降;在夜晚燈光昏暗時(shí),容易出現(xiàn)漏檢的問題。如果結(jié)合激光雷達(dá)的結(jié)果進(jìn)行融合,對于目標(biāo)的召回率會(huì)大幅提高。 目標(biāo)檢測方案: 多目標(biāo)的檢測尤其是車輛的檢測,需要給出車輛的3D Bounding Box,3D的好處在于能給出車的一個(gè)朝向角信息,以及車的高度信息。通過加入多目標(biāo)跟蹤算法,給車輛及行人對應(yīng)的ID號。 深度學(xué)習(xí)作為一種概率形式的算法,即使提取特征能力強(qiáng)大,也不能覆蓋掉所有的動(dòng)態(tài)物體特征。在工程開發(fā)中可以依據(jù)現(xiàn)實(shí)場景增加一些幾何約束條件(如汽車的長寬比例固定,卡車的長寬比例固定,車輛的距離不可能突變,行人的高度有限等)。 增加幾何約束的好處是提高檢測率,降低誤檢率,如轎車不可能誤檢為卡車??梢杂?xùn)練一個(gè)3D檢測模型(或者2.5D模型)再配合后端多目標(biāo)追蹤優(yōu)化以及基于單目視覺幾何的測距方法完成功能模塊。 2. 目標(biāo)測量 目標(biāo)測量包括測量目標(biāo)的橫縱向距離,橫縱向速度等信息。根據(jù)目標(biāo)檢測跟蹤的輸出借助地面等先驗(yàn)知識從2D的平面圖像計(jì)算車輛等動(dòng)態(tài)障礙物的距離信息、速度信息等或者通過NN網(wǎng)絡(luò)直接回歸出現(xiàn)世界坐標(biāo)系中的物體位置。如下圖所示: ![]() 單目測量難點(diǎn): 如何從缺乏深度信息的單目系統(tǒng)中計(jì)算出 方向上的物體距離。那么我們需要弄清楚以下幾個(gè)問題:
如果大量依賴模式識別技術(shù)來彌補(bǔ)深度的不足。那么模式識別是否足夠健壯能滿足串行生產(chǎn)產(chǎn)品的嚴(yán)格檢測精度要求? 單目測量方案: 其一,就是通過光學(xué)幾何模型(即小孔成像模型)建立測試對象世界坐標(biāo)與圖像像素坐標(biāo)間的幾何關(guān)系,結(jié)合攝像頭內(nèi)、外參的標(biāo)定結(jié)果,便可以得到與前方車輛或障礙物間的距離; 其二,就是在通過采集的圖像樣本,直接回歸得到圖像像素坐標(biāo)與車距間的函數(shù)關(guān)系,這種方法缺少必要的理論支撐,是純粹的數(shù)據(jù)擬合方法,因此受限于擬合參數(shù)的提取精度,魯棒性相對較差。 3. 可通行區(qū)域 對車輛行駛的可行駛區(qū)域進(jìn)行劃分主要是對車輛、普通路邊沿、側(cè)石邊沿、沒有障礙物可見的邊界、未知邊界進(jìn)行劃分,最后輸出自車可以通行的安全區(qū)域。 ![]() 道路分割難點(diǎn):
![]() 道路分割方案: 其一,相機(jī)標(biāo)定(若能在線標(biāo)定最好,精度可能會(huì)打折扣),若不能實(shí)現(xiàn)實(shí)時(shí)在線標(biāo)定功能,增加讀取車輛的IMU信息,利用車輛IMU信息獲得的俯仰角自適應(yīng)地調(diào)整標(biāo)定參數(shù); 其二,選取輕量級合適的語義分割網(wǎng)絡(luò),對需要分割的類別打標(biāo)簽,場景覆蓋盡可能的廣;使用極坐標(biāo)的取點(diǎn)方式進(jìn)行描點(diǎn),并采用濾波算法平滑后處理邊緣點(diǎn)。 4. 車道線檢測 車道線檢測包括對各類單側(cè)/雙側(cè)車道線、實(shí)線、虛線、雙線檢測,線型的顏色(白色/黃色/藍(lán)色)和特殊的車道線(匯流線、減速線等)檢測。如下圖所示: ![]() 車道線檢測難點(diǎn):
車道線檢測方案: 其一,傳統(tǒng)的圖像處理算法需經(jīng)過攝像頭的畸變校正,對每幀圖片做透視變換,將相機(jī)拍攝的照片轉(zhuǎn)到鳥瞰圖視角,再通過特征算子或顏色空間來提取車道線的特征點(diǎn),使用直方圖、滑動(dòng)窗口來做車道線曲線的擬合,傳統(tǒng)算法最大的弊端在于場景的適應(yīng)性不好。 其二,采用神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行車道線的檢測跟通行空間檢測類似,選取合適的輕量級網(wǎng)絡(luò),打好標(biāo)簽;車道線的難點(diǎn)在于車道線的擬合(三次方程、四次方程),所以在后處理上可以結(jié)合車輛信息(速度、加速度、轉(zhuǎn)向)和傳感器信息做航位推算,盡可能的使車道線擬合結(jié)果更佳。 5. 靜態(tài)物體檢測 靜態(tài)物體檢測包括對交通紅綠燈、交通標(biāo)志牌等靜態(tài)目標(biāo)的檢測識別。如下圖所示: ![]() 靜態(tài)物體檢測難點(diǎn):
靜態(tài)物檢測方案: 通過感知去識別紅綠燈,效果一般,適應(yīng)性差,條件允許的話(如固定園區(qū)限定場景),可以借助V2X/高精地圖等信息。多個(gè)備份冗余,V2X > 高精度地圖 > 感知識別。若碰上GPS信號弱的時(shí)候,可以根據(jù)感知識別的結(jié)果做預(yù)測,但是大部分情況下,V2X足以覆蓋掉很多場景。 共性問題 雖然感知子任務(wù)的實(shí)現(xiàn)是相互獨(dú)立的,但是它們之間上下游的依賴關(guān)系以及算法共性問題: (1)真值來源。定義,校準(zhǔn),分析比對,絕不是看檢測結(jié)果圖或幀率,需要以激光的數(shù)據(jù)或者RTK的數(shù)據(jù)作為真值來驗(yàn)證測距結(jié)果在不同工況(白天、雨天、遮擋等情況下)的準(zhǔn)確性; (2)資源消耗。多個(gè)網(wǎng)絡(luò)共存,多個(gè)相機(jī)共用都是要消耗cpu、gpu資源的,如何處理好這些網(wǎng)絡(luò)的分配,多個(gè)網(wǎng)絡(luò)的前向推理可能共用一些卷積層,能否復(fù)用;引入線程、進(jìn)程的思想來處理各個(gè)模塊,更高效的處理協(xié)調(diào)各個(gè)功能塊;在多相機(jī)讀取這一塊,做到多目輸入的同時(shí)不損失幀率,在相機(jī)碼流的編解碼上做些工作。 (3)多目融合。一般在汽車上會(huì)配備4個(gè)(前、后、左、右)四個(gè)相機(jī),對于同一物體從汽車的后方移動(dòng)到前方,即后視相機(jī)可以看到,再移至側(cè)視相機(jī)能看到,最后移至前視相機(jī)能看到,在這個(gè)過程中,物體的id應(yīng)保持不變(同一個(gè)物體,不因相機(jī)觀測的變化而改變)、距離信息跳變不宜過大(切換到不同相機(jī),給出的距離偏差不宜太大,) (4)場景定義。針對不同的感知模塊,需要對數(shù)據(jù)集即場景定義做明確的劃分,這樣在做算法驗(yàn)證的時(shí)候針對性更強(qiáng);如對于動(dòng)態(tài)物體檢測,可以劃分車輛靜止時(shí)的檢測場景和車輛運(yùn)動(dòng)時(shí)的場景。對于交通燈的檢測,可以進(jìn)一步細(xì)分為左轉(zhuǎn)紅綠燈場景、直行紅綠燈、掉頭紅綠燈等特定場景。公用數(shù)據(jù)集與專有數(shù)據(jù)集的驗(yàn)證。 模塊架構(gòu) 目前開源的感知框架Apollo和Autoware,不少研究人員或者中小公司的感知系統(tǒng)開發(fā)會(huì)借鑒其中的思想,所以在這里介紹一下Apollo感知系統(tǒng)的模塊組成。 相機(jī)輸入-->圖像的預(yù)處理-->神經(jīng)網(wǎng)絡(luò)-->多個(gè)分支(紅綠燈識別、車道線識別、2D物體識別轉(zhuǎn)3D)-->后處理-->輸出結(jié)果(輸出物體類型、距離、速度代表被檢測物的朝向) 即輸入攝像頭的數(shù)據(jù),以每幀信息為基礎(chǔ)進(jìn)行檢測、分類、分割等計(jì)算,最后利用多幀信息進(jìn)行多目標(biāo)跟蹤,輸出相關(guān)結(jié)果。整個(gè)感知流程圖如下: ![]() 上述核心環(huán)節(jié)仍是神經(jīng)網(wǎng)絡(luò)算法,它的精度、速度、硬件資源利用率都是需要衡量考慮的指標(biāo),哪一個(gè)環(huán)節(jié)做好都不容易,物體檢測最容易誤檢或漏檢、車道線檢測擬合4次方程曲線不容易、紅綠燈這類小物體檢測難度大(現(xiàn)有路口長度動(dòng)則50米以上),通行空間的邊界點(diǎn)要求高。 ![]() |
|