3D-реализация фильтра Калмана

Я хочу реализовать фильтр Калмана для движущегося объекта в r3 (координата X, Y, Z) в OpenCV. Я пытался понять документацию OpenCV, но это действительно не помогает и очень редко.

Синтаксис инициализации следующий:

KalmanFilter::KalmanFilter (int dynamParams, int MeasureParams, int controlParams = 0, int type = CV_32F)

В моем случае dynamParams = 9 и measureParams=3?

И что такое transitionMatrix в моем случае?


person black    schedule 11.02.2016    source источник


Ответы (2)


В этом случае матрица переходов А выглядит так:

A = [1, 0, 0, v, 0, 0, a, 0, 0;
     0, 1, 0, 0, v, 0, 0, a, 0;
     0, 0, 1, 0, 0, v, 0, 0, a;
     0, 0, 0, 1, 0, 0, v, 0, 0;
     0, 0, 0, 0, 1, 0, 0, v, 0;
     0, 0, 0, 0, 0, 1, 0, 0, v;
     0, 0, 0, 0, 0, 0, 1, 0, 0;
     0, 0, 0, 0, 0, 0, 0, 1, 0;
     0, 0, 0, 0, 0, 0, 0, 0, 1]

С

v = dt
a = 0.5*dt^2

См. http://campar.in.tum.de/Chair/KalmanFilter.

person John    schedule 18.03.2016

Я обнаружил, что для 3D-кейса часто используются положение, скорость и ускорение. Это означает, что для реализации OpenCV dynamParams=9 и MeasureParams=3 подходят.

person black    schedule 28.02.2016