2D空間(サーフェス)にオブジェクトの軌跡があります。軌跡は一連の(x,y)
座標として与えられます。私の測定値はノイズが多く、時には明らかな外れ値があることを知っています。だから、私は私の観測をフィルタリングしたい。
カルマンフィルターを理解している限り、それはまさに必要なことを行います。だから、私はそれを使用しようとします。ここで python実装を見つけました。そして、これはドキュメントが提供する例です:
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)
。ただし、これらの配列の値は元の座標から離れすぎています。
それでは、このカルマンフィルターの使用方法は?