进阶无人驾驶—百度Apollo高精度地图
課程簡介
課程介紹高精度地圖的定義,其在無人駕駛各個模塊的作用、高精度地圖的采集與生產以及Apollo高精度地圖的相關知識。
今天主要給大家分享百度L4車使用的高精度地圖一些知識,我也想換個總結方法,以便讓大家不會覺得枯燥。
一、高精度地圖的采集與生產
首先我們看到高精度地圖產生的環境便是半自動或全自動駕駛領域,這是必然的現象。可以看到上面的數字便是車輛的級別當然L5級別的車輛離我們還很遙遠,但我們會朝著它的方向,不斷前行。
1.什么是高精度地圖?
| HAD Map 高度自動駕駛地圖 |
| 高精度地圖最顯著的特點1:表征路面的基準全面性 |
| 2高精度地圖要求更高的實時性 |
| 3高精度地圖=自動駕駛地圖 |
2.高精度地圖與導航地圖
現如今的地圖都是將街道組成一個個有向圖,以便使用者能清晰明了的觀察到信息,提供很好的方向引導,例如百度地圖和高德地圖。
當然如果對于自動駕駛汽車只標識這些信息,顯然不夠。必須將標識牌、紅綠燈,,,等很多信息標注在高精度地圖上,以便讓汽車更加清楚地了解當前的道路情況。
3.高精度地圖于模塊的關系
可以看到,上圖為高精度地圖的大腦,大腦支配調度各個模塊的運作,相當于地圖是一切行為的基礎。
上圖便是現在百度主流的方案,關于定位于地圖的利用之間的關系,很密切。
4.地圖與模塊的關系
可以 看到左側是利用粒子濾波,它通過提取周圍環境的特征(電線桿、樹,,),通過這個特征,來判斷當前位置,當然給一個特征顯然不夠,所以會在下一時刻找到另一個特征來增大定位準確度的概率。
右側是基于車道線的匹配過程,通過Camera實時檢測車道線,再經過提取車道線后的特征匹配,以達到吻合的結果。
5.地圖與規劃、預測、決策
我們無人車在規劃路線時;
會有長距離規劃:和人一樣的規劃方式,例如你從A到B,在地圖上找到你要走的路線,去完成這條路線的路程。
短距離規劃:根據實時的環境變化,去做一些局部的規劃,目標很明確,但是路線會隨時改變。
當然在車輛行駛時,你必須要能預測路上車輛和行人的變化,從而做出相應的動作,這就是導致規劃方案不斷變化的動態因素,但是這兩者結合起來的話,就會給決策一個明確的數據,這時候就需要決策做出相應的方案了。
6.高精度地圖與安全模塊
安全有很多維度,不僅是對外部的描述,也有自身算法的穩定性等因素,會對汽車的安全造成影響,所以我們必須在安全方面狠下手來,把好關。因為我們最終的受益群體就是人類,必須對人類的安全負責任。
7.高精度地圖與仿真系統
當然,仿真系統也是也是一個很重要的模塊。因為一個產品的研發過程,會有很多改進的地方,如果每次都研發成成品,那費用高到離譜,所以我們必須把這種測試放到仿真系統中,才會降低時間和成本的消耗。
沒有高精度地圖,高可靠性的L3/L4自動駕駛無法落地
地圖的作用-靜態的Perception
把人類對于世界的感知和理解賦予自動駕駛系統。
當然在對各種環境進行研究時發現,有一些環境下根本用現如今的設備和算法不能實現的。
一、重慶交通
當然這是一個還算能看懂的交通,對于汽車來說,簡直是要了老命,必須使用更優的設備和算法才能走在這樣一個錯綜復雜的交通網中,還不會迷路。
二、雪天
根本無法使用雷達和攝像頭對這種環境做出任何反應,就像一個雪盲癥患者一樣被拋到這樣的環境下,只能依靠不精確的GPS撞出去。俗話說,闖出一片天地,應該就是說無人車在雪天的情況吧。
三、紅綠燈
你以為是國內那些簡簡單單的紅綠燈嗎?你錯了,這種紅綠燈,人都要暈,更別說車,不信你看:
這是啥?簡直就是星際迷航的太空紅綠燈,負責調度各個星球的軌跡,以防發生碰撞。所以對于無人車來說,這樣的幾種特殊的環境下,還需要更進一步的研究,才能成為真正的L5級別。
高精度地圖的作用—彌補系統性缺陷
關于Uber車禍的事件,我們加強了情況的研究和總結,得出的結論就是海量數據的傳輸速度在4G的速度下,不滿足云端數據的傳輸需要,所以我們需要將5G網絡嫁接到無人車的模塊上,從而實現數據的實時檢測,反饋給無人車。
二、高精度地圖的采集與生產
1.高精度地圖的采集與生產也是一個很復雜的過程,需要基于很多的算法來實現地圖的生產,所以我們就開始慢慢的學習它的采集與生產的過程如下:
第一個就是需要通過多顆衛星,比如三顆衛星按理說就能定位到地球任何一點的位置,但是因為衛星定位存在一定的誤差,不論是環境或者其他因素造成的,但都會有一些誤差,所以我們必須使用四顆以上的衛星對其進行定位,以便達到精確定位的目的。
第二個就是IMU設備,當然它可以通過對車輛的加速度檢測等物理性質檢測,得到精確數據,傳輸給計算機,通過算法能強化高精度地圖的定位精度,當時它會隨著時間的推移而增大誤差。
2.采集傳感器的研究,它的主要設備如下所示:
我們看到可以通過車輛轉動的數,來計算發現距離,這也是一個好辦法,因為只要車輛不突然剎車導致車輪抱死滑動,一般都能通過車輪的圈數來判斷距離。
另一個便是我們常常講到的激光雷達,它的精度隨著波長的改變而不斷變化,但是它對于檢測物體的坐標換算后能得到全局坐標的精確數據,很是有用。
3.地圖生產-計算模型
我們知道單個設備對于信息的處理精度有很大的不足之處,于是我們便想到了將數據融合起來,經過融合的處理后,便能得到誤差較小的數據,交由計算機處理。
下面提到一個公式:
J=Q(z-h(m,x))該公式是一個高度簡化的高精度地圖計算模型,Q代表優化方程,z代表激光雷達掃描出來的點,h為方程預測最新的掃描點的位置,m為掃描到的點在地圖中的位置,x代表無人車當前的位置。
這個方程的目的是通過最小化J求出測量點在地圖中的準確位置。
4.視覺制圖
我們現在主流的制圖方案有兩種一種是基于激光雷達(LiDAR),一種是基于視覺相機(Camera)。
于是我們得到下面的方案:
| 激光雷達 | 信息準確,但是信息較少,不夠豐富 |
| 相機視覺 | 色彩豐富,信息量大,但是處理起來不準確 |
| LiDAR+Camera | 結合兩者的優點,信息量豐富且準確 |
當然在制圖的過程中還使用了點云來增加高精度地圖的精度。
三、高精度地圖的格式規范
1.格式規范-NDS
現如今全球比較通用的規范就兩種,一種NDS,另一種OpenDRIVE。
NDS:規范的內容比較多,有一百多頁,算是比較全面,包含的技術公司也會比較多。當然也會導致它實現起來比較復雜。
OpenDRIVE:是由德國一家公司制定,會對道路section、line和路口進行了規則的制定,現在聽起來還是比較復雜,詳細知識可以了解該方案。
四、業界高精度地圖產品—1
上圖是一個HERE HD地圖的生產方式,通過一系列的采集于處理后,便可以得到最終可供使用的高精度地圖,當然制圖過程必須合法,在法律允許的范圍內。
當然在HERE的信息采集時,通過一輛采集車,頭頂一個16線的激光雷達,在街道行駛,以采集實時的數據。當然高精度地圖的實時性導致了車輛必須不斷的更新地圖數據,以便保持信息的可用性。
Map-learing通過深度學習對道路特征的提取,采用的設備是激光雷達,這種設備采集的數據可靠性極強,有很大的實用性。
當然現在對于圖形處理都是利用深度學習,因為其具有很高的準確度,再加上點云的處理就可以得到最終的精密地圖。
如圖的地圖生產過程有圖左側所示的特點,百度Apollo也在對地圖的制作過程中學習其他商家的優秀之處。
MobileEye
當然了MobileEye是一家很有名的公司,它很早就開始做輔助駕駛,現在也開始做自動駕駛。
可以看到,因為MobileEye被intel收購了,所以就把它的圖標也加了進去,不過也很好看是吧。
當然能被intel收購,說明其技術還是比較雄厚,它與很多車廠都有合作,據說生產出來的車都有兩千多萬輛,可見實力很是強大。
第一個是感知,第二個是地圖,第三個是driving的一些策略。
當然MobileEye在圖像制圖領域的實力是超強的,想想它的名字就能知道它的研發側重點在哪里。
我們就對其制圖方面進行研究和學習如下所示:
右側汽車行駛時,有一個真實的場景圖,最右側是google 實況的地圖,它會利用一根虛線,如圖所示的綠線作為引導線,指引汽車的行進路線。
之所以汽車很難實施,有很大原因的信息量過大,無法實時傳輸的結果,也是我們務必突破的重要點。
Google Waymo
Google在對無人車行駛過程中,運用無人車基于高精度地圖的靜態信息和感知器對環境的動態感知融合兩者,以便更好的利用信息。這也是目前大多數無人車研發者都會采用的模式。
地圖包含的信息量很多,也很有用,例如對于紅綠燈標識,減速區標識或者停車點進行標識,但是地圖的信息畢竟是矢量圖,所以谷歌在一篇文章提到地圖通過靜態的環境信息,這就同傳統的高精度地圖不同了。
這種高精度地圖就很類似于柵格版的高精度地圖,每個格里面都記錄了所有的道路上一些物體的高度啊等更詳細的信息。它也可以做一些過濾,讓我們在對靜態物體和動態物體的識別上減少了很大的計算量。
五、業界的高精度地圖產品-2
上面也講到了很多公司的優秀產品,下面我們做一些補充,再將一些優秀的產品和公司做一個簡單介紹。
TomTom
該公司也是相對來說比較老的廠商了,它也主要是對地圖等方面做文章,例如對標識的識別,基于激光雷達的物體處理等,主要也是基于激光雷達設備和神經網絡算法對圖像進行識別。
就是說我們把這個地圖出來的結果然后下發到終端上,這是一個數據更新的過程。它能做到數據于云端的實時更新,這也是行業的一個很厲害的地方。
它會把環境的特征利用點云做出模擬的環境,以便在駕駛過程中,汽車行駛的道路能夠用計算機實時處理,提高了計算能力。
六、Apollo地圖采集方法
首先我們先來看看Apollo汽車的采集設備如下所示:
配備的設備及功能如下:
| 64線激光雷達 | 采集路面信息 |
| 16線激光雷達 | 紅綠燈或者高架信息 |
| GPS | 基于基站,利用RTK方式精確定位 |
| IMU | 檢測和記錄汽車行駛時的加速度,提供相關信息 |
| 長短焦 | 周圍圖像環境的采集 |
當然也會利用對傳感器的正常工作進行檢測,以確保采集工作的正常運行。所以阿波羅也提供了一鍵式安裝方案,確保各個設備能正常工作的同時,也能數據一致,不會出現偏差。
基站搭建
為了提高定位的精度,外面也會采用基站搭建的方式。通過RTK差分數據來矯正誤差值,為地圖數據提供全局的坐標信息。
當然基站建設時需要在比較寬廣平坦的地方,這樣才能不斷的觀察衛星位置。一旦汽車與基站之間有遮擋物,當然是那種讓信號很難逾越的物體時,就很難保證其實用性了。
采集流程
在采集之前,先檢測設備能正常運行的標定,這樣設備就可以開始進行采集工作了。當然在采集過程需要注意的一點就是雙向車道覆蓋三到五遍,目的也是為了能夠達到一個較好的結果。
當然采集過程中,車速也不能太快,最好保持在六十邁以內就是很好的效果了。
然后我們會將地圖信息打包壓縮,這樣就能將信息傳輸和共享,以便我們使用或者開發者共同使用了。
七、Apollo地圖生產技術
我們主要分享在城市道路中如何生產地圖。
數據采集:前面我們已經講過了,采集數據時使用什么樣的設備,經過什么樣的流程等;
數據處理:數據大致分為點云和圖像,因為L4級別的地圖對精度要求比較高,所以主要是以點云為主。拿到點云后會對點云進行拼接,讓數據具有可用性,這是對點云的處理。接下來我們會將點云壓縮成圖像,因為點云的精度很高,所以基于這樣的圖像作圖像識別的精度也很高,這就是圖像處理過程;
元素識別:我們大豆基于深度學習對元素進行識別和分類。但是如果沒有車道線這種情況的話,車很難處理這種行為,所以如何對人離線的情況車又無法處理的情況我們需要更多的算法保證;
人工驗證:就是在對汽車處理車道線或者紅綠燈等邏輯上加入人的思維。例如車右轉時,我們應該看哪個紅綠燈等關聯處理。
接下來我們學習當64線雷達感知到的點云圖數據,如何利用起來進行數據融合加工的處理,拼接到一個完整的圖。
接著是基于深度學習的要素識別。
在對要素識別是,很重要的方法是通過對點云數據的特征提取,因為點云的信息比較準確。例如從其中提取車道線或者路燈等。
接著我們學習人工生產驗證的技術,左側黑白圖像是發射后的環境信息,融合處理成為右側花花綠綠的高精度地圖數據。
成果
在經過了上述的步驟制作后,我們就會得到一個定位地圖、高精度動態圖、路徑規劃地圖和仿真地圖。
當然路徑規劃地圖和仿真地圖都是基于定位地圖和高精度地圖制作的。
八、Apollo高精度地圖
可以看到百度地圖的數據元素也是很多的,這也是為了滿足不同的復雜環境和駕駛需求。
其中最重要的是邏輯關系元素,其它的暫且不講。
邏輯關系:就是把兩個關系不是嵌入到各個元素中去,而是通過一個額外元素把這個兩個元素關聯起來。
這是我們的車道線模型,也是和OpenDRIVE的規則大致相同。
Apollo內部還是采用這種UTM的坐標系,該坐標系類似于把全球分成60個Zone,每個Zone的中心建立一個局部坐標系。它是一個比較復雜的系統,因為要把全球坐標系的每個位置都描述的非常精確。
我們基于的地圖不僅僅是這一種坐標系,還有兩種,當然想要更深入的了解,可以在下一步的學習中進行系統學習。
OpenDrive規范
規范的目的就是將所有的而東西做一個歸類。例如我們會把地面上的所有標識歸屬為Objects,把標牌歸屬為Signal。
上圖是我們Apollo對于規范的一些改進地方,詳細地方可以詳細查看。
HDMap
可以看到高精度地圖的整個運行過程也是較為繁瑣復雜的。
可以看到對于我們國家來說,高精度地圖是一個非常機密的東西,并不是什么人都能來測繪。所以在我們國家不是所有廠商都能采集地圖,只要取得國家測繪部門的許可后,才能對數據進行采集。
當然百度擁有采集數據的資格,但是在采集數據對于我們來說仍然面對著測繪政策的挑戰。
可以看到百度現在已經覆蓋了全國所有的高速公路,還有一些國道和省道,也預計下一步會覆蓋所有的國道和大部分省道。
本次課程就到此結束了,謝謝大家看完了這么多繁瑣的文字和圖片。
總結
以上是生活随笔為你收集整理的进阶无人驾驶—百度Apollo高精度地图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python批量下载抖音无水印视频,附软
- 下一篇: T3/T6 出纳 年结及反年结操作