إضافة بُعد إلى الصور

أدلة خاصة بالنظام الأساسي

تتيح لك واجهات برمجة التطبيقات للصور المعزّزة في ARCore إنشاء تطبيقات الواقع المعزّز التي يمكنها رصد الصور الثنائية الأبعاد وتعزيزها في بيئة المستخدم، مثل الملصقات أو حزمة المنتجات.

تقدّم مجموعة من الصور المرجعية. يستخدم ARCore خوارزمية الرؤية الحاسوبية لاستخراج الميزات من معلومات التدرّج الرمادي في كل صورة، كما يخزن تمثيلاً لهذه الميزات في قاعدة بيانات واحدة أو أكثر من قواعد بيانات الصورة المعززة.

أثناء وقت التشغيل، يبحث تطبيق ARCore عن هذه الميزات على الأسطح المستوية في بيئة المستخدم. وهذا يتيح لـ ARCore اكتشاف هذه الصور في العالم وتقدير موضعها واتجاهها وحجمها إذا لم يتم توفير صورة.

الإمكانات

بإمكان ARCore تتبُّع ما يصل إلى 20 صورة في آنٍ واحد. لن يكتشف ARCore أو يتعقب مثيلات متعددة للصورة نفسها في الوقت نفسه.

يمكن لكل قاعدة بيانات للصور المعززة تخزين معلومات ما يصل إلى 1,000 صورة مرجعية. ليس هناك حد لعدد قواعد البيانات، ولكن لا يمكن تنشيط سوى قاعدة بيانات واحدة في أي وقت.

يمكن إضافة الصور إلى قاعدة بيانات الصور المُعزَّزة في وقت التشغيل، بما يصل إلى الحد الأقصى البالغ 1,000 صورة لكل قاعدة بيانات. من الممكن تنزيل قواعد بيانات تم إنشاؤها سابقًا باستخدام اتصال شبكة.

عند إضافة صورة، من الممكن توفير الحجم الفعلي للصورة لاكتشافها. سيؤدي ذلك إلى تحسين أداء ميزة رصد الصور.

  • إذا لم يتم توفير حجم مادي، تقدر ARCore الحجم وتقوم بتنقيح هذا التقدير بمرور الوقت.

  • في حالة توفير حجم مادي، يستخدم ARCore الحجم المقدم ويقدّر موضع الصورة واتجاهها، متجاهلاً أي تناقض بين الحجم الظاهر أو الفعلي والحجم الفعلي المقدم.

يمكن لتطبيق ARCore الاستجابة للصور التي:

  • الصور التي يتم تثبيتها في مكانها، مثل طباعة معلّقة على الحائط أو مجلة على الطاولة

  • الصور المتحركة، مثل إعلان في حافلة عابرة أو صورة على شيء مسطّح يحمله المستخدم أثناء تحريك يديه.

بمجرد أن يبدأ ARCore في تتبع الصورة، فإنه يوفر تقديرات لموضع الصورة واتجاه كل إطار. تعمل ARCore باستمرار على تنقيح هذه التقديرات أثناء جمع المزيد من البيانات.

بمجرد اكتشاف صورة، يواصل ARCore "تتبع" موضع الصورة واتجاهها، حتى عندما تنتقل الصورة مؤقتًا من وضع الكاميرا لأن المستخدم قد حرّك جهازه. عندما يحدث هذا، يفترض ARCore أن موضع الصورة واتجاهها ثابتان، وأن الصورة لا تتحرك بحد ذاتها في البيئة.

وتتم جميع عمليات التتبُّع على الجهاز. لا يلزم الاتصال بالإنترنت لاكتشاف الصور وتتبعها.

المتطلّبات

يجب أن تستوفي الصور الشروط التالية:

  • املأ ما لا يقل عن 25% من إطار الكاميرا ليتم رصده في البداية.

  • أن تكون مسطحة (على سبيل المثال، غير مجعدة أو ملفوفة حول زجاجة)

  • أن تظهر الكاميرا بوضوح يجب عدم حجبها جزئيًا أو عرضها من زاوية مائلة للغاية أو مشاهدتها عندما تتحرك الكاميرا بسرعة كبيرة بسبب تمويه الحركة.

اعتبارات استخدام وحدة المعالجة المركزية (CPU) وأدائها

استنادًا إلى ميزات ARCore المفعّلة حاليًا، قد يؤدي تفعيل الصور المعزَّزة إلى زيادة استخدام وحدة المعالجة المركزية (CPU) في ARCore. يمكنك إيقاف أي ميزات غير مُستخدَمة في الأوقات التي لا تتطلّبها تجربة الواقع المعزّز. وسيؤدي ذلك إلى إتاحة دورات وحدة المعالجة المركزية (CPU) إضافية لتطبيقك، وتحسين الأداء الحراري وعمر البطارية.

