【动手学轨迹预测】2.3 场景表征方法

news2025/2/25 18:12:14

场景表征是指在所有可用的场景信息数据中, 提取出对于预测网络有用的数据, 并将其转换为易于模型学习的数据格式. 对于预测网络来说, 最重要的数据是交通参与者的历史轨迹和地图信息, 表达它们的常见方法有:栅格化和稀疏化

2.1.1 栅格化

  • 多通道表达

如上图所示, 将历史轨迹和地图信息转换成不同通道的栅格图是在卷积神经网络(CNN)中常见的方法. 不同的通道存储不同的信息, 比如图中的可显示区域存在一个通道中, 道路中心线存储在另一个通道中等等.

  • 基于颜色表达

也可以像上图这样, 使用较少的通道数, 人为定义不同的信息来区分. 比如说R,G,B三个通道, 我们将红色定义为agent的历史轨迹信息, 将蓝色定义为地图车道信息, 黑色定义为不可行驶区域等等. 这样就可以缩小栅格图的总数据量.

  • 时序信息

那么如何去表达轨迹中的时序信息呢? 可以将按照时序, 使轨迹的颜色由深变浅. 也可以使用前文的多个通道, 或者是多张图片, 来代表不同时序的信息.

  • 方向, 速度等

还有类似于朝向角这样的方向信息, 也可以对应的映射到图像信息中去表达. 比如将 [ 0 , 2 π ] [0, 2\pi] [0,2π]的方向数据, 对应映射到颜色上去, 比如从红色变成蓝色; 也可以将其映射到亮度上, 比如由暗变亮.

其他诸如速度, 加速度, 转向速度等等不易直接表达成图像的数据, 都可以用类似的方法一一映射到图像中去.

  • 优缺点

在早期基于CNN的预测网络中, 这种栅格化的方法非常流行. 因为使用栅格图:

  • 天然善于接受基于视觉的输入信息
  • 简便的转换场景中的轨迹, 地图信息, 清晰直观

但是它的缺点也很明显:

  • 栅格图的存储成本高, 随着场景大小指数增长
  • 低分辨率的栅格图, 信息不够明确; 高分辨率的栅格图, 无用细节信息过多
  • 过多的映射导致可解释性较差
  • 不易可视化数据的信息损失

2.1.2 稀疏化

稀疏化是指将这些图形数据使用向量集表达, 对于轨迹车道线等线段元素, 向量集代表折线段; 对于可显示区域等多边形元素, 向量集代表包围起来的多边形, 这种做法的典型网络是VectorNet.

同时, 车道的转向属性, 车道线属性, 限速等等信息, 都可以直接放入到向量的附属属性中, 输入信息可以完整的保存下来的同时, 只需要存储较小的数据量.

稀疏化表达极大的提升了模型的预测模型的性能, 训练效率和泛化能力, 基本已经成为了场景表征的主流方法.

这些每个对象的向量表达, 可以对每个对象向量集单独编码, 之后再进行聚合, 比如VectorNet使用GNN.

或者是使用联合编码来捕捉他们的交互关系, 比如Transformer.

2.1.2.1 VectorNet: 基于GNN的矢量化编码

(1) 主要贡献

  1. 第一个矢量化场景上下文和智能体的动力学信息进行行为预测。
  2. 我们提出了分层图网络以及节点完成辅助任务。
  3. 在内部行为预测数据集和Argoverse数据集上评估了此方法,与渲染的方法相比达到了同等或更好的性能,并节省了70%的模型尺寸。这个方法在Argoverse上也达到了最优的性能。

(2) VectorNet 模型

https://picx.zhimg.com/80/v2-69572c0354ef229c9639fa70a5073e09_1440w.png?source=d16d100b

我们提出的矢量网概述。观察到的智能体轨迹和地图特征被表示为向量序列,并传递到局部图形网络以获得多段线级特征。然后将这些特征传递到完全连通的图模型高阶相互作用。我们计算了两种类型的损失:根据智能体对应于节点特征预测未来的轨迹以及其特征被掩盖时预测节点特征。

(3) 轨迹和地图的表示

HD地图中的大多数表示都是样条曲线(如车道)、闭合形状(如交叉口区域)和点(如红绿灯),以及附加属性信息,如当前状态(如交通颜色,道路速度限制)。对于智能体,其轨迹是关于时间的有向样条曲线形式。所有这些元素都可以近似为矢量序列。

