Kalman滤波在计算机视觉中的应用:Q和R噪声协方差的选择

7
我读了一些关于Kalman滤波器在计算机视觉目标跟踪方面的作品,但我找不到关于选择以下内容的参考资料: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的分配并不清楚。请问有人能帮我吗?

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

7
R是测量噪声的协方差矩阵,假设为高斯分布。在视频中跟踪物体的情况下,它表示检测误差。例如,您使用面部检测器检测面部,然后想使用Kalman滤波器跟踪它们。您运行检测器,获取每个面部的边界框,然后使用Kalman滤波器跟踪每个框的质心。R矩阵必须描述您对质心位置的不确定性。因此,在这种情况下,对于x,y坐标,R的相应对角线值应该是几个像素。如果状态包括速度,则需要猜测速度测量的不确定性,并考虑单位。如果您的位置以像素为单位测量,速度以每帧像素为单位测量,则R的对角线条目必须反映这一点。
Q是过程噪声的协方差。简单地说,Q指定实际运动与您假定的运动模型偏离的程度。如果您正在跟踪道路上的汽车,则恒定速度模型应该相当好,并且Q的条目应该很小。如果您正在跟踪人脸,则它们不太可能以恒定速度移动,因此您需要增加Q。同样,您需要注意状态变量所表示的单位。
这就是直觉。在实践中,您需要从一些合理的R和Q的初始猜测开始,然后通过实验来调整它们。因此,设置R和Q有点艺术性。此外,在大多数情况下,使用对角矩阵作为R和Q就足够了。
这里有一个示例,使用Matalb中的vision.KalmanFilter来跟踪多个人。example

谢谢回复。我知道Q和R在物理上是什么,但我想知道是否有一些建议、程序或方法来分配例如模型噪声协方差Q。我的应用是一个简单的物体跟踪,我认为R是“变化量”质心/光标位置(假设它可以被测量为状态变量只有位置)由于采集噪声; 我的问题是Q。例如,上面链接的页面和这个页面:http://studentdavestutorials.weebly.com/object-tracking-2d-kalman-filter.html 将相同的值分配给Q:(0.1)^2,所以我想知道是否有什么我必须考虑的东西。 - cyberdyne
1
可以尝试的一件事是绘制预测结果并查看其与检测结果的偏差程度。如果您对R很确定,那么这将告诉您Q是否正确。 - Dima
1
谢谢回复,对我很有帮助。第一段第一句话有错误。R是测量噪声的协方差矩阵。来源:http://campar.in.tum.de/Chair/KalmanFilter - ALM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接