मैंने हाल ही में अपना उन्नत वास्तविकता एप्लिकेशन प्राप्त करने और अपेक्षित होने के करीब चलने में कामयाब रहे। हालांकि, मुझे कोई समस्या है, भले ही मूल्य सही हैं, फिर भी कुछ अनुवाद से वृद्धि अभी भी बंद है! यह हल करने के लिए आश्चर्यजनक होगा क्योंकि मैं हूं इसलिए ऐसा करने के लिए बंद करें।बाहरी ट्रैकिंग के साथ एआर - संरेखण गलत है, मान सही हैं
प्रणाली वैश्विक और संदर्भ फ्रेम स्थापित करने के लिए आईआर-परावर्तक मार्करों के साथ बाहरी ट्रैकिंग सिस्टम (पोलारिस स्पेक्ट्ररा स्टीरियो ऑप्टिकल ट्रैकर) का उपयोग करती है। मेरे पास एक मार्कर संलग्न है जिसमें एक मार्कर संलग्न है, जो कि एलएजीओ संरचना का एक 3 डी मॉडल है जो सीएडी का उपयोग करके अपने असली दुनिया के समकक्ष के सटीक चश्मा, एक ट्रैक पॉइंटर टूल और एक विश्व संदर्भ वाला कैमरा है इसके साथ जुड़ा मार्कर। वर्चुअल स्पेस को वास्तविक दुनिया में 3 डी स्लाइसर में एक टूलसेट का उपयोग करके पंजीकृत किया गया था, एक मेडिकल इमेजिंग सॉफ्टवेयर जो पर्यावरण मैं विकसित कर रहा हूं। नीचे कुछ तस्वीरें हैं जो ठीक से सिस्टम को स्पष्ट करने के लिए हैं जो मैं कर रहा हूं (मई या इस मुद्दे के लिए प्रासंगिक नहीं हो सकता है)।
तो वास्तव में क्या प्रत्येक मार्कर/घटक करता है (मार्करों चार चांदी गेंदों के साथ काले पार कर रहे हैं) का एक संक्षिप्त अवलोकन:
- दुनिया मार्कर (1 छवि दाईं तरफ) अन्य सभी मार्कर के परिवर्तनों के लिए संदर्भ फ्रेम है। यह लेगो मॉडल के लिए तय है ताकि एलईजीओ के वर्चुअल समकक्ष के लिए एक ही पंजीकरण किया जा सके।
- कैमरा मार्कर (कैमरा से जुड़ी पहली छवि) कैमरे को ट्रैक करती है। कैमरे को इस मार्कर में
cv::solvePnP()
का उपयोग करके किए गए बाह्य अंशांकन द्वारा पंजीकृत किया गया है। - चेकरबोर्ड का उपयोग ट्रैक किए गए सूचक (अनछुए) और
cv::findChessboardCorners()
का उपयोग करके बाह्य अंशांकन के लिए डेटा प्राप्त करने के लिए किया जाता है।
अब तक मैं सिस्टम के पीछे गणित के खिलाफ अपना चेहरा तोड़ रहा हूं जब तक कि आखिरकार सब कुछ खत्म नहीं हो जाता। जब मैं स्थानांतरित करता हूं जहां मैं संदर्भ उत्पत्ति के लिए कैमरा उत्पत्ति का अनुमान लगाता हूं, तो दोनों के बीच अनुवाद वेक्टर लगभग [0; 0; 0]। तो सभी पंजीकरण सही ढंग से काम करने लगते हैं। हालांकि, जब मैं अपने आवेदन चलाने के लिए, मैं निम्नलिखित परिणाम प्राप्त:
आप देख सकते हैं, वहाँ एक अजीब वृद्धि में ऑफसेट। मैंने छवि पर विरूपण सुधार को हटाने की कोशिश की है (वर्तमान में cv::undistort()
के साथ किया गया), लेकिन यह समस्या को और भी खराब कर देता है। घूर्णन सभी सही हैं और जैसा कि मैंने पहले कहा था, अनुवाद सभी ठीक लगते हैं। मैं इसके कारण क्या हो सकता है इसके लिए एक नुकसान में हूँ। निस्संदेह, प्रतिपादन पाइपलाइन के कार्यान्वयन के दौरान बहुत कुछ गलत हो सकता है, इसलिए मैं इसे उम्मीद के तहत यहां पोस्ट कर रहा हूं कि किसी ने भी इसी तरह के मुद्दे का अनुभव किया है। मैंने पहले ही इस प्रोजेक्ट को वेबकैम-आधारित ट्रैकिंग विधि का उपयोग करके किया है और इस तरह के कोई भी समस्या का अनुभव नहीं किया है, भले ही मैंने एक ही प्रतिपादन प्रक्रिया का उपयोग किया हो।
मैं इस पद में थोड़ा सा संदिग्ध रहा हूं ताकि स्थिति के अल्पसंख्यक के साथ पाठकों को दबाने से बच सकें क्योंकि इसमें कई अलग-अलग विवरण शामिल हो सकते हैं। यदि कोई और जानकारी की आवश्यकता है तो मैं इसे प्रदान कर सकता हूं। किसी भी सलाह या अंतर्दृष्टि की सराहना की जाएगी। धन्यवाद!
आप कहते हैं "मान सही हैं", आपका क्या मतलब है बिल्कुल सही है? यह एक जटिल प्रसंस्करण श्रृंखला है, आपके द्वारा देखे जाने वाले ऑफ़सेट आपके मॉड्यूल में से एक या डिज़ाइन दोष में एक छोटी बग के कारण हो सकता है। बताने का एकमात्र तरीका है प्रत्येक मॉड्यूल (उदाहरण के लिए मार्कर ट्रैकर, कैमरा अंशांकन, पाइपलाइन प्रतिपादन, आदि) और अन्य मॉड्यूल के साथ एक दूसरे के एकीकरण का परीक्षण करना। – AldurDisciple
मेरे पास एक डीबग विंडो में आउटपुट के रूप में प्रदर्शित अंतिम कैमरा ट्रांसफॉर्म मैट्रिक्स है। इसके बाद मैं वास्तविक मैट्रिक्स में कैमरे की मूल स्थिति के संबंध में किए गए भौतिक मापों के लिए इस मैट्रिक्स के परिवर्तन वेक्टर की तुलना करता हूं। ये परिवर्तन मूल्य विचलन की हमारी स्वीकार्य सीमा के भीतर हैं, उन श्रेणियों को हमारे पिछले सिस्टम द्वारा निर्धारित किया गया है जो सही तरीके से काम कर रहा है। तो संक्षेप में, दृश्य कैमरे की स्थिति को सेट करने के लिए उपयोग किया जाने वाला हमारा इनपुट सही लगता है, लेकिन पूरी तरह से सिस्टम काम नहीं करता है। – SwarthyMantooth
यदि कैमरा प्रक्षेपण मैट्रिक्स सही है, तो यह शायद प्रतिपादन पाइपलाइन से संबंधित है। लेकिन फिर, इस तरह के ऑफसेट में कई कारण हो सकते हैं और इसे खोजने का सबसे अच्छा तरीका स्वतंत्र रूप से प्रत्येक भाग का परीक्षण करना है: उदा। मॉडल लोडिंग, पूर्वनिर्धारित 3 डी पॉइंट्स का प्रक्षेपण, पूर्वनिर्धारित कैमरा मैट्रिक्स का उपयोग करके मॉडल प्रतिपादन, – AldurDisciple