
本文介紹百度無人車的視覺定位技術,做視覺定位技術上首先要搞清楚一個問題,駕駛員開車過程中怎麼判斷車輛位置。
(駕駛員駕車過程中用來判斷車輛位置的資訊有哪些?
Gps,車道線,路肩,護欄,交通标志牌,路燈…
除gps外,其他元素都靠人眼辨識,而無人車也有一個與一個與人眼高度一緻的傳感器:攝像頭,我們稱圖像中的車道線,路燈等人為定義物體為語義特征(semantic features))
我們在前面介紹了,我們有一個初始gps定位,然後我們有車道線,我們能看到路間有護欄,再加上人本身是一個智能體,人知道怎麼去開。攝像頭和人很相似的一點,攝像頭和人眼睛很相似,眼睛和雷射雷達相差很大,我們看到的東西是這樣的,我們定位的時候會選擇一些sematic的 feature去定位。
(視覺定位是通過圖像中具有語義資訊的穩定特征,并與地圖比對來獲得車輛的位置和朝向)
在視覺定位裡,也是輸出xyz和yaw,也就是位置和朝向,視覺定位的特點,攝像頭技術很成熟,而且它非常小,成本非常低,是以很多開發者就可以用攝像頭去做無人駕駛,而沒有必要去買很貴的雷射雷達。道路元素包括車道線以及路燈元素,他的穩定性非常高
(總結視覺定位的特點:
攝像頭技術成熟,結構化地圖尺寸很小,有利于降低系統生産成本;車道線,路燈等道路元素穩定性高,不易變動,地圖生命周期較長;配置靈活,感覺識别算法性能,可以使用不用的特征組合,易于拓展)
你把這些測出來,他的可重檢率非常高,就說你這次路過它檢測出來了,下次他也能檢測出來,它不像自然特征,比如說sift特征或者别的特征,這些重檢率非常低,它還有個特點配置很靈活,意思是你可以随便放在車頭,車尾很好做,可以放在車裡面,車外面它要求沒那麼高,下面我們給出一個視覺定位算法的一個流程圖:
我們先做圖像特征的檢測,圖像檢測會做車道線以杆狀物的檢測,然後從3d地圖裡,提取當時地圖裡面有那些元素,比如車道線的分布,我們通過gps給出一個初始的位置,告訴你去錄那塊地圖,它會做一次特征的比對,用imu去做它的pos的預測,給出一個還不錯的pose,做完預測後,比對完,我們把結果輸出,定位資料相對于地圖的位置和朝向就知道了。把它在輸出給融合定位,這就是視覺定位的流程。
它主要包含三部分,一個是3d特征地圖的離線生成,一個是圖像特征的檢測,最後是資料整合的輸出。
(一.3d特征地圖離線生成,是基于視覺的全局定位算法基礎。
二.圖像特征檢測以及比對上定位算法的核心,imu和輪速計資訊在這個環節用于估計車輛運動。
三.最後的資料融合可以将gps,視覺定位和imu資料整合,優化定位結果,并提供高頻輸出。)
我們先看3d特征地圖的生成,這裡給出兩個地圖:
分别是2d和3d地圖,2d地圖我們前面講過的定位地圖,把資料壓在地上去,然後通過它來把道路元素,比如車道線,停止線标注出來,也就聲稱了我們右邊的圖:
3d地圖是點雲拼到一塊了,我們用deep learning的方式,會檢測出路燈的杆,這些杆我們隻用數值的部分,把數值當做特征放在定位地圖裡,是以世界定位地圖有兩種元素,一種是地面上的标線,一種是路邊杆狀物,組成了我們定位的元素。
視覺定位的第二部分是線上特征檢測,這種檢測,檢測兩種元素,一種是車道線,一種是杆狀物,這部分是工作是百度感覺團隊做的,
(我們後續會學習),視覺定位核心的就是特征如何去比對,可以想象一個場景,如果我們在路上跑,我們隻能攝像頭朝前,隻能看到一個車道,我們就隻能看到車道線,怎麼比對到正确的裡面,用相對定位的方式很容易就錯了,但是用絕對定位,再加上杆狀物,包括imu給你的位置,你就不會跑到錯的裡面。這裡有個問題,前面提到過線段比對,他沒有descriptor的概念,沒有描述的概念,當你有一些線段描述字利用很多線段組合的樣子的描述字,對于車道線來講,非常難做到有這種獨立特征線段的特征描述,是以我們用的比對方式是兩條線段之間,如3d地圖投到2d圖像裡去做比對,兩個線段之間比對的話,會把一個線段投影到另一個線段上面,去計算他們的重合度,還有線段之間端點的距離,做它比對度量,如果沒有這種特征比對的概念,你很難優化架構去做這種比對,是以我們用粒子濾波的方式,撒很多的點,告訴你很多的位姿,然後你用位姿去投影,然後去計算比對度,這裡給出一個例子,下面是可視化的示例:
裡面給出了預測的位姿和定位的位姿,右邊兩個圖表示輸出的誤差,可以看出隻是比對,輸出的誤差很毛疵的,加上imu平滑之後,他的誤差曲線變得比較平滑,下面給出一個精度。
上圖是一個對比的軌迹圖,可以看到在某一個地方他是紅的,可能誤差稍微大點,下面是統計的誤差:
基本上橫向的誤差保證在10厘米以内,但是縱向的誤差有時候很大,幾十厘米,尤其是在高速上去測試,有幾十厘米的誤差,因為測試結果當時還沒有标出杆狀物,有了杆狀物就會好很多,航向角的誤差基本上是0.3度左右。
本文是百度自動駕駛系列學習筆記:
飄哥:百度自動駕駛概述以及apollo開源子產品zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(1)第一節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(1)第二節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(1)第三節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(2)第一節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(2)第二節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(3)第一節zhuanlan.zhihu.com
飄哥:自動駕駛概述及Apollo開源子產品(3)第二節zhuanlan.zhihu.com
飄哥:自動駕駛硬體系統及開發平台介紹(1)第一節zhuanlan.zhihu.com
飄哥:自動駕駛硬體系統及開發平台介紹(1)第二節zhuanlan.zhihu.com
飄哥:自動駕駛硬體系統及開發平台介紹(1)第三節zhuanlan.zhihu.com
飄哥:自動駕駛硬體系統及開發平台介紹(2)第一節zhuanlan.zhihu.com
飄哥:自動駕駛硬體系統及開發平台介紹(2)第二節zhuanlan.zhihu.com
飄哥:無人車車輛自定位技術入門與應用 第一節zhuanlan.zhihu.com
飄哥:百度無人駕駛工程師:為什麼無人車需要一個精确的定位系統?zhuanlan.zhihu.com
飄哥:無人駕駛中基于電子信号,航迹推算,環境特征比對的定位方法zhuanlan.zhihu.com
飄哥:無人駕駛自定位慣性導航zhuanlan.zhihu.com
飄哥:無人駕駛中的三維幾何變換zhuanlan.zhihu.com
飄哥:無人駕駛中用到的八大坐标系zhuanlan.zhihu.com
飄哥:百度無人車三大系列傳感器配置方案zhuanlan.zhihu.com
飄哥:百度無人車用到的gnss定位技術以及挑戰zhuanlan.zhihu.com
飄哥:百度無人車de雷射點雲定位算法架構zhuanlan.zhihu.com