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

计算机视觉:轨迹预测综述

计算机视觉:轨迹预测综述

  • 轨迹预测的定义
  • 轨迹预测的分类
    • 基于物理的方法(Physics-based)
    • 基于机器学习的方法(Classic Machine Learning-based)
    • 基于深度学习的方法(Deep Learning-based)
    • 基于强化学习的方法(Reinforcement Learning-based)
  • 数据集/评价指标

轨迹预测的定义

轨迹预测问题可以表述为在给定的一个场景下,使用交通参与者的历史状态预测估计其未来状态。历史状态可以来自于车端或路端,状态信息一般包括交通参与者的位置,也有可能包括速度、加速度、朝向角等信息。场景信息一般包括车辆运动学(或动力学)、路侧信息(地图、交通信号灯、交通规则等)和交通参与者之间的交互信息等因素。
轨迹预测的输入是一系列具有历史时间信息的交通参与者状态。
轨迹预测的输出是一系列具有未来时间信息的交通参与者状态,一般有三种形式:单模态(Unimodal)、多模态(Multimodal)和意图(Intention)。

  • 单模态是指一个或多个交通参与者的一个未来轨迹;
  • 多模态是指一个或多个交通参与者的多个未来轨迹;
  • 意图可以是最终输出的一部分,也可以是一个中间过程,提供了交通参与者的轨迹意图。

轨迹预测的分类

基于物理的方法(Physics-based)

基于物理的方法是借助于车辆的运动学模型或动力学模型,使用单一轨迹预测、卡尔曼滤波或蒙特卡罗的方法对其轨迹进行预测。虽然简单高效、计算复杂度低,但是其预测精度相对较低,一般仅适用于短期预测(不超过1s),但基于学习的方法通常可以考虑融合基于物理的方法进而提升预测精度。

  • 单一轨迹预测:该方法认为车辆状态是已知且无噪声的,使用匀速、匀加速度或匀角速度和加速度等模型对车辆的状态进行预测,此方法虽然简单高效,但未考虑路侧信息以及状态的不确定性,不适合于长期轨迹预测。
  • 卡尔曼滤波:该方法将车辆状态的不确定性(噪声)考虑在内,并认为噪声呈高斯分布,通过不断地迭代预测车辆状态的平均值和方差。此方法虽然考虑了状态的不确定性,但简单地认为噪声呈高斯分布是不可靠的,一些学者也提出了多模态轨迹预测的卡尔曼滤波、考虑交互因素的卡尔曼滤波等方法。
  • 蒙特卡罗:此方法可以对交通参与者的状态分布进行模拟,它对历史状态输入进行随机采样,利用物理模型(动力学、运动学模型)对未来状态进行估计,其中的历史状态可以是已知且确定的,亦可以是由估计算法得到的不确定的。

基于机器学习的方法(Classic Machine Learning-based)

基于机器学习的方法是应用数据驱动的模型来预测轨迹,例如高斯过程(Gaussian Process)、支持向量机(Support Vector Machine)、隐式马尔可夫链(Hidden Markov)、动态贝叶斯(Dynamic Bayesian)、K近邻(K-Nearest Neighbors)、决策树(Dynamic Tree)等等。此类方法利用经典机器学习的分类与回归方法对交通参与者的轨迹与意图进行学习与预测,相较于基于物理的方法,它可以更好地融合路侧、交互等场景信息,预测精度得以提升,但此方法针对复杂场景可能束手无策。

基于深度学习的方法(Deep Learning-based)

