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(T1),...,Δp1,Δp0}

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

长度为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}AiRN×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(viendvistart)+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}AiXWi
    c).Dilated LaneConv 为了让模型获得车道线方向的长时依赖关系(速度快的物体位移大,只用到ApreA_{pre}ApreAsucA_{suc}Asuc)
    Y=XW0+AprekXWpre,k+AsuckXWsuc,kY=XW_0 + A^k_{pre}XW_{pre,k} + A^k_{suc}XW_{suc,k}Y=XW0+AprekXWpre,k+AsuckXWsuc,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}AiXWi+c=1C(AprekcXWpre,kc+AsuckcXWsuc,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=D21(I+A)D21(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=xiW0+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,K1]

  2. 分类分支-计算每个actor k种模态的置信度, 输入特征:actor 特征 拼接 预测轨迹的偏移 embeding-pm,Tk−pm,1kp_{m,T}^k-p_{m,1}^kpm,Tkpm,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(K1)1m=1Mk=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=MT1m=1Mt=1Treg(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.mzph.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编辑器的使用