【问题标题】:Kalman filter in computer vision: the choice of Q and R noise covariances计算机视觉中的卡尔曼滤波器:Q 和 R 噪声协方差的选择
【发布时间】:2014-02-10 06:46:00
【问题描述】:

我阅读了一些关于用于 CV 对象跟踪的卡尔曼滤波器的作品,但我找不到关于以下选择的参考:1)过程噪声协方差 Q; 2)测量噪声协方差R。到目前为止,我已经意识到该模型是运动方程(有人使用加速度作为状态变量,其他人仅使用位置和速度)但没有人清楚Q和R的选择,包括mathworks的这个例子:@ 987654321@ 最近我发现了这个页面: http://blog.cordiner.net/2011/05/03/object-tracking-using-a-kalman-filter-matlab/ 但 Q 和 R 的分配并不清楚。有谁知道请帮帮我吗?

【问题讨论】:

  • 您有任何真实数据(测量值)吗?您可以使用这些来获得 R 和 Q 的近似值。R 取决于您的传感器质量,并且没有固定值,但您可以从实际测量中估计它。 R 表示您的传感器的准确度。 Q 是衡量模型准确程度的指标 - 一些动态太复杂而无法建模,并被假定为过程噪声。通过将您的模型预测与实际测量值进行比较,您可以估计 Q。由于 Q 和 R 的选择在文献中有所不同。
  • 感谢您的回复。你能阅读下面的评论吗?谢谢。

标签: matlab computer-vision simulink matlab-cvst kalman-filter


【解决方案1】:

R 是测量噪声的协方差矩阵,假设为高斯。在视频中跟踪对象的上下文中,这意味着您的检测错误。假设您正在使用面部检测器来检测面部,然后您想使用卡尔曼滤波器来跟踪它们。运行检测器,得到每个人脸的边界框,然后使用卡尔曼滤波器跟踪每个框的质心。 R 矩阵必须描述您对质心位置的不确定性。所以在这种情况下,对于 x,y 坐标,R 的对应对角线值应该是几个像素。如果您的状态包括速度,那么您需要猜测速度测量的不确定性,并考虑单位。如果您的位置以像素为单位,而您的速度以每帧的像素为单位,则 R 的对角线条目必须反映这一点。

Q 是过程噪声的协方差。简而言之,Q 指定了物体的实际运动与假设的运动模型的偏差程度。如果您在道路上跟踪汽车,那么等速模型应该相当不错,并且 Q 的条目应该很小。如果您正在跟踪人脸,他们不太可能以恒定速度移动,因此您需要调高 Q。同样,您需要了解状态变量的表达单位。

这就是直觉。在实践中,您首先对 R 和 Q 进行一些合理的初始猜测,然后通过实验调整它们。所以设置 R 和 Q 有点艺术。此外,在大多数情况下,对 R 和 Q 使用对角矩阵就足够了。

这是一个 example,它使用 Matalb 中的 vision.KalmanFilter 来跟踪多人。

【讨论】:

  • 感谢您的回复。我在物理上知道 Q 和 R 是什么,但我想知道是否有一些建议、程序或方法可以分配,例如模型噪声协方差 Q。我的应用程序是一个简单的对象跟踪,我认为 R 是“多少变化”质心/光标位置(假设它可以作为状态变量仅测量位置)由于采集噪声;我的问题是 Q。例如,上面的链接页面和这个:studentdavestutorials.weebly.com/… 为 Q 分配相同的值:(0.1)^2,所以我想知道是否有一些我必须考虑的事情
  • 可以尝试绘制预测图,看看它们与检测结果的偏差有多大。如果您确定 R,那么这将告诉您 Q 是否正确。
  • 感谢您的回复,对我很有帮助。第一段第一句有错误。 R 是 MEASUREMENT NOISE 的协方差矩阵。来源:campar.in.tum.de/Chair/KalmanFilter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2023-03-23
相关资源
最近更新 更多