Apollo自动驾驶入门课程第⑥讲 — 预测
目錄
1. 簡介
2. 不同的預測方式
3. 基于車道序列的預測
4. 障礙物狀態
5. 預測目標車道
6. 遞歸神經網絡
7. 遞歸神經網絡在目標車道預測的應用
8. 軌跡生成
本文轉自微信公眾號:Apollo開發者社區?原創:濤濤CV?Apollo開發者社區?9月6日
上一篇文章中,我們發布了無人駕駛技術的?感知篇 (下),講解了感知模塊的余下內容。越多的開發者了解學習并掌握Apollo,Apollo就會越簡單,可依靠。希望更多的開發者加入Apollo社區,與更多優秀開發者溝通交流。
本期我們將介紹預測模塊的相關知識,深度學習無人駕駛感知的剩余內容。希望各位開發者在學習同時能夠做好筆記,在Apollo社區中參與討論,對相關問題發表自己的見解。
視頻鏈接為:Apollo自動駕駛入門課程Sebastian預測_騰訊視頻
1. 簡介
無人車是在許多物體間穿梭行駛,其中許多物體本身就是一直在移動的,比如像其他汽車、自行車、行人。無人車需要預測這些物體的行為,這樣才能確保做出最佳決策。在環境中為所有其他的物體做出預測,這些共同形成了在一段時間內的預測路徑,在每一個時間段內會為每一輛汽車重新計算預測他們新生成的路徑,這些預測路徑為無人車在規劃階段做出決策提供了必要信息。
預測路徑有實時性的要求,實時性是指算法的延遲越短越好,一輛車如果是 60 千米/小時速度,那么它在每0.25 秒會行駛 5 米,所以需要確保無人車在行駛之前,前方5 米沒有任何障礙物并且可以安全地穿行。
下一個目標是準確性。如果預測出相鄰多車道的汽車想并入我們的車道,我們需要減速。而另一種情況是如果預測它會保持在自己的車道上行駛,我們需要做出的預測盡可能保持準確,這樣才能幫助我們無人車做出很好的決策。
預測模塊也應該能夠學習新的行為,當路上有很多車輛,情況將變得復雜。開發出每種場景的靜態模型是不可能完成的任務,所以預測模塊能夠學習新的行為,用這種方式可以使用多源的數據進行訓練,使算法隨著時間的推移而提升預測能力。
CNN根據其任務查找真正需要的特征,任務可能是圖像檢測、分類、分割、其他類型的目標。
2. 不同的預測方式
我們將介紹兩種不同的預測方式,分別基于模型的預測與數據驅動預測。
假設無人車來到一個T型路口并且看到一輛車從左面行駛而來,此時還不清楚這輛車是要右轉還是直行,用基于模型的方法可以為此場景構建了兩個候選的預測模型。一個模型描述了進行右轉彎,用綠色軌跡表示,另一個模型描述了繼續直行,用藍色軌道表示。認為任意一種模式發生的概率都是相同的,所以有兩個候選模型,每個模型都有自己的軌跡。繼續觀察移動車的運動,看它與哪一條軌跡更加匹配,如果看到車輛開始向左改變車道,我們會更加確信車輛最終會直行另一方面如果看到車在右轉彎車道保持前行,我們會更加傾向于預測對車輛右轉,這就是基于模型預測方法的工作原理。
數據驅動預測使用機器學習算法,通過觀察結果來訓練模型,可以在現實世界中利用此模型去做出預測。數據驅動方法的優點是訓練數據越多,模型效果越好。基于模型的方法的優點在于它的直觀,并且結合了現有的物理知識以及交通法規還有人類行為多方面知識。
3. 基于車道序列的預測
Apollo?提供了一種叫基于車道序列的方法,為了建立車道序列,首先將道路分成多個部分,每一部分都覆蓋了一個易于描述車輛運動的區域。比如如圖是一個部分區域的十字路口。為了預測,我們更關心車輛如何在這些區域內轉換,而不是在某個區域內的具體行為。可以將車輛的行為劃分為一組有限的模式組合并將這些模式組合描述為車道序列,例如直行汽車的運動可以描述為車道序列是 0-1-3-7。
4. 障礙物狀態
無了預測物體的運動也需要知道物體的狀態,當我們行駛時,通過觀察一個物體的朝向、位置、速度、加速度來預測它將會做什么。
這同樣是一輛無人駕駛汽車如何觀察物體的狀態,除了位置、速度、朝向、加速度之外,無人車還需考慮車道段內物體的位置。例如預測模塊會考慮從物體到車道線段邊界的縱向和橫向距離,還包含之前時間間隔的狀態信息以便做出更準確的預測。
5. 預測目標車道
使用車道序列框架的目標是為道路上的物體生成軌跡。先從一個稍微簡單的問題開始,會預測車道線段之間的過渡。假設在車道段0中檢測到一輛車,并且會預測在接下來的幾個時間段中它將如何行駛,它可能停留在車道段0然后向右轉或者可能轉向車道段1然后直行,我們已經將預測問題簡化為選擇問題。
現在所要做的就是選擇車輛最有可能采取的車道順序,可以通過計算每個車道序列的概率來進行選擇。將車輛狀態和車道段作為輸入,該模型用于提供車輛可能采用每個車道序列的概率,希望模型能夠學習新的行為因此應該使用觀測數據對模型進行經驗性訓練,在訓練中將真實的車輛行為提供給模型,不僅包括車道段和對象的狀態,還包括對象最終選擇哪條車道序列。隨著記錄隨著時間的增加,模型可以自我迭代更新,精確度不斷提升。每個記錄將由觀察對象跟隨的車道段序列和對象的相關狀態組成,在每個時間點,對象占用一段并具有特定的狀態,整個記錄由一系列車道段和對象的相關狀態組成。
6. 遞歸神經網絡
遞歸神經網絡RNN是一種利用時間序列數據特征的一種預測方法。
神經網絡是可訓練的多層模型,從輸入提取高級特征并使用這些特征來計算得到輸出。神經網絡有許多結構,一個基本的神經網絡首先得到輸入,然后將數據通過隱藏層,然后經過處理得到輸出,這種結果有時被稱作多層感知網絡MLP。
在訓練的過程中會有很多訓練數據輸入模型,每一個數據都由原始的數據和對應的標簽組成,例如輸入數據是一張圖片,而標簽就是一個包含汽車的符號或者是其他符號。神經網絡從數據中學習的方式叫做后向傳播,首先神經網絡得到輸入并產生輸出,然后計算機比較輸出與真值之間的誤差。
接著這種誤差通過后向傳回到整個網絡,中間的隱藏層根據觀察到的這種差別調整其中的中間值或者叫權重,這樣可以在未來提高神經網絡的準確率。
建立像這樣的多重結構的遞歸神經網絡稱之為?MLP單元,從數據序列中提取出高級特征,每個MLP單元將序列的一個元素作為輸入并預測序列的下一個元素作為輸出。為了對元素之間的順序關系建立模型,在每個單元之間建立一個額外的連接,這意味著每個單元根據原始輸入和前一個單元的輸出進行預測,這 RNN的基本結構。
7. 遞歸神經網絡在目標車道預測的應用
Apollo使用RNN建立一個模型來預測車輛的目標車道,為車道序列提供一個RNN模型,為相關對象狀態提供另一個RNN模型。連接這兩個RNN的輸出并將它們饋送到另一個神經網絡,該神經網絡會估計每個車道序列的概率,具有最高概率的車道序列是我們預測目標車輛將遵循的序列。為了訓練這個網絡,使用現有的記錄,每條記錄都包含一個車道序列、相關的對象狀態、一個標簽,用于指示對象是否遵循此特定車道序列。在訓練中,比較網絡輸出和真值標記并使用反向傳播來訓練網絡。
8. 軌跡生成
軌跡生成是預測的最后一步,一旦我們預測到物體的車道序列,就可以預測物體的軌跡。在任何兩點A和B之間,物體的行進軌跡有無限的可能。
如何預測最有可能的軌跡?可以先通過設置約束條件來去除大部分候選軌跡,首先假定汽車將與目標車道的中心對齊,繼續去除車輛無法實際執行的軌跡。通過考慮車輛當前的速度和加速度從剩余的軌跡中進行選擇,實際上我們并沒有實際列出所有可能的軌跡并逐一去除它們。
相反只是在數學理論上來應用這一想法,注意車輛在兩點的位置和方位,這兩個姿勢表示運動模型的初始狀態和最終狀態,可以使用這兩個條件來擬合一個多項式模型,在大多數情況下這種多項式足以進行預測。
更多詳細課程內容,大家可以登陸官網繼續學習!
也可以添加社區小助手(Apollodev)為好友,回復“課程學習”進群與其他開發者共同交流學習。 ?
自課程上線以來,瀏覽量已超10萬,已幫助全球97個國家約 7000 名學員入門自動駕駛與 Apollo 開源平臺,其中37%為海外學員,本門課程已成為優達學城 (Udacity) 近期獲得關注度最高的免費課程之一。
總結
以上是生活随笔為你收集整理的Apollo自动驾驶入门课程第⑥讲 — 预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器不显示u盘,服务器不读u盘启动
- 下一篇: Coursera自动驾驶课程第8讲:Ba