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

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.mfbz.cn/a/135894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈希表之闭散列的实现

闭散列实现哈希表 在闭散列实现哈希表中&#xff0c;我们选择线性探测法来解决哈希冲突。在哈希表的简介部分&#xff0c;我们已经介绍过线性探测法啦&#xff01; 线性探测&#xff1a;从发生冲突的位置开始&#xff0c;依次向后探测&#xff0c;直到寻找到下一个空位置为止…

Carla之语义分割及BoundingBox验证模型

参考&#xff1a; Carla系列——4.Cara模拟器添加语义分割相机&#xff08;Semantic segmentation camera&#xff09; Carla自动驾驶仿真五&#xff1a;opencv绘制运动车辆的boudingbox&#xff08;代码详解&#xff09; Carla官网Bounding Boxes Carla官网创建自定义语义标签…

【离散数学必刷题】谓词逻辑(第二章 左孝凌版)刷完包过!

专栏&#xff1a;离散数学必刷题 本章需要掌握的重要知识&#xff1a; 1.利用谓词表达式表示命题 2.变元的约束 3.谓词公式的定义、谓词公式的赋值 4.谓词公式的翻译&#xff08;注意在全总个体域时使用特性谓词&#xff09; 5.有限论域上量词的消去 6.谓词公式中关于量词的等价…

软件工程——名词解释

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

思维模型 暗示效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。无形中引导他人的思想和行为。 1 暗示效应的应用 1.1 暗示效应在商业品牌树立中的应用 可口可乐的品牌形象&#xff1a;可口可乐通过广告、包装和营销活动&#xff0c;向消费者传递了一种…

macOS使用conda初体会

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

基于STC12C5A60S2系列1T 8051单片机定时器/计数器应用

基于STC12C5A60S2系列1T 8051单片机定时器/计数器应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍STC12C5A60S2系列1T 8051单片机定时器/计数器介绍STC12C5A60S2系…

BGP基本配置实验

目录 一、实验拓扑 二、实验需求 三、实验步骤 1、IP地址配置 2、内部OSPF互通&#xff0c;配置OSPF协议 3、BGP建立邻居关系 4、R1和R5上把业务网段宣告进BGP 5、消除路由黑洞&#xff0c;在R2、R4上做路由引入 6、业务网段互通 一、实验拓扑 二、实验需求 1、按照图…

Gold-YOLO:基于收集-分配机制的高效目标检测器

文章目录 摘要1、简介2、相关工作2.1、实时目标检测器2.2、基于Transformer的目标检测2.3、用于目标检测的多尺度特征 3、方法3.1、预备知识3.2、低级收集和分发分支3.3、高阶段收集和分发分支3.4、增强的跨层信息流3.5、遮罩图像建模预训练 4、实验4.1、设置4.2、比较4.3.2、 …

Android14前台服务适配指南

Android14前台服务适配指南 Android 10引入了android:foregroundServiceType属性&#xff0c;用于帮助开发者更有目的地定义前台服务。这个属性在Android 14中被强制要求&#xff0c;必须指定适当的前台服务类型。以下是可选择的前台服务类型&#xff1a; camera: 相机应用。…

Git之分支与版本

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

docker搭建etcd集群

最近用到etcd&#xff0c;就打算用docker搭建一套&#xff0c;学习整理了一下。记录在此&#xff0c;抛砖引玉。 文中的配置、代码见于https://gitee.com/bbjg001/darcy_common/tree/master/docker_compose_etcd 搭建一个单节点 docker run -d --name etcdx \-p 2379:2379 \…

matlab Silink PID 手动调参

&#xff08;业余&#xff09;PID即比例积分微分&#xff0c;它将给定值r(t)与实际输出值y(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合形成控制量&#xff0c;对被控对象进行控制。我们先用matlab Silink弄一个简易的PID例子&#xff1a; 中间三条就是比例&#xff0c;积…

Django中简单的增删改查

用户列表展示 建立列表 views.py def userlist(request):return render(request,userlist.html) urls.py urlpatterns [path(admin/, admin.site.urls),path(userlist/, views.userlist), ]templates----userlist.html <!DOCTYPE html> <html lang"en">…

大数据可视化数据大屏可视化模板【可视化项目案例-05】

🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…

matlab直线一级倒立摆lqr控制

1、内容简介 略 16-可以交流、咨询、答疑 matlab直线一级倒立摆lqr控制 2、内容说明 倒立摆是一个开环不稳定的强非线性系统&#xff0c;其控制策略与杂技运动员顶杆平衡表演的技巧有异曲同工之处&#xff0c;目的在于使得摆杆处于临界稳定状态&#xff0c;是进行控制理论研…

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

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

Linux 程序开发流程 / 基本开发工具 / Vim / GCC工具链 / Make 工具 / Makefile 模板

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

文生图模型测评之HPS v2

文章目录 1. 简介2. HPD v22.1 相关数据集介绍2.2 HPD v2 的构建2.2.1 prompt collection2.2.2 image collection2.2.3 preference annotation3. Human Preference Score v23.1 构建模型3.2 实验结果4. 结论及局限性论文链接:Human Preference Score v2: A Solid Benchmark fo…

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…
最新文章