【Scene Transformer】scene transformer论文阅读笔记

文章目录

      • 序言
      • (Abstract)
      • (Introduction)
      • (Related Work)
      • (Methods)
        • (Scene-centric Representation for Agents and Road Graphs)
        • (Encoding Transformer)
        • (Predicting Probabilities for Each Futures)
        • (Joint and Marginal Loss Formulation)
      • (Results)
      • (Discussion)
      • (Questions)

 

scene transformer模型架构
掩码策略进行独立/联合预测

序言

  • 论文: https://arxiv.org/pdf/2106.08417v3
  • 代码: https://github.com/Chen-Albert-FENG/SceneTransformer
  • 年份: 2021.06
  • 数据: argoverse + waymo

(Abstract)

  • 核心思想: 受语言模型的启发, 在模型中使用序列掩码策略作为Query, 通过改变数据的可见性,允许用多种方式进行预测(MP,CMP,GCP),如给定自车的goal或自车完整轨迹或其他agent的行为,以这些为条件来进行多目标预测,估算被掩码掉的未来时间和agents的feature

  • 即:

    • Quety ---- 自车goal或自车完整轨迹或agent行为
    • Result — 多目标预测结果
  • 文章采用的注意力机制结合了agent时间步, agents之间交互和道路元素之间的特征

  • 文章独立预测和联合预测都做了, 并在当时获得了最优结果, 但现在在waymo online排行榜中并不靠前

(Introduction)

  • 以前将自动驾驶任务划分为sub-task的方式是基于各个模块(感知,预测,规划)真正独立的假设, 但这个假设是不成立的,不光是模块化之后存在信息丢失,还因为自车和目标之间是互相影响的. 基于此文章提出了联合运动预测与规划的模型, 支持多目标多轨迹同时预测规划

  • 交互式预测要求建模联合特征joint features, 以保持agents未来轨迹的一致性. 建模joint feature最简单的方法是agents独立预测的结合, 但这种结合不具有一致性, 尤其是在轨迹重叠的时候没法避免重叠. 文章提出的模型天然的能捕获agents之间的交互, 得到场景级scene-level的agents预测结果

  • 文章给出了一种从规划角度的一种联合预测规划的方法

  • 文章支持多目标多模态的预测, 难点也就是目标本身行为的多样性(diverse)以及目标对彼此轨迹的影响(influence)

  • 为什么要进行联合预测呢: 首先因为运动预测和规划的子任务并不是真正独立的, 自车也会影响其他agent的行为, 而且独立预测的方案不利于表示不同agent之间未来的交互问题, 由此得到的规划也是次优(sub-optimal)的轨迹

  • 边缘预测 vs 联合预测 (marginal/independent prediction vs. joint prediction)

    • 边缘预测: 未来时刻, 不同agent之间的预测轨迹可能有冲突部分, 轨迹相交
    • 联合预测: 未来同一时刻, 不同agent之间的轨迹不会相交, respect each other’s prediction
  • 按照文章的说法, 文章的贡献在于:

    • (1) 以场景为中心的方法, 能够进行边缘/独立和联合预测的切换, 并都达到当时的SOTA
    • (2) 利用了置换等变的transformer架构, 考虑了agents/timesteps/road元素, 高效的架构
    • (3) 一种掩码序列建模方法, 在推理时以假设的代理未来为条件, 实现条件运动预测或目标条件预测

(Related Work)

  • 早期使用CNN捕获栅格图内元素间关系,但是处理空间交互时很困难;
  • 还有entity-centric的方法,使用RNN等方法编码历史特征,编码地图Pose信息和语义信息,通过信息聚合来捕获entity之间的关系,聚合方法包括池化、自注意力、GNN等方法;
  • 文章觉得之前的文章利用了transformer注意力机制的方法是在不同轴分别进行注意力分析再把结果展平到一起进入联合自注意力层,文章提出的方法能统一建模<agent时间步,不同agents,道路元素>之间的关系
  • 文章认为agent-centric具有固有pose不变性(个人理解是作为参考帧的pose),然后lanegcn等方法也是在global frame里采用agent-centric的
  • 文章认为之前的文章对联合特征joint feature的考虑都是不够的,比如只考虑P(X)然后对Y进行条件建模P(Y|X),本文提出了一般的对多agents联合特征建模的方法,直接解码得到k个联合特征

