论文笔记:Deep Trajectory Recovery with Fine-Grained Calibration using Kalman Filter

news2024/12/24 3:09:02

TKDE 2021

1 intro

1.1 背景

  • 用户轨迹数据对于改进以用户为中心的应用程序很有用
    • POI推荐
    • 城市规划
    • 路线规划
  • 由于设备和环境的限制,许多轨迹以低采样率记录
    • 采样的轨迹无法详细说明物体的实际路线
    • 增加了轨迹中两个连续采样点之间的不确定性
    • ——>开发有效的算法以基于原始低采样数据恢复高质量轨迹非常重要
  • 总的来说,轨迹恢复任务在两种不同的环境中被研究,这取决于地图信息(如道路网络)是否可用
    • 在第一种环境中,轨迹位置通常映射到道路段或POI
    • 在第二种环境中,地图信息作为输入是不可用的,称之为自由空间轨迹恢复
      • 本文关注的是第二种环境

1.2 之前的工作

  • 现有研究中存在两个潜在问题
    • 许多方法依赖于启发式搜索算法或简单的概率模型
      • 主要模拟位置之间的相邻过渡模式
        • 深度优先搜索算法
        • 吸收马尔可夫链
        • 吉布斯抽样
      • 这些方法不能很好地捕获复杂的顺序依赖性或全局数据相关性
    • 为了减少无约束数值坐标的预测复杂性,大多数以前的研究采用了一个常见的预处理策略——将空间映射到离散单元,例如单元格或锚点
      • 然后,他们的焦点变成如何在离散单元上开发有效的恢复算法
      • 使用离散单元可能会带来噪音或不准确的信息
        • 因此,通常需要一个后校准步骤来产生更准确的结果
        • 然而,以前的方法主要采用简单的启发式校准方法,例如识别单元格中的频繁位置或简单地使用单元格的中心坐标
        • 忽视了后校准在细化粗糙单元级预测结果中的重要性
  • 深度学习任务(如RNN)
    • 只专注于局部时间窗口内的下一步或短期位置预测
    • 仍直接产生单元格级的预测,并没有在他们的模型中结合原则性的后校准组件来得出更准确的估计
    • ——>将现有的基于神经网络的轨迹模型直接应用于自由空间轨迹恢复任务是困难的

1.3 本文贡献

  • 提出了一种新颖的深度混合轨迹恢复模型(DHTR)
    • 子序列到序列恢复模型(即subseq2seq)
      • 扩展了seq2seq
    • 为了有效捕获全局时空相关性,采用了空间和时间注意力机制来增强模型性能
      • 通过注意力机制,我们的模型能够表征轨迹点之间的长距离相关性
    • 将subseq2seq组件与卡尔曼滤波器(KF)整合在一起,以校准噪声单元预测为准确坐标
      • 在每一个时间步,来自subseq2seq组件的噪声预测将被送入KF组件进行校准
      • 然后精炼的预测将被转发到subseq2seq组件,用于下一个时间步的计算
  • ——>模型具有两个组件的优点
    • 建模复杂序列数据的能力
    • 降低预测噪声的能力

2 Preliminary

2.1 一些概念

  • 位置
    • 经纬度坐标<x,y>
  • 区域单元
    • 整个地理空间被划分为一组区域单元,用C表示
    • 每个单元c∈C是一个边长为l的正方形空间
    • 区域单元坐标为中心点的坐标<Xc,Yc>
  • 轨迹点
    • 一个移动物体的轨迹点是一个带时间戳的位置
    • 由一个四元组<x;y;s;c>来建模
      • a:x是经度,a:y是纬度,a:s是时间戳,a:c是点a被分配到的单元
  • 采样间隔
    • 一个移动物体两个连续采样点之间的时间差
  • ε-采样轨迹
    • 同一移动物体使用采样间隔"的n个均匀采样点的时间有序序列
    • t=a_1^{(t)} \rightarrow a_2^{(t)} \cdots \rightarrow a_n^{(t)}(后续表述中把上标(t)去掉了)
  • ε采样子轨迹
    • 给定一个ε采样轨迹t,相应的子轨迹t是t的一个m长度的子序列
    • 子轨迹中的位置在时间戳上可能不是均匀分布的

2.2 问题定义

  • 给定一个ε采样轨迹数据集和一个子轨迹t‘,我们希望重建或恢复相应的轨迹t。
  • 也就是说,对于每个缺失的轨迹点ai(即ai属于t但不属于t‘),我们将推断其在时间ai:s时对应的经度ai:x和纬度ai:y。

3 模型

3.1 模型总览

  • 包含三个主要部分
    • 第一部分是精心设计的子序列到序列(subseq2seq)神经网络模型
      • 在seq2seq的基础上开发的
    • 第二部分是一个注意力机制,它用于使subseq2seq能够捕获复杂的时空关联
      • 注意力机制同时考虑了整个轨迹中位置之间的空间和时间影响
      • 为了减少直接建模数值坐标序列的复杂性,subseq2seq组件在单元级捕获序列注意力相关性
    • 第三部分用基于卡尔曼滤波器的新型后校准组件增强了subseq2seq模型
      • 将subseq2seq组件和KF组件整合在一个联合的深度混合模型中

3.2 Subseq2seq

  • 不是直接预测数值坐标值,而是首先推断缺失轨迹点的对应单元
    • 单元ID序列比原始数值序列更可靠且易于建模
  • 主要思想是将恢复任务转化为一个序列到序列的任务
    • 输入序列是子轨迹,输出序列是重建的完整轨迹
    • 输入与相应的输出高度相关

3.3  时空attention

3.4     应用卡尔曼滤波器

【精选】机器学习笔记:卡尔曼滤波_UQI-LIUWJ的博客-CSDN博客

  • 之前的方法应用subseq2seq模型来表征轨迹的单元序列,然后将预测单元的中心坐标视为最终预测
    • 这种方法有两个潜在的缺点
      • 预测模型可能会受到噪声的影响,例如仪器误差
      • 由于我们使用对应的单元坐标作为代理,最终的估计是粗略的
  • ——>提出将上述神经网络模型与卡尔曼滤波器(KF)整合

3.4.1 卡尔曼滤波器

  • 卡尔曼滤波器(KFs)通常在线性和高斯噪声的假设下是最优的状态估计器。
  • 在KF模型中,使用一个状态向量 gi​,它可能包含位置和/或速度,来表示i时刻物体的状态。
    • 物体以高斯噪声 eg​ 线性更新状态gi​ 
      • M是噪声eg的协方差,Φ是状态更新矩阵
  • 在KF模型中,真实值 gi​ 可以通过测量向量 zi​ 来测量
      • φ是测量矩阵
  • 在KF模型中,测量向量 zi​ 是可观察的,真实状态 gi​ 是待估计的未知变量
    • 方程(13)和(14)中的矩阵φ,Φ,M,N被视为先验已知的
  • KF模型使用两个程序,即预测(Prediction)和更新(Update),来迭代估计 g 的真实值并计算一个协方差矩阵,表示为 H,用以表达 g 的不确定性。

3.4.1.1 预测

在预测过程中,卡尔曼滤波器使用以下方程来预测时i时刻的状态 g 和协方差矩阵 H

  • 下标“i−1∣i−1”表示在i-1时刻由更新程序生成的变量,而下标“i∣i−1”表示预测的状态和协方差。

3.4.1.2 更新 

在更新过程中,KF模型使用可观察的测量向量 zi​ 来更新/校正预测的 gi∣i−1​ 和 Hi∣i−1​ :

其中,Ki​ 被称为最优卡尔曼增益,它结合了预测状态和测量状态作为更新状态。

  • 我们可以看到 Ki​ 是估计误差的协方差矩阵 Hi和测量误差的协方差矩阵 Ni​ 之间的权衡系数矩阵。注意,在标准KF中,协方差矩阵 Ni​ 是一个预设常数。这里,我们加入了下标i,以便于我们随后的扩展。
  • 在每个时间步长i,KF接受噪声测量zi​ 及其对应的协方差矩阵 Ni作为输入,并产生“过滤”后的测量值 \hat{z_i}如下:

3.4.2 卡尔曼滤波+subseq2seq

3.5 训练 

4 实验

4.1 实验数据

4.2 实验结果

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

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

相关文章

RK3588平台 WIFI的基本概念

一.安卓WIFI框架 Android WIFI系统引入了wpa_supplicant&#xff0c;它的整个WIFI系统以wpa_supplicant为核心来定义上层接口和下层驱动接口。Android WIFI主要分为六大层&#xff0c;分别是WiFi Settings层&#xff0c;Wifi Framework层&#xff0c;Wifi JNI 层&#xff0c; W…

ARM Linux 基础学习 / Linux Shell,必要命令全记录

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料&#xff08;如 百问网的《嵌入式Linux应用开发完全手册》&#xff0c;在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO&#xff1a;开发板资料》或《2.2 全系列Linux教程&#xf…

高级项目管理总结

目录 一、背景介绍二、思路&方案三、过程1.升维思考2.结构化3.心理、知识阶段检验4.微观 四、总结 一、背景介绍 天性对学习对考试充满敌意的我&#xff0c;转变为依赖学习谋生&#xff0c;再到后来书中自有黄金屋&#xff0c;到现在学习对我而言就如同一日三餐&#xff1…

Unity - 各向异性 - 丝绸材质

文章目录 目的环境主观美术效果的[假]丝绸基于物理的方式ProjectPBR filament web captureReferences 目的 拾遗&#xff0c;备份 环境 Unity : 2020.3.37f1 Pipeline : Builtin Rendering Pipeline 主观美术效果的[假]丝绸 非常简单 : half specualr pow(1 - NdotV, _Edg…

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点&#xff1a; TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定&#xff0c;脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

CountDownLatch和CyclicBarrier详解

1. CountDownLatch 1.1 简介 CountDownLatch 是 Java 中并发包&#xff08;java.util.concurrent&#xff09;提供的一种同步工具&#xff0c;用于在多线程环境中协调多个线程之间的执行顺序。它的作用是允许一个或多个线程等待其他线程完成操作。 CountDownLatch 通过一个计…

Python基础入门例程51-NP51 列表的最大与最小(循环语句)

最近的博文&#xff1a; Python基础入门例程50-NP50 程序员节&#xff08;循环语句&#xff09;-CSDN博客 Python基础入门例程49-NP49 字符列表的长度-CSDN博客 Python基础入门例程48-NP48 验证登录名与密码&#xff08;条件语句&#xff09;-CSDN博客 目录 最近的博文&…

深度解析CompletableFuture:Java 异步世界的奇迹

目录 概述 介绍 上文我们可知&#xff1a;CompletableFuture 是 Java 8 引入用于支持异步编程和非阻塞操作的类。对于没有使用过CompletableFuture通过它这么长的名字就感觉到一头雾水&#xff0c;那么现在我们来一起解读一下它的名字。 Completable&#xff1a;可完成Futur…

【Redis】Redis-Key的使用

上一篇&#xff1a; redis-server和redis-cli https://blog.csdn.net/m0_67930426/article/details/134361885?spm1001.2014.3001.5501 官网 命令 |雷迪斯 (redis.io) 设置key set name xxxxx 查看key keys * 再设置一个key并且查看 这里查看了两个key&#xff08;name a…

Git之分支与版本

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.开发测试上线git的使用 1.1. 环境讲述 当软件从开发到正式环境部署的过程中&#xff0c;不同环境的作用…

《015.SpringBoot+vue之音乐网》【前后端分离】

《015.SpringBootvue之音乐网》【前后端分离】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisMySQL; 前台&#xff1a;Vue3.0 TypeScript Vue-Router Vuex Axios …

Globalsign证书

GlobalSign是全球可信的数字证书提供商之一&#xff0c;提供广泛的证书服务&#xff0c;包括SSL证书、代码签名证书、电子邮件证书等&#xff0c;帮助保护企业和个人的网络安全。本文将详细介绍GlobalSign证书的特点和优势&#xff0c;帮助您更好地了解这一重要的数字证书提供商…

高防CDN:护航网络安全的卓越之选

在当今数字化时代&#xff0c;网络攻击与日俱增&#xff0c;为了确保网站和应用程序的稳定运行&#xff0c;高防CDN&#xff08;高防御内容分发网络&#xff09;应运而生。选择高防CDN的理由不仅源于其强大的防护性能&#xff0c;还体现了其与硬件防火墙异曲同工的奥妙。 选择高…

MYSQL字符串函数详解和实战(字符串函数大全,内含示例)

MySQL提供了许多字符串函数&#xff0c;用于处理和操作字符串数据。以下是一些常用的MYSQL字符串函数。 建议收藏以备后续用到查阅参考。 目录 一、CONCAT 拼接字符串 二、CONCAT_WS 拼接字符串 三、SUBSTR 取子字符串 四、SUBSTRING 取子字符串 五、SUBSTRING_INDEX 取子…

Git的原理与使用(一)

目录 Git初始 Git安装 Git基本操作 创建git本地仓库 配置git 工作区,暂存区,版本库 添加文件,提交文件 查看.git文件 修改文件 版本回退 小结 Git初始 git是一个非常强大的版本控制工具.可以快速的将我们的文档和代码等进行版本管理. 下面这个实例看理解下为什么需…

eocc1_Findings_candlestick_ohlc_volume_

An Unusually Tall Candle Often Has a Minor High or Minor Low Occurring within One Day of It异常高的蜡烛通常会在一天内出现小幅高点或小幅低点 I looked at tens of thousands of candles to prove this, and the study details are on my web site, ThePatternSite.com…

软件工程——名词解释

适用多种类型的软件工程教材&#xff0c;有关名词释义的总结较为齐全~ 目录 1. 软件 2. 软件危机 3. 软件工程 4. 软件生存周期 5. 软件复用 6. 质量 7. 质量策划 8. 质量改进 9. 质量控制 10. 质量保证 11. 软件质量 12. 正式技术复审 13. ISO 14. ISO9000 15.…

SpringBoot系列-2 自动装配

背景&#xff1a; Spring提供了IOC机制&#xff0c;基于此我们可以通过XML或者注解配置&#xff0c;将三方件注册到IOC中。问题是每个三方件都需要经过手动导入依赖、配置属性、注册IOC&#xff0c;比较繁琐。 基于"约定优于配置"原则的自动装配机制为该问题提供了一…

macOS使用conda初体会

最近在扫盲测序的一些知识 其中需要安装一些软件进行练习&#xff0c;如质控的fastqc&#xff0c;然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习 1.安装miniconda 由于我的电脑之前已经安装了brew&#xff0c;所以我就直接用brew安装了 brew install …

【yolov5】onnx的INT8量化engine

GitHub上有大佬写好代码&#xff0c;理论上直接克隆仓库里下来使用 git clone https://github.com/Wulingtian/yolov5_tensorrt_int8_tools.git 然后在yolov5_tensorrt_int8_tools的convert_trt_quant.py 修改如下参数 BATCH_SIZE 模型量化一次输入多少张图片 BATCH 模型量化…