2014-01-20 186 views
5

我读了一些关于卡尔曼滤波器用于CV目标跟踪的作品,但是我找不到一些有关选择的参考文献:1)过程噪声协方差Q; 2)测量噪声协方差R.到目前为止,我已经认识到该模型是运动方程(有人使用加速度作为状态变量,其他人仅使用位置和速度),但没有人清楚Q和R选择,包括这个例子由数学公司: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的分配并不清楚。有谁知道帮助我吗?计算机视觉中的卡尔曼滤波器:Q和R噪声协方差的选择

+0

你有任何真实的数据(测量)?您可以使用这些来获得R和Q的近似值.R取决于您的传感器质量,并且没有固定值,但是您可以通过实际测量值进行估算。 R表示传感器的精度。 Q是衡量模型准确程度的指标 - 某些动力学过于复杂,无法建模并假定为过程噪音。通过比较你的模型预测和实际测量,你可以估计Q.由于Q和R的选择在文献中有所不同。 – remus

+0

感谢您的回复。你能读下面的评论吗?谢谢。 – Orlok

回答

4

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

Q是过程噪声的协方差。简而言之,Q指定对象的实际运动偏离假定的运动模型的程度。如果你在路上跟踪汽车,那么等速模型应该是相当好的,Q的入口应该很小。如果你正在跟踪人的面部,他们不可能以恒定的速度移动,所以你需要提高Q值。同样,你需要知道表达状态变量的单位。

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

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

+0

感谢您的回复。我知道Q和R在物理上是什么,但我想知道是否有一些建议,程序或方法可以分配,例如模型噪声协方差Q.我的应用程序是一个简单的对象跟踪,我认为R是“多少变化”质心/光标位置(假设它可以作为状态变量仅测量位置)由于采集噪声;我的问题是Q.例如,上面和这两个链接页面:http://studentdavestutorials.weebly.com/object-tracking-2d-kalman-filter.html为Q:(0.1)^ 2分配相同的值,所以我想知道是否有某些我必须考虑的事情 – Orlok

+1

有一点可以尝试,即预测阴谋,看看他们有多少偏离检测。如果你确定R,那么这会告诉你Q是否正确。 – Dima

+1

感谢您的回复,这对我很有帮助。 第一段第一句有错。 R是测量噪声的协方差矩阵。 来源:http://campar.in.tum.de/Chair/KalmanFilter – ALM