计算机视觉中的卡尔曼滤波器:Q和R噪声协方差的选择

问题描述 投票:6回答:1

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

matlab computer-vision simulink matlab-cvst kalman-filter
1个回答
5
投票

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

Q是过程噪声的协方差。简单地说,Q指定物体的实际运动偏离假设运动模型的程度。如果您正在跟踪道路上的汽车,那么恒定速度模型应该相当不错,并且Q的条目应该很小。如果你跟踪人的面部,他们不太可能以恒定的速度移动,所以你需要提高Q.同样,你需要知道你的状态变量表达的单位。

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

这是一个qazxsw poi,它使用Matlab中的qazxsw poi来跟踪多个人。

© www.soinside.com 2019 - 2024. All rights reserved.