【Motion Forecasting】【摘要阅读】BANet: Motion Forecasting with Boundary Aware Network

devtools/2024/9/22 17:09:21/

BANet: Motion Forecasting with Boundary Aware Network

这项工作发布于2022年,作者团队来自于OPPO。这项工作一直被放在arxiv上,并没有被正式发表,所提出的方法BANet在2022年达到了Argoverse 2 test dataset上的SOTA水准。

Method

BANet使用向量化的方法对驾驶场景进行建模。

将方法命名为BANet,意味Boundary-Aware network,它是LaneGCN的一种变体。作者认为仅仅使用车道的中心线作为车道特征的特征编码是不够充分的。车道中心线仅仅能够提供车道的拓扑信息,而矢量地图中还包含了除车道拓扑连接信息以外的丰富信息。

例如,车道的边界可以被视为交通规则当中的约束,使得车辆能够知道自身在此时是否可以变换车道,这一条性质是非常重要的。因此,作者相信通过更充分地对矢量地图当中的信息进行运用,并对这些信息进行融合,运动预测模型可以获得更好的性能。【显然BANet是一项关注于充分利用地图信息的工作】

BANet在2022年于Argoverse 2 Motion Forecasting challenge获得了测试集上的第一名。

在这里插入图片描述
本文提出的运动预测模型由Encoder Net、Fusion Net和Trajectory Decoder Net三部分组成。

Encoder Net

本文方法将向量化的数据分解为三部分,分别是代理的历史运动轨迹、车道中心线和车道边界。

使用1D CNN 来对代理的历史运动状态进行特征提取。

使用MLP来对车道中心线和车道边界进行编码。使用LaneGCN来对车道中心线进行特征更新。由于车道的连接类型有所不同,本文方法为不同的连接类型添加了不同类型的权重。

Fusion Net

如BANet的架构图所示,Fusion Net由四个sub-fusion blocks组成。

首先,车道的边界特征将会通过车道中心线与车道边界的匹配关系来进行融合,使得每一个车道中心线结点都将会得到附近车道边界所提供的交通规则约束信息。【但是本文没有明确指出使用何种匹配规则来匹配车道中心线和对应的车道边界】

之后,车道中心线特征将会与交通参与者的特征相融合,车道边界的特征也将会与交通参与者的特征相融合,使得交通参与者获知附近车道的交通约束。

最后,将会进行交通参与者与场景之间的特征融合。除了第一个sub-fusion block之外,其它sub-fusion blocks均使用LaneGCN中所提及的距离注意力模块(distance attention module)来进行实现。

FusionNet in LaneGCN

LaneGCN发布于2020年的ECCV,是VectorNet的同时期工作,作者团队来自于Uber,这项工作也是自动驾驶轨迹预测领域当中的经典工作。BANet中提到Fusion Net使用了LaneGCN当中的distance attention module,此处对LaneGCN当中的对应部分进行回顾。

LaneGCN在对交通场景当中的特征进行提取之后(代理特征 A A A + 道路特征 L L L),使用四个sub-fusion blocks对特征进行融合,分别是A2L,L2L,L2A和A2A。L2L仍然使用LaneGCN完成特征融合,因为车道段之间本身就是根据车道拓扑进行连接的,它具有天然的图结构,使用图神经网络来进行特征融合非常合适。而A2L、L2A和A2A的特征融合是使用Spatial Attention layer来完成的,此处对Attention is all you need进行了引用,说明这一部分是基于Attention + FFN的。

以A2L为例,给定代理结点 a c t o r i actor_i actori,从作为上下文的道路结点 l a n e j lane_j lanej处进行特征提取,具体方式如下:

y i = x i W 0 + ∑ j ϕ ( c o n c a t ( x i , Δ i , j , x j ) W 1 ) W 2 y_i = x_iW_0 + \sum_j \phi (concat(x_i, \Delta_{i, j}, x_j)W_1)W_2 yi=xiW0+jϕ(concat(xi,Δi,j,xj)W1)W2

其中 x i x_i xi a c t o r i actor_i actori结点的特征, W W W是权重矩阵,而 ϕ \phi ϕ是norm + ReLU, Δ i j = M L P ( v j − v i ) \Delta_{ij} = MLP(v_j - v_i) Δij=MLP(vjvi) v v v表示结点的位置。

上下文结点被视为与中心结点的 l 2 l_2 l2距离小于某个阈值的邻域结点。A2L、L2A、A2A的阈值分别被设置为7、6、100米。

Trajectory Decoder Net

使用双阶段的方法来对轨迹进行解码,首先预测轨迹的终点,再使用代理特征和终点对轨迹进行补全。


http://www.ppmy.cn/devtools/113273.html

相关文章

【Android 13源码分析】WindowContainer窗口层级-4-Layer树

在安卓源码的设计中,将将屏幕分为了37层,不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析,整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

由于 Python 环境不一致导致的No module named ‘selenium‘

1. 检查 Python 和 pip 的路径是否一致 首先,确保 pip3 安装的 Selenium 是在当前使用的 Python 环境中。可以通过以下命令检查 python 和 pip3 的路径: which python which pip3在终端中运行这两个命令,并确保它们指向的是同一个 Python 环…

数据库常规操作

常用的 SQL 语法和操作: 数据定义语言(DDL) 1.创建数据库CREATE DATABASE database_name;2.删除数据库DROP DATABASE database_name;3.创建表CREATE TABLE table_name (column1 datatype constraints,column2 datatype constraints,...);4.删…

Linux环境基础开发工具使用(gcc/g++与makefile)

1.Linux编译器-gcc/g使用 1. 背景知识 接下来的操作,我以gcc为例,因为两者选项都是通用的,所以也就相当于间接学习了 1.预处理(进行宏替换) 2.编译(生成汇编) 3.汇编(生成机器可识别代码)…

宠物毛发对人体有什么危害?宠物空气净化器小米、希喂、352对比实测

作为一个呼吸科医生,我自己也养猫。软软糯糯的小猫咪谁不爱啊,在养猫的过程中除了欢乐外,也面临着一系列的麻烦,比如要忍耐猫猫拉粑粑臭、掉毛、容易带来细菌等等的问题。然而我发现,现在许多年轻人光顾着养猫快乐了&a…

新160个crackme - 057-bbbs-crackme04

运行分析 因软件版本老旧,需使用windows XP虚拟机运行有个SystemID,值为12345678需破解User ID和Password PE分析 yC壳,32位 OD手动脱壳 使用windows XP虚拟机,将程序拖入OD按一下F8,ESP变红,根据ESP定律设…

ArcGIS Pro SDK (十四)地图探索 2 地图图层

ArcGIS Pro SDK (十四)地图探索 2 地图图层 文章目录 ArcGIS Pro SDK (十四)地图探索 2 地图图层1 地图1.1 获取活动地图的名称1.2 清除活动地图中的所有选择1.3 以地图单位计算选择容差1.4 地图视图叠加控制2 图层2.1 选择目录中的所有要素图层2.2 闪烁所选功能2.3 检查图…

自制一键杀死端口进程程序# tomcat 如何杀死tomcat进程

直接cmd 窗口执行如下命令即可 netstat -ano | findstr :8080 taskkill /F /PID <PID>简简单单的两个指令,总是记不住,也懒的记, 每次端口冲突的时候, 都是直接查百度,很苦逼, 如果有一个程序,直接输入端口号,点击按钮直接杀死进程,岂不爽歪歪. 跟我一起制作一个屠猫的…