अलग-अलग प्लैटफ़ॉर्म के लिए गाइड
Android (Kotlin/Java)
Android एनडीके (C)
Unity (AR Foundation)
Unreal Engine
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 फ़ाइल फ़ॉर्मैट में उपलब्ध कराई जा सकती हैं.
- रंग की जानकारी का इस्तेमाल नहीं किया जाता. रेफ़रंस इमेज के तौर पर, रंगीन और ग्रेस्केल वाली इमेज, दोनों का इस्तेमाल किया जा सकता है. साथ ही, रनटाइम के दौरान उपयोगकर्ता भी इनका इस्तेमाल कर सकते हैं.
- ज़्यादा कंप्रेस की गई इमेज का इस्तेमाल न करें, क्योंकि इससे फ़ीचर निकालने में समस्या होती है.
- ऐसी इमेज का इस्तेमाल न करें जिनमें ज्यामितीय फ़ीचर की संख्या ज़्यादा हो या बहुत कम फ़ीचर हों (जैसे, बारकोड, क्यूआर कोड, लोगो, और अन्य लाइन आर्ट). ऐसा करने से, इमेज की पहचान करने और उसे ट्रैक करने की परफ़ॉर्मेंस खराब हो जाएगी.
- ऐसी इमेज का इस्तेमाल न करें जिनमें पैटर्न दोहराए जाते हों, क्योंकि इससे भी इमेज की पहचान करने और उसे ट्रैक करने में समस्याएं आ सकती हैं.
हर इमेज के लिए, क्वालिटी स्कोर पाने के लिए, ARCore SDK में शामिल
arcoreimgटूल का इस्तेमाल करें. यह स्कोर0से100के बीच होता है. हमारा सुझाव है कि क्वालिटी स्कोर कम से कम 75 हो. ऐसा करने के दो उदाहरण यहां दिए गए हैं:उदाहरण के तौर पर पहली इमेज उदाहरण के तौर पर दूसरी इमेज 

स्कोर: 0स्कोर: 100इसमें दोहराए जाने वाले ज्यामितीय फ़ीचर शामिल हैं इसका रिज़ॉल्यूशन सही है. इसमें कई यूनीक फ़ीचर शामिल हैं
इमेज डेटाबेस बनाने के बारे में सलाह
- Android के लिए arcoreimg टूल का इस्तेमाल करके, इमेज डेटाबेस फ़ाइल जनरेट करें. यह टूल, सिर्फ़ Android और Android एनडीके डेवलपमेंट के लिए उपलब्ध है. यह Unity SDK और ARCore Unreal प्लग-इन में शामिल है.
- डेटाबेस में, रेफ़रंस इमेज में मौजूद ग्रेस्केल डेटा से निकाले गए फ़ीचर को कंप्रेस करके सेव किया जाता है. हर इमेज एंट्री के लिए, करीब 6 केबी जगह की ज़रूरत होती है.
- रनटाइम के दौरान, डेटाबेस में इमेज जोड़ने में करीब 30 मि॰से॰ लगते हैं.
- यूआई थ्रेड को ब्लॉक होने से बचाने के लिए, वर्कर थ्रेड पर इमेज जोड़ें.
- इसके अलावा, अगर मुमकिन हो, तो कंपाइल टाइम के दौरान, ARCore SDK में शामिल
arcoreimgटूल का इस्तेमाल करके इमेज जोड़ें.
- अगर आपको किसी इमेज के असल साइज़ के बारे में पता है, तो उसे तय करें. इस जानकारी से, इमेज की पहचान करने और उसे ट्रैक करने की परफ़ॉर्मेंस बेहतर होती है. खास तौर पर, 75 सेंटीमीटर से बड़ी असल इमेज के लिए.
- डेटाबेस में, इस्तेमाल न की गई ज़्यादा इमेज सेव न करें, क्योंकि सीपीयू के ज़्यादा इस्तेमाल की वजह से, सिस्टम की परफ़ॉर्मेंस पर थोड़ा असर पड़ता है.
ट्रैकिंग को ऑप्टिमाइज़ करने के बारे में सलाह
- अगर आपकी इमेज, अपनी शुरुआती जगह से कभी नहीं हटेगी (उदाहरण के लिए, दीवार पर चिपकाया गया कोई पोस्टर), तो ट्रैकिंग की स्थिरता बढ़ाने के लिए, इमेज में ऐंकर अटैच किया जा सकता है.
- शुरुआत में पहचान के लिए, असल इमेज को कैमरे की इमेज का कम से कम 25% हिस्सा कवर करना होगा. उपयोगकर्ताओं से, असल इमेज को अपने कैमरे के फ़्रेम में फ़िट करने के लिए कहा जा सकता है.
- इमेज की पोज़ और साइज़ के अनुमानों का इस्तेमाल तब तक न करें, जब तक इमेज की ट्रैकिंग की स्थिति, पूरी ट्रैकिंग न हो. जब ARCore, किसी इमेज को शुरुआत में पहचानता है और उसका असल साइज़ तय नहीं किया जाता है, तो उसकी ट्रैकिंग की स्थिति, 'पॉज़' हो जाएगी. इसका मतलब है कि ARCore ने इमेज को पहचान लिया है, लेकिन 3D स्पेस में उसकी जगह का अनुमान लगाने के लिए, उसके पास ज़रूरत के मुताबिक डेटा नहीं है.