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轨迹特征
- 输入:每一条actor的轨迹(3xT的输入向量)(actor包括所有运动者?)
- 操作:1D CNN + FPN(特征金字塔)(多尺度不断上采样融合特征)
- 输出:该轨迹的特征向量(多少维度呢?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
作用–编码地图特征,主要是对车道的编码
- 构建lane graph(结点与连接的定义)
- 利用LaneGCN获取lane图的特征
2.1 构建lane Graph
- lane node --车道中心线的一段,结点位置为两端结点坐标的均值。==一条车?所有?==道线上的众多结点可以表示为向量V∈RN×2V\in\mathbb{R}^{N\times 2}V∈RN×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。
- 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}∑AiXWi
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+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=1∑C(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=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结点的信息,
四个信息融合模块:
- A2L-将实时交通信息传达给lane node
- L2L-依据实时交通信息,更新lane node 的特征
- L2A-将更新后lane node 的特征返回给actor
- 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包含两路分支
回归分支- 回归每一个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]分类分支-计算每个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)1m=1∑Mk=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=1∑Mt=1∑Treg(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的比较。
PaperNotes(19)-Learning Lane Graph Representations for Motion Forecasting相关推荐
- 【论文阅读】Deep Neural Networks for Learning Graph Representations | day14,15
<Deep Neural Networks for Learning Graph Representations>- (AAAI-16)-2016 文章目录 一.模型 1.1解决了两个问题 ...
- 【论文下饭】Functional Connectivity Prediction With Deep Learning for Graph Transformation
水平有限,有误请指出. Functional Connectivity Prediction With Deep Learning for Graph Transformation 省流版 任务 模型 ...
- Iterative Deep Graph Learning for Graph Neural Networks: Better and Robust Node Embeddings
摘要:在本文中,我们提出了一个端到端的图学习框架,即迭代深度图学习(IDGL),用于联合和迭代地学习图结构和图嵌入.IDGL的关键理论是基于更好的节点嵌入来学习更好的图结构,反之亦然(即基于更好的图结 ...
- 员外陪你读论文:DeepWalk: Online learning of Social Representations
本次要分享的是 14 年论文 DeepWalk: Online learning of Social Representations, 论文链接DeepWalk[1],参考的代码CODE[2],本论文 ...
- FastGCN: fast learning with graph convolutional networks via importance sampling 论文详解 ICLR 2018
文章目录 1 简单介绍 概率测度 probability measure 自助法 bootstrapping GCN面临的两个挑战 解决思路(创新点) 2 相关工作 3 通过采样进行训练和推理 定理1 ...
- A Survey of Adversarial Learning on Graph
图的对抗性学习概况 概述: 图上的深度学习模型在各种图分析任务(例如节点分类,链接预测和图聚类)中均取得了卓越的性能.但是,它们暴露了对设计良好的输入(即对抗性样本)的不确定性和不可靠性.因此,针对不 ...
- 【ICML 2020对比学习论文解读】SimCLR: A Simple Framework for Contrastive Learning of Visual Representations
一.写在前面 对比学习(Contrastive Learning) 对比学习是一种自监督学习方法,在无标签数据集上仍可以学习到较好的表征. 对比学习的主要思想就是相似的样本的向量距离要近,不相似的要远 ...
- 【论文翻译】DeepWalk: Online Learning of Social Representations
背景介绍 这几年图神经网络模型(如谱聚类的GCN.GAT等等)都挺火的,这些图神经网络即将节点或图映射到一个低维空间(称为图嵌入):而除了GNN还有很多图嵌入方法(在GNN之前图嵌入的概念常出现在流行 ...
- DeepWalk原理理解:DeepWalk: online learning of social representations
文献:DeepWalk: online learning of social representations 对比阅读了几篇关于网络表示学习的文献,其中一篇包括DeepWalk的提出,下面将自己对于论 ...
最新文章
- 内网对时服务 ntp 平滑更改
- 深度学习领域有哪些瓶颈
- 坐地铁的好心MM们小心啊,周末刚经历了一个地铁新骗术
- linux跨版本升级,深度Deepin系统支持跨版本升级
- 光绘文件 c语言 解析,AltiumDesigner输出光绘文件
- cocos2dX之一——安卓环境搭建
- centos 6.8安装git_git 入门教程之 git 私服搭建教程
- ZH奶酪:如何在Ubuntu上安装Java/管理多个JAVA/设置JAVA_HOME
- oracle 空间数据库说明
- 基于Python的Landsat影像建设用地自动识别与提取
- 怎么样修改vlan从trunk到access模式,提示renew the default configurations
- orbslam2+azure kinect DK稠密重建
- 电脑图片格式怎么批量转换jpg?几个小妙招轻松转换
- 九价疫苗三针一共多少钱 2022
- java excel导入 日期_java导入excel时处理日期格式(已验证ok)
- 寒从足下起 冬季防病先护足
- poj 1837 Balance
- 如何彻底卸载Oracle数据库
- 安装红帽子linux8的ipv4,rhel8上安装配置IDM服务(IPA-server)
- 东财《论文写作指导》单元作业一二三
热门文章
- python10的因数_十五道Python小案例,学会这些,Python基础已过关!
- linux文件系统_Linux的文件系统简介
- 【转】10个推荐的 PACS/DICOM Server开源项目
- 原子性和一致性的区别是什么?
- 第二节 DOM-Document对象
- 一步步编写操作系统4 安装x86虚拟机 bochs
- 【手算】哈夫曼编码—树形倒置快速画法
- web前后端 http转https
- idea全局搜索搜不全的BUG
- 执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx