1. 程式人生 > 其它 >Apollo自動駕駛入門課程第⑥講 — 預測

Apollo自動駕駛入門課程第⑥講 — 預測

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之間,物體的行進軌跡有無限的可能。

如何預測最有可能的軌跡?可以先通過設定約束條件來去除大部分候選軌跡,首先假定汽車將與目標車道的中心對齊,繼續去除車輛無法實際執行的軌跡。通過考慮車輛當前的速度和加速度從剩餘的軌跡中進行選擇,實際上我們並沒有實際列出所有可能的軌跡並逐一去除它們。

相反只是在數學理論上來應用這一想法,注意車輛在兩點的位置和方位,這兩個姿勢表示運動模型的初始狀態和最終狀態,可以使用這兩個條件來擬合一個多項式模型,在大多數情況下這種多項式足以進行預測。