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

cyb*_*yne 6 matlab simulink computer-vision kalman-filter matlab-cvst

我读了一些关于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分配并不清楚.有谁知道帮帮我,拜托?

Dim*_*ima 5

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

Q是过程噪声的协方差。简而言之,Q指定对象的实际运动与假定的运动模型有多少偏离。如果要在道路上跟踪汽车,则等速模型应该相当好,并且Q的项应该很小。如果要跟踪人的脸部,则他们不可能以恒定的速度运动,因此您需要提高Q值。同样,您需要知道状态变量的表示单位。

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

这是一个使用Matalb中的跟踪多人的示例vision.KalmanFilter