ProgRoman 9 Жалоба Опубликовано September 30, 2015 Добрый день! У меня тут появился вопрос.. в примерах фильтра Калмана обычно рассматривают предсказание и или (сглаживание) 2d точек, каким образом изменится матрица перехода если у нас точки 3-хмерные.... KalmanFilter KF(6,3,0);//x,y,z,dx,dy,dz KF.transitionMatrix = *(Mat_<float>(6, 6) << 1,0,1,0,1,0 0,1,0,1,0,1, 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.transitionMatrix должна иметь такой блочный вид или она должна быть просто единичной?.. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано September 30, 2015 Эта матрица зависит от модели движения и может быть, в принципе, произвольной. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано September 30, 2015 Эта матрица зависит от модели движения и может быть, в принципе, произвольной.а как её задавать тогда?... для 2-х мерной точки вроде бы ничего сложного не было просто писал... KalmanFilter KF(4,2,0);//x,y,dx,dy KF.transitionMatrix = *(Mat_<float>(4, 4) << 1,0,1,0, 0,1,0,1, 0,0,1,0, 0,0,0,1); ...я так задавал, вроде бы было корректно... а с трёхмерными точками каким образом модель движения получать что бы матрицу задать... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 1, 2015 Ну, для Вашего фрагмента все просто, хотя как Nuzhny сказал, здесь может быть все что угодно, зависит от модели динамики объекта.Ваша матрица не что иное как:x=1*x+0*y+1*dx+0*dyy=0*x+1*y+0*dx+1*dydx=0*x+0*y+1*dx+0*dydy=0*x+0*y+0*dx+1*dyЧто вполне соответствует линеаризованной модели движения с управлением скоростью, и дискретой времени dt = 1. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ProgRoman 9 Жалоба Опубликовано October 1, 2015 А ок понял! спасибо большое!) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
BeS 53 Жалоба Опубликовано October 1, 2015 Когда речь заходит о Калмановском сглаживании в 3D пространстве применительно к компьютерному зрению, нужно не забывать, что операция триангуляции в 3-х мерном Евклидовом пространстве имеет анизатропную ошибку, соответственно для того, чтобы применить opencv'шный Линейный Калман Фильтр, придется линеаризовать модель, или, в случае когда модель линеаризовать не представляется возможным, переходить на использование чего-то типа Unscented Kalman Filter. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах