الميزات الجديدة في ARKit 2.0

لقد مر أسبوعان منذ نهاية مؤتمر WWDC. تمت مشاهدة الجلسات ، وتمت إعادة قراءة الوثائق ، وتم تنفيذ المشاريع التجريبية ، مما يعني أنه يمكنك ملء جميع المعلومات التي تم جمعها في مقال.



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


حفظ واستعادة بطاقة AR


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


يتم تنفيذها على ARSession : لقد getCurrentWorldMapWithCompletionHandler طريقة getCurrentWorldMapWithCompletionHandler ، والتي تُرجع ARWorldMap . يتم تخزين المعلومات حول نقاط التحكم داخل هذا الكائن ، بمساعدة ARKit التي يمكنها استعادة الإحداثي الصفري للمشهد ، بالإضافة إلى صفيف ARAnchors الذي يمكن إرفاق الكائنات به. يمكن حفظ ARWorldMap أو إرسالها إلى مكان ما. لاستعادة الخريطة ، تحتاج إلى نقلها إلى الحقل initialWorldMap الخاص ARSessionConfiguration قبل بدء الجلسة. بعد البدء ، ستتحول حالة الجلسة إلى .limited مع السبب. بمجرد قيام ARKit بتجميع نقاط كافية للاستعادة ، سيتم تعيين الإحداثي الصفري على الموضع الصحيح .normal حالة .normal الحالة .normal .


للحصول على أفضل أداء ، توصي Apple بما يلي:


  • امسح المشهد من زوايا مختلفة. ستكون مجموعة النقاط أكبر وأكثر دقة.
  • يجب أن تكون البيئة ثابتة ونسيج جيد ؛
  • يجب أن تكون مجموعة من النقاط كثيفة إلى حد ما.

لا تحتاج إلى مراقبة هذه المعلمات ARFrame ، نظرًا لأن ARFrame يحتوي حاليًا على حقل worldMappingStatus . ولكن عليك أن تأخذها بعين الاعتبار عند تصميم التطبيق.


الواقع المعزز المتعدد


سمحت آلية حفظ خريطة البيئة بمزامنة نظام الإحداثيات بين عدة أجهزة. بمعرفة موضع كل جهاز بالنسبة لخريطة البيئة ، يمكنك بناء سيناريوهات متعددة المستخدمين.


في العرض التقديمي ، تم عرض لعبة SwiftShot ، والتي تحتاج فيها إلى إطلاق النار من مقلاعك على مقلاع الخصم.



اللعبة مكتوبة في Swift + SceneKit. تتم مزامنة إجراءات المستخدم باستخدام إطار عمل MultipeerConnectivity . يمكن تنزيل مصادر التطبيق هنا .


انعكاس بيئي


عند إضافة كائن معدني للواقع الافتراضي إلى المشهد ، أود أن أرى فيه انعكاسًا لأشياء من العالم الحقيقي. للقيام بذلك ، ARWorldTrackingConfiguration على حقل environmentTexturing . إذا كنت تستخدم SceneKit كمحرك وقمت بتعيين حقل .automatic على .automatic ، فستحصل على النتيجة التالية:



باستلام الصورة من الكاميرا ، يبني ARKit خريطة مكعبة مع نسيج البيئة. يتم إنشاء المعلومات التي لم تندرج في الإطار باستخدام خوارزميات التعلم الآلي.


تتبع الصور المتحركة ثنائية الأبعاد


في ARKit 1.5 ، ظهر تتبع الصور الثابتة فقط. في الإصدار الثاني ، تمت إزالة التقييد ، والآن يمكنك الحصول على إحداثيات الصور المتحركة. تستخدم وظيفة Vuforia SDK وظيفة مشابهة. في العرض التقديمي ، كمثال للاستخدام ، أظهروا استبدال الصور على فيديو في إطار الصورة:



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


لتتبع الصور ، تحتاج إلى استخدام ARImageTrackingConfiguration . يتم تمرير صفيف trackingImages إلى التكوين maximumNumberOfTrackedImages . سيتم إرجاع إحداثيات الصورة كـ ARImageAnchor .


تتبع الأجسام ثلاثية الأبعاد الثابتة


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


لتتبع الكائنات ، قم بإنشاء ARReferenceObject من دليل ملف أو مورد وإضافته إلى ARWorldTrackingConfiguration.detectionObjects . معلومات حول الأشياء التي ARFrame في ARFrame .


على سبيل المثال ، أظهر العرض التقديمي عرض معلومات حول التمثال الصغير في المتحف في الواقع المعزز.


تتبع الوجه


في الإصدارات السابقة ، كان من الممكن الحصول على إحداثيات وتناوب الوجه ، وشبكة متعددة الأضلاع للوجه ومجموعة من الخلطات (51 عاطفة مع تقدم من صفر إلى واحد). في الإصدار الثاني ، سنرى ثلاثة ابتكارات:


تعريف الضوء الموجه.


يستخدم ARKit 2 صورة وجه كمصدر لمعلومات الضوء. باستخدامه ، يمكنك تحديد شدة الضوء ودرجة حرارته واتجاهه. هذا سيجعل الأقنعة أكثر واقعية ؛


تتبع اللغة.


تمت إضافة اللسان إلى tongueOut ، مما يدل على [0،1] درجة "ارتفاع" اللغة. من نفسي ، يمكنني أن أضيف أن جميع أصدقائي تقريبًا حاولوا إظهار اللغة ، التي لعبت بها لعبة animoji ؛


تتبع العين.


يحتوي ARFaceAnchor على ثلاثة حقول جديدة: leftEyeTransform و rightEyeTransform و lookAtPoint . هناك بالفعل عروض توضيحية على الإنترنت مع أمثلة الاستخدام:



تحسينات عامة في الإصدار الجديد:


  • تسريع وتهيئة الطائرات وتعريفها ؛
  • أصبح تتبع الهاتف في الفضاء وتحديد الطائرات أكثر دقة ؛
  • تحسنت دقة تحديد حدود الطائرات مع توسيع الطائرة ؛
  • تمت إضافة دعم نسبة العرض إلى الارتفاع 4: 3 (الآن سيتم تحديد هذا التنسيق افتراضيًا).

سيتم تطبيق جميع التحسينات تلقائيًا ، باستثناء الانتقال إلى نسبة العرض إلى الارتفاع 4: 3. بالنسبة للأخيرة ، تحتاج إلى إعادة إنشاء التطبيق باستخدام SDK الجديد.




إذا كانت المعلومات مفيدة لك ، فدعمني بالسهم لأعلى. وأنا على استعداد للإجابة على الأسئلة في التعليقات.

Source: https://habr.com/ru/post/ar415277/


All Articles