多角度解析爲什麼自動駕駛需要多傳感器深度融合

 

來源 | 小馬智行PonyAI    

多樣的傳感器配置,遇到不同的場景,對多傳感器深度融合也帶來一些新的挑戰。

1.爲什麼需要多傳感器深度融合?

首先,在自動駕駛中如果使用單一傳感器,例如照相機、激光雷達、毫米波雷達,往往存在不小的侷限和挑戰。 我們先了解下常用的傳感器的挑戰是什麼:

照相機的挑戰

照相機數據遇到的挑戰包括下面三點:

 

 

  •  沒有深度信息(距離信息)。
  •  視場角有限,所以傳感器配置需要比較多的攝像頭,上圖展示了6個攝像頭覆蓋了270°的視場角。
  •  攝像頭受外界條件的影響也比較大,這是當車行駛到橋下時(上圖右下方),由於背光,且光線變化比較大,導致無法識別正前方的交通燈。

激光雷達的挑戰

激光雷達數據面臨一個比較大的挑戰是感知範圍比較近,感知範圍平均在150m左右,而且感知距離也會受到環境和障礙物的影響。激光雷達在角分辨度上遠遠不如照相機,如下圖,有三條小狗在過馬路,在照相機上可以清楚的看到,但是在激光雷達上,採集到的點是比較少的,這樣的場景經常出現在複雜道路日常測試中。

激光雷達對環境的敏感度也是比較大的,往往會導致出現虛擬噪點的Case(情況)。下方右圖裏其他車輛行駛時濺起來的水花、左圖裏車前的揚起的塵土,反映在激光雷達數據上都可能會產生噪點。如何去除這樣的噪點,也就是感知系統面對的挑戰。

毫米波雷達的挑戰

毫米波雷達,受自身性能所限,它的侷限是無法反饋高度信息。毫米波雷達能告訴你所探測物體在哪個位置,但卻不知道物體多高。舉個例子,道路前面有一個比較高的指路牌,毫米波雷達能夠探測到此處存在障礙物,但是不知道路牌是懸在道路上方的。

所以,爲什麼需要多傳感器深度融合?

原因很簡單。既然單一傳感器在自動駕駛中存在挑戰,通過多傳感器深度融合,傳感器之間便能夠取長補短,幫助整個感知系統效果的提升。

下面展示的是 多傳感器深度融合是如何提升感知的探測距離。當障礙物距離自動駕駛車150m左右時,激光雷達的反射點已經比較少了(如下圖),但是這時毫米波雷達和照相機數檢測還是非常穩定的。

 

當障礙物駛出200m範圍時,基本上沒有任何的激光雷達反射點了。然而自動駕駛的感知距離與自動駕駛車輛自身車速緊密相關,當車速較快時,超過200m的感知距離是非常必要的。此時只能通過毫米波雷達和攝像頭,來確保感知系統對障礙物的感知距離,從下圖可以看到系統穩定識別出來前方車輛(下圖)。

 

2.多傳感器深度融合的先決條件

 

先決條件一:運動補償

首先,多傳感器深度融合爲什麼需要做運動補償?

    因爲,在自動駕駛感知過程中,傳感器採集數據一般都不是瞬時發生的。以激光雷達爲例,採集一圈數據需要0.1s,在這0.1s內,自動駕駛車會發生一定的位移,障礙物也會發生一定的位移,如果我們不考慮這些位移,感知系統檢測出來的位置則不準確。

自我運動的運動補償

位移有兩種,第一種就是車自身的位移(Ego motion)。

上圖右邊畫了一個示意圖,虛線部分可以認爲是世界座標系,紅色點代表一個靜態的障礙物,在座標系中有一個穩定的座標(5,5)。藍色部分代表自動駕駛車自己的局部座標系,也就是說世界座標系的(4,0)爲局部座標系的原點。在T+1時刻,這個局部座標系移動到了(6,0)的位置,也就是自動駕駛車沿着X方向向前移動了2。也就是說,在T時刻,障礙物的在局部座標系下的座標是(1,5),而在T+1是時刻,它的座標變爲了(-1,5)。

如果我們不對車自身運動的進行補償,靜止的障礙物在2幀之間,測量的局部座標是不一樣的,這就會產生錯誤的速度。因此,我們需要基於車自身運動進行運動補償。

這個問題解決起來比較簡單,因爲自動駕駛車擁有比較準確的實時定位信息,它可提供T和T+1兩個時刻內,車本身的姿態差距,利用姿態差,我們就可以比較容易補償自身移動了多少,也就能得出結論——靜態障礙物其實是沒有移動的。