للحصول على معلومات إضافية، يُرجى الاطّلاع على اعتبارات الأداء.

أفضل الممارسات

نصائح لاختيار الصور المرجعية

  • يجب أن تكون درجة دقة الصورة 300 × 300 بكسل على الأقل. لا يؤدي استخدام صور بدقة عالية إلى تحسين الأداء.
  • يمكن توفير الصور المرجعية بتنسيق ملف PNG أو JPEG.
  • ولا يتم استخدام معلومات الألوان. يمكن استخدام كل من الصور الملونة والصور المتدرجة الرمادية كصور مرجعية أو بواسطة المستخدمين في وقت التشغيل.
  • تجنَّب الصور ذات الضغط المكثف لأنّ ذلك يتداخل مع استخراج الميزات.
  • تجنَّب الصور التي تحتوي على عدد كبير من الميزات الهندسية أو عدد قليل جدًا من الميزات (مثل الرموز الشريطية ورموز الاستجابة السريعة والشعارات وغيرها من الرسومات الخطية)، لأنّ ذلك سيؤدّي إلى ضعف أداء التتبع والرصد.
  • تجنَّب الصور ذات الأنماط المتكرّرة لأنّ ذلك قد يؤدي أيضًا إلى حدوث مشاكل في رصدها وتتبُّعها.
  • استخدِم أداة arcoreimg المضمَّنة في حزمة ARCore SDK للحصول على نقاط جودة تتراوح بين 0 و100 لكل صورة. ننصحك ألا تقل نقاط الجودة عن 75. وإليك مثالان:

    مثال للصورة 1 مثال للصورة 2
    النتيجة: 0 النتيجة: 100
    يحتوي على ميزات هندسية متكررة دقة كافية؛ يحتوي على العديد من الميزات الفريدة

نصائح لإنشاء قاعدة بيانات الصور

  • استخدِم أداة arcoreimg لنظام التشغيل Android لإنشاء ملف قاعدة بيانات للصور. لا تتوفر هذه الأداة إلا لتطوير Android NDK. وهي مدمَجة في المكوِّن الإضافي Unity SDK وARCore Unreal.
  • تقوم قاعدة البيانات بتخزين تمثيل مضغوط للميزات المستخرجة من بيانات التدرج الرمادي في الصور المرجعية. يشغل كل إدخال صورة حوالي 6 كيلوبايت
  • يستغرق الأمر حوالي 30 مللي ثانية لإضافة صورة إلى قاعدة البيانات في وقت التشغيل.
    • يمكنك إضافة صور إلى سلسلة محادثات خاصة بالعاملين لتجنُّب حظر سلسلة التعليمات في واجهة المستخدم.
    • أو، إن أمكن، أضف الصور في وقت التجميع باستخدام أداة arcoreimg المدرجة في ARCore SDK.
  • إذا كنت تعرف الحجم الفعلي المتوقّع للصورة، حدِّده. تساعد هذه المعلومات في تحسين مستوى أداء الاكتشاف والتتبُّع، خاصةً للصور المادية الكبيرة (التي يزيد حجمها عن 75 سم).
  • تجنَّب الاحتفاظ بالعديد من الصور غير المستخدَمة في قاعدة البيانات لأنّ هناك تأثيرًا طفيفًا في أداء النظام بسبب زيادة استخدام وحدة المعالجة المركزية (CPU).

نصائح لتحسين التتبع

  • إذا لم تتحرك صورتك من موضعها الأولي مطلقًا (على سبيل المثال، ملصق مثبَّت على الحائط)، يمكنك تثبيت مرساء بالصورة لزيادة ثبات التتبّع.
  • يجب أن تشغل الصورة الفعلية 25% على الأقل من صورة الكاميرا لرصد هذا النوع من المحتوى للمرة الأولى. يمكنك أن تطلب من المستخدمين ملاءمة الصورة المادية في إطار الكاميرا.
  • لا تستخدِم وضعية الصورة وحجمها إلى أن تصبح حالة تتبُّع الصورة تتبُّع كامل. عندما يتم اكتشاف صورة في البداية بواسطة ARCore، بدون تحديد حجم فعلي متوقع، سيتم إيقاف حالة التتبع مؤقتًا. وهذا يعني أن ARCore قد تعرفت على الصورة، ولكنها لم تجمع بيانات كافية لتقدير موقعها في مساحة ثلاثية الأبعاد.