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

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

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 स्पेस में उसकी जगह का अनुमान लगाने के लिए ज़रूरत के मुताबिक डेटा इकट्ठा नहीं किया है.