इमेज में डाइमेंशन जोड़ें

प्लैटफ़ॉर्म के हिसाब से गाइड

ARCore में मौजूद ऑगमेंटेड इमेज एपीआई की मदद से, ऐसे एआर ऐप्लिकेशन बनाए जा सकते हैं जो उपयोगकर्ता के आस-पास मौजूद पोस्टर या प्रॉडक्ट की पैकेजिंग जैसी 2D इमेज का पता लगाकर उन्हें बेहतर बना सकते हैं.

आपने रेफ़रंस इमेज का सेट दिया हो. ARCore, हर इमेज में मौजूद ग्रेस्केल की जानकारी से फ़ीचर निकालने के लिए, कंप्यूटर विज़न एल्गोरिदम का इस्तेमाल करता है. साथ ही, इन फ़ीचर को एक या उससे ज़्यादा ऑगमेंटेड इमेज डेटाबेस में सेव करता है.

रनटाइम के दौरान, ARCore उपयोगकर्ता के आस-पास मौजूद समतल जगहों पर इन सुविधाओं को खोजता है. इससे ARCore, दुनिया में मौजूद इन इमेज का पता लगा सकता है. साथ ही, अगर इनकी पोज़िशन, ओरिएंटेशन, और साइज़ की जानकारी नहीं दी गई है, तो इनका अनुमान लगा सकता है.

मिलने वाली अनुमतियां

ARCore एक साथ 20 इमेज ट्रैक कर सकता है. ARCore, एक ही इमेज के कई इंस्टेंस को एक साथ डिटेक्ट या ट्रैक नहीं करेगा.

हर ऑगमेंटेड इमेज डेटाबेस में, ज़्यादा से ज़्यादा 1,000 रेफ़रंस इमेज की जानकारी सेव की जा सकती है. डेटाबेस की संख्या पर कोई सीमा नहीं है. हालांकि, किसी भी समय सिर्फ़ एक डेटाबेस चालू रह सकता है.

रनटाइम के दौरान, एन्हांस की गई इमेज के डेटाबेस में इमेज जोड़ी जा सकती हैं. हालांकि, हर डेटाबेस में ज़्यादा से ज़्यादा 1,000 इमेज जोड़ी जा सकती हैं. नेटवर्क कनेक्शन का इस्तेमाल करके, पहले से बनाए गए डेटाबेस डाउनलोड किए जा सकते हैं.

इमेज जोड़ते समय, उसका फ़िज़िकल साइज़ दिया जा सकता है, ताकि उसे पहचाना जा सके. ऐसा करने से, इमेज की पहचान करने की सुविधा की परफ़ॉर्मेंस बेहतर होगी.

  • अगर ऑब्जेक्ट का साइज़ नहीं दिया गया है, तो ARCore उसका अनुमान लगाता है और समय के साथ इस अनुमान को बेहतर बनाता है.

  • अगर ऑब्जेक्ट का असल साइज़ दिया गया है, तो ARCore उस साइज़ का इस्तेमाल करता है और इमेज की पोज़िशन और ओरिएंटेशन का अनुमान लगाता है. साथ ही, वह ऑब्जेक्ट के दिखने वाले या असल साइज़ और दिए गए साइज़ के बीच के अंतर को अनदेखा कर देता है.

ARCore, इन इमेज का जवाब दे सकता है और उन्हें ट्रैक कर सकता है:

  • ऐसी इमेज जो किसी जगह पर फ़िक्स की गई हों. जैसे, दीवार पर लटका हुआ प्रिंट या टेबल पर रखी पत्रिका

  • हिलने-डुलने वाली इमेज, जैसे कि गुज़र रही बस पर विज्ञापन या उपयोगकर्ता के हाथों में रखे गए किसी सपाट ऑब्जेक्ट पर इमेज, जब उपयोगकर्ता अपने हाथों को इधर-उधर घुमाता है.

ARCore किसी इमेज को ट्रैक करना शुरू करने के बाद, हर फ़्रेम में इमेज की पोज़िशन और ओरिएंटेशन का अनुमान देता है. ज़्यादा डेटा इकट्ठा करने के साथ-साथ, ARCore इन अनुमानों को लगातार बेहतर बनाता रहता है.

