当前位置: 首页 > news >正文

【论文阅读笔记】Traj-MAE: Masked Autoencoders for Trajectory Prediction

Abstract

通过预测可能的危险,轨迹预测一直是构建可靠的自动驾驶系统的关键任务。一个关键问题是在不发生碰撞的情况下生成一致的轨迹预测。为了克服这一挑战,我们提出了一种有效的用于轨迹预测的掩蔽自编码器(Traj-MAE),它能更好地代表驾驶环境中智能体的复杂行为。


具体来说,我们的Traj-MAE采用了多种掩蔽策略来预训练轨迹编码器和地图编码器,允许捕获智能体之间的社会和时间信息,同时利用来自多个粒度的环境影响。为了解决使用多种屏蔽策略对网络进行预训练时出现的灾难性遗忘问题,我们引入了一个连续预训练框架,该框架可以帮助Traj-MAE有效地从各种策略中学习有价值的、多样化的信息。我们在多智能体和单智能体设置下的实验结果表明,Traj-MAE使用最先进的方法取得了具有竞争力的结果,并且显著优于我们的基线模型。该准则一经发布,将向公众开放。

1. Introduction

轨迹预测的目标是预测移动主体(例如行人和车辆)的未来轨迹,这是构建安全、舒适、可靠的自动驾驶系统的关键问题[30,61,35,12,49]。许多有前途的工作[21,7,47,25,65,56]已经被学术界和工业界提出了极大的兴趣和需求。研究表明,对智能体之间复杂的相互作用进行建模[45,42,44,6,26]在轨迹预测中非常重要。在此基础上,为了解决碰撞预测问题并生成一致的轨迹预测,有必要对智能体之间的社会和时间关系进行建模,并对地图[2]有一个全局的理解。在本文中,我们使用自监督学习来研究这个问题。

自监督学习旨在从未标记的数据中学习潜在语义,而不是基于人类注释构建表示。近年来,自监督学习在自然语言处理[14,57]和计算机视觉[55,36,4]中的应用取得了显著进展。其中最有前途的自监督方法之一是掩码自编码器(MAE)[22],它在各种任务中都取得了成功[37,51]。此外,在相同的小规模数据集上进行预训练和微调对于学习良好的表示b[15]也是必不可少的。受这些作品的启发,我们的目标是使用掩码自编码器探索智能体与地图的多粒度之间的复杂相互作用。

如何设计一个有效的掩码自编码器来生成一致的轨迹预测?我们试图从以下几个方面来回答这个问题:(i)轨迹和高清地图的信息密度与图像的信息密度有很大的不同。

图像是具有高度空间冗余的自然信号,而轨迹则是具有复杂社会交互作用的连续时间序列信号,而高清地图则包含高度结构化的信息。考虑到这些差异,针对轨迹预测的模型需要进行相应的调整以捕获信息特征。因此,我们研究了不同的掩蔽策略和合适的掩蔽比的轨迹和高清地图。

我们开发了社会和时间掩蔽,使轨迹编码器能够从不同的角度捕获信息。我们还研究了多粒度掩蔽,以强制地图编码器从高清地图捕获结构信息。此外,我们发现无论采用何种掩蔽策略,高掩蔽率(50% ~ 60%)都能产生良好的效果,这就要求编码器对历史轨迹和高清地图有全面的了解。

(ii)缺乏有效的多策略预训练框架对有效的多模态轨迹预测提出了挑战。由于任务的复杂性,传统的从头开始的多任务学习[67]可能难以收敛,而传统的持续学习方法[11,38]由于无法在不忘记先前学习的知识的情况下用多个任务训练网络而受到限制。为了解决这个问题,我们提出了一种新的方法,利用先前学习的参数初始化网络,与原始策略同时训练新策略。因此,我们确保我们的网络可以在保留以前获得的知识的同时获得新的知识。

在此基础上,我们提出了一种高效实用的自监督轨迹预测框架——掩蔽轨迹自编码器(Traj-MAE)。如图1所示,Traj-MAE利用输入轨迹和高清地图的部分屏蔽,分别利用轨迹编码器和地图编码器重建被屏蔽的片段。通过采用多种掩蔽策略对输入轨迹和高清地图的缺失部分进行重构,轨迹编码器和地图编码器可以从多个角度全面理解输入的潜在语义。此外,我们还引入了一种新的连续预训练框架,这是一种高效的学习方法,可以同时使用多种策略训练模型,从而减轻灾难性遗忘的问题。

我们的核心贡献如下:•据我们所知,我们是第一个提出一个简洁高效的自监督轨迹预测的掩蔽轨迹自编码器。

•我们探索了不同的掩蔽策略,充分利用MAE来挖掘历史轨迹和高清地图的潜在语义。同时,提出了一种连续预训练框架,利用多策略对模型进行高效训练。

•我们对Argoverse和INTERACTION进行了广泛的实验,用于自动驾驶轨迹预测,并对TrajNet++的合成分区进行了行人轨迹预测。我们的TrajMAE在这些基准测试中取得了具有竞争力的结果,并且显著优于我们的基线模型。

2. Related Works

轨迹预测被广泛认为是一项序列建模任务,许多基于RNN的方法[1,66,32,8]被提出来建模智能体未来位置的轨迹模式,因为RNN(例如LSTM[23])在序列建模方面取得了显著的成功。由于transforms[53]捕获远程依赖关系的强大能力,许多基于变压器的方法已经出现并蓬勃发展。提出了STAR[60],通过空间和时间转换器之间的交错来捕获复杂的时空相互作用。mmTransformer[30]设计用于分层地聚合过去的轨迹、道路信息和社会互动。为了预测多智能体的未来轨迹,AgentFormer[61]和AutoBots[20]给出了同时对时间维度和社会维度建模的解决方案。增强编码器在两个维度上对信息建模的能力是这项工作的一个有趣的中心焦点。

近年来,自监督学习在自然语言处理和计算机视觉领域取得了显著的成功,尤其是自编码方法。去噪自编码器(DAE)[54]是一种从损坏的输入中重建原始信号的学习表示方法。

BERT[14]可以看作是DAE的发展,它屏蔽输入令牌并训练模型来预测缺失的内容。随着BERT中提出的掩模语言建模(MLM)任务,提出了许多MLM变体[57,5]来提高变压器预训练的性能。同样,在计算机视觉中,自动编码方法经常关注不同的借口任务进行预训练[36,4,22]。其中最流行的一种方法是MAE[22],它随机屏蔽输入的patch,并训练模型在像素空间中恢复被屏蔽的patch。基于MAE的不断进步[16,37,3]验证了其有效性。遵循MAE的概念,我们的方法专注于利用MAE作为一种工具来预训练具有强大特征提取能力的模型编码器。


持续学习是一种解决灾难性遗忘问题的方法,这种问题发生在连续学习不同输入模式的样本中。这些方法大致可分为重播、基于正则化和参数隔离方法[13]。回放方法[40,41,24,10,50]是在学习新任务的同时回放之前的任务样本,以减轻遗忘。相反,在学习新数据时,基于正则化的方法[48,39,63,28]经常在损失函数中引入正则化项来巩固之前的知识。参数隔离方法[31,46]为每个任务分配不同的模型参数,以防止任何可能的遗忘。


在这项工作中,我们提出了一个持续的预训练框架来解决遗忘问题,通过利用相关掩蔽策略的训练样本中包含的特定信息,我们能够提高模型编码器的泛化。

3. Approach

我们的Traj-MAE是一种复杂而有效的自监督方法。图2提供了Traj-MAE框架的概述。在本节中,我们首先介绍我们的骨干网。然后,我们深入分析了轨迹和高清地图重建的掩蔽策略。最后,我们讨论了如何将TrajMAE纳入我们的持续预训练框架。

3.1. Network Backbone

在这项工作中,我们使用具有变压器编码器-解码器架构(详见补充材料)的Autobots[20]作为基线模型来验证所提出方法的有效性。我们的Traj-MAE对输入轨迹和高清地图中的随机部分进行掩码,然后分别重建缺失部分。继MAE[22]和VideoMAE[51]之后,我们采用非对称编解码器设计来减少计算量。


Traj-MAE Encoder。在汽车人中,历史轨迹被编码成上下文张量,连同可学习的种子参数和地图上下文,被传递给解码器来预测未来的轨迹。受此设计启发,我们采用汽车人编码器作为轨迹编码器。然而,在《汽车人》中,高清地图是直接输入到解码器的,这使得模型很难捕捉到高清地图的固有信息。为了解决这一限制,我们引入了一个与轨迹编码器结构相似的地图编码器,以更好地重建被屏蔽的高清地图。然而,我们观察到,直接将地图编码器添加到汽车人的结果几乎没有改善(见补充材料)。然而,我们发现用我们提出的掩蔽和重建策略对地图编码器进行预训练可以进一步提高准确率,验证了我们预训练策略的有效性。


Traj-MAE Encoder。Traj-MAE中的编码器仅处理输入的未屏蔽部分,而解码器则从潜在表示和掩码令牌中重建缺失部分。掩码令牌是共享向量,指示需要预测的缺失部分的存在。此外,将位置嵌入添加到所有令牌中以提供位置信息。Traj-MAE解码器采用比编码器浅的Transformer块设计,仅在预训练期间用于执行轨迹和地图重建策略。这使得解码器架构灵活且独立于编码器架构。使用轻量级解码器进行预训练可以显著减少预训练时间。

相关文章:

【论文阅读笔记】Traj-MAE: Masked Autoencoders for Trajectory Prediction

Abstract 通过预测可能的危险,轨迹预测一直是构建可靠的自动驾驶系统的关键任务。一个关键问题是在不发生碰撞的情况下生成一致的轨迹预测。为了克服这一挑战,我们提出了一种有效的用于轨迹预测的掩蔽自编码器(Traj-MAE),它能更好地代表驾驶…...

MySQL - Zero date value prohibited

问题: timestamp字段报Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited 原因: timestamp字段存入了0值, 超出了最小值1900-01-01 00:00:00, 转Java对象的时候报错 解决: 1.修复或删除原数据 2. mysqlurl 中添加zeroDateTimeBehaviorconve…...

设计模式——迭代器模式(Iterator Pattern)+ Spring相关源码

文章目录 一、迭代器模式二、例子2.1 菜鸟例子2.1.1 定义迭代器接口2.1.2 定义迭代对象接口——用于返回一个迭代器2.1.3 实现 迭代对象 和 迭代器2.1.4 使用 2.2 JDK源码——ArrayList2.3 Spring源码——DefaultListableBeanFactory 三、其他设计模式 一、迭代器模式 类型&am…...

【word技巧】ABCD选项如何对齐?

使用word文件制作试卷,如何将ABCD选项全部设置对齐?除了一直按空格或者Tab键以外,还有其他方法吗?今天分享如何将ABCD选项对齐。 首先,我们打开【替换和查找】,在查找内容输入空格,然后点击全部…...

如何在uni-app小程序端实现长按复制功能

在开发小程序应用中,常常需要使用到长按复制功能。本文将介绍如何在uni-app小程序端实现长按复制功能。 uni-app是一个跨平台的开发框架,可以基于vue.js语法开发小程序、H5、APP等多个平台的应用。uni-app提供了一些内置组件和API,可以方便地…...

基于springboot实现在线考试平台项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线考试演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合,利用java技术建设在线考试系统,实现在线考试的信息化。则对于进一步提高在线考试管理发展,丰富在线考试管理经验能起到不少…...

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS)

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS) 测试视频(其中的恶性BUG会在下一篇文章阐述): 【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的…...

软件设计师2016下半年下午——KMP算法和装饰设计模式

下面是提供的代码的逐行注释&#xff0c;以及对next数组在KMP算法中的作用的解释&#xff1a; #include <iostream> #include <vector> using namespace std;void buildNextArray(const char* pattern, vector<int>& next) {int m strlen(pattern); …...

Android Studio run main()方法报错

在studio中想要测试某个功能直接执行main()方法报错如下&#xff1a; * What went wrong: A problem occurred configuring project :app. > Could not create task :app: **** .main().> SourceSet with name main not found.解决方案&#xff1a; 执行run ** main() w…...

CM3D2 汉化杂记

老物难找资源&#xff0c;于是尝试自己汉化&#xff0c;皆源于有一个好的汉化插件。 资源&#xff1a;LMMT 工具&#xff1a;CM3D2.SubtitleDumper.exe&#xff0c;有道翻译(可以翻译文档)&#xff0c;Libreoffice(文档、表格) cmd&#xff08;资源管理器的结果可以拖进去&…...

分类预测 | Matlab实现SMA-KELM黏菌优化算法优化核极限学习机分类预测

分类预测 | Matlab实现SMA-KELM黏菌优化算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现SMA-KELM黏菌优化算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SMA-KELM黏菌优化算法优化核极限学习机分类预测(完整源码和数…...

linux的环境安装以及部署前后端分离后台接口

⭐⭐ linux专栏&#xff1a;linux专栏 ⭐⭐ 个人主页&#xff1a;个人主页 目录 一.linux安装环境 1.1 jdk和tomcat的安装配置 1.1.1 解压jdk和tomcat的安装包 解压jdk安装包 解压tomcat安装包 1.2 jdk环境变量配置 1.3 tomcat启动 1.4 MySQL的安装 二.部署前后端分离…...

解决mysql数据库root用户看不到库

第一种方式&#xff1a; 1.首先停止MySQL服务&#xff1a;service mysqld stop 2.加参数启动mysql&#xff1a;/usr/bin/mysqld_safe --skip-grant-tables & 然后就可以无任何限制的访问mysql了 3.root用户登陆系统&#xff1a;mysql -u root -p mysql 4.切换数据库&#…...

【LeetCode】117. 填充每个节点的下一个右侧节点指针 II

117. 填充每个节点的下一个右侧节点指针 II 难度&#xff1a;中等 题目 给定一个二叉树&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; }填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点&#xff0c…...

《研发效能(DevOps)工程师》课程简介(三)丨IDCF

在研发效能领域中&#xff0c;【开发与交付】的学习重点在于掌握高效的开发工具和框架&#xff0c;了解敏捷开发方法&#xff0c;掌握持续集成与持续交付技术&#xff0c;以及如何保证应用程序的安全性和合规性等方面。 由国家工业和信息化部教育与考试中心颁发的职业技术证书…...

主动激活木马加密流量分析

概述 在网络攻击中&#xff0c;木马病毒通常会使用监听某个端口的方式&#xff0c;或者直接连接C2地址、域名的方式来建立通信&#xff0c;完成命令与控制。而APT攻击中&#xff0c;攻击者为了更高级的潜伏隐蔽需求&#xff0c;其部署的木马或后门&#xff0c;会采用对网卡流量…...

关于单片机CPU如何控制相关引脚

目录 1、相关的单片机结构 2、通过LED的实例解释 1、相关的单片机结构 在寄存器中每一块都有一根导线与引脚对应&#xff0c;通过cpu改变寄存器内的数据&#xff08;0或1&#xff09;&#xff0c;通过驱动器来控制对于的引脚。 2、通过LED的实例解释 如图所示&#xff0c;芯片…...

[概述] 获取点云数据的仪器

这里所说的获取点云的仪器指的是可以获取场景中物体距离信息的相关设备&#xff0c;下面分别从测距原理以及适用场景来进行介绍。 一、三角测距法 三角测距原理 就是利用三角形的几何关系来测量物体的距离。想象一下&#xff0c;你站在一个地方&#xff0c;你的朋友站在另一…...

路由器基础(八):策略路由配置

在实际网络应用中&#xff0c;策略路由也是一种重要的技术手段。尽管 在考试并不注重策略路由&#xff0c;但是实际上应用较多&#xff0c;建议考生除了掌握基本的静态路由协议IP route-static, 动态路由协议RIP 、OSPF的基础配置外&#xff0c;还要掌握如何配置策略路由。…...

Java 零碎知识点

目录 [多线程]创建多线程的三种方式 [网络编程]一、重点概念1、TCP/IP网络模型2、IP 对象3、端口号4、协议UDP(User Datagram Protocol)TCP(Transmission Control Protocol) 二、UDP 通信三、TCP 通信 [前端][Vue]一、Vue3项目创建响应式函数父子通信父传子子传父 跨层组件通信…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...