PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting

Learning Lane Graph Representations for Motion Forecasting

    • 1.ActorNet
    • 2.MapNet
    • 3.FusionNet
    • 4.Prediction Header
    • 5.模型參數學習

自動駕駛論文閱讀筆記2
Uber–ECCV2020–論文文章代碼

模型的作用:Motion Forecasting (這個motion都包括什么呢?
方法:模型由四個模塊組成–ActorNet、MapNet、FusionNet、Header

1.ActorNet

作用–編碼actor軌跡特征

  1. 輸入:每一條actor的軌跡(3xT的輸入向量)(actor包括所有運動者?)
  2. 操作:1D CNN + FPN(特征金字塔)(多尺度不斷上采樣融合特征)
  3. 輸出:該軌跡的特征向量(多少維度呢?128維度么)

軌跡表示–位移差
{Δp?(T?1),...,Δp?1,Δp0}\{\Delta p_{-(T-1)},...,\Delta p_{-1},\Delta p_{0}\}{Δp?(T?1)?,...,Δp?1?,Δp0?}

Δpt=(xt,yt)?(xt?1,yt?1)\Delta p_{t} = (x_t,y_t)-(x_{t-1},y_{t-1})Δpt?=(xt?,yt?)?(xt?1?,yt?1?)

長度為T,不足T的padding 0,下面2xT的位移向量 拼接 1xT的padding標志向量(1-表示該位置的位移是padding的)

ActorNet–3組1D卷積,每組包括兩個殘差塊;特征金字塔融合多尺度的特征(卷積 卷下去,上采樣,再和對應的尺度疊加)

輸出-- The output of ActorNet is a temporal feature map,whose element at t = 0 is used as the actor feature.(不是很清楚這個時間序列是怎么回事?

2.MapNet

作用–編碼地圖特征,主要是對車道的編碼

  1. 構建lane graph(結點與連接的定義)
  2. 利用LaneGCN獲取lane圖的特征

2.1 構建lane Graph

  1. lane node --車道中心線的一段,結點位置為兩端結點坐標的均值。==一條車?所有?==道線上的眾多結點可以表示為向量V∈RN×2V\in\mathbb{R}^{N\times 2}VRN×2(結點的二維特征表示)
  2. 車道結點特征向量帶有4個連接矩陣{Ai}i∈{pre,suc,left,right}\{A_i\}_{i\in \{pre,suc,left,right\}}{Ai?}i{pre,suc,left,right}?,Ai∈RN×NA_i\in\mathbb{R}^{N\times N}Ai?RN×N, Ai,jk=1A_{i,jk}=1Ai,jk?=1表示結點jjj 存在一個類型iii的鄰居結點kkk
  3. LaneConv Operator
    a). lane node 特征xix_ixi?–編碼形狀(長度方向),位置(空間坐標)信息,經過全聯接層處理后,輸出lane node特征xix_ixi?;構成結點特征矩陣XXX
    xi=MLPshape(viend?vistart)+MLPloc(vi)x_i=MLP_{shape}(v_i^{end}-v_i^{start})+MLP_{loc}(v_i)xi?=MLPshape?(viend??vistart?)+MLPloc?(vi?)
    b).LaneConv 為了獲得lane graph大規模拓撲信息(四個AiA_iAi?矩陣都用上)
    Y=XW0+∑i∈{pre,suc,left,right}AiXWiY=XW_0+\sum_{i\in\{pre,suc,left,right\}}A_iXW_iY=XW0?+i{pre,suc,left,right}?Ai?XWi?
    c).Dilated LaneConv 為了讓模型獲得車道線方向的長時依賴關系(速度快的物體位移大,只用到ApreA_{pre}Apre?AsucA_{suc}Asuc?)
    Y=XW0+AprekXWpre,k+AsuckXWsuc,kY=XW_0 + A^k_{pre}XW_{pre,k} + A^k_{suc}XW_{suc,k}Y=XW0?+Aprek?XWpre,k?+Asuck?XWsuc,k?
    d). LaneConv(k1,...,kc)LaneConv(k_1,...,k_c)LaneConv(k1?,...,kc?)=Dilated LaneConv + LaneConv - kck_ckc?為第ccc個dilation 尺寸
    Y=XW0+∑i∈{left,right}AiXWi+∑c=1C(AprekcXWpre,kc+AsuckcXWsuc,kc)Y=XW_0+\sum_{i\in\{left,right\}}A_iXW_i + \sum_{c=1}^C(A^{k_c}_{pre}XW_{pre,k_c}+A^{k_c}_{suc}XW_{suc,k_c})Y=XW0?+i{left,right}?Ai?XWi?+c=1C?(Aprekc??XWpre,kc??+Asuckc??XWsuc,kc??)

2.2 LaneGCN操作
LaneConv(k1,...,kc)LaneConv(k_1,...,k_c)LaneConv(k1?,...,kc?) + Linear Layer 構成殘差塊, 4個殘差塊堆疊,構成LaneGCN。

注意點:
每個結點與鄰居結點的連接關系,指明前后左右的結點。
a). 結點A的前驅結點、后續結點:同一條車道線上,能夠到達A的結點和A能夠到達的結點
b).結點A的左鄰居結點、右鄰居結點:鄰居車道線上空間距離l2l_2l2?最近的結點

對車道結點圖不采用廣泛使用的圖卷積L=D?12(I+A)D?12(1)L=D^{-\frac{1}{2}}(I+A)D^{-\frac{1}{2}}(1)L=D?21?(I+A)D?21?(1)更新隱狀態的原因:
a). 不知道結點特征會保存何種車道信息(可解釋性不強?)
b). 該拉普拉斯矩陣操作沒法獲取結點的連接關系信息(沒有對AiA_iAi?矩陣的操作,(1)式中的A為結點的鄰接矩陣,與AiA_iAi?內涵不同)
c). 無法解決長時依賴性的問題
為了解決以上三個不足點,作者提出了LaneConv Operator操作。

Dilated LaneConv 參考了dilated convolution,說是能夠沿著車道線傳遞k步的信息。

3.FusionNet

利用空間注意力機制(spatial attention)(用于構建A2L, L2A, A2A) 和LaneGCN(主要用來構建L2L網絡的)融合actor結點和lane結點的信息,
四個信息融合模塊:

  1. A2L-將實時交通信息傳達給lane node
  2. L2L-依據實時交通信息,更新lane node 的特征
  3. L2A-將更新后lane node 的特征返回給actor
  4. A2A-解決actor之間的相互作用,并且actor特征給motion預測網絡

L2L 網絡結構-結點特征更新時的LaneGAN結構一致
A2L, L2A, A2A網絡結構一致,采用空間注意力機制構成殘差塊。
yi=xiW0+∑j?(concat(xj,Δi,j,xj)W1)W2y_i=x_iW_0 + \sum_j\phi(concat(x_j,\Delta_{i,j},x_j)W_1)W_2yi?=xi?W0?+j??(concat(xj?,Δi,j?,xj?)W1?)W2?

4.Prediction Header

Prediction Header包含兩路分支

  1. 回歸分支- 回歸每一個actor的k種模態(速度?path?)的預測軌跡,每一條軌跡包括T個時間步長,pm,1kp_{m,1}^kpm,1k?軌跡的二維特征。
    Om,reg={(pm,1k,pm,2k,...,pm,Tk)}k∈[0,K?1]O_{m,reg}=\{(p_{m,1}^k,p_{m,2}^k,...,p_{m,T}^k)\}_{k\in[0,K-1]}Om,reg?={(pm,1k?,pm,2k?,...,pm,Tk?)}k[0,K?1]?

  2. 分類分支-計算每個actor k種模態的置信度, 輸入特征:actor 特征 拼接 預測軌跡的偏移 embeding-pm,Tk?pm,1kp_{m,T}^k-p_{m,1}^kpm,Tk??pm,1k?

5.模型參數學習

end-to-end 學些過程,總的損失函數=分類損失+回歸損失
L=Lcls+αLregL=L_{cls} + \alpha L_{reg}L=Lcls?+αLreg?
分類損失:置信系數的max-margin loss
Lcls=1M(K?1)∑m=1M∑k≠k^max?(0,cm,k+??cm,k^)L_{cls}=\frac{1}{M(K-1)}\sum_{m=1}^M\sum_{k\neq\hat{k}}\max(0, c_{m,k}+\epsilon-c_{m,\hat{k}})Lcls?=M(K?1)1?m=1M?k?=k^?max(0,cm,k?+??cm,k^?)
回歸損失:正預測軌跡,逐結點smoth l1 loss
Lreg=1MT∑m=1M∑t=1Treg(pm,tk^?pm,t?)L_{reg}=\frac{1}{MT}\sum_{m=1}^M\sum_{t=1}^Treg(p_{m,t}^{\hat{k}}-p_{m,t}^*)Lreg?=MT1?m=1M?t=1T?reg(pm,tk^??pm,t??)

注:正軌跡k^\hat{k}k^,在最后一個時間結點處擁有最小的偏移誤差。


參考博文:
1.ECCV2020介紹Uber在GNN-based motion forecasting的兩篇研究論文–還介紹了另一篇文章
2.2007-Learning Lane Graph Representations–提供代碼開源信息,贊!
3.文獻閱讀報告-Learning Lane Graph Representations for Motion Forecasting–有和VectorNet的比較。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode41 缺失的第一個正數

給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [7,8,9,11,12] 輸出: 1 說明: 你的算法的時間復雜度應為O(n),并且只能使用常數級別的空間。 思路&am…

Linux(10)-Make編譯,Configure

Make編譯機制,Configure1.Make機制demo1.make編譯demo2.make清理demo3:make 安裝demo4:make 卸載2.configure2.1 Autoconf2.2 軟件的源碼安裝軟件發布的一些基礎知識。gcc, cpp, as, ld–施工隊,底層干活工人make --包工頭,指揮工人工作configure–分析師…

redis排行榜之日排行周排行設計

