VectorFlow:結合圖像和向量做交通占用和流預測
arXiv論文“VectorFlow: Combining Images and Vectors for Traffic Occupancy and Flow Prediction“,2022年8月9日,清華大學工作。
預測道路智體的未來行為是自主駕駛中的一項關鍵任務。雖然現有模型在預測智體未來行為方面取得了巨大成功,但有效預測多智體聯合一致的行為仍然是一個挑戰。最近,有人提出了occupancy flow fields(OFF)表示法,通過占用網格和流的組合來表示道路智體的聯合未來狀態,支持聯合一致的預測。
這項工作提出一種新的occupancy flow fields預測器,從光柵化交通圖像中學習特征的圖像編碼器,和捕獲連續智體軌跡和地圖狀態信息的向量編碼器,二者結合起來,生成準確的占用和流預測。在生成最終預測之前,兩個編碼特征由多個注意模塊融合。該模型在Waymo開放數據集占用和流預測挑戰(Occupancy and Flow Prediction Challenge)中排名第三,在遮擋占用率和預測任務(occluded occupancy and flow prediction task)中實現了最佳性能。
OFF表示(“Occupancy Flow Fields for Motion Forecasting in Autonomous Driving“,arXiv 2203.03875,3,2022)是一種時空網格,其中每個網格單元包括 i)任何智體占用單元的概率 和 ii)表示占用該單元智體運動的流。其提供了更好的效率和可擴展性,因為預測occupancy flow fields的計算復雜性與場景中道路智體的數量無關。
如圖是OFF框架圖。編碼器結構如下。第一級接收所有三種類型的輸入點,并用PointPillars啟發的編碼器進行處理。交通燈和道路點直接放置在網格中。智體在每個輸入時間步t的狀態編碼是,從每個智體BEV框內均勻采樣固定大小的點網格,并把這些點與相關智體狀態屬性(包括時間t的one-hot編碼)放置在網格。每個pillar為其包含的所有點輸出一個嵌入。解碼器結構如下。第二級接收每個pillar嵌入作為輸入,并生成每個網格單元占用和流預測。解碼器網絡基于EfficientNet,用EfficientNet作為主干來處理每個pillar嵌入得到特征映射(P2,…P7),其中Pi從輸入中下采樣2^i。然后用BiFPN網絡以雙向方式融合這些多尺度特征。然后,用最高分辨率特征映射P2在所有時間步回歸所有智體類K的占用和流預測。具體地,解碼器為每個網格單元輸出一個向量,同時預測占用和流。
針對本文,做以下問題設置:給定場景中交通智體1秒的歷史和場景上下文,如地圖坐標,目標是預測 i)未來觀察到的占用率,ii)未來遮擋的占用率,以及 iii)在一個場景中未來8個路點上所有車輛的未來流,其中每個路點覆蓋1秒的間隔。
將輸入處理為光柵化圖像和一組向量。為了獲得圖像,在給定觀察智體軌跡和地圖數據的情況下,相對于自動駕駛汽車(SDC)的局部坐標,在過去的每個時間步創建一個光柵化網格。為了獲得與光柵化圖像一致的向量化輸入,遵循相同的變換,相對于SDC的局部視圖,旋轉和移動輸入智體和地圖坐標。
編碼器包括兩部分:編碼光柵化表示的VGG-16模型,和編碼向量化表示的VectorNe模型。通過交叉注意模塊將向量化特征與VGG-16最后兩步的特征進行融合。通過FPN-式樣網絡,融合后的特征上采樣到原始分辨率,作為輸入的光柵化特征。
解碼器是單個2D卷積層,將編碼器輸出映射到occupancy flow fields預測,該預測包括一系列8網格圖,表示未來8秒內每個時間步的占用和流預測。
如圖所示:
用torchvision的標準VGG-16模型,作為光柵化編碼器,并遵循VectorNet(代碼https://github.com/Tsinghua-MARS-Lab/DenseTNT)的實現。VectorNet的輸入包括 i)一組形狀為B×Nr×9的道路元素向量,其中B是批處理大小,Nr=10000是道路元素向量的最大數,最后一個維度9表示每個向量和向量ID中兩個端點的位置(x,y)和方向(cosθ,sinθ);ii)一組形狀為B×1280×9的智體向量,包括場景中最多128個智體的向量,其中每個智體具有來自觀察位置的10個向量。
遵循VectorNet,首先根據每個交通元素的ID運行局部圖,然后在所有局部特征上運行全局圖,獲得形狀為B×128×N的向量化特征,其中N是交通元素的總數,包括道路元素和智體。通過MLP層將特征的大小進一步增加四倍,獲得最終的向量化特征V,其形狀為B×512×N,其特征大小與圖像特征的通道大小一致。
VGG每個級的輸出特征表示為{C1、C2、C3、C4、C5},相對于輸入圖像和512隱藏維,跨步長(strides)為{1、2、4、8、16}像素。通過交叉注意模塊將向量化特征V與形狀為B×512×16×16的光柵化圖像特征C5融合,獲得相同形狀的F5。交叉注意的query項是圖像特征C5,扁平為有256個令牌(tokens)的B×512×256形狀,Key和Value項是具有N個令牌的向量化特征V。
然后在通道維上連接F5和C5,通過兩個3×3卷積層,獲得形狀為B×512×16×16的P5。P5通過FPN風格的2×2上采樣模塊做上采樣并與C4(B×512×32x32)連接,生成和C4一樣形狀的U4。之后在V和U4之間執行另一輪融合,遵循相同的程序,包括交叉注意,獲得P4(B×512×32×32)。最后,P4由FPN式樣網絡逐漸上采樣,并與{C3,C2,C1}連接,生成形狀為B×512×256×256的EP1。將P1通過兩個3×3 卷積層,獲得形狀為B×128×256的最終輸出特征。
解碼器是單個2D卷積層,輸入通道大小為128,輸出通道大小為32(8個路點×4個輸出維度)。
結果如下: