首頁/ 汽車/ 正文

自動駕駛汽車如何「看到」紅綠燈?

這個問題非常有意思。之前一直很好奇,終於有人問出來了。於是,搜了點資料看看,不成專業,姑且給我們這樣的智駕小白增添點課外知識。

以下內容來自於Gitee網站的公開分享,其中有一篇特意講了Apollo識別紅綠燈的策略,做個翻譯,分享給大家。

提問,自動駕駛汽車如何「看到」紅綠燈?翻譯過來就是,自動駕駛如何準確檢測且識別紅綠燈。

自動駕駛汽車如何「看到」紅綠燈?

先說紅綠燈,我們知道有3種狀態:紅、黃、綠。

但是,對於機器來說,這樣的總結還不夠。因為在交通訊號燈不工作的情況下,它可能顯示黑色,或者閃爍的紅燈/黃燈。

那麼,機器對交通訊號燈的分類至少有5種:紅、黃、綠、黑、未知。

再看機器檢測到交通訊號燈的途徑。Apollo搭載有高精地圖,高精地圖包含有交通訊號燈的資訊,那麼機器至少有了一個預判,知道在某個路口的某個位置,理論上可以檢測到交通訊號燈。

自動駕駛汽車如何「看到」紅綠燈?

具體的感測器是什麼?攝像頭!

但是,僅使用一個固定視野的攝像頭是不夠的,因為交通訊號燈的高度以及十字路口的寬度變化很大,有可能沒有進入攝像頭的視野。

所以,Apollo使用了兩個攝像頭來擴大感知的視野:

第1個是焦距為25mm的長焦鏡頭,拍攝到的訊號燈比較大,容易被識別到,但視野太窄。如果車道不夠直,或者車輛離訊號燈太近,那麼,訊號燈都有可能出現在視野之外。

第2個是焦距為6mm的廣角鏡頭,主要對視野進行補充。

PS:這兩個攝像頭互為冗餘,但具體到某一時刻只能以兩者之一為主。策略模組會自適應地做出最優選擇,至少,在應該檢測出訊號燈的路口,不因視野問題而檢測不出。

自動駕駛汽車如何「看到」紅綠燈?

焦距為25mm的長焦鏡頭

自動駕駛汽車如何「看到」紅綠燈?

焦距為6mm的廣角鏡頭

檢測問題解決之後,機器將會進入演算法流程,主要描述為兩個階段:1、預處理階段;2、處理階段。

預處理階段包括有:紅綠燈投影、相機選擇、圖片資訊及快取同步;

處理階段包括有:糾正(確定準確的訊號燈邊界框)、識別(分辨訊號燈的顏色)、修改(根據歷史時間順序修正顏色)。

PS:涉及到演算法環節,班門弄斧了,儘可能結合我的理解,通俗地解釋一下。

首先明確一個前提:機器沒有必要檢測每一幀影象,因為訊號燈的變化頻率比較低,在計算資源有限的情況下,抓住關鍵影象即可,那麼對影象的選擇和匹配就很重要了。

自動駕駛汽車如何「看到」紅綠燈?

1-1 紅綠燈投影

在高精地圖中,根據車輛定位資訊,其實可以找到訊號燈的三維座標。但這些是3D資料,而攝像頭拍到的是2D資料,彼此之間需要有一個換算關係。

怎麼換算的?不做深入剖析了,主要藉助了相機模型和一些標定。

機器有點傻的,它不像我們人一樣,從2D影象中,可以直接找出訊號燈在哪裡。而要曲折地藉助3D轉2D的換算關係,用一個矩形邊界框,在2D影象中把訊號燈的位置圈出來。

這就是”紅綠燈投影“階段的輸出結果,但這個位置一般圈得比較大,有時候也會圈錯,也就是

藍色矩形框。

自動駕駛汽車如何「看到」紅綠燈?

注意藍色框

1-2 相機選擇

我們在開始就提到了,有長焦和廣角兩個鏡頭做配合,一般優先選擇長焦鏡頭的輸出,因為訊號燈顯示得更大。

如果長焦鏡頭沒有檢測到訊號燈,那就需要廣角鏡頭出馬了,但是影象裡的訊號燈顯示小一些。

1-3 圖片資訊及快取同步

經過這一步,再往下一步走,就到了處理階段。

主要講究”刪繁就簡“,因為識別訊號燈與識別障礙物的要求不同。因為訊號燈既沒有很高的變化頻率,也因為對訊號燈的識別,主要在顏色變化。

所以,有些不重要的影象可以捨棄掉了。

2-1 糾正(確定準確的訊號燈邊界框)

預處理之後,機器會得到一張2D影象,被圈出了訊號燈的位置,但上文也說了,這個圈可能不準。

為了校準,機器畫了一個更大範圍的圈(絕不是盲目畫,有一些計算在裡面)。這個圈被叫做ROI(region of interest,興趣區域),也就是

黃色矩形圈

再之後,畫了興趣區域的2D影象,被放入卷積神經網路中做檢測,將會輸出一個結果。

自動駕駛汽車如何「看到」紅綠燈?

注意黃色框

2-2 識別(分辨訊號燈的顏色)

上文畫圈,只是為了確定訊號燈的位置。

到了識別這一階段,就要真正辨別訊號燈的顏色了,仍然用到了卷積神經網路。

2-3 修改(根據歷史時間順序修正顏色)

這一階段,主要對辨別顏色的結果,再做一次修正。

a、如果判斷出了紅和綠,結果很清楚,那就是紅燈、綠燈;

b、如果判斷出了黑,那就不一定了。因為有可能不湊巧,就在訊號燈閃爍的時候,恰好拍到了黑色的狀態,其實這個訊號燈並沒壞。

那該怎麼辦?按照歷史快取,看看之前的影象結果是怎樣的,要是”連續黑“,那訊號燈鐵定是壞了;

c、如果判斷出了黃,也值得細品。黃燈只出現在”綠燈變紅燈“的空隙中,但為了安全期間,直接以紅燈作為輸出結果;

Apollo識別紅綠燈的策略,大體上即是如此。

自動駕駛汽車如何「看到」紅綠燈?

總結:單車智慧識別紅綠燈,本質上就是在”猜“,靠不靠譜,就看猜的有多準。

車路協同,是把答案直接告訴所有車,此時亮的什麼燈,多久要變燈,一清二楚,該加速還是該減速,車輛會做出準確判斷。

車路協同有什麼問題嗎?太貴了,太仰仗國家投錢砸基建了。那個”三有原則“,有錢、有技術、有決心,缺一不可。

相關文章

頂部