किसी इमेज का पता चलने के बाद, ARCore उसकी पोज़िशन और ओरिएंटेशन को "ट्रैक" करता रहता है. ऐसा तब भी होता है, जब उपयोगकर्ता ने अपना डिवाइस हिलाया हो और इमेज कुछ समय के लिए कैमरे के व्यू से बाहर हो गई हो. ऐसा होने पर, ARCore यह मान लेता है कि इमेज की पोज़िशन और ओरिएंटेशन स्टैटिक है. साथ ही, यह भी मान लेता है कि इमेज, आस-पास के माहौल में नहीं घूम रही है.

ट्रैकिंग की पूरी प्रोसेस, डिवाइस पर होती है. इमेज का पता लगाने और उन्हें ट्रैक करने के लिए, इंटरनेट कनेक्शन की ज़रूरत नहीं होती.

ज़रूरी शर्तें

इमेज में ये चीज़ें होनी चाहिए:

  • शुरुआत में पहचाने जाने के लिए, कैमरे के फ़्रेम का कम से कम 25% हिस्सा भरें.

  • कपड़ा बिना सिलवट वाला हो. उदाहरण के लिए, कपड़ा किसी बोतल के चारों ओर न लिपटा हो.

  • कैमरे में साफ़ तौर पर दिखें. इन्हें आंशिक रूप से नहीं छिपाया जाना चाहिए, बहुत तिरछे ऐंगल से नहीं दिखाया जाना चाहिए या कैमरे के तेज़ी से मूव करने की वजह से, मोशन ब्लर की वजह से नहीं दिखाया जाना चाहिए.

सीपीयू के इस्तेमाल और परफ़ॉर्मेंस से जुड़ी बातें

ऑगमेंटेड इमेज की सुविधा चालू करने पर, ARCore के सीपीयू के इस्तेमाल में बढ़ोतरी हो सकती है. हालांकि, यह इस बात पर निर्भर करता है कि ARCore की कौनसी सुविधाएं पहले से चालू हैं. जब एआर अनुभव के लिए किसी सुविधा की ज़रूरत न हो, तो उन सुविधाओं को बंद कर दें जिनका इस्तेमाल नहीं किया जा रहा है. इससे आपके ऐप्लिकेशन के लिए सीपीयू के ज़्यादा साइकल उपलब्ध होंगे. साथ ही, डिवाइस के गर्म होने की समस्या को कम करने और बैटरी लाइफ़ को बेहतर बनाने में मदद मिलेगी.

ज़्यादा जानकारी के लिए, परफ़ॉर्मेंस से जुड़ी बातें देखें.

सबसे सही तरीके

रेफ़रंस इमेज चुनने के बारे में सलाह

  • इमेज का रिज़ॉल्यूशन कम से कम 300 x 300 पिक्सल होना चाहिए. हाई रिज़ॉल्यूशन वाली इमेज का इस्तेमाल करने से, परफ़ॉर्मेंस बेहतर नहीं होती.
  • रेफ़रंस इमेज, PNG या JPEG फ़ाइल फ़ॉर्मैट में दी जा सकती हैं.
  • रंग की जानकारी का इस्तेमाल नहीं किया जाता. कलर और ग्रेस्केल, दोनों तरह की इमेज का इस्तेमाल रेफ़रंस इमेज के तौर पर किया जा सकता है. इसके अलावा, उपयोगकर्ता भी रनटाइम के दौरान इनका इस्तेमाल कर सकते हैं.
  • ज़्यादा कंप्रेस की गई इमेज इस्तेमाल करने से बचें, क्योंकि इससे फ़ीचर को निकालने में रुकावट आती है.
  • ऐसी इमेज का इस्तेमाल न करें जिनमें ज्यामितीय आकृतियां बहुत ज़्यादा हों या बहुत कम हों.जैसे, बारकोड, क्यूआर कोड, लोगो, और अन्य लाइन आर्ट. ऐसा करने पर, प्रॉडक्ट की पहचान करने और उसे ट्रैक करने की परफ़ॉर्मेंस खराब हो जाएगी.
  • बार-बार दिखने वाले पैटर्न वाली इमेज इस्तेमाल करने से बचें, क्योंकि इससे भी प्रॉडक्ट की पहचान करने और उसे ट्रैक करने में समस्याएं आ सकती हैं.
  • हर इमेज के लिए 0 से 100 के बीच का क्वालिटी स्कोर पाने के लिए, ARCore SDK टूल में शामिल arcoreimg टूल का इस्तेमाल करें. हमारा सुझाव है कि क्वालिटी का स्कोर कम से कम 75 हो. यहां दो उदाहरण दिए गए हैं:

    इमेज का पहला उदाहरण इमेज का दूसरा उदाहरण
    स्कोर: 0 स्कोर: 100
    इसमें दोहराए जाने वाले ज्यामितीय फ़ीचर मौजूद हैं ज़रूरत के मुताबिक रिज़ॉल्यूशन; इसमें कई यूनीक सुविधाएं शामिल हैं