被檢測物體的運動補償

第二種要考慮的是被檢測的運動物體在傳感器採集的時間段內發生的位移,相對於自身運動補償,這是一個更難的case(情況)。因爲,快速移動的物體很可能會被激光雷達掃到兩次

上圖的紅圈內,被檢測車輛的尾部出現了拖影。如何消除周圍車輛的Motion(運動),對其進行運動補償呢?

其實解決的方式有很多,目前激光雷達從自身硬件上已經有些相關配置來緩解此類現象。簡單解釋下,一輛自動駕駛車上採用多個激光雷達時,當激光雷達的激光按照同樣的方式旋轉來探測周圍,那麼在某一個特定的時段和方向,這些激光雷達應該掃到相同的物體,一定程度上這能夠來減少快速移動的物體產生拖影的問題。

先決條件二:時間同步

目前,自動駕駛車輛傳感器大部分支持 GPS時間戳的時間同步方法。這個方法比較簡單,如果傳感器硬件支持這個時間同步法,其給出的傳感器數據包便會包含全局的時間戳,這些時間戳以GPS爲基準,非常方便。

但是,時間戳查詢數據存在一個比較明顯的問題。舉個例子,上圖了包含來自三個傳感器的三種數據。由於不同傳感器是以不同頻率來採集數據,以傳感器2爲例,在 T1 時刻,傳感器2產生了一個數據,如果要進行時間同步,我們需要查找對應時刻的傳感器1和傳感器3的數據,而實際查找的方式就是找出與傳感器2時間差最近的其他傳感器數據包。這種方法會受所查數據包的時間戳和傳感器2數據包的時間戳之間差距的影響,如果差距比較大,障礙物又都是在移動的,會導致時間同步的誤差會比較大。

於是就有了第二種時間同步的方法,以緩解剛剛說的誤差現象——也就是 主動數據同步方法。該方法可以以激光雷達作爲觸發其它傳感器的源頭,當激光雷達轉到某個角度時,才觸發該角度的攝像頭,這可以大大減少時間差的問題。如果把這套時間同步方案做到硬件中,便可產生較低的誤差,對齊效果也會更好。如上圖所示,運用這種方法,激光雷達的數據和攝像頭的數據很好的結合在一起。

除此之外,還可以藉助激光雷達自身的功能減少多個傳感器對同一物體檢測的時間差問題。比如大部分的激光雷達可以支持一種叫做Phase Lock的功能,它能夠保證在某一時刻,所有的激光雷達根據Phase Lock的配置,掃在固定的角度附近。

如果兩個前向的激光雷達都設置同一個角度,在同一時刻,檢測到的物體應該是類似的,這樣對於一輛快速行駛的車,它被傳感器掃到兩次的概率就會減少。當然,這個辦法也不能完全解決問題,比如有個人或物體以跟激光雷達同樣的頻率,繞着激光雷達旋轉,那麼在激光雷達掃描的點雲中,人一直會出現,所以還要通過軟件的方法,設置的一些規則或者模型來想辦法剔除誤差。

先決條件三:傳感器標定

除了運動補償與時間同步,傳感器標定(Sensor Calibration)也是多傳感器深度融合的重要部分。我這裏主要是指傳感器外參的標定。

傳感器外參標定的核心是剛體旋轉。剛體旋轉即物體上的兩個點,經過旋轉和平移之後,兩個點之間的3D位置是不會變的,所以叫剛體旋轉。在自動駕駛和機器人上,剛體旋轉還是比較常見的。

傳感器外參的標定就是要找到這樣的一個剛體旋轉,可以把一個傳感器的數據和另一個傳感器對齊。相當於把一個傳感器測量的數據從其本身的座標系,通過剛體旋轉,轉到另一個傳感器座標系,這樣就可以進行後續的數據融合。

上圖中,左邊爲照相機圖像,中間爲激光雷達點雲。藉助一個比較好的外參工具,感知系統可以將激光雷達點雲3D的點投射到2D圖像上,同一物體的圖像和激光點雲都可以對應上,也就相當於把 2D維度上的像素加上了深度信息。那麼,在圖像質量並不是很高的情況下,通過這樣的方式能把更多感知信息補回來。

傳感器的標定一般涉及有兩種思路,第一種是有激光雷達的傳感器標定第二種是無激光雷達的傳感器標定。這麼區分是因爲激光雷達採集的數據是完整的 3D 信息,空間中的 ( x,y,z ) 都是準確的,並不會有信息的丟失。照相機得到的數據,可以認爲是極座標系下的座標,沒有深度,而毫米波雷達數據是沒有高度的。

