OpenCV के साथ संवर्धित वास्तविकता SDK [बंद]


94

मैं OpenCV पर एक संवर्धित वास्तविकता SDK विकसित कर रहा हूं। मुझे इस विषय पर ट्यूटोरियल खोजने के लिए कुछ समस्याएं थीं, जो कि पालन करने के लिए कदम, संभव एल्गोरिदम, वास्तविक समय के प्रदर्शन के लिए तेज और कुशल कोडिंग आदि।

अब तक मैंने अगली जानकारी और उपयोगी लिंक एकत्र किए हैं।

OpenCV स्थापना

नवीनतम रिलीज़ संस्करण डाउनलोड करें ।

आप यहां अधिष्ठापन गाइड पा सकते हैं (प्लेटफ़ॉर्म: linux, mac, windows, java, android, iOS)।

ऑनलाइन प्रलेखन

संवर्धित वास्तविकता

भिखारियों के लिए यहाँ OpenCV में एक सरल संवर्धित वास्तविकता कोड है। यह एक अच्छी शुरुआत है।

किसी भी अच्छी तरह से डिजाइन किए गए अत्याधुनिक एसडीके के लिए खोज करने वाले किसी भी व्यक्ति के लिए मैंने कुछ सामान्य कदम उठाए हैं, जो ओपन ट्रैकिंग कार्यों को देखते हुए मार्कर ट्रैकिंग पर आधारित हर संवर्धित-वास्तविकता होनी चाहिए।

  1. मुख्य कार्यक्रम: वीडियो से सभी वर्गों, आरंभीकरण, कब्जा फ्रेम बनाता है ।

  2. AR_Engine वर्ग: संवर्धित वास्तविकता अनुप्रयोग के कुछ हिस्सों को नियंत्रित करता है। 2 मुख्य राज्य होने चाहिए:

    • पता लगाना : दृश्य में मार्कर का पता लगाने की कोशिश करता है
    • ट्रैकिंग : इसका पता लगने के बाद, आगामी फ्रेम में मार्कर को फंसाने के लिए कम कम्प्यूटेशनल तकनीकों का उपयोग किया जाता है।

इसके अलावा हर फ्रेम में कैमरे की स्थिति और अभिविन्यास खोजने के लिए कुछ एल्गोरिदम होने चाहिए। यह दृश्य में पाए गए मार्कर के बीच होमोग्राफी परिवर्तन का पता लगाने के द्वारा प्राप्त किया जाता है, और मार्कर की एक 2 डी छवि हमने ऑफ़लाइन संसाधित की है। इस विधि की व्याख्या यहाँ (पृष्ठ 18)। पोज अनुमान के लिए मुख्य कदम हैं:

  1. लोड कैमरा आंतरिक पैरामीटर । पहले अंशांकन के माध्यम से ऑफ़लाइन निकाला गया। आंतरिक मापदंडों

  2. ट्रैक करने के लिए पैटर्न (मार्कर) लोड करें : यह हमारे द्वारा ट्रैक किए जा रहे प्लेनर मार्कर की एक छवि है। इस पैटर्न के लिए सुविधाओं को निकालने और डिस्क्रिप्टर (की- पॉइंट ) उत्पन्न करना आवश्यक है ताकि बाद में हम दृश्य से सुविधाओं के साथ तुलना कर सकें। इस कार्य के लिए एल्गोरिदम:

  3. हर फ्रेम अपडेट के लिए, दृश्य से सुविधाओं को निकालने के लिए एक डिटेक्शन एल्गोरिथ्म चलाएं और वर्णनकर्ता उत्पन्न करें। फिर से हमारे पास कई विकल्प हैं।

    • झारना
    • तेज
    • सर्फ
    • FREAK : एक नई विधि (2012) सबसे तेज होने का दावा किया।
    • ओर्ब
  4. पैटर्न और दृश्य विवरणकों के बीच मिलान का पता लगाएं ।

  5. उन मैचों से होमोग्राफी मैट्रिक्स का पता लगाएं । RANSAC का उपयोग मैचों के सेट में इनरेल / आउटलेर खोजने के लिए किया जा सकता है।

  6. होमोग्राफी से कैमरा पोज़ निकालें ।

