深度学习篇---LSTMADF轨迹预测


文章目录

  • 前言
  • LSTM 轨迹预测
    • 原理
    • 应用
      • 在行人轨迹预测方面
      • 在自动驾驶车辆的轨迹预测中
    • 优点
    • 缺点
  • APF 轨迹预测
    • 原理
    • 应用
      • 在船舶运动规划
      • 在无人驾驶车辆避障轨迹跟踪
    • 优点
    • 缺点
  • 示例代码


前言

本文简单介绍LSTM(长短期记忆网络)和ADF(人工势场法)这两种不同的轨迹预测方法。


LSTM 轨迹预测

原理

原理:LSTM 是一种特殊的循环神经网络(RNN)。它通过输入门、遗忘门和输出门的门控机制,能够学习长期依赖关系并有效解决传统 RNN 中的梯度消失问题。在轨迹预测中,它可以处理时间序列形式的轨迹数据,将过去的轨迹模式作为输入,通过学习这些模式来预测未来的轨迹点

应用

在行人轨迹预测方面

如 Social LSTM 模型,通过为场景中的每个行人配备一个独立的 LSTM 网络预测其运动轨迹,同时通过社交池层相互连接来计算周围其他行人交互产生的影响

在自动驾驶车辆的轨迹预测中

也有多种基于 LSTM 的方法,例如将轨迹预测问题转化为序列预测问题,利用 LSTM 网络获取预测车辆当前的位姿和关键交互信息;或采用注意力 Seq2Seq 网络,用 LSTM 编 - 解码器进行目标车辆的变道轨迹预测等。

优点

优点:能够有效捕捉时间序列中的长期依赖信息,对于具有复杂动态变化的轨迹数据有较好的学习和预测能力。可以处理不同长度的序列数据,具有较强的灵活性。通过大量数据训练后,能对各种场景下的轨迹进行较为准确的预测,泛化能力较强。

缺点

缺点:计算复杂度较高,训练和预测过程需要较大的计算资源和时间。对数据的要求较高,需要大量的高质量数据进行训练才能获得较好的预测效果。模型结构相对复杂,理解和调优较为困难,且难以对预测结果进行直观的解释。

APF 轨迹预测

原理

原理:APF 是一种虚拟力场方法,它将运动环境建模为势场。目标点产生引力,吸引物体靠近;障碍物产生斥力,排斥物体远离。通过计算物体所受的合力,确定其运动方向和速度,从而规划出一条既能避让障碍物又能到达目的地的路径。在轨迹预测中,可根据当前物体所受的引力和斥力情况,以及物体的当前状态,预测其未来可能的运动轨迹。

应用

在船舶运动规划

基于模型预测控制(MPC)的 APF 方法将 APF 融入 MPC 的优化目标函数中,利用 MPC 的预测能力和 APF 的实时性,规划出符合国际海上避碰规则(COLREGs)的最优路径。

在无人驾驶车辆避障轨迹跟踪

APFMPC 相结合,通过调整 MPC 的优化目标函数,使车辆能根据 APF 计算出的虚拟排斥力,在面对障碍物时灵活调整轨迹。

优点

优点:具有较强的实时性,能够根据环境的变化实时更新势场,快速做出路径调整。不需要进行全局路径搜索,计算量相对较小,适合在资源有限的设备上运行。通过合理设计势场函数和调节参数,可以灵活处理复杂环境中的多障碍物情况,对环境的适应性较强。

缺点

缺点:传统的 APF 方法容易陷入局部极小值,导致规划失败,尤其是在复杂环境中。对障碍物的建模和参数设置较为敏感,不同的参数可能会导致不同的轨迹规划结果,需要进行大量的调试和优化。难以准确预测物体在复杂环境中的长期轨迹,因为它主要关注当前的局部环境信息,对全局信息的利用有限

示例代码

apf_planner.py:import numpy as npclass APFTrajectoryPlanner:def __init__(self, k_att=1.0, k_rep=100.0, d0=0.5, max_iter=100, step_size=0.1, goal_threshold=0.1):"""初始化APF规划器参数参数:k_att: 引力系数k_rep: 斥力系数d0: 斥力作用范围max_iter: 最大迭代次数step_size: 步长goal_threshold: 目标接近阈值"""self.k_att = k_attself.k_rep = k_repself.d0 = d0self.max_iter = max_iterself.step_size = step_sizeself.goal_threshold = goal_thresholddef plan(self, start, goal, obstacles):"""基于APF的轨迹规划参数:start: 起点坐标 [x, y]goal: 目标点坐标 [x, y]obstacles: 障碍物列表 [[x1, y1], [x2, y2], ...]返回:path: 规划路径 [[x0, y0], [x1, y1], ...]"""current_pos = np.array(start, dtype=np.float32)path = [current_pos.copy()]for i in range(self.max_iter):# 计算引力att_force = self._calculate_attraction(current_pos, goal)# 计算斥力rep_force = self._calculate_repulsion(current_pos, obstacles)# 计算合力total_force = att_force + rep_force# 更新位置current_pos += self.step_size * total_force / np.linalg.norm(total_force)path.append(current_pos.copy())# 检查是否到达目标if np.linalg.norm(current_pos - goal) < self.goal_threshold:breakreturn np.array(path)def _calculate_attraction(self, pos, goal):"""计算引力"""return self.k_att * (goal - pos)def _calculate_repulsion(self, pos, obstacles):"""计算斥力"""

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

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

相关文章

python实现Web请求与响应

目录 一&#xff1a;什么是Web请求与响应&#xff1f; 1&#xff1a;Web请求 2&#xff1a;Web响应 3&#xff1a;HTTP协议概述 4&#xff1a;常见的HTTP状态码包括&#xff1a; 二&#xff1a;python的requests库 1&#xff1a;安装requests库 2&#xff1a;发送GET请…

Unity使用sherpa-onnx实现说话人识别

网友软绵绵的面包人推荐&#xff0c;模型3dspeaker_speech_eres2net_base_200k_sv_zh-cn_16k-common.onnx的效果比3dspeaker_speech_eres2net_base_sv_zh-cn_3dspeaker_16k.onnx要好 具体代码 using System; using System.Collections.Generic; using System.IO; using Sherpa…

ElasticSearch-集群

本篇文章依据ElasticSearch权威指南进行实操和记录 1&#xff0c;空集群 即不包含任何节点的集群 集群大多数分为两类&#xff0c;主节点和数据节点 主节点 职责&#xff1a;主节点负责管理集群的状态&#xff0c;例如分配分片、添加和删除节点、监控节点故障等。它们不直接…

LG P9844 [ICPC 2021 Nanjing R] Paimon Segment Tree Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;有 m m m 次修改 ( l , r , v ) (l,r,v) (l,r,v)&#xff1a; 对每个 i ∈ [ l , r ] i\in[l,r] i∈[l,r]&#xff0c;令 a i ← a i v a_i\gets a_iv ai​←…

Google Prompt Tuning:文本嵌入优化揭秘

Google Research Prompt Tunin :from_embedded_string 在 Google Research 的 Prompt Tuning 项目代码库 中,from_embedded_string 函数主要用于基于字符串文本初始化提示词的嵌入向量,其调用场景通常与提示词优化或任务适配相关。 1. 核心代码位置 from_embedded_string …

网页 H5 微应用接入钉钉自动登录

ℹ️关于云审批 云审批&#xff08;cloud approve&#xff09; &#xff0c;一款专为小微企业打造&#xff0c;支持多租户的在线审批神器。它简化了申请和审批流程&#xff0c;让您随时随地通过手机或电脑完成请款操作。员工一键提交申请&#xff0c;审批者即时响应&#xff0c…

idea无法识别Maven项目

把.mvn相关都删除了 导致Idea无法识别maven项目 或者 添加导入各个模块 最后把父模块也要导入

飞桨paddle import fluid报错【已解决】

跟着飞桨的安装指南安装了paddle之后 pip install paddlepaddle有一个验证&#xff1a; import paddle.fluid as fluid fluid.install check.run check()报错情况如下&#xff0c;但是我在pip list中&#xff0c;确实看到了paddle安装上了 我import paddle别的包&#xff0c…

现代化SQLite的构建之旅——解析开源项目Limbo

现代化SQLite的构建之旅——解析开源项目Limbo 在当今飞速发展的技术世界中,轻量级且功能强大的数据库已成为开发者的得力助手。当我们谈论轻量级数据库时,SQLite无疑是一个举足轻重的名字。然而,随着技术的进步,我们对数据库的需求也变得更加多样化。这正是Limbo项目诞生…

MinIO:从入门到精通,解锁云原生存储的奥秘

一、引言&#xff1a;为什么 MinIO 正在重塑存储世界&#xff1f; 在云计算和大数据时代&#xff0c;传统存储系统面临扩展性差、成本高、兼容性不足等挑战。MinIO 凭借其 S3 兼容性、分布式架构、高性能存储 等特性&#xff0c;成为企业构建现代化存储基础设施的首选。 本文…

vscode怎么关闭自动定位文件

关闭自动定位文件功能 方式1 在设置中搜索: explorer.autoReveal 方式2 直接在settings.json中增加"explorer.autoReveal": false 添加类似jetbrains IDE的文件定位功能 可以直接安装插件市场搜索niushuaibing.vs-location, 安装后会有文件定位按钮, 点击后即可…

学习路之uniapp--unipush2.0推送功能--给自己发通知

学习路之uniapp--unipush2.0推送功能--给自己发通知 一、绑定云空间及创建云函数二、编写发送界面三、效果后期展望&#xff1a; 一、绑定云空间及创建云函数 package.json {"name": "server-push","dependencies": {},"main": "…

什么是VR展示?VR展示的用途

随着科技的迅猛发展&#xff0c;我们步入一个全新的数字时代。在这个时代&#xff0c;虚拟现实&#xff08;VR&#xff09;技术崭露头角&#xff0c;逐步改变我们对世界的认知。全景展示厅作为VR技术与传统展览艺术的完美结合&#xff0c;以独特的全景视角&#xff0c;引领我们…

抖音IP属地跟无线网有关吗?如何更改

IP属地显示功能让许多用户感到好奇——为什么自己的位置信息有时准确&#xff0c;有时却显示在其他城市&#xff1f;这时&#xff0c;用户会疑惑&#xff1a;抖音IP属地跟无线网有关系吗&#xff1f;抖音的IP属地显示与其所使用的网络类型&#xff08;包括无线网&#xff09;密…

JESD204 ip核使用与例程分析(二)

JESD204 ip核使用与例程分析(二) JESD204时钟方案专用差分时钟对例程分析jesd204_0_transport_layer_demapperjesd204_0_sig_chkjesd204_0_clockingjesd204_0 ip核port寄存器AXI-LITE寄存器配置jesd204_phy ip核JESD204时钟方案 图3-1所示为最通用、灵活的时钟解决方案。在图…

微软全新开源的Agentic Web网络项目:NLWeb,到底是什么 ?

目录 1、背景 2、NLWeb是什么&#xff1f; 3、NLWeb是如何工作的&#xff1f; 3.1 技术原理 3.2 对发布者的价值 3.3 核心团队与合作伙伴 4、快速入门指南 5、延伸阅读 Agentic&#xff1a;Agent的形容词&#xff0c;Agentic指系统由大型语言模型&#xff08;LLM&#…

前端性能优化的秘密武器:Preload 与 Prefetch 的深度解析

前端性能优化的秘密武器&#xff1a;Preload 与 Prefetch 的深度解析 在前端开发中&#xff0c;页面加载速度直接影响用户体验和业务转化率。而“资源预加载”技术&#xff0c;正是优化加载性能的核心手段之一。本文将深入浅出地讲解 Preload 与 Prefetch 这两项技术&#xff…

App Builder技术选型指南:从AI编程到小程序容器,外卖App开发实战

在2025年快速迭代的技术生态中&#xff0c;开发者构建App的路径愈发多样化。本文以开发一个同城外卖App为例&#xff0c;对比当前主流的AI编程工具&#xff08;如Cursor、GitHub Copilot、Trae&#xff09;与小程序容器技术&#xff08;如FinClip&#xff09;的优劣势、难易度及…

深度学习入门到实战:用PyTorch打通数学、张量与模型训练全链路​

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 一. 人工智能、机器学习与深度学习的关系 1.1 概念层次解析 人工智能&#xff08;AI&#xff09;&#xff1a;使机器模拟人类智能的广义领域 机器学…

windows服务器部署jenkins工具(一)

jenkins作为一款常用的构建发布工具&#xff0c;极大的简化了项目部署发布流程。jenkins通常是部署在linux服务上&#xff0c;今天给大家分享的是windows服务器上如何搭建jenkins发布工具。 1.首先第一步还是看windows安装docker 这篇文章哈&#xff0c;当然也可以不采用docke…