所以,如果感知系統中某個傳感器能夠提供完全的 (x,y,z ) 座標,以此爲參照物,其他傳感器和它做綁定的話,標定結果會更容易和更準確。接下來我主要講包含有激光雷達的傳感器標定方法。

 

多激光雷達的標定

首先講下多激光雷達是如何標定的。

上圖可以看到展示了兩個前向激光雷達點雲數據,這兩個激光雷達在前向180°是有比較大的覆蓋區域。如果沒有處理好兩個激光雷達之間的旋轉和平移,把二者的點雲數據放在一起進行感知處理時,你會發現紅框位置會存在比較大的分隔(黃線和藍線分別代表兩個前向激光雷達)。這種情況肯定是不希望遇到的,所以自動駕駛感知系統需要對多個激光雷達做到準確的標定。

標定的方法是已知的,這已經是比較好解決的問題。因爲激光雷達本身擁有完全的3D信息,解決這樣倆個數據集匹配的問題,就是採用ICP(Iterative Closest Point)迭代式最近點方法,這個方法有很多的變種,感興趣的同學可以搜索下(下圖)。

 

照相機和激光雷達的標定

第二就是照相機和激光雷達之間的標定。照相機本身是沒有距離信息的,那麼如何進行標定?

首先,激光雷達是有 3D 信息的,通過標定的方式,我們可以將激光雷達數據投到圖像的座標系中,建立圖像的像素點和激光雷達投影后的點雲之間的匹配,最後通過優化方程來解決這個匹配問題

舉一個簡單的例子,比如現在需要選取一系列激光雷達檢測出來的候選點,那麼 這些點一定是在圖像上比較容易能夠識別出來的邊界點

選取方法也比較簡單,因爲激光雷達數據有距離信息,只需要找相鄰兩個激光點之間的距離差,就可以判斷這樣一個點是不是邊界點,最終可以輕易的選出這些幫助標定的候選點。通過這樣的投影方式,上圖中的紅框便是我們要求的標定參數,K矩陣爲照相機本身的內參,通過這個數學關係,前面從3D中檢測的激光雷達候選點就能夠投到2D圖片上,上圖中的X就是投射後的位置。

根據3D投影點和2D檢測的邊界,進行匹配,然後根據他們之間的距離匹配程度,建立這樣一個優化方程,於是解這樣一個優化問題,以得到標定的參數。

如果大家感興趣,還可以參考一篇論文 《Automatic Online Calibration of Cameras and Lasers》,其詳細講述了照相機和激光雷達的標定的數值原理,上圖種綠色的點是3D點雲投射到圖像上,展示的正是邊界點候選的區域。如果標定結果比較好,邊界點會很好地與圖像進行匹配。

 

先決條件四:傳感器視場角

這是傳感器不同視場角示意圖,它也會與多傳感器深度融合相關。

假設在1、2兩個位置上分別有一個激光雷達,它們有各自不同的視場角

前方障礙物 A 在傳感器2的視場角內正好將障礙物B完全遮擋,也就是說障礙物B只出現在了兩個中的一個傳感器的視場角內部。它帶來的問題是:感知系統到底該不該相信這裏存在一個障礙物B?這類比較常見的視場角問題,可以經過不斷的路測來積累並完善。

 

3.如何做多傳感器深度融合?

照相機和激光雷達融合

照相機和激光雷達融合的第一個方法,我在前面標定部分提到了一些要點。激光雷達數據是包含了明確的(x,y,z)數據的3D觀測, 通過標定參數與照相機本身的內參,多傳感器深度融合可以實現把3D點投到圖像上,圖像上的某些像素也就打上了深度信息,幫助感知系統進行基於圖像的分割或者訓練Deep Learning Model(深度學習模型)。

需要注意的是,多傳感器的視場角可能會不一樣,有造成噪點或者漏點的可能,這裏比較推薦的方法是把照相機和雷達安裝在一起,越近越好

第二個比較直觀的方法是 將2D檢測出來的障礙物直接投影到3D數據上生成上圖中類似的3D障礙物。這種方法在做很多的假設條件下(比如障礙物的大小,地面是否平整),也是可以實現的。上圖中相機的內參、車的位置高度都是已知的,這時照相機在2D上識別出的每一幀的障礙物,都可以還原成3D在照相機座標系下的一條射線,通過找這條射線在3D座標系下和平面的交點,就能夠估計出2D障礙物在3D上的距離。

 

毫米波雷達和激光雷達融合

毫米波雷達和激光雷達的融合方式比較簡單。在笛卡爾座標系下,它們擁有完整的( x,y )方向的信息。因此在普適的笛卡爾座標系下,激光雷達和毫米波雷達可以 實現基於距離的融合。另外,毫米波雷達還可以探測到障礙物速度,而激光雷達通過位置的追蹤,也會得到對障礙物速度的估計,對這些速度的信息進行融合,更能幫助篩選錯誤的匹配候選集。

 

下圖展示的激光雷達和毫米波雷達融合的效果,紅圈裏的障礙物是由毫米波雷達補充的。

 

 

當然,不同傳感器之間融合也存在不少特例,感知的工程師們會通過各類方法使得感知系統正確應對並解決問題。

總結來說,每個傳感器自身都存在一些侷限,而多傳感器深度融合就是希望把這些傳感器結合起來做取長補短,提升整個感知系統的精度和召回度。

 

其他參考:

無人駕駛-激光雷達與相機聯合校準(Lidar Camera Calibration)

https://blog.csdn.net/mxdsdo09/article/details/88370662

https://blog.csdn.net/miracle629/article/details/88288669

 

 

感知系統的輸入爲多種傳感器數據和高精地圖,而上圖展示了感知系統物體檢測的輸出結果,即能夠檢測車輛周圍的障礙物,如車輛、行人、自行車等,同時結合高精度地圖,感知系統也會對周邊的Background(環境背景)信息進行輸出。

 

如上圖所示,綠顏色的塊狀代表一輛乘用車,橙色代表一輛摩托車,黃色代表一位行人,灰色則是檢測到的環境信息,如植被。

 

 

感知系統結合多幀的信息(上圖),還能對運動的行人和車輛的速度、方向、軌跡預測等進行精確的輸出。

 

傳感器配置與多傳感器深度融合

 

瞭解了關於感知系統從輸入到輸出的大致介紹,接下來,我簡要介紹一下小馬智行第三代自動駕駛系統PonyAlpha的傳感器安裝方案以及多傳感器深度融合的解決方案。

 

傳感器安裝方案

 

目前PonyAlpha傳感器安裝方案的感知距離能夠覆蓋車周360度、範圍200米以內。

 

 

具體來看,這套方案用到了3個激光雷達,在車的頂部和兩側。同時,通過多個廣角的攝像頭來覆蓋360度的視野。遠處的視野方面,前向的毫米波雷達以及長焦相機將感知距離擴到200米的範圍,使其可以探測到更遠處的物體信息。這套傳感器配置能保證我們的自動駕駛車輛在居民區、商業區、工業區這樣的場景進行自動駕駛。

 

多傳感器深度融合解決方案

 

多傳感器深度融合的基礎

多傳感器深度融合的方案首要解決的是將不同的傳感器的數據標定到同一個座標系裏,包括了相機的內參標定,激光雷達到相機的外參標定,毫米波雷達到GPS的外參標定等等。

 

傳感器融合重要前提是使標定精度達到到極高水平,不論對於結果層面的傳感器融合還是元數據層面的傳感器融合,這都是必要的基礎。

 

 

通過上圖你會發現,我們的感知系統將3D的激光點雲精準地投射到影像上,可見傳感器標定的精度是足夠高的。

 

不同傳感器的標定方案

整個傳感器標定的工作基本上已做到完全自動化的方式。

 

 

首先是相機內參的標定(上圖),這是爲了修正由相機自身特性導致的圖像扭曲等。相機內參的標定平臺使每一個相機能夠在兩到三分鐘之內完成傳感器的標定。

 

 

其次是激光雷達與GPS/IMU的外參標定(上圖),激光雷達的原始數據是基於雷達座標系,因此我們需要將點由雷達座標系轉換爲世界座標系,這就涉及到激光雷達與GPS/IMU相對位置關係的計算。我們的標定工具在室外通過優化的方案,能夠快速找到最優的位置關係。

 

 

第三是相機到激光雷達的融合(上圖)。激光雷達的感知環境是360度旋轉的方式,每旋轉一週是100毫秒,而相機是某一瞬時曝光,爲了保證相機的曝光與激光雷達的旋轉保證同步,需要對二者進行時間同步,即通過Lidar來觸發相機曝光。比如說,可以通過激光雷達的位置信息來觸發對應位置相機的曝光時間,以達到相機與激光雷達的精確同步。

 

3D(激光雷達)和2D(相機)彼此互補,二者更好的融合可使得感知得到更精確的輸出。

 

 