排行榜功能是一個很普遍的需求。使用 Redis 中有序集合的特性來實現排行榜是又好又快的選擇。 一般排行榜都是有實效性的,比如“用戶積分榜”。如果沒有實效性一直按照總榜來排,可能榜首總是幾個老用戶,對于新用戶來說,那真是太令人沮喪了。 首先,來個“今日積分榜”吧,…

Linux(11)-Ubuntu裝系統

Ubuntu18.04裝系統單系統雙系統啟動項dell 5820進不去bios。單系統 裝過好多次ubuntu系統,每次要重裝之前總是得搜索各種教程。現在總結一份簡略教程如下,以備哪天裝系統之需。 1.官網上下載Ios文件:https://ubuntu.com/download/desktop 2.找一個U盤…

最近準備學習下mongodb(一 Windows安裝篇)

1 先安裝mongodb 的windows版本,Linux的我后期會加上的。 https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download 2.安裝php擴展插件: https://pecl.php.net/package/mongo 根據自己的…

leetcode139 單詞拆分

給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict,判定 s 是否可以被空格拆分為一個或多個在字典中出現的單詞。 說明: 拆分時可以重復使用字典中的單詞。 你可以假設字典中沒有重復的單詞。 示例 1: 輸入: s "leetcode…

Linux(12)-Ubuntu裝機后的基礎應用

Ubuntu裝機ssh服務器 sudo ps -e |grep ssh # 查看ssh 服務安裝情況 ssh-agent--ssh客戶端,連別人; sshd--ssh服務器, 被別人連 sudo apt-get update # 更新軟件源 sudo apt-get install openssh-server # 安裝ssh服務端ssh設置別…

OpenSSL編寫SSL,TLS程序

一、簡介:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信標準,分為2.0版和3.0版.TLS(Transport Layer Security)是IETF的TLS 工作組在SSL3.0基礎之上提出的安全通信標準,目前版本是1.0,即RFC2246.SSL/TLS提供的安全機制可以保證應用層數據在互聯網絡傳輸不…

PRML(3)--Chapter2(上)-概率分布-二元變量、多項式變量、高斯分布、指數族分布

PRML第二章上-概率估計2.1二元變量2.1.1 beta 分布2.2 多項式變量2.3 高斯分布2.3.1條件高斯分布、2.3.2邊緣高斯分布2.3.3 高斯變量的貝葉斯定理2.3.4 高斯分布的最大似然估計2.3.5 順序估計2.3.6 高斯分布的貝葉斯推斷2.3.7 學生t分布2.3.8周期性變量2.3.9混合高斯分布2.4 指…

leetcode27 移除元素

給定一個數組 nums 和一個值 val,你需要原地移除所有數值等于 val 的元素,返回移除后數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數組中超出新…

Harris的角點檢測和特征匹配

一.特征檢測(提取) 基于特征的圖像配準方法是圖像配準中最常見的方法之一。它不是直接利用圖像像素值,二十通過像素值導出的符號特征(如特征點、特征線、特征區域)來實現圖像配準,因此可以克服利用灰度信息…

開始入坑深度學習(DeepLearning)

現在游戲越來越難做,國家廣電總局審核越來越變態,國家各種打壓游戲,游戲產業也成為教育失敗的背鍋俠,所以本人現在開始做深度學習方向。 深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、The…

PRML(4)--Chapter2(下)-非參數估計

PRML第二章下-非參數估計1.直方圖2. 核方法3. K近鄰概率密度建模-參數化方法-概率密度的形式一定,由數據集確定密度中的參數即可。 局限性–概率模型選的不對,不能夠描述數據模態 此時,介紹一下非參數方法–直方圖,核方法&#…

《盤點那些秀你一臉的秒天秒地算法》(1)

本系列堅持格式:1個抖機靈算法2個較簡單但是天秀的算法1個較難天秀算法。 bogo排序 Bogo排序(Bogo-sort),又被稱為猴子排序,是一種惡搞排序算法。 將元素隨機打亂,然后檢查其是否符合排列順序,若否,則繼續…

caffe安裝篇(一)

caffe我選擇使用ubuntu源碼安裝,所以先執行: sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev protobuf-compiler libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev prot…

caffe2安裝篇(三)通過docker安裝

用普通的安裝方式走了不少彎路,感覺還是用docker方便: 參考的是https://hub.docker.com/r/caffe2ai/caffe2/ Latest docker pull caffe2ai/caffe2 Comes with GPU support, CUDA 8.0, cuDNN 7, all options, and tutorial files. Uses Caffe2 v0.8.1. GPU images (for us…

《盤點那些秀你一臉的秒天秒地算法》(3)

斐波那契之美 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。 這個數列就是1、1、2、3、5、8、13…

Linux(15)-

Linux下的編程開發

《盤點那些秀你一臉的秒天秒地算法》(4)

防止新手錯誤的神級代碼 #define ture true #define flase false #difine viod void #define mian main #define ; ; 以后有新手問題就把這幾行代碼給他就好啦。 不用額外空間交換兩個變量 a 5 b 8 #計算a和b兩個點到原點的距離之和,并且賦值給…

Linux(16)-

Vim編輯器的使用