【发布时间】:2013-07-24 01:29:30
【问题描述】:
我正在从事一个对象跟踪项目,我想改进使用卡尔曼滤波器获得的结果。
我在互联网上找到了很多有效的示例,但我真的很想了解其背后的原因。
使用opencv,这里是部分代码:
KalmanFilter KF(6, 2, 0);
Mat_ state(6, 1);
Mat processNoise(6, 1, CV_32F);
...
KF.statePre.at(0) = mouse_info.x;
KF.statePre.at(1) = mouse_info.y;
KF.statePre.at(2) = 0;
KF.statePre.at(3) = 0;
KF.statePre.at(4) = 0;
KF.statePre.at(5) = 0;
KF.transitionMatrix = *(Mat_(6, 6) << 1,0,1,0,0.5,0, 0,1,0,1,0,0.5, 0,0,1,0,1,0, 0,0,0,1,0,1, 0,0,0,0,1,0, 0,0,0,0,0,1);
KF.measurementMatrix = *(Mat_(2, 6) << 1,0,1,0,0.5,0, 0,1,0,1,0,0.5);
这个结果比 KalmanFilter(4,2,0) 更平滑,但我真的不明白为什么。 谁能解释一下这个 (6,6) 转换矩阵的背后是什么?
编辑:解决方案可能是here,但显然我自己还不够好......
感谢您的帮助。
【问题讨论】:
标签: c++ opencv computer-vision tracking kalman-filter