最後是毫米波雷達(Radar)與GPS/IMU的標定(上圖),同樣是將Radar數據由Local(本地)座標系將其轉換到世界座標系,我們將通過真實的3D環境來計算Radar與GPS/IMU的相對位置關係。好的標定結果能夠保證感知系統給出200米距離以內障礙車的車道信息(如位於車道內或壓車道線等)等。

車載感知系統架構

 

那麼車載感知系統架構是什麼樣的?它的解決方案又是什麼?

 

 

上圖展示了整個車載感知系統的架構。首先激光雷達、相機、毫米波雷達三種傳感器數據須進行時間同步,將所有的時間誤差控制在毫秒級。結合傳感器數據,感知系統以幀爲基礎(frame-based)進行檢測(detection)、分割(segmentation)、分類(classification)等計算,最後利用多幀信息進行多目標跟蹤,將相關結果輸出。這個過程中將涉及到多傳感器深度融合和深度學習相關的技術細節,我這裏不做過多的討論。

 

感知系統的解決方案應保證以下五點:

 

◆ 首先是安全,保證近乎百分之百的檢測(Detection)召回率(Recall)。

 

◆ 精度(Precision)要求非常高,如果低於某個閾值,造成False Positive(誤報),會導致車輛在自動駕駛狀態下行駛得非常不舒適。

 

◆ 儘量輸出所有對行車有幫助的信息,包括路牌,交通信號燈及其它場景理解的信息。

 

◆ 保證感知系統的高效運行,能夠近實時處理大量的傳感器數據。

 

 可擴展性(Scalability)也很重要。深度學習(Deep learning)依賴大量數據,其訓練模型的泛化能力對於感知系統非常重要。未來,我們希望模型(model)和新算法有能力適配更多的城市和國家的路況。

 

 

感知技術的挑戰

 

感知精度與召回率相平衡的挑戰

 

 

上圖展示了晚高峯時期十字路口的繁忙場景,此時有大量行人、摩托車穿過十字路口。

 

 

通過3D點雲數據(上圖),能夠看到此時對應的感知原始數據。

 

這裏挑戰是,經過計算處理後,感知系統需要在這樣環境下輸出所有障礙物的正確的分割(segmentation)結果和障礙物類別。

 

除了繁忙的十字路口,感知系統在處理一些特殊的或者惡劣的天氣條件,也面臨不小挑戰。

 

 

 

突降暴雨或者長時間降雨往往會造成路面積水,車輛經過自然會濺起水花。上方視頻中白色點雲展示了激光雷達檢測到其他車輛經過濺起的水花並對其進行filter(過濾)的結果。如果感知系統不能對水花進行準確的識別和過濾,這會對自動駕駛造成麻煩。結合激光雷達與攝像頭(Lidar&Camera)的數據,我們的感知系統對水花有很高的識別率。

 

長尾場景挑戰

 

灑水車

上圖是我們在路測時曾遇到的兩類灑水車(上圖)。左邊灑水車採用向上噴的霧炮,而右邊是向兩側噴灑的灑水車。

 

 

人類司機遇到灑水車時,可以很容易做出判斷並超過灑水車,但是對於感知系統來說,則需要花一定時間去處理和識別這類場景和車輛,我們的自動駕駛在遇到類似場景已獲得更優的乘坐體驗。

 

小物體的檢測

 

小物體檢測的意義在於,面對意想不到的路測事件,比如流浪的小貓、小狗突然出現馬路上,感知系統對這類小物體能夠有準確的召回,以保證小生命的安全。

 

紅綠燈

 

隨着越來越多地區和國家開展自動駕駛路測,感知系統在處理交通信號燈總會遇到新的長尾場景。

 

 

例如,逆光的問題(上圖)或者突然從橋洞中駛出後相機曝光的問題,我們可以通過動態調整相機的曝光等方法來解決問題。

 

 

還有紅綠燈倒計時的場景(上圖),感知系統可以識別出倒計時的數字,這樣能夠讓自動駕駛車輛在遇到黃燈時/前,給出更優的規劃決策應對,優化乘車體驗。

 

 

雨天時,攝像頭(照相機)會水珠密佈(上圖),感知系統需要處理這類特殊氣候條件下的場景,準確識別紅綠燈。

 

 

一些地區使用的紅綠燈帶有進度條(上圖),要求感知系統能夠識別進度條的變動,這樣可以幫助下游的規劃決策模塊在綠燈將變黃時,提前給出減速。

發佈了41 篇原創文章 · 獲贊 4 · 訪問量 5428
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章