আমার কাছে একটি 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)। তবে এই অ্যারেগুলির মানগুলি মূল স্থানাঙ্কগুলি থেকে খুব বেশি দূরে।
তাহলে, এই কলম্যান ফিল্টারটি কীভাবে ব্যবহার করবেন?