فهم بيئة المستخدم على مؤسسة الواقع المعزّز في Unity

تعرَّف على كيفية استخدام Scene Semantics API في تطبيقاتك.

تتيح واجهة برمجة التطبيقات Scene Semantics API للمطوّرين فهم المشهد المحيط بالمستخدم من خلال توفير معلومات دلالية مستندة إلى نموذج تعلُّم الآلة في الوقت الفعلي. بالنظر إلى صورة لمشهد في الهواء الطلق، تعرض واجهة برمجة التطبيقات تصنيفًا لكل وحدة بكسل عبر مجموعة من الفئات الدلالية المفيدة، مثل السماء أو المبنى أو الشجرة أو الطريق أو الرصيف أو المركبة أو شخص أو غير ذلك. بالإضافة إلى تصنيفات البكسل، توفّر واجهة برمجة التطبيقات Scene Semantics API أيضًا قيم ثقة لكل تصنيف من وحدات البكسل وطريقة سهلة الاستخدام للاستعلام عن مدى انتشار تصنيف معيّن في المشهد الخارجي.

من اليمين إلى اليسار، أمثلة على صورة تم إدخالها والصورة الدلالية لتصنيفات وحدات البكسل وصورة الثقة المقابلة:

مثال على صورة إدخال وصورة دلالية وصورة ثقة دلالية

المتطلبات الأساسية

احرص على فهم مفاهيم الواقع المعزّز الأساسية. وكيفية ضبط جلسة ARCore قبل المتابعة.

تفعيل دلالات المشهد

في جلسة ARCore جديدة، تحقَّق مما إذا كان جهاز المستخدم يتوافق مع واجهة برمجة تطبيقات Scene Semantics API. بسبب قيود طاقة المعالجة، لا تتيح بعض الأجهزة المتوافقة مع ARCore استخدام واجهة برمجة التطبيقات Scene Semantics API.

لحفظ الموارد، يتم إيقاف Scene Semantics تلقائيًا على ARCore. عليك تفعيل الوضع الدلالي لكي يستخدم تطبيقك واجهة برمجة تطبيقات Scene Semantics API.

في ARCoreExtensionsConfig، اضبط وضع "دلالات" على "مفعّل".

تم تفعيل وضع الدلالات.

في حال استخدام نظام التشغيل iOS، يجب أيضًا تفعيل الإشارات الدلالية في إعدادات المشروع:

  1. انتقل إلى تعديل > إعدادات المشروع > إدارة المكون الإضافي XR > إضافات ARCore.
  2. ضمن الميزات الاختيارية، اختَر الدلالات على iOS.

دلالات الدلالات على iOS مفعَّلة في "الميزات الاختيارية".

الحصول على الصورة الدلالية

عند تفعيل دلالات المشهد، يمكن استرداد الصورة الدلالية. الصورة الدلالية هي صورة TextureFormat.R8، حيث تتوافق كل وحدة بكسل مع تصنيف دلالي محدّد من خلال SemanticLabel.

استخدِم ArSemanticManager.TryGetSemanticTexture() للحصول على الصورة الدلالية:

if (semanticManager.TryGetSemanticTexture(out Texture2D semanticImage))
{
    using (semanticImage)
    {
        // Use the semantic image here.
    }
}

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

الحصول على صورة الثقة

بالإضافة إلى الصورة الدلالية التي توفّر تصنيفًا لكل وحدة بكسل، توفّر واجهة برمجة التطبيقات أيضًا صورة ثقة لقيم الثقة المقابلة بالبكسل. صورة الثقة هي صورة TextureFormat.Alpha8، حيث تتوافق كل وحدة بكسل مع قيمة في النطاق [0, 255]، وذلك مع الاحتمالية المرتبطة بالتصنيف الدلالي لكل وحدة بكسل.

استخدِم ArSemanticManager.TryGetSemanticConfidenceTexture() للحصول على صورة الثقة الدلالية:

if (semanticManager.TryGetSemanticConfidenceTexture(out Texture2D semanticConfidenceImage))
{
    using (semanticConfidenceImage)
    {
        // Use the semantic confidence image here.
    }
}

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

إجراء طلب بحث عن أجزاء وحدات البكسل لتصنيف دلالي

يمكنك أيضًا الاستعلام عن جزء البكسل في الإطار الحالي الذي ينتمي إلى فئة معينة، مثل السماء. يعد هذا الاستعلام أكثر كفاءة من عرض الصورة الدلالية وإجراء بحث عن تصنيف معين بالبكسل. الكسر الذي يتم عرضه هو قيمة عائمة في النطاق [0.0, 1.0].

استخدام ArSemanticManager.GetSemanticLabelFraction() للحصول على الكسر لتصنيف معيّن:

var fraction = semanticManager.GetSemanticLabelFraction(SemanticLabel.SKY);