2D 공간 (표면)에 객체의 궤도가 있습니다. 궤적은 일련의 (x,y)
좌표로 제공됩니다. 측정 값이 시끄럽고 때로는 특이 치가 있습니다. 따라서 관측치를 필터링하고 싶습니다.
내가 칼만 필터를 이해하는 한, 내가 필요한 것을 정확하게 수행합니다. 그래서 나는 그것을 사용하려고합니다. 여기 에서 파이썬 구현을 발견했습니다 . 그리고 이것은 문서가 제공하는 예입니다.
from pykalman import KalmanFilter
import numpy as np
kf = KalmanFilter(transition_matrices = [[1, 1], [0, 1]], observation_matrices = [[0.1, 0.5], [-0.3, 0.0]])
measurements = np.asarray([[1,0], [0,0], [0,1]]) # 3 observations
kf = kf.em(measurements, n_iter=5)
(filtered_state_means, filtered_state_covariances) = kf.filter(measurements)
(smoothed_state_means, smoothed_state_covariances) = kf.smooth(measurements)
입력 및 출력 해석에 문제가 있습니다. 그것이 measurements
바로 내 측정치 (좌표)와 같습니다. 예제의 측정 값이 정수이므로 약간 혼동됩니다.
나는 또한 몇 가지를 제공해야 transition_matrices
하고 observation_matrices
. 거기에 어떤 가치를 두어야합니까? 이 행렬은 무엇을 의미합니까?
마지막으로 출력을 어디에서 찾을 수 있습니까? filtered_state_means
또는 이어야 smoothed_state_means
합니다. 이 배열은 올바른 모양을 갖습니다 (2, n_observations)
. 그러나이 배열의 값이 원래 좌표와 너무 멀리 있습니다.
그렇다면이 칼만 필터를 사용하는 방법은 무엇입니까?