(Methods)

  • Scene Transformer模型有三个阶段:

    • (1) 对agent和road graph进行高维嵌入embedding
    • (2) 采用注意力网络编码agents和road graph的交互关系
    • (3) 使用注意力网络解码得到多个futures
  • 模型把每个时间步的输入都看做是一个特征feature, 然后预测每个agent每个时间步的输出;

  • 模型在每个时间步都采用一种联合掩码方式,indicator = 1或者0指示输入feature可见或不可见,借鉴了BERT模型的思想,这种方法很灵活,仅仅通过改变数据的可见性(不同的掩码方式),允许同时训练一个模型用于单独的MP=Motion Prediction或者CMP=Conditional Motion Prediction或者GCP=Goal-conditioned Prediction
  • 每一个任务如MP/CMP/GCP都可以使用具体的掩码策略(设置indicator),公式化为一个query,然后把数据提供给模型。模型的目标就是要估算被掩码掉的未来时间和agents的feature,如上图
(Scene-centric Representation for Agents and Road Graphs)
  • scene-centric的嵌入策略,scene-centric的过程:

    • 选择一个感兴趣位置的agent作为原点, 可以是AV也可以是任何一个要预测的agent
    • 其他所有的agents和road graphs都基于它编码
    • 以center的最新可见帧来进行编码的
  • agent-centric就是以每个agent作为原点进行编码, 多个agents就是多个原点

  • scene-centric的编码过程:

    • (1) 生成agents每个时间步的特征
    • (2) 生成静态road graphs的特征集合, 使用PointNet来学习每个polyline的特征向量
    • (3) 生成动态road graphs的特征集合, one feature vector per object如红绿灯, 空间上静止时间上动态
    • (4) 所有特征都处理和旋转到center, 并且进行正弦位置嵌入sin position embedding
(Encoding Transformer)
  • 大多数层都是transformer层, 每个注意力层都跟一个前馈网络,具有相同的隐藏维度; decoder最后接2层MLP,输出7个outputs,包括相对原点的坐标+不确定度和航向角;
  • 由于没有添加agent id, 文章设计了一种因子化注意力方法, 防止相同类型、时间步上相同掩码策略的agents得到相同的预测结果。这种方法也是置换等变的, 即跟agent输入transformer的顺序无关。然后agents和road graph的交互也是置换等变的,在通过网络的过程中road graph的特征也是不变的
(Predicting Probabilities for Each Futures)
  • 模型还需要预测每个future或者trajectory的概率,为此,文章额外添加了人工agent和时间步,具体通过计算agent每个时间步各个特征的均值得到,输入维度就从[A,T,D]变成了 [A+1,T+1,D] ,在解码器最后一层这个人工特征是要剥出来的,以获取每个agent的summary feature,然后这个feature再经过2层MLP和softmax层得到一个logit值,作为future或者trajectory的概率
(Joint and Marginal Loss Formulation)
  • 模型的输出[F, A, T, 7]是每个agent在每个time step的location和heading, scene-centric
    的编码, 支持同时预测所有agents

  • 联合预测和边缘预测的loss回传策略不一样, 感觉文章中没有讲的很清楚

  • 评估指标选用minADEminFDEMRmAP(mean average precision)

(Results)

  • 数据集: 采用了argoversewaymo open motion dataset
  • 因子化注意力方法带来了性能增益;
  • 掩码序列建模策略的优势:
    • 在训练和推理的时候, 模型可以指定哪个agent的哪些timesteps进行掩码(indicator = 0 per timestep), 这允许我们能够选择将不同agents不同timesteps的信息呈现给模型, 也能够知道模型如何利用和响应这些信息, 如此在推理的时候能够提供一种mutli-task模型
    • 这对于自车给定goal或者给定其他agents不同轨迹子集时, 给定自车规划, 预测结果会怎样, 特别有用. 文章的配图表达了这个意思, 如下
  • 定性检查发现, 多个tasks(MP/CMP/GCP)一起训练并没有降低motion prediction的性能
  • 联合预测相比边缘预测, 也能有更低的over-laps(不同agent间overlap是不合理的)

(Discussion)

  • 1.文章提出的单个模型就能进行MP,CMP,GCP的多预测任务
  • 2.通过精心建模可以定量提高系统表现, 得到了一个可以用于planning系统的学习模型
  • 3.模型能够确认环境中agents之间的交互, 潜在提供了确认因果关系的任务

(Questions)

  • (1) scene-centric和agent-centric的区别

    • agent-centric: 以每个agent为原点, 对每个agent都计算features
    • scene-centric: 以感兴趣的agent的位置作为原点计算所有features
  • (2) scene-centric怎么就反映出scene-centric了, scene是什么

    • 在一个场景中, 选定感兴趣的目标, 可以是自车也可以是要预测的目标, 其他所有目标和道路元素都以感兴趣目标最新帧位置为原点进行编码, 区别于agent-centric, 如上
  • (3) 模型能在marginal prediction和joint prediction之间随意切换是什么意思

    • 通过不同的掩码策略来实现切换
    • 不考虑周边其他agents和road graphs, 都掩码为0, 则是marginal prediction
    • 考虑周边所有agents和road graphs, 不进行掩码, 则是joint prediction
  • (4) 什么是transformer架构的permutation equivariant(置换不变性/置换等变性)

    • 标准的transformer并不直接具备置换不变性, 因为它包含了位置编码position-encoding, 位置信息也是编码的, 从而理解序列的顺序
    • 要使transformer具备置换不变性, 需经过特殊设计, 比如简单的不使用位置编码
    • 文章中主要是指agents顺序的置换等变和road graph以场景编码后的置换等变等
  • (5) 就算是一种联合预测规划的方法, 为什么要预测自车呢?预测自车的作用是什么?自车规划轨迹不是主动选择的吗

    • 这个模型就是给规划系统用的
    • 预测自车是选定自车goal的方式, 是goal-conditioned prediction, 联合预测了所有agents和自车的未来轨迹
    • 在实际应用中, 自车预测轨迹可作为实际规划的参考
  • (6) 动态道路图编码也是采用PointNet吗

    • 静态道路图编码是PointNet
    • 从文章附录中看, 动态道路元素不是用PointNet, 而是和agents一样通过2层MLP网络输出D维特征feature
  • (7) 文章提到的序列掩码策略具体长什么样

    • 文章附录A中提到, 有设置indicator来指示目标是否掩码, 如果掩码的话, 除了time embedding外, 所有的特征都要置为0
  • (8) 文章和TNT和DenseTNT的前后关系

    • 文章中和TNT和DenseTNT都做了性能比较
    • 从feature vector构建可知, 和TNT和DenseTNT一样, scene transformer也是用了vector-based的方法

 


[参考文章]
[1]. scene transformer论文学习笔记
[2]. scene transformer论文翻译,不准
[3]. scene transformer论文阅读笔记,推荐

created by shuaixio, 2024.07.10

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395037.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络基础一】几乎不讲任何网络协议细节,搭建网络基本结构

文章目录 问题认识“协议”计算机通信问题技术问题应用问题 协议分层那么网络分层应该怎么分层呢&#xff1f; 统编程帮助我们处理数据&#xff0c;网络编程帮助我们获取数据&#xff0c;网络配上我们写的线程池模块很快就搭建起来了。 问题 网卡是文件吗&#xff1f; 是的&am…

24暑假算法刷题 | Day30 | 贪心算法 IV | 452. 用最少数量的箭引爆气球,435. 无重叠区间,763. 划分字母区间

