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