इमेज डेटाबेस बनाने के बारे में सलाह

  • इमेज डेटाबेस फ़ाइल जनरेट करने के लिए, Android के लिए arcoreimg टूल का इस्तेमाल करें. यह टूल सिर्फ़ Android और Android NDK डेवलपमेंट के लिए उपलब्ध है. यह Unity SDK और ARCore के Unreal प्लग इन में पहले से मौजूद है.
  • डेटाबेस, रेफ़रंस इमेज में मौजूद ग्रेस्केल डेटा से निकाली गई सुविधाओं को कंप्रेस करके सेव करता है. हर इमेज एंट्री का साइज़ करीब 6 केबी होता है.
  • रनटाइम के दौरान, डेटाबेस में इमेज जोड़ने में करीब 30 मिलीसेकंड लगते हैं.
    • यूज़र इंटरफ़ेस (यूआई) थ्रेड को ब्लॉक होने से बचाने के लिए, इमेज को वर्क थ्रेड पर जोड़ें.
    • इसके अलावा, अगर हो सके, तो ARCore SDK में शामिल arcoreimg टूल का इस्तेमाल करके, कंपाइल करने के समय इमेज जोड़ें.
  • अगर आपको किसी इमेज का अनुमानित साइज़ पता है, तो उसे बताएं. इस जानकारी से, ऑब्जेक्ट की पहचान करने और उसे ट्रैक करने की परफ़ॉर्मेंस बेहतर होती है. खास तौर पर, बड़ी फ़िज़िकल इमेज (75 सेंटीमीटर से ज़्यादा) के लिए.
  • डेटाबेस में ऐसी कई इमेज सेव न रखें जिनका इस्तेमाल नहीं किया जाता. ऐसा इसलिए, क्योंकि सीपीयू के ज़्यादा इस्तेमाल की वजह से, सिस्टम की परफ़ॉर्मेंस पर थोड़ा असर पड़ता है.

ट्रैकिंग को ऑप्टिमाइज़ करने के लिए सलाह

  • अगर आपकी इमेज अपनी शुरुआती जगह से कभी नहीं हटेगी (उदाहरण के लिए, दीवार पर चिपकाया गया पोस्टर), तो ट्रैकिंग को बेहतर बनाने के लिए, इमेज में एंकर जोड़ा जा सकता है.
  • शुरुआती पहचान के लिए, फ़िज़िकल इमेज को कैमरे की इमेज में कम से कम 25% हिस्सा लेना चाहिए. उपयोगकर्ताओं को, कैमरे के फ़्रेम में फ़िज़िकल इमेज फ़िट करने के लिए कहा जा सकता है.
  • जब तक इमेज की ट्रैकिंग की स्थिति'पूरी ट्रैकिंग' न हो, तब तक इमेज के पोज़ और साइज़ के अनुमान का इस्तेमाल न करें. जब ARCore को किसी इमेज का पता चलता है और उसके लिए कोई अनुमानित फ़िज़िकल साइज़ नहीं दिया गया है, तो उसकी ट्रैकिंग की स्थिति रोक दी जाएगी. इसका मतलब है कि ARCore ने इमेज की पहचान कर ली है, लेकिन 3D स्पेस में उसकी जगह का अनुमान लगाने के लिए ज़रूरत के मुताबिक डेटा इकट्ठा नहीं किया है.