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

الأدلة الخاصة بالمنصات

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

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

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

الإمكانات

يمكن لـ ARCore تتبُّع ما يصل إلى 20 صورة في الوقت نفسه. لن يرصد ARCore أو يتتبّع في الوقت نفسه عدة نُسخ من الصورة نفسها.

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

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

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

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

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

يمكن لـ ARCore الاستجابة للصور وتتبُّعها في الحالات التالية:

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

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

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

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

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

المتطلبات

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

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

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

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

اعتبارات استخدام وحدة المعالجة المركزية والأداء

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

لمزيد من المعلومات، يُرجى الاطّلاع على اعتبارات الأداء.

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

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

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

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

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

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

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