2011-12-05 11 views
6

मान लें कि मेरे पास 5 मार्कर का एक सेट है। मैं ARToolkit जैसे संवर्धित वास्तविकता ढांचे का उपयोग करके प्रत्येक मार्कर के बीच सापेक्ष दूरी खोजने की कोशिश कर रहा हूं। मेरे कैमरे में आपको पहले 20 फ्रेम मुझे पहले 2 मार्कर दिखाते हैं, इसलिए मैं 2 मार्करों के बीच रूपांतरण को बाहर कर सकता हूं। दूसरे 20 फ्रेम मुझे केवल दूसरे और तीसरे मार्कर दिखाते हैं। पिछले 20 फ्रेम मुझे 5 वें और 1 मार्कर दिखाते हैं। मैं सभी 5 मार्करों के मार्कर पदों का एक 3 डी मानचित्र बनाना चाहता हूं।फिडियसियल्स (बढ़ी हुई वास्तविकता अनुप्रयोग) के सेट के बीच सटीक दूरी को मापने

मेरा प्रश्न यह है कि वीडियो फीड की निम्न गुणवत्ता के कारण दूरी के साथ त्रुटिपूर्णताएं जानी जाएंगी, मैं एकत्र की गई सारी जानकारी के कारण त्रुटियों को कम कैसे करूं?

मेरा बेवकूफ दृष्टिकोण पहली मार्कर को आधार बिंदु के रूप में उपयोग करने के लिए होगा, पहले 20 फ्रेम से परिवर्तनों का मतलब लें और दूसरे मार्कर को और तीसरे और चौथे स्थान पर रखें। 5 वें और 1 वें और चौथे और 5 वें के बीच परिवर्तन के माध्यम के बीच में इसे रखकर चौथे और 1 के बीच इसे चौथे और 1 के बीच रखें। इस दृष्टिकोण में मुझे लगता है कि पहले मार्कर प्लेसमेंट की तरफ पूर्वाग्रह है और कैमरे को प्रति फ्रेम 2 से अधिक मार्कर देखने में ध्यान नहीं दिया जाता है।

आखिरकार मैं चाहता हूं कि मेरी प्रणाली मार्करों की एक्स संख्या के मानचित्र को काम करने में सक्षम हो। किसी भी दिए गए फ्रेम में एक्स मार्कर दिखाई दे सकते हैं और छवि गुणवत्ता के कारण गैर-प्रणालीगत त्रुटियां हैं।

इस समस्या के सही दृष्टिकोण के संबंध में कोई भी मदद की सराहना की जाएगी।

संपादित करें:

चलें कहना वास्तविक दुनिया के नक्शे इस प्रकार है::

enter image description here

चलें कहते हैं कि मैं के बीच परिवर्तनों से प्रत्येक के लिए 100 रीडिंग प्राप्त अधिक समस्या के बारे में जानकारी छवि में तीरों द्वारा प्रतिनिधित्व के रूप में अंक। वास्तविक मूल्य तीरों के ऊपर लिखे गए हैं।

मुझे प्राप्त मानों में कुछ त्रुटि है (वास्तविक मूल्य के बारे में एक गाऊशियन वितरण का पालन करने के लिए माना जाता है)। उदाहरण के लिए मार्कर 1 से 2 के लिए प्राप्त रीडिंग में से एक x: 9.8 y: 0.09 हो सकता है। यह देखते हुए कि मेरे पास ये सभी रीडिंग हैं, मैं मानचित्र का अनुमान कैसे लगा सकता हूं। नतीजा आदर्श रूप से वास्तविक मूल्यों के करीब होना चाहिए।

मेरे बेवकूफ दृष्टिकोण में निम्नलिखित समस्या है। यदि 1 से 2 के ट्रांसफॉर्म का औसत 3 की प्लेसमेंट से थोड़ी दूर है तो 2 से 3 की पढ़ाई बहुत सटीक है। यह समस्या नीचे दिखाया गया है:

enter image description here

साग वास्तविक मान रहे हैं, अश्वेतों परिकलित मानों हैं। 1 से 2 का औसत परिवर्तन x: 10 y: 2 है।

+0

शायद dsp.stackexchange.com पर बेहतर है? – endolith

उत्तर

0

आप अपने सभी डेटा को सर्वोत्तम फिट प्रदान करने वाले परिवर्तन को खोजने के लिए least-squares विधि का उपयोग कर सकते हैं। यदि आप चाहते हैं कि मार्करों के बीच की दूरी है, तो यह केवल मापा दूरी की औसत है।

मान लीजिए कि आपकी मार्कर स्थिति तय की गई है (उदा।, एक निश्चित कठोर शरीर के लिए), और आप उनकी सापेक्ष स्थिति चाहते हैं, तो आप बस अपनी स्थिति रिकॉर्ड कर सकते हैं और उन्हें औसत कर सकते हैं।यदि किसी मार्कर को दूसरे के साथ भ्रमित करने की संभावना है, तो आप उन्हें फ्रेम से फ्रेम तक ट्रैक कर सकते हैं और इसकी पहचान की पुष्टि करने के लिए प्रत्येक दो अवधि के बीच प्रत्येक मार्कर स्थान की निरंतरता का उपयोग कर सकते हैं।

