多目标跟踪之卡尔曼滤波


卡尔曼滤波适用于含不确定信息的动态系统,可推测系统下一步状态,优点是内存占用小、速度快,适合实时和嵌入式系统。在多目标跟踪中,能处理目标位置等测量值的噪声,实现对目标位置的滤波、预测等。其通过高斯分布、协方差矩阵等,结合预测与传感器读数来优化估计。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

多目标跟踪之卡尔曼滤波

  • 为后期写多目标跟踪准备的算法(用来多目标跟踪预测)
  • 多目标跟踪匹配算法:
  • 多目标跟踪之二分图无权匹配——匈牙利算法
  • 多目标跟踪加权二分图匹配 ——KM

1 定义

只要是存在不确定信息的动态系统,卡尔曼滤波就可以对系统下一步要做什么做出有根据的推测。即便有噪声信息干扰,卡尔曼滤波通常也能很好的弄清楚究竟发生了什么,找出现象间不易察觉的相关性因此卡尔曼滤波非常适合不断变化的系统,它的优点还有内存占用较小(只需保留前一个状态)、速度快,是实时问题和嵌入式系统的理想选择。

2 应用

比如跟踪目标,但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

3 卡尔曼滤波眼里的行人跟踪问题

  • 下面是图例公式的描述,初学同学可能有点蒙,建议去查一下卡尔曼滤波相关视频(然后发现还是蒙/坏笑/,但每次的学习都会有新的发现/加油/)
  • 下面是UP学习了不错文章作者Bzarg
  • 一个包含位置信息和速度信息的状 x=(p,v)

  • 卡尔曼滤波假设两个变量(在我们的例子里是位置和速度)都应该是随机的,而且符合高斯分布。如下图 

  • 位置和速度是不相关的,这意味着我们不能从一个变量推测另一个变量。那么如果位置和速度相关呢?如下图所示,人前往特定位置的可能性取决于它拥有的速度。

  • 这不难理解,如果基于旧位置估计新位置,我们会产生这两个结论:如果速度很快,人可能移动得更远,所以得到的位置会更远;如果速度很慢,人就走不了那么远。

  • 这种关系对目标跟踪来说非常重要,因为它提供了更多信息:一个可以衡量可能性的标准。这就是卡尔曼滤波的目标:从不确定信息中挤出尽可能多的信息!

  • 为了捕获这种相关性,我们用的是协方差矩阵。简而言之,矩阵的每个值是第i个变量和第j个变量之间的相关程度(由于矩阵是对称的,i和j的位置可以随便交换)。我们用表示协方差矩阵,在这个例子中,就是。

  • 为了把以上关于状态的信息建模为高斯分布(图中色块),我们还需要k时的两个信息:最佳估计(均值,也就是,协方差矩阵。(虽然还是用了位置和速度两个变量,但只要和问题相关,卡尔曼滤波可以包含任意数量的变量)

  • 接下来,我们要通过查看当前状态(k-1时)来预测下一个状态(k时)。这里我们查看的状态不是真值,但预测函数无视真假,可以给出新分布:

我们可以用矩阵表示这个预测步骤:

  • 它从原始预测中取每一点,并将其移动到新的预测位置。如果原始预测是正确的,系统就会移动到新位置。这是怎么做到的?为什么我们可以用矩阵来预测人下一刻的位置和速度?下面是个简单公式:

  • 换成矩阵形式:

  • 这是一个预测矩阵,它能给出人的下一个状态,但目前我们还不知道协方差矩阵的更新方法。这也是我们要引出下面这个等式的原因:如果我们将分布中的每个点乘以矩阵A,那么它的协方差矩阵会发生什么变化

把这个式子和上面的最佳估计 结合,可得:

  • 外部影响
  • 但是,除了速度和位置,外因也会对系统造成影响。比如模拟火车运动,除了列车自驾系统,列车操作员可能会手动调速。在我们的机器人示例中,导航软件也可以发出停止指令。对于这些信息,我们把它作为一个向量,纳入预测系统作为修正。假设油门设置和控制命令是已知的,我们知道火车的预期加速度a。根据运动学基本定理,我们可得:

  • 把它转成矩阵形式:

  • 是控制矩阵,是控制向量。如果外部环境异常简单,我们可以忽略这部分内容,但是如果添加了外部影响后,模型的准确率还是上不去,这又是为什么呢?

  • 外部不确定性

  • 但是,如果存在我们不知道的力量呢?当我们监控无人机时,它可能会受到风的影响;当我们跟踪轮式机器人时,它的轮胎可能会打滑,或者粗糙地面会降低它的移速。这些因素是难以掌握的,如果出现其中的任意一种情况,预测结果就难以保障。这要求我们在每个预测步骤后再加上一些新的不确定性,来模拟和“世界”相关的所有不确定性:

  • 如上图所示,加上外部不确定性后,的每个预测状态都可能会移动到另一点,也就是蓝色的高斯分布会移动到紫色高斯分布的位置,并且具有协方差。换句话说,我们把这些不确定影响视为协方差的噪声。

  • 这个紫色的高斯分布拥有和原分布相同的均值,但协方差不同。

我们在原式上加入

  • 新的最佳估计是基于原最佳估计和已知外部影响矫正后得到的预测
  • 新的不确定性是基于原不确定性和外部环境不确定性得到的预测
  • 通过测量来细化估计值

  • 我们可能有好几个传感器,它们一起提供有关系统状态的信息。传感器的作用不是我们关心的重点,它可以读取位置,可以读取速度,重点是,它能告诉我们关于状态的间接信息——它是状态下产生的一组读数。

  • 请注意,读数的规模和状态的规模不一定相同,所以我们把传感器读数矩阵设为

  • 把这些分布转换为一般形式

  • 卡尔曼滤波的一大优点是擅长处理传感器噪声。换句话说,由于种种因素,传感器记录的信息其实是不准的,一个状态事实上可以产生多种读数。

  • 我们将这种不确定性(即传感器噪声)的协方差设为,读数的分布均值设为。现在我们得到了两块高斯分布,一块围绕预测的均值,另一块围绕传感器读数。

  • 如果要生成靠谱预测,模型必须调和这两个信息。也就是说,对于任何可能的读数,这两种方法预测的状态都有可能是准的,也都有可能是不准的。重点是我们怎么找到这两个准确率。最简单的方法是两者相乘:

  • 两块高斯分布相乘后,我们可以得到它们的重叠部分,这也是会出现最佳估计的区域。换个角度看,它看起来也符合高斯分布:

  • 事实证明,当你把两个高斯分布和它们各自的均值和协方差矩阵相乘时,你会得到一个拥有独立均值和协方差矩阵的新高斯分布。最后剩下的问题就不难解决了:我们必须有一个公式来从旧的参数中获取这些新参数!

  • 结合高斯

  • 两条高斯曲线相乘

  • 按照一维方程进行扩展,可得

  • 用k简化一下

  • 以上是一维的内容,如果是多维空间,把这个式子转成矩阵格式

  • 这个矩阵就是我们说的卡尔曼增益
  • 结合在一起
  • 截至目前,我们有用矩阵预测的分布,有用传感器读数预测的分布。把它们代入上节的矩阵等式中:

  • 相应的,卡尔曼增益就是:

考虑到里还包含着一个,我们再精简一下上式

最后,是我们的最佳估计值,我们可以把它继续放进去做另一轮预测

4 代码实现

In [9]
import matplotlib.pyplot as plt# 模拟数据t = np.linspace(1,100,100)# print(t)a = 0.5position = (a * t**2)/2# print(position)position_noise = position+np.random.normal(0,120,size=(t.shape[0])) 

plt.plot(t,position,label='truth position')  # 原值plt.plot(t,position_noise,label='only use measured position')  # 加入噪声的值# 初始的估计的位置就直接用GPS测量的位置predicts = [position_noise[0]]
position_predict = predicts[0]

predict_var = 0odo_var = 120**2 #这是我们自己设定的位置测量仪器的方差,越大则测量值占比越低v_std = 50 # 测量仪器的方差for i in range(1,t.shape[0]):
  
    dv =  (position[i]-position[i-1]) + np.random.normal(0,50) # 模拟从惯性测量单元IMU读取出的速度
    position_predict = position_predict + dv # 利用上个时刻的位置和速度预测当前位置
    predict_var += v_std**2 # 更新预测数据的方差
    # 下面是Kalman滤波
    position_predict = position_predict*odo_var/(predict_var + odo_var)+position_noise[i]*predict_var/(predict_var + odo_var)
    predict_var = (predict_var * odo_var)/(predict_var + odo_var)**2
    predicts.append(position_predict)

    
plt.plot(t,predicts,label='kalman filtered position')  # 滤波后的值plt.legend()
plt.show()# 卡尔曼滤波将噪声值(橙色线),滤波后(绿色线),尽量去拟合原值(蓝色线)


# 内存占用  # 为什么  # red  # 算法  # 嵌入式系统  # 传感器  # 卡尔  # 高斯  # 均值  # 设为  # 把它  # 我们可以  # 这两个  # 不确定  # 这是  # 可得 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: Google AI Studio文本转语音教程:零成本创作高质量音频  开源AI Agent项目精选:赋能智能自动化  ChatGPT图像生成器完全指南:文化影响、伦理挑战与商业变革  批改网AI检测工具如何对接学校系统_批改网AI检测工具系统对接与数据同步【步骤】  豆包AI怎么生成员工成长总结_豆包AI成长指标提取与案例编写【方法】  Android图像翻译器应用:技术、应用与未来展望  去哪旅行ai抢票助手怎样提升抢票速度_去哪旅行ai抢票助手加速包与多通道使用【技巧】  研究学者如何利用现有资源提升学术影响力  E-LabVine:AI赋能的数字化学习平台,提升高中学业表现  ChatGPT 辅助自媒体博主进行选题与大纲策划  提升效率:使用AI代理自动生成视频标题的实用指南  手相解析:生命线的形状与意义详解,预示健康、财富和命运  AI加持:2025年最佳人工智能潜在客户生成工具  OpenAI Sora 2:AI视频生成新纪元  美图秀秀AI抠图如何换背景_美图秀秀AI背景替换与贴纸添加【攻略】  GravityWrite:AI驱动的内容创作,提升排名和效率  国产开源模型Kimi K2 Thinking上线美应用,挑战美国科技巨头!  Filmora 13 AI音乐生成器:创意视频配乐新纪元  OpenAI DevDay 2025:开发者必知的七大AI进展  AI海报设计终极指南:免费智能工具,手机轻松搞定!  提升企业效率:QR Platform管理后台功能全面解析  Power BI: 如何在 Power Query 中更改数据类型  斑马AI怎样注册账号_斑马AI注册流程与儿童信息绑定【教程】  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Claude 4.5 深度解析: Coding, VS Code & AI Agent 新纪元  Claude如何导出对话记录_Claude对话导出方法【方法】  Foocus:免费AI图像生成器终极指南及 OnlyFans 替代方案  Claude官网在线对话地址 Claude官方网站直接使用  农业模拟器25:AI助手与GPS终极指南  AI人像摄影新纪元:Gemini AI助力照片编辑  AI驱动的潜在客户挖掘:15分钟搭建营销机构并获利  通义万相做海报怎么用_通义万相做海报使用方法详细指南【教程】  教你用AI帮你进行论文选题,快速找到有研究价值的方向  Talvix AI:AI驱动的招聘平台,提升招聘效率和质量  InZOI游戏评测:AI驱动的模拟人生,是创新还是噱头?  通义千问怎样优化提示词更口语化_通义千问口语化技巧【教程】  AIPPT:AI驱动的PPT制作工具,高效便捷演示文稿方案  Midjourney怎么用一键生成漫画_Midjourney漫画生成方法【攻略】  百度输入法怎么去除ai模块 百度输入法纯净版安装教程  ChatGPT 处理非结构化数据并转换为 JSON 格式  文本分类与聚类:网络安全中的自然语言处理应用  腾讯混元图像3.0上线LiblibAI,80B参数助力创作者高效出图  Logic Pro 11更新全面解析:免费升级、AI功能与音乐制作流程  Kindroid AI:打造你的专属虚拟伙伴,开启AI社交新体验  利用MECLABS AI解决业务难题:实用指南  Canva AI终极指南:释放AI力量,设计触手可及  SnappaAI排版如何生成社交媒体图_SnappaAI排版社媒图尺寸与风格选择【技巧】  Midjourney怎么用一键生成logo_Midjourneylogo生成步骤【教程】  百度浏览器侧边栏ai怎么关 百度浏览器ai侧边栏隐藏  DeepSeek写简历怎么用_DeepSeek写简历使用方法详细指南【教程】 

 2025-07-22

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.