对于地图特征,我们选择一个起点和方向,从条线中均匀采样关键点并将相邻的关键点依次连接成向量;对于轨迹,我们可以从t=0开始,以固定的时间间隔(0.1秒)采样关键点,并将它们连接到向量中。给定足够小的空间或时间间隔,生成的多段线可作为地图和轨迹的近似值。

我们的矢量化过程是连续轨迹和vector set、地图信息和vector set之间的一对一映射,尽管后者是无序的。这允许我们可以通过图神经网络进行编码。更具体地说,我们将属于多段线 P j P_{j} Pj的每个向量 v i v_i vi视为图中的node,其node表示为

v i = { d i s , d i e , a i , j } v_{i} = \left\{ d_{i}^{s},d_{i}^{e},a_{i},j \right\} vi={dis,die,ai,j}

d i s , d i e d_{i}^{s},d_{i}^{e} dis,die前两个 是起点和终点的坐标, a i a_i ai对应于属性特征,如对象类型、轨迹的时间戳或车道的道路特征类型或速度限制;j 是 P j P_j Pj的整数id,表示 v i v_i vi P j P_j Pj

归一化:为了使输入节点特征相对位置不变,对于目标智能体,作者以目标智能体最后的观测时间下的位置,对所有向量的坐标进行归一化。

(4) 构造多段线子图

为了利用节点的空间和语义局部性,这里采用分层方法,首先在向量层构造子图,其中所有向量节点都相互连接,并且用同一多段线表示。考虑具有节点{ v 1 , v 2 , … , v P v_1,v_2,…,v_P v1v2vP}的多段线P将单层子图传播操作定义为:

v i ( l + 1 ) = φ r e l ( g e n c ( v i ( l ) ) , φ a g g ( g e n c ( v j ( l ) ) ) v_i^{(l+1)} = φ_{rel}(genc(v_i^{(l)}),φ_{agg}({genc(v_j^{(l)}})) vi(l+1)=φrel(genc(vi(l)),φagg(genc(vj(l)))

其中 v i ( l ) v_i^{(l)} vi(l) 是l层子网络上面的节点特征, v l 0 v_{l}^{0} vl0 是输入特征 vi 。

g e n c ( . ) genc(.) genc(.) 用于转换独立的节点,是一个MLP,所有节点共享参数。一层全连接层后面跟着layer normalization 和ReLU non-linearity。

φ a g g ( . ) φ_{agg(.) } φagg(.)用于集合周边节点的信息,是一个最大池化的操作。

φ r e l ( . ) φ_{rel(.)} φrel(.) 表示节点和其邻居之间的关系,是一个简单的连接运算。

https://pica.zhimg.com/80/v2-5988f773f410beefe44baf9193384f27_1440w.png?source=d16d100b

相同多线段下节点的计算流

我们堆叠多层子图网络,其中 g e n c ( . ) genc(.) genc(.)的权重不同。最后,为了获得polyline级别的特征上,我们计算

⁍ ⁍

其中 g e n c ( . ) genc(.) genc(.)再一次最大池化。

(5) 高阶交互的全局图

我们现在在全局交互图中考虑polyline node之间的交互,用全局交互图进行建模:

{ p i ( l + 1 ) } = G N N ( { p i ( l ) } , A ) \left\{ p_{i}^{\left( l +1\right)} \right\} = GNN(\left\{ p_{i}^{\left( l \right)} \right\},A) {pi(l+1)}=GNN({pi(l)},A)

其中 { p i ( l ) } \left\{ p_{i}^{\left( l \right)} \right\} {pi(l)} 是多线段节点的集合。 G N N ( . ) GNN(.) GNN(.) 对应的单层的图神经网络。A对应节点的邻接矩阵,它能够提供节点之间的距离之类的信息。我们假设A是一个全连接的图,图网络可以表达成self-attention:

G N N ( P ) = s o f t m a x ( P Q P K T ) P V GNN(P)= softmax\left( P_{Q}P_{K}^{T} \right)P_{V} GNN(P)=softmax(PQPKT)PV

其中 P P P是节点特征矩阵, P Q P_Q PQ P V P_V PV P K P_K PK 是线性投影。

作者将移动的智能体的未来轨从节点中进行解码:

v i f u t u r e = φ t r a j ( P i L t ) v_{i}^{future} = \varphi_{traj}\left( P_{i}^{L_{t}} \right) vifuture=φtraj(PiLt)

其中 L t L_t Lt是GNN层总数的数目,而 ψ t r a j ( . ) ψ_{traj}(.) ψtraj(.)是轨迹解码器。为了简单起见,我们使用MLP来解码。

在实现中使用单个GNN层,在推理期间,仅需要计算与agent相对应的节点特征。如果有必要,也可以堆叠多层 G N N ( . ) GNN(.) GNN(.)来建模进行高阶交互。

为了让全局交互图更好地捕捉不同轨迹和map polyline之间的交互,这里引入了一个辅助图完成任务。在训练期间,我们随机掩盖polyline节点的子集的特征,然后尝试将其屏蔽功能恢复为:

p ^ i = φ node  ( P i ( L t ) ) \hat{\mathbf{p}}_i=\varphi_{\text {node }}\left(\mathbf{P}_i^{\left(L_t\right)}\right) p^i=φnode (Pi(Lt))

其中 φ n o d e ( . ) \varphi_{node}\left( . \right) φnode(.) 是实现MLP解码的节点特征,这些特征不用于推断的时候。 P i P_i Pi 是来自全连阶层的节点。为了能够区分独立的polyline节点是对应的特征被隐藏的,计算起始坐标的最小值得到 P i i d P_{i}^{id} Piid,这些输入的节点特征变成

P i 0 = [ P i ; P i i d ] P_{i}^{0} = \left[ P_{i};P_{i}^{id} \right] Pi0=[PiPiid]

(6) 整体框架

一旦构建了分层图网络,针对多任务培训目标进行优化

L = L traj  + α L node  \mathcal{L}=\mathcal{L}_{\text {traj }}+\alpha \mathcal{L}_{\text {node }} L=Ltraj +αLnode 

其中, L t r a j L_{traj} Ltraj是未来真实轨迹的负高斯对数似然, L n o d e L_{node} Lnode是在预测的节点特征和真值之间Huber损失, α α α=1.0是平衡两者的损失标量。作者在将polyline节点特征馈送到全局图网络之前对其进行L2归一化。

其他交通参与者采用的是相对偏移,起点是上一帧对目标agent的观测,并且基于上一帧目标agent观测位置的heading建立相对坐标系。

我们对多段线子图使用三个图层,对全局交互图使用一个图层。所有MLP中隐藏单位的数量固定为64。MLP之后是归一化和ReLU非线性。我们以车辆最后观测到的位置为中心,将矢量坐标归一化。VectorNet在8个GPU上同步训练使用Adam optimizer。学习速率每5分钟衰减一次按因子0.3计算,我们训练模型的总时间为25个回合,初始学习率为0.001。

(7) 实验验证

https://picx.zhimg.com/80/v2-26244b94b8ed28d42e983c2d049c9462_1440w.png?source=d16d100b

VectorNet相比ResNet-18系列相比,参数量仅为29%,计算量小仅为20%,效果提升18%,真正地实现了更小,更快,更强。

2.1.2.2 基于Transformer的矢量化编码

将在2.5节详细介绍

推荐阅读

  • 端到端理论与实战
  • 动手学轨迹预测
  • 动手学运动规划
  • 动手学行为决策
  • 强化学习入门笔记

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

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

相关文章

亚信安全举办“判大势 悟思想 强实践”主题党日活动

为深入学习和贯彻党的二十届三中全会精神,近日,亚信安全举办了 “学习贯彻党的二十届三中全会精神——‘判大势 悟思想 强实践’党日活动”,并取得圆满成功。 本次活动特邀南京市委宣讲团成员、南京市委党校市情研究中心主任王辉龙教授出席。…

医疗大模型威胁攻击下的医院AI安全:挑战与应对策略

一、引言 1.1 研究背景与意义 随着人工智能技术的迅猛发展,医疗大模型作为一种新兴的技术手段,正逐渐渗透到医疗领域的各个环节,为医疗服务的数字化转型带来了前所未有的机遇。从辅助诊断到疾病预测,从个性化治疗方案的制定到医疗资源的优化配置,医疗大模型展现出了巨大…

如何在谷歌浏览器中使用内置翻译功能

谷歌浏览器作为全球最受欢迎的网络浏览器之一,提供了强大且便捷的内置翻译功能。这一功能帮助用户轻松跨越语言障碍,浏览不同语言的网页内容。本文将详细介绍如何在谷歌浏览器中使用其内置翻译功能。 一、启用谷歌浏览器内置翻译功能 1、打开谷歌浏览器…

【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

1.0 help ? 帮助指令,查询某个指令的解释、用法、说明等。详情参考博文: 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询 https://www.cnblogs.com/xiaofu007/p/10301005.html 2.0 在cmd命…

基于推理的目标检测 DetGPT

基于推理的目标检测 DetGPT flyfish detgpt.github.io 近年来,由于大型语言模型(LLMs)的发展,计算机视觉领域取得了重大进展。这些模型使人类与机器之间能够进行更有效、更复杂的交互,为模糊人类与机器智能界限的新技…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量(R.V)求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续型分布的计算 均匀分布 正态…

探索 Python编程 调试案例:计算小程序中修复偶数的bug

在 学习Python 编程的过程里,会遇到各种各样的bug。而修复bug调试代码就像是一场充满挑战的侦探游戏。每一个隐藏的 bug 都是谜题,等待开发者去揭开真相,让程序可以顺利运行。今天,让我们通过一个实际案例,深入探索 Py…

Redis 介绍和安装

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Redis 入门介绍 收录于专栏[redis] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 本章将带领读者进入 Redis 的世…

springboot480基于springboot高校就业招聘系统设计和实现(论文+源码)_kaic

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

【基础篇】1. JasperSoft Studio编辑器与报表属性介绍

编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器,其中包括三个标签:设计,源代码和预览。 Design:报表设计页面,可以图形化拖拉组件设计报表,打开报表文件的主页面Source:源代码页码&#xff…

【河南新标】豫财预〔2024〕105号-《关于省级政务信息化建设项目支出预算标准的规定》-费用标准解读系列29

2024年12月3日,河南省财政厅发布了《关于省级政务信息化建设项目支出预算标准的规定》豫财预〔2024〕105号。《关于省级政务信息化建设项目支出预算标准的规定 (试行)》(豫财预 〔2020〕81号)同时废止。新的豫财预〔20…

导入numpy报错:PyCapsule_Import could not import module “datetime“

背景 docker部署深度学习算法时,安装miniconda报错,报线程错误。 然后在构建镜像时把miniconda装进去没有问题。 然后把环境移进去发现报numpy导入错误 在python解释器尝试导入numpy发现还是报错 尝试重新装numpy,发现没有解决。 网上找解决方…

TANGO与LabVIEW控制系统集成

TANGO 是一个开源的设备控制和数据采集框架,主要用于管理实验室设备、自动化系统和工业设备。它为不同类型的硬件提供统一的控制接口,并支持设备之间的通信,广泛应用于粒子加速器、同步辐射光源、实验室自动化和工业控制等领域。 1. TANGO的核…

利用Circuit JS1再学学电子方面的知识(硬件)

1 电阻器 1.1 电阻并联 每个电阻电压相同,总电流等于各支路电流之和。 并联电阻值 R 1/(1/R11/R2);R约等于90.9 电阻并联后的阻值比最小的一个电阻值都小。 1.2 电阻串联 电阻串联的阻值为各电阻阻值相加。 RR1R2,串联涉及电阻分压。 一般在开关处…

使用Amazon Bedrock的无服务器的智能工作流

使用Amazon Bedrock的无服务器的智能工作流 智能工作流基于用户输入处理不可预见的任务,比如发起API调用。无服务器架构可以高效地管理这些任务和不同的工作负载,而无需维护服务器,从而加快部署速度。 你将学习如何通过使用带有保护措施的智能…

国高材服务 | 高分子结晶动力学表征——高低温热台偏光显微镜

众所周知,聚合物制品的实际使用性能(如光学透明性、硬度、模量等)与材料内部的结晶形态、晶粒大小及完善程度有着密切的联系,因此,对聚合物结晶形态等的研究具有重要的理论和实际意义。 随着结晶条件的不用&#xff0c…

【LeetCode每日一题】——415.字符串相加

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 415.字符串相加 四【题目描述】 给定两个字符…

idea设置控制台日志输出自动换行

文章目录 1. 原因2. 方法一:3. 方法二: 1. 原因 你是否碰到ideal控制台输入日志是一行的效果,那是因为带了soft wrap。 2. 方法一: 最新版的IDEA设置控制台自动换行位置如下: Setting->Editor->General->C…

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型(MLLMs)的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文:Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复: 2、说明: 1)如果小伙伴们经常做android开发的话,这个不陌生,因为调试都是要开启这个开发者模式。并启用USB调试模式。 2)需要连上USB线,有的时候会忘记,然…