यदि आप अपने कठोर शरीर को आगे बढ़ने की उम्मीद करते हैं (या यदि शरीर कठोर नहीं है, और आगे), तो आपकी समस्या काफी कठिन है। एक समय में दो मार्कर एक कठोर शरीर की स्थिति को ठीक करने के लिए पर्याप्त नहीं है (जिसके लिए तीन की आवश्यकता होती है)। हालांकि, ध्यान दें कि, प्रत्येक संक्रमण पर, आपके पास पुराने मार्कर, नया मार्कर और निरंतर मार्कर का स्थान लगभग एक ही समय में होता है। यदि आपके पास अपने प्रत्येक मार्कर के लिए शरीर पर पहले से ही एक अपेक्षित स्थान है, तो यह हर 20 फ्रेमों में कठोर मुद्रा का एक अच्छा अनुमान प्रदान करना चाहिए।

सामान्य रूप से, यदि आपका शरीर आगे बढ़ रहा है, तो सर्वोत्तम प्रदर्शन के लिए इसकी गतिशीलता के लिए किसी प्रकार का मॉडल की आवश्यकता होगी, जिसका उपयोग समय के साथ अपने मुद्रा को ट्रैक करने के लिए किया जाना चाहिए। एक गतिशील मॉडल को देखते हुए, आप ट्रैकिंग करने के लिए Kalman filter का उपयोग कर सकते हैं; कलमैन फ़िल्टर आपके द्वारा वर्णित डेटा के प्रकार को एकीकृत करने के लिए अच्छी तरह अनुकूलित हैं।

कलमैन राज्य वेक्टर के हिस्से के रूप में अपने मार्करों के स्थानों को शामिल करके, आप इस जानकारी की आवश्यकता के बजाय अपने संबंधित स्थानों को पूरी तरह से सेंसर डेटा (जो आपका लक्ष्य प्रतीत होता है) से कम करने में सक्षम हो सकते हैं। प्रायोरी। यदि आप कुशलतापूर्वक मार्करों की मनमानी संख्या को संभालने में सक्षम होना चाहते हैं, तो आपको सामान्य तरीकों के कुछ चतुर उत्परिवर्तन के साथ आने की आवश्यकता हो सकती है; आपकी समस्या अनुक्रमिक कलमैन फ़िल्टरिंग जैसे परंपरागत अपघटन विधियों द्वारा समाधान से बचने के लिए डिज़ाइन की गई है।


संपादित करें, नीचे टिप्पणी के अनुसार:

अपने मार्कर उपज एक पूर्ण 3 डी मुद्रा (सिर्फ एक 3D स्थिति के बजाय), तो अतिरिक्त डेटा यह आसान वस्तु के बारे में सटीक जानकारी बनाए रखने के लिए कर देगा आप ट्रैकिंग कर रहे हैं हालांकि, ऊपर दी गई सिफारिशें अभी भी लागू होती हैं:

  • यदि लेबल किए गए शरीर को ठीक किया गया है, तो सभी प्रासंगिक फ्रेम डेटा के कम-वर्ग फिट का उपयोग करें।
  • यदि लेबल वाला शरीर चल रहा है, तो इसकी गतिशीलता मॉडल करें और एक कलमान फ़िल्टर का उपयोग करें।

नए अंक जो मन में आते हैं:

  • रिश्तेदार परिवर्तनों की एक श्रृंखला के प्रबंधन के लिए सबसे अच्छा तरीका है समस्या दृष्टिकोण नहीं हो सकता है की कोशिश कर रहा; जैसा कि आप ध्यान देते हैं, यह संचित त्रुटि के लिए प्रवण है। हालांकि, यह एक बुरा तरीका नहीं है, या तो, जब तक आप उस ढांचे में आवश्यक गणित को लागू कर सकते हैं।
  • विशेष रूप से, कम से कम वर्ग फिट को सापेक्ष pos की श्रृंखला या अंगूठी के साथ पूरी तरह से अच्छी तरह से काम करना चाहिए।
  • किसी भी मामले में, कम से कम वर्ग के लिए या कलमान फ़िल्टर ट्रैकिंग के लिए, आपके माप की अनिश्चितता का एक अच्छा अनुमान प्रदर्शन में सुधार करेगा।
+0

उत्तर के लिए धन्यवाद, मार्कर पदों को ठीक किया गया है। मेरे पास प्रति फ्रेम की एकमात्र जानकारी फ्रेम में दिखाए गए मार्करों के बीच 3 डी रूपांतरण है। त्रुटियों की संभावना एक गाऊसी वितरण की होगी। मेरे पास वास्तव में मार्करों की स्थिति नहीं है लेकिन मैं एक मार्कर को दूसरे से अलग कर सकता हूं। – jzz

+0

यदि मैं सही ढंग से समझता हूं, तो आप एक समय में अधिकतम 2 बिंदुओं पर ऑप्टिकल ट्रैकिंग कर रहे हैं। मुझे नहीं लगता कि यह एक पूर्ण 3 डी परिवर्तन के लिए पर्याप्त जानकारी प्रदान करेगा - क्या आप सबसे अच्छा नहीं, बस अपने 2 मार्करों के लिए 3 डी स्थिति डेटा प्राप्त करेंगे? – comingstorm

+0

मेरे प्रत्येक मार्कर वास्तव में एक वर्ग है इसलिए मैं फिडियस के 4 कोनों के आधार पर प्रत्येक मार्कर के सापेक्ष कैमरे की मुद्रा का अनुमान लगा सकता हूं। इसके समान: [लिंक] (http://www.hitl.washington.edu/artoolkit/documentation/tutorialcamera.htm) – jzz

संबंधित मुद्दे