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

news2024/11/15 17:34:16

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.coloradmin.cn/o/2141789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Python解决综合评价问题_模糊综合评价,决策树与灰色关联分析

一:模糊综合评价 模糊综合评价是一种有效的处理不确定性和模糊性的评价方法,特别是在人才评价等领域。它允许我们综合考虑多个评价指标,并给出一个综合的评价结果。以下是利用模糊综合评价对人才进行评价的步骤: 确定评价指标&am…

进阶SpringBoot之异步任务、邮件任务和定时执行任务

SpringBooot 创建 Web 项目 异步任务: service 包下创建 AsyncService 类 Async 异步方法 Thread.sleep(3000) 停止三秒,捕获异常 package com.demo.task.service;import org.springframework.scheduling.annotation.Async; import org.springfram…

【MySQL】Windows下重启MySQL服务时,报错:服务名无效

1、问题描述 在终端中,停止、启动MySQL服务时报错:服务名无效 2、原因分析 1)权限不够 如果是权限不够,会提示:系统错误5,拒绝访问。 2)服务名错误 如果是服务名错误,会提示“…

第313题|解积分不等式题目的5种方法常用方法|武忠祥老师每日一题

解题思路:把多阶次积分和函数值联系起来,应该想到泰勒公式。 本题应该使用带有拉格朗日余项的泰勒公式: 方法一: 等式左右两边进行积分,右边第一项常数项不变,第二项(x-1/2)积完之…

macOS Sequoia 正式版(24A335)黑苹果/Mac/虚拟机系统镜像

“ 以下内容来自于黑果魏叔官网” 镜像特点 完全由黑果魏叔官方制作,针对各种机型进行默认配置,让黑苹果安装不再困难。系统镜像设置为双引导分区,全面去除clover引导分区(如有需要,可以自行直接替换opencore分区文件为…

web安全测试入门

参考课程: 04-软件安全测试基础-网络协议基础-网络模型_哔哩哔哩_bilibili 1.软件安全测试概述 安全测试: 安全性测试指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程 导致软件出现安全问题的主要原因或根源是软件的安全漏洞 安全漏洞&#x…

网页交互模拟:模拟用户输入、点击、选择、滚动等交互操作

目录 一、理论基础 1.1 网页交互模拟的重要性 1.2 网页交互的基本原理 二、常用工具介绍 2.1 Selenium 2.2 Puppeteer 2.3 Cypress 2.4 TestCafe 三、实战案例 3.1 模拟用户输入 3.2 模拟用户点击 3.3 模拟用户选择 3.4 模拟滚动操作 四、最佳实践与优化 4.1 代…

基于python+django+vue的学生管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

Python编码系列—Python原型模式:深克隆与高效复制的艺术

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

C++的IO流(文件部分在这里)

1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。 注意宽度输出和精度输出控制。C语言借助了相应的缓…

嵌入式开发—CAN通信协议详解与应用(上)

文章目录 1.CAN简介CAN协议的诞生背景CAN协议的发展历程CAN协议的影响CAN通信的主要特点 2.CAN数据帧的帧格式CAN标准数据帧的帧格式CAN标准数据帧的帧格式结构图CAN扩展帧的帧格式CAN遥控帧的帧格式CAN错误帧的帧格式 3.CAN数据传输中的位填充位填充的概念位填充的作用位填充的…

今天中秋,中秋快乐,分析一个中秋月饼的项目

特色功能 使用obj模型,搭配tga文件,附加上颜色 normalMap 是让字和线条看起来更清楚和真实 高光贴图 凹凸贴图 ...... 源码 https://github.com/Lonely1201/lonely1201.github.io/tree/main/Juejin/mooncake 在线预览 https://lonely1201.githu…

将YYYY-MM-DD HH:mm:ss格式化为YYYY-MM-DD (星期一) 下午 ?点

分为凌晨、早上、中午、晚上 function formatDate(inputDate) {const date new Date(inputDate);date.setHours(date.getHours() - 1);const year date.getFullYear();const month date.getMonth() 1; // 月份从0开始const day date.getDate();let hours date.getHours(…

详解:Tensorflow、Pytorch、Keras

这是一个专门对Tensorflow、Pytorch、Keras三个主流DL框架的一个详解和对比分析 一、何为深度学习框架? 你可以理解为一个工具帮你构建一个深度学习网络,调用里面的各种方法就能自行构建任意层,diy你想要的DNN,而且任意指定学习…

用Qt 对接‌百度语音识别接口

一 、前期准备工作 1,搭建好开发环境; 2,注册百度云平台,获取语音相关东西, 短语音识别标准版_短语音识别-百度AI开放平台 (baidu.com) 3,涉及到的Qt 类有 QAudioFormat,QAudioDeviceInfo&a…

JDBC实现对单表数据增、删、改、查

文章目录 API介绍获取 Statement 对象Statement的API介绍使用步骤案例代码 JDBC实现对单表数据查询ResultSet的原理ResultSet获取数据的API使用JDBC查询数据库中的数据的步骤案例代码 API介绍 获取 Statement 对象 在java.sql.Connection接口中有如下方法获取到Statement对象…

线程池是啥有啥用,怎么用,如何自己实现一个

目录 一、线程池是啥,有啥用 二、线程池怎么用 1.构造方法 2.如何使用Java的线程池 三、简单实现一个线程池 假设我是一个(好看有才华) 的妹子,那么我就会有很多追求者,这些也叫备胎们,我们若把他…

71、哪吒开发板试用结合oak深度相机进行评测

基本思想:收到intel的开发板-小挪吒,正好手中也有oak相机,反正都是openvino一套玩意,进行评测一下,竟然默认是个window系统,哈哈

STL-vector练习题

118. 杨辉三角 思路: 杨辉三角有以下性质使我们要用到的: ● 每行数字左右对称,由 1 开始逐渐变大再变小,并最终回到 1。 ● 第 n 行(从 0 开始编号)的数字有 n1 项,前 n 行共有 2n(n1)个数。…

linux重要文件

/etc/sysconfig/network-scripts/ifcfg-eth1 网卡重启 /etc/init.d/network restart ifup ethname & ifdown ethname /etc/resolv.conf 设置Linux本地的客户端DNS的配置文件 linux客户端DNS可以在网卡配置文件(/etc/sysconfig/network/ifcfg-eth0 DNS2)里配置 也可以在/et…