基于深度学习的方法一般针对历史状态的输入,进行特征提取,再通过回归来预测未来状态输出。例如循环神经网络(Recurrent Neural Network,RNN)、卷积神经网络(Convolutional Neural Network,CNN)、基于Transformer的注意力网络(Attention Network based on Transformer)、图神经网络(Graph Neural Network,GNN)以及生成式网络(Generative Adversarial Network,GAN)等。此方法已经成为研究的主流方向,并达到了SOTA水平,相较于基于物理、机器学习的方法,基于深度学习的方法可以预测更长时间的状态。

  • 循环神经网络:它与有效处理空间信息的卷积神经网络不同,循环神经网络被设计用来处理时间信息,它存储每一步时间信息,利用隐藏状态和历史轨迹的特征输入来预测未来轨迹的输出。当时间步数较大时,循环神经网络容易发生梯度爆炸。使用门控循环神经网络(Gated RNN)可以解决此问题,例如长短期记忆网络(Long Short Term Memory Network,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)。
  • 卷积神经网络:由于轨迹具有很强的时空连续性,部分学者认为使用CNN预测会更好。它们采用序列到序列的结构,以历史轨迹为输入,在全连接层之后叠加卷积层实现时间连续性,再通过全连接层输出未来轨迹。实验表明,基于CNN的模型运行速度更快。
  • 卷积循环神经网络:卷积神经网络适用于提取空间信息,循环神经网络适用于处理时间信息,一些学者将两者联合在一起进行建模。
  • 注意力网络:随着Transformer在计算机视觉和自然语言处理的爆火,一些学者也将Transformer的编码器与解码器应用到轨迹预测中,首先历史状态作为编码器的输入,object query作为未来状态与历史状态的编码输出交互,得到最终的预测轨迹。实验证明此方法在长时序的预测任务中表现良好,不仅方便轨迹序列的建模,也方便对环境和交通参与者之间的交互进行建模。
  • 图神经网络:每一个交通参与者被认为图中的一个节点(node),每一个节点通过边(edge)与其他节点相关联。因此图神经网络方便对交互信息进行建模,典型的方法主要有图卷积网络和图注意力网络。
  • 生成式网络:为了解释轨迹预测的多模态属性与不确定性,一些学者提出使用生成式网络来预测轨迹,包括生成对抗网络(Generative Adversarial Network,GAN)和条件变分自动编码器(Conditional Variational Auto Encoder,CVAE)。

基于强化学习的方法(Reinforcement Learning-based)

传统的强化学习是基于马尔可夫决策过程(Markov decision process,MDP),利用与环境交互和人为设计的奖励函数,以最大化奖励为准则来得到最优的行为,基于强化学习的轨迹预测方法包括:逆向强化学习(Inverse Reinforcement Learning,IRL)、生成对抗模仿学习(Generative Adversarial Imitation Learning,GAIL)和深度逆向强化学习(Deep Inverse Reinforcement Learning,DIRL)等等。

  • 逆向强化学习:此方法是指奖励函数并非人为设计,而是根据专家演示学习一个奖励函数得到最优的行为进而对轨迹进行预测,逆向强化学习主要有基于最大化裕度和最大化熵两种优化方法来更新学习奖励函数的权重。最大化裕度的方法是通过最小化专家演示和预测轨迹之间的特征期望来更新奖励函数的权重,然而大多数基于裕度的方法在特征期望匹配方面是模糊的。而最大化熵的方法使用多个奖励函数来解释专家演示的模糊性。
  • 生成对抗模仿学习:此方法使用生成式网络GAN进行模仿学习,它利用GAN生成轨迹,使之与专家演示尽可能相近,再利用鉴别器判断是否此轨迹是一个专家演示。
  • 深度逆向强化学习:由于预测任务是非线性的,不同于逆向强化学习,深度逆向强化学习利用全卷积神经网络学习一个复杂的非线性奖励函数。目前,大多数DIRL算法可以直接利用原始传感器数据(图像、点云等)进行建模。

数据集/评价指标

关于轨迹预测数据集包括但不限于NuScenes、Waymo、Lyft Level 5、Argoverse、INTERACTION、HighD、Apolloscape、KITTI、NGSIM等。
评价指标:均方根误差(Root Mean Squared Error,RMSE)、负对数似然(Negative Log Likelihood,NLL)、平均位移误差(Average Displacement Error,ADE)、最终位移误差(Final Displacement Error,FDE)、错失率(Miss Rate,MR)、计算时间(Computation Time)、预测视野(Prediction Horizon)等。

相关文章:

计算机视觉:轨迹预测综述

计算机视觉:轨迹预测综述 轨迹预测的定义轨迹预测的分类基于物理的方法(Physics-based)基于机器学习的方法(Classic Machine Learning-based)基于深度学习的方法(Deep Learning-based)基于强化学…...

三维跨孔电磁波CT数据可视化框架搭建

三维跨孔电磁波CT数据可视化框架搭建 文章目录 三维跨孔电磁波CT数据可视化框架搭建1、三维CT可视化结果2、matlab代码2.1、CT数据格式整理并保存2.2、三维可视化 利用matlab实现对跨孔电磁波CT实测数据反演,并搭建了三维CT数据可视化框架,可装填实测CT反…...

OC和Swift混编,导入头文件‘xxx-Swift.h‘ file not found

在OC的项目里加入Swift代码,创建完桥接文件后,需要倒入Swift头文件,头文件的格式为“项目名-Swift.h”。 如下图,我在Xcode上看到我的项目名为YichangPark,导入 #import "YiChangPark-Swift.h" 之后提示 “Y…...

一文读懂HOOPS Native平台:快速开发桌面端、移动端3D应用程序!

HOOPS Native Platform是用于在桌面和移动平台以及混合现实应用程序上构建3D工程应用程序的首要工具包。它由三个集成良好的软件开发工具包(SDK)组成:HOOPS Visualize、HOOPS Exchange、HOOPS Publish。HOOPS Visualize 是一个强大的图形引擎,适用于本机…...

Scrum工作模式及Scrum工具

Scrum工作模式是一种敏捷软件开发方法,其核心是团队合作和自我组织,旨在通过短周期的迭代开发,实现快速反馈和持续改进。 Scrum工作模式包括以下角色和活动: 1、产品负责人(Product Owner):负…...

[ros][ubuntu]ros在ubuntu18.04上工作空间创建和发布一个话题

构建catkin工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace cd ~/catkin_ws/ catkin_make 配置环境变量 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 检查环境变量 echo $ROS_PACKAGE_PATH…...

我的区块链笔记

区块链 中心化的账本,个人节点和中心节点的地位不对等,中心节点说了算。去中心化,个人节点就是公平的,根据一套规则,叫做公比机制。 区块链的本质,就是数据存储方式 区块链使用密码学算法产生的区块&…...

Spring事务(ACID特性、隔离级别、传播机制、失效场景)

一、事务的ACID特性 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency) 事务前后数据的完整性必须保持一致。隔离性(Isola…...

机器学习笔记之最优化理论与方法(六)无约束优化问题——最优性条件

机器学习笔记之最优化理论与方法——无约束优化问题[最优性条件] 引言无约束优化问题无约束优化问题最优解的定义 无约束优化问题的最优性条件无约束优化问题的充要条件无约束优化问题的必要条件无约束优化问题的充分条件 引言 本节将介绍无约束优化问题,主要介绍无…...

E5061B/是德科技keysight E5061B网络分析仪

181/2461/8938产品概述 是德科技E5061B(安捷伦)网络分析仪在从5 Hz到3 GHz的宽频率范围内提供通用的高性能网络分析。E5061B提供ENA系列常见的出色RF性能,还提供全面的LF(低频)网络测量能力;包括内置1 Mohm输入的增益相位测试端口。E5061B从低频到高频的…...

2.4 PE结构:节表详细解析

节表(Section Table)是Windows PE/COFF格式的可执行文件中一个非常重要的数据结构,它记录了各个代码段、数据段、资源段、重定向表等在文件中的位置和大小信息,是操作系统加载文件时根据节表来进行各个段的映射和初始化的重要依据…...

Vue2项目练手——通用后台管理项目第五节

Vue2项目练手——通用后台管理项目 首页组件布局面包屑&tag面包屑使用组件使用vuex存储面包屑数据src/store/tab.jssrc/components/CommonAside.vuesrc/components/CommonHeader.vue tag使用组件文件目录CommonTag.vueMain.vuetabs.js 用户管理页新增功能使用的组件页面布局…...

软件工程学术顶会——ESEC/FSE 2022 议题(网络安全方向)清单、摘要与总结

总结 本次会议中网络安全相关议题涵盖区块链、智能合约、符号执行、浏览器API模糊测试等不同研究领域。 热门研究方向: 1. 基于深度学习的漏洞检测与修复 2. 基于AI的自动漏洞修复 3. 模糊测试与漏洞发现 冷门研究方向: 1. 多语言代码的漏洞分析 2. 代码审查中的软件安全 3. 浏…...

从C语言到C++_36(智能指针RAII)auto_ptr+unique_ptr+shared_ptr+weak_ptr

目录 1. 智能指针的引入_内存泄漏 1.1 内存泄漏 1.2 如何避免内存泄漏 2. RAII思想 2.1 RAII解决异常安全问题 2.2 智能指针原理 3. auto_ptr 3.1 auto_ptr模拟代码 4. unique_ptr 4.1 unique_ptr模拟代码 5. shared_ptr 5.1 shared_ptr模拟代码 5.2 循环引用 6.…...

C++信息学奥赛1187:统计字符数

#include <bits/stdc.h> using namespace std; int main() {string arr;cin >> arr; // 输入一个字符串int n, a, max; // 定义变量n, a, maxchar ArrMax; // 定义字符变量ArrMaxn arr.length(); // 获取字符串长度max a 0; // 初始化max和a为0// 外层循环&…...

计算机毕设 大数据商城人流数据分析与可视化 - python 大数据分析

文章目录 0 前言课题背景分析方法与过程初步分析&#xff1a;总体流程&#xff1a;1.数据探索分析2.数据预处理3.构建模型 总结 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到…...

vscode上搭建go开发环境

前言 Go语言介绍&#xff1a; Go语言适合用于开发各种类型的应用程序&#xff0c;包括网络应用、分布式系统、云计算、大数据处理等。由于Go语言具有高效的并发处理能力和内置的网络库&#xff0c;它特别适合构建高并发、高性能的服务器端应用。以下是一些常见的Go语言应用开发…...

10.(Python数模)(预测模型二)LSTM回归网络(1→1)

LSTM回归网络&#xff08;1→1&#xff09; 长短期记忆网络 - 通常只称为“LSTM” - 是一种特殊的RNN&#xff0c;能够学习长期的规律。 它们是由Hochreiter&#xff06;Schmidhuber&#xff08;1997&#xff09;首先提出的&#xff0c;并且在后来的工作中被许多人精炼和推广。…...

mac常见问题(五) Mac 无法开机

在mac的使用过程中难免会碰到这样或者那样的问题&#xff0c;本期为您带来Mac 无法开机怎么进行操作。 1、按下 Mac 上的电源按钮。每台 Mac 电脑都有一个电源按钮&#xff0c;通常标有电源符号 。然后检查有没有通电迹象&#xff0c;例如&#xff1a; 发声&#xff0c;例如由风…...

WebSocket与SSE区别

一&#xff0c;websocket WebSocket是HTML5下一种新的协议&#xff08;websocket协议本质上是一个基于tcp的协议&#xff09; 它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 websocket的原理 …...

Windows USB设备独占访问技术解决方案:UsbDk架构解析与实践指南

Windows USB设备独占访问技术解决方案&#xff1a;UsbDk架构解析与实践指南 【免费下载链接】UsbDk Usb Drivers Development Kit for Windows 项目地址: https://gitcode.com/gh_mirrors/us/UsbDk Windows系统对USB设备的严格管理限制了用户模式应用程序直接访问硬件的…...

Qwen3.5-2B轻量化部署:4GB显存GPU跑通多模态推理的完整环境配置

Qwen3.5-2B轻量化部署&#xff1a;4GB显存GPU跑通多模态推理的完整环境配置 1. 模型概述 Qwen3.5-2B是Qwen3.5系列中的轻量化多模态基础模型&#xff0c;仅有20亿参数规模&#xff0c;专为低功耗、低门槛部署场景设计。该模型具有以下核心特点&#xff1a; 资源占用低&#…...

双模型协作方案:OpenClaw同时调用Qwen3-14B与CodeLlama

双模型协作方案&#xff1a;OpenClaw同时调用Qwen3-14B与CodeLlama 1. 为什么需要双模型协作 去年我在处理一个技术文档自动生成项目时&#xff0c;发现单一模型很难同时满足文本润色和代码示例生成的需求。Qwen3-14B在自然语言处理上表现优异&#xff0c;但生成的代码片段常…...

OpenClaw模型微调:让Phi-3-mini适配你的专属工作流

OpenClaw模型微调&#xff1a;让Phi-3-mini适配你的专属工作流 1. 为什么需要微调Phi-3-mini&#xff1f; 当我第一次将Phi-3-mini接入OpenClaw时&#xff0c;发现这个"聪明"的小模型在处理我的专业领域任务时总有些力不从心。它能够理解通用指令&#xff0c;但当我…...

Qwen3.5-2B模型Java环境快速配置与Hello World实例

Qwen3.5-2B模型Java环境快速配置与Hello World实例 1. 前言&#xff1a;为什么选择Java调用Qwen3.5-2B 如果你是一名Java开发者&#xff0c;想要快速体验大语言模型的魅力&#xff0c;这篇教程就是为你准备的。Qwen3.5-2B作为一款轻量级但性能出色的开源模型&#xff0c;非常…...

新手必看!UI-TARS-desktop快速上手:一句话让电脑自动干活

新手必看&#xff01;UI-TARS-desktop快速上手&#xff1a;一句话让电脑自动干活 你是否想过&#xff0c;只需要对电脑说一句话&#xff0c;它就能自动完成各种任务&#xff1f;UI-TARS-desktop正是这样一个神奇的AI助手&#xff0c;它能听懂你的自然语言指令&#xff0c;并自…...

JavaScript中类的装饰器提案在属性与方法上的应用

JavaScript类装饰器处于TC39 Stage 3提案阶段&#xff0c;未标准化但Babel/TS已实验支持&#xff1b;方法装饰器接收target、propertyKey、descriptor&#xff0c;可增强行为&#xff1b;属性装饰器无统一签名&#xff0c;TS常用Reflect元数据&#xff1b;装饰器静态执行、不可…...

快速生成eNSP自动化安装脚本原型,用快马AI告别繁琐配置

作为一名经常需要搭建网络实验环境的工程师&#xff0c;我深知华为eNSP安装过程的繁琐。每次在新设备上配置时&#xff0c;手动安装依赖、处理环境变量的过程都让人头疼。最近尝试用InsCode(快马)平台的AI辅助功能后&#xff0c;发现可以快速生成自动化安装脚本原型&#xff0c…...

STM8S001单片机:8引脚高性价比嵌入式开发方案

1. STM8S001单片机&#xff1a;小身材大能量的性价比之王 在嵌入式开发领域&#xff0c;我们常常陷入一个两难选择&#xff1a;要么使用功能强大但引脚众多、价格昂贵的高端MCU&#xff0c;要么选择功能简陋、开发环境不友好的廉价芯片。STMicroelectronics最新推出的STM8S001系…...

力扣热门100题之最大子数组和

最优解法&#xff1a;Kadane 算法&#xff08;一遍遍历&#xff09;核心思想遍历数组时&#xff0c;维护当前最大和如果前面的和是负数&#xff0c;只会拖累当前数&#xff0c;直接抛弃前面否则&#xff0c;把当前数加进去全程记录最大值完整代码实现&#xff1a;class Solutio…...