पूर्ण उदाहरण:


1
दुर्भाग्य से, यह "रचनात्मक नहीं" है, क्या आप सुझावों की तलाश कर रहे हैं।
bfavaretto

3
इंस्टॉलेशन टास्क के बारे में, अब OpenCV ने GIT में माइग्रेट कर दिया है, इसलिए आंसर कोड डाउनलोड करने के लिए "git क्लोन क्लोन git: //code.opencv.org/opencv.git" करना आवश्यक है।
कार्लोस काछोटे ने

12
मूर्खतापूर्ण नियमों के कारण 47 वोट अभी तक बंद हैं।
SvaLopLop

जवाबों:


19

चूंकि AR एप्लिकेशन अक्सर मोबाइल उपकरणों पर चलते हैं, इसलिए आप अन्य सुविधाओं के डिटेक्टर / डिस्क्रिप्टर पर भी विचार कर सकते हैं:


3
धन्यवाद! FAST का एक "तेज़" संस्करण भी है जो मोबाइलों में रियलटाइम चलता है, यह पिरामिडल है और सिफ्ट डिस्क्रिप्टर कम कर दिया जाता है
Jav_Rock

2
मुझे
डायनेमिक

वास्तव में, ORB के बारे में पढ़कर ऐसा लगता है कि यह पिरामिड में एक तेज़ है
Jav_Rock

3
एआर पर वर्णनकर्ता को संसाधित करने के लिए फ्रीक अंतिम एल्गोरिथ्म है। तेज से तेज।
गोए

13

आम तौर पर यदि आप मार्करों को चुन सकते हैं, तो आप पहले किनारे डिटेक्टर का उपयोग करके एक वर्ग लक्ष्य का पता लगाते हैं और फिर या तो हूप या बस आकृति बनाते हैं - फिर आंतरिक डिज़ाइन से विशेष मार्कर की पहचान करें। सामान्य बिंदु मिलानकर्ता का उपयोग करने के बजाय।

अच्छी तरह से लिखित उदाहरण कोड के लिए अरूको पर एक नज़र डालें ।


4
हां, फ़्यूदुकल दृष्टिकोण सबसे सरल है, लेकिन यह काफी अप-टू-डेट नहीं है। मुझे लगता है कि अब एक बनावट वाले मार्करों की ओर इशारा करना चाहिए। धन्यवाद। उदाहरण बहुत दिलचस्प है क्योंकि यह अच्छी तरह से समझाया गया है, हालांकि।
Jav_Rock 16

1
यदि आप मुद्रा को जानना चाहते हैं, तो आपको संबंधित छवि के कॉर्ड्स में मार्कर सुविधाओं की 3 डी स्थिति से मेल खाना चाहिए। नियमित आकार के लक्ष्य इसे आसान बनाते हैं लेकिन उन्हें प्लानर होने की आवश्यकता नहीं है
मार्टिन बेकेट

लेकिन अगर वे प्लानेर नहीं हैं, तो आपको 3 डी-मॉडल या सीएडी मॉडल की आवश्यकता है, अन्यथा 2 डी-टू-3 डी से होमोग्राफी अब एक वैध तरीका नहीं है, है? मेरा मतलब है कि अर्थोमोग्राफी में इस्तेमाल होने वाला डायरेक्ट लीनियर ट्रांसफॉर्मेशन
Jav_Rock

हां, यदि आपके पास एक 3D मार्कर है, तो आपको वास्तविक शब्द 3D आकार (कैड से, या इसे मापना) जानना होगा, लेकिन यह बेहतर समाधान देता है
मार्टिन बेकेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.