目录 452. 用最少数量的箭引爆气球题目描述题解 435. 无重叠区间题目描述题解 763. 划分字母区间题目描述题解 452. 用最少数量的箭引爆气球 点此跳转题目链接 题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中…

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-04-数据访问层设计

文章目录 1. 五种数据访问模式1.1 在线访问1.2 DAO1.3 DTO1.4 离线数据模式1.5 对象/关系映射 (O/R Mapping) 2. 工厂方法模式在数据访问层应用3 ORM、Hibernate与CMP2.0设计思想3.1 ORM3.2 Hibernate1&#xff09;概述2&#xff09; Hibernate的架构&#xff08;2023年的考题&…

【Web开发手礼】探索Web开发的秘密(十八)-Vue2(4)部门管理页面、路由、打包部署

主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 文章目录 前言 部门管理页面 Vue路由 打包部署 打包 部署 总结 前言 主要介绍了部门管理页面、路由、打包部署&#xff01;&#xff01;&#xff01; 部门管理页面 <template><div>&…

云手机在海外社交媒体运营中的作用

随着社交媒体的全球普及&#xff0c;海外社交媒体运营成为众多企业与个人提升品牌影响力和扩大市场份额的重要策略。在这一进程中&#xff0c;海外云手机以其独特的功能&#xff0c;为海外社交媒体运营提供了强大的支持。 那么&#xff0c;海外云手机在海外社交媒体运营中究竟扮…

展馆室内导航系统:增强现实技术与数据可视化分析在展馆中的应用

随着科技的飞速发展&#xff0c;展览行业正经历着前所未有的变革。作为信息交流与文化传播的重要场所&#xff0c;展馆在吸引访客、展示展品方面扮演着至关重要的角色。然而&#xff0c;在信息爆炸、时间宝贵以及访客需求日益多样化的今天&#xff0c;传统展馆在导览、管理和服…

【学习方法】高效学习因素 ① ( 开始学习 | 高效学习因素五大因素 | 高效学习公式 - 学习效果 = 时间 x 注意力 x 精力 x 目标 x 策略 )

文章目录 一、高效学习因素1、开始学习2、高效学习因素五大因素3、高效学习公式 - 学习效果 时间 x 注意力 x 精力 x 目标 x 策略 一、高效学习因素 1、开始学习 对于 学习差 , 调皮捣蛋 的学生 , 不要把 学习成绩差 的 原因 归因为 不爱学习 / 没有学习方法 , 可能是 还没有 …

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃 1.背景 营销 Agent 指的是在营销过程中洞察客户并作出决策以及行动的 AI 智能体,包括感知、理解、决策、交互、反馈多个模块。对话 SOP 是交互模块中非常重要的部分,如何在缺少数据的情况下快速实现千人…

Java数组的类名是什么以及数组相关操作的指令有什么?

写在前面 不知道你想过没有&#xff0c;我们常说数组也是对象&#xff0c;既然是对象&#xff0c;肯定要有一个类名称了&#xff0c;那么&#xff0c;数组的类名称是什么呢&#xff1f;数组相关的操作对应的指令又是什么呢&#xff1f;本文就一起来看下。 1&#xff1a;叨叨叨…

大数据面试SQL(六):共同使用ip用户检测问题

文章目录 共同使用ip用户检测问题 一、题目 二、分析 三、SQL实战 四、样例数据参考 共同使用ip用户检测问题 一、题目 现有用户登录日志表&#xff0c;记录了每个用户登录的IP地址&#xff0c;请查询共同使用过3个及以上IP的用户对。 样例数据&#xff1a; 结果数据&…

软件功能测试步骤介绍,软件测试服务公司推荐

在当今软件开发日益复杂的环境中&#xff0c;软件功能测试显得尤为重要。功能测试是确保软件产品满足用户需求和规范要求的关键环节。它通过验证软件功能是否按预期运行&#xff0c;帮助发现潜在的问题&#xff0c;防止软件在上线后导致用户的不满及业务损失。随着市场竞争的加…

yaml语法+yaml配置文件

yaml语法 k:(空格)v > 表示一对键值对空格必须有 yaml拥有严格的空格缩进格式控制&#xff0c;以空格的缩进来控制层级关系&#xff1b;只要是左对齐的一列数据&#xff0c;都是同一个层级的 spring:thymeleaf:cache: true# 检查模板是否存在&#xff0c;然后再呈现check…

【初阶数据结构题目】18.设计循环队列

设计循环队列 点击链接答题 思路&#xff1a; 循环队列&#xff0c;空间固定。 这里我们可以用数组来实现循环队列。 如何判断队列是否为满&#xff1f; 多申请一块空间 (rear1)%(k1) front 如何判断队列是否为空&#xff1f; rear front 代码&#xff1a; //定义循环队列的…

【开端】通过Java 过滤器灵活配置URL访问权限,并返回403

一、绪论 在JAVA项目系统中&#xff0c;后端给前端提供接口。但是在某些场景我们需要临时控制接口是否能被访问。或关闭某一接口的访问权限。 比如某一接口被攻击了或者某一接口存在漏洞&#xff0c;在系统不关闭的情况下&#xff0c;如何控制系统的访问权限。 二、控制接口访…

俄组织Fighting Ursa利用虚假汽车销售广告传播HeadLace后门

最近&#xff0c;Palo Alto Networks的科研人员揭露了有一个与俄罗斯有关联的威胁行动者——Fighting Ursa&#xff08;亦称APT28、Fancy Bear或Sofacy&#xff09;。该组织通过散布虚假的汽车销售广告&#xff0c;特别是针对外交官群体&#xff0c;散播名为HeadLace的后门恶意…

概率论原理精解【9】

文章目录 集类拓扑空间基 参考文献 集类 C是一个集类&#xff08;以G的某些子集为元素的集合称为G的集类&#xff09;。 A i ∈ C , ∩ i 1 n A i ∈ C , 此为有限交封闭 C 所得集类 C ∩ f A_i \in C,\cap_{i1}^nA_i \in C,此为有限交封闭C所得集类C_{\cap f} Ai​∈C,∩i1n…

windows和office微软官方免费激活教程

微软提供了windows系统和office的官方免费激活&#xff0c;其实不用去买什么激活码&#xff0c;官方提供了激活方式&#xff0c;完全免费。目前测试没发现什么问题&#xff0c;windows还支持永久激活&#xff0c;比一些乱七八糟的kms激活工具还省心。 github地址&#xff1a;Gi…

Xshell8最新版体验(业界最强大的SSH连接工具)

Xshell 是一款强大的 SSH 客户端&#xff0c;广泛用于远程管理和连接服务器。 一、主要特性 多标签界面&#xff1a; 支持在一个窗口中打开多个会话&#xff0c;每个会话以标签形式显示&#xff0c;方便用户在不同会话之间快速切换。 会话管理&#xff1a; 提供强大的会话管理…

Ubuntu安装MySQL5.7 + Apache + PHP + 禅道 保姆及教程

目录 开始安装MySQL 5.7 1、获取安装包 2、解压到指定位置 安装MySQL 启动MySQL 进入到MySQL进行测试 设置允许所有IP可以连接 配置允许远程连接 和 开启 gtid 和 binlog 日志&#xff08;这一步如果不需要可以不操作 如果只需要配置允许远程连接只添加bind-address 0…

Google Mock 和 Google Test编写单元测试入门(环境配置、简单执行)

文章目录 环境的配置方法1&#xff1a;从源代码构建第一步&#xff1a;克隆库的源代码第二步&#xff1a;构建库 方法 2&#xff1a;使用 CMake 的 FetchContent示例 CMakeLists.txt 项目的创建项目结构CMakeLists.txt (根目录)main.cpp (示例程序)tests/CMakeLists.txt (测试部…