ฉันมีวิถีของวัตถุในพื้นที่ 2 มิติ (พื้นผิว) วิถีที่ได้รับเป็นลำดับของ(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)
อย่างไรก็ตามค่าในอาร์เรย์เหล่านี้อยู่ไกลจากพิกัดเดิมมากเกินไป
ดังนั้นวิธีใช้ตัวกรองคาลมานนี้