2013-07-24 5 views
9

मैं ऑब्जेक्ट ट्रैकिंग प्रोजेक्ट पर काम कर रहा हूं और मैं कलमैन फ़िल्टर का उपयोग कर परिणामों को बेहतर बनाना चाहता हूं।काल्लमफिल्टर (6,2,0) संक्रमण मैट्रिक्स

मुझे इंटरनेट पर बहुत सारे उदाहरण मिल गए हैं जो काम कर रहे हैं लेकिन मैं वास्तव में समझना चाहता हूं कि इसके पीछे क्या है।

KalmanFilter KF(6, 2, 0); 
Mat_ state(6, 1); 
Mat processNoise(6, 1, CV_32F); 
... 
KF.statePre.at(0) = mouse_info.x; 
KF.statePre.at(1) = mouse_info.y; 
KF.statePre.at(2) = 0; 
KF.statePre.at(3) = 0; 
KF.statePre.at(4) = 0; 
KF.statePre.at(5) = 0; 
KF.transitionMatrix = *(Mat_(6, 6) << 1,0,1,0,0.5,0, 0,1,0,1,0,0.5, 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.measurementMatrix = *(Mat_(2, 6) << 1,0,1,0,0.5,0, 0,1,0,1,0,0.5); 

यह एक एक KalmanFilter (4,2,0) की तुलना में चिकनी परिणाम देता है, लेकिन मैं वास्तव में क्यों नहीं है:

opencv का उपयोग करना, यहाँ कोड का एक हिस्सा है। क्या कोई मुझे बता सकता है कि इस (6,6) संक्रमण मैट्रिक्स के पीछे क्या है?

संपादित करें: समाधान शायद here है लेकिन स्पष्ट रूप से मैं काफी अच्छा अपने आप से यह पता लगाने के लिए नहीं कर रहा हूँ ...

आपकी मदद के लिए धन्यवाद।

उत्तर

9

आपके पास एक राज्य वेक्टर एक्स 6 घटकों से बना है, जिनमें से पहले दो ऑब्जेक्ट की एक्स और वाई स्थिति हैं;

एक्स = [एक्स, वाई, v_x, v_y, a_x, a_y] टी

Kalman फिल्टर में, अपने अगले राज्य, : मान लेते हैं कि अन्य 4 अपने वेग और त्वरण हैं एक्स t + 1, पहले वाली स्थिति एक्स टी संक्रमण मैट्रिक्स एक, से गुणा के बराबर है संक्रमण मैट्रिक्स आप पोस्ट के साथ ऐसा है तो आप के लिए होता है:

एक्स t + 1 = एक्स टी + v_x टी + 0.5 a_x टी

y t + 1 = y टी + v_y टी + 0.5 a_y टी

v_x t + 1 = v_x टी + a_x टी

v_y t + 1 = v_t टी + a_t टी

a_x t + 1 = a_x टी

a_y t + 1 = a_y टी

डिस्क कौन सा है निरंतर त्वरण के साथ चलने वाली वस्तु के समीकरणों का पुनर्मूल्यांकन करना, यदि दोनों राज्यों के बीच का समय अंतराल 1 के बराबर है (और यही कारण है कि यह मानने के लिए यह समझ में आता है कि अन्य चार चर वेग और त्वरण हैं)।

यह एक कलमैन फ़िल्टर है जो वेग अनुमान में तेज़ी से भिन्नता की अनुमति देता है, इसलिए यह एक (4, 2, 0) फ़िल्टर की तुलना में कम देरी पेश करता है, जो निरंतर वेग मॉडल का उपयोग करेगा।

+0

धन्यवाद, मैं एक ही निष्कर्ष के साथ आया था। – Thibel