
لطالما استخدم العديد من المطورين الواقع المعزز في تطبيقاتهم. من المساعدة الجيدة لذلك حلول الطرف الثالث مثل OpenCV أو Wikitude. مع إصدار iOS 11 ، يمكن للمبرمجين الوصول إلى إطار نظام ARKit. دعونا نرى مدى جودة هذه المكتبات وأيها يجب أن يستخدم في مشروع الواقع المعزز التالي.
ARKit
تشمل المزايا التي لا شك فيها لـ ARKit ميلاده. لا يستغرق التكامل والتكوين سوى بضع دقائق. تفضل Xcode نصف العمليات الضرورية لك ، وبعد ذلك يعمل الإطار "فقط يعمل". من السهل جدًا تنظيم التفاعل بين ARKit وأطر النظام الأخرى (SpriteKit و SceneKit و Metal و CoreLocation وما إلى ذلك).
تم تحسين المكتبة بشكل جيد وتستفيد إلى أقصى حد من قدرات الأجهزة لأحدث موديلات iPhone و iPad. عدد كبير من الحسابات التي تحدث تحت غطاء المحرك ، لا يوجد أي تأثير تقريبًا على تجربة المستخدم. أنا سعيد بالدقة التي يتعرف بها الإطار على الطائرات والعلامات. لا تتداخل مع الإضاءة الضعيفة ولا الحركة المفاجئة للجهاز. بفضل التقنيات التكميلية لـ VIO (قياس المسافات بالقصور الذاتي المرئي) و IMU (وحدة القياس بالقصور الذاتي) ، والتي تشكل أساس ARKit ، تمكن رجال Apple من تقليل أخطاء الحساب.
بالطبع ، ليس من دون عيوب. أولاً ، يتوفر ARKit فقط على الأجهزة التي تعمل بنظام iOS 11+ ، وهو مدعوم فقط على iPhone 6s والإصدارات الأحدث ، iPad Pro (9.7 أو 10.5 أو 12.9). لسوء الحظ ، هذا قد ينفر العملاء الذين يخشون فقدان جزء من جمهورهم المستهدف.
تم تصميم ARKit بطريقة تتم فيها معايرة المعلومات المتعلقة بأشياء العالم المحيط وموضع الجهاز فيها باستمرار. وبسبب هذا ، في بداية الجلسة ، في حين أن البيانات ليست دقيقة بما فيه الكفاية ، يتم إنشاء شعور "عدم استقرار" العمل ، والتي لن تكون قادرة على التخلص منها بعد. بالإضافة إلى ذلك ، إذا كانت الجلسة طويلة بما فيه الكفاية ، صغيرة ، على ما يبدو ، فإن الأخطاء في مؤشرات أجهزة الاستشعار سوف تتراكم وتصبح ملحوظة أكثر.
عند التعرف على الصور ، تنشأ مشاكل في وضع كائن AR ، يطفو الكائن ، ولا يتم إصلاحه بوضوح عند النقطة المشار إليها. لوحظ سلوك مماثل في
المثال الذي نشرته شركة Apple . ومع ذلك ، فإن الجسم الموضوع عند نقطة معينة في الفضاء لا يتحرك عمليا.
في بعض الحالات (صور صغيرة بالأبيض والأسود بجودة ليست جيدة جدًا) يتم التعرف على العلامة ، ولكن النظام يحدد إحداثياتها بشكل غير صحيح. نتيجة لذلك ، يتم رسم كائن AR في مكان خاطئ.
ARKit من السهل جدًا تعلمه ، للبدء ، تحتاج إلى حد أدنى من المعرفة. تم بالفعل نشر عدد كبير إلى حد ما من مقالات التدريب وأمثلة التعليمات البرمجية على الويب ، والمجتمع كبير ومتجاوب ، لذلك لن يكون من الصعب العثور على إجابات للأسئلة الناشئة في عملية كتابة التعليمات البرمجية.
Opencv
يتم توزيع مكتبة OpenCV المكتوبة بلغة C ++ مجانًا وتمنحك الفرصة لتنزيل
iOS SDK من الموقع الرسمي أو تجميعها بنفسك.
بالفعل في مرحلة تقديم المعجبين ، ينتظر Swift مهمة رائعة للقضاء على أخطاء التجميع ، والتي تهدد بالتمدد لعدة ساعات. لحسن الحظ ، تتوفر التعليمات خطوة بخطوة على الويب التي نشرها رفاقنا الذين تغلبوا بالفعل على إطار العمل المستعصي (على سبيل المثال ،
OpenCV مع Swift - خطوة بخطوة ).
بعد أن تتمكن أخيرًا من بدء المشروع بالمكتبة المتصلة ، سيظهر السؤال ، ماذا تفعل بعد ذلك. ربما قررت البحث عن دروس على الموقع الرسمي. هناك ، سينتظر مطورو iOS ثلاثة أمثلة لاستخدام الإصدار القديم من إطار العمل في المشاريع التي تركز على iOS 8. لا توجد العديد من المقالات الحديثة حول تطوير الأجهزة المحمولة باستخدام OpenCV. على ما يبدو ، هذا يرجع إلى حقيقة أن كل من يريد إتقان هذه المكتبة قام بذلك منذ وقت طويل ولم يعد بحاجة إلى تفسيرات.
ومع ذلك ، لا يزال لدى المبتدئين فرصة لإتقان هذه الأداة القوية بلا شك. ومع ذلك ، سوف يستغرق الكثير من الوقت والجهد. مثل أي مكتبة أخرى منخفضة المستوى ، يتطلب OpenCV دراسة عميقة وعميقة ، وتحليلًا مفصلاً للتوثيق ، ويفحص آلاف المناقشات في المنتديات بحثًا عن إجابة لسؤالك وتجارب لا نهاية لها.
بالمناسبة ، لا تنس أن تضيف إلى هذا بعض الوقت لاستعادة الدورة الجامعية في الرياضيات في الذاكرة ، لأن OpenCV لن تعرض الصيغ لك.
Wikitude
بادئ ذي بدء ، Wikitude هو إطار مدفوع وليس
بأي حال من الأحوال إطارًا
رخيصًا . يحتوي الإصدار المجاني على علامات مائية ، لذلك لا يمكنك استخدامه لبناء الإصدارات.
ومع ذلك ، فإن المكتبة تستحق المال. على عكس ARKit ، فهو يدعم حتى الأجهزة القديمة وإصدارات النظام. المنتج موثق جيدًا ، ويحتوي على العديد من المقالات والدروس وأمثلة التعليمات البرمجية ، لذلك سيستغرق دمج وتنفيذ أبسط المهام لمبرمج غير مستعد بضع ساعات فقط.
النطاق الرئيسي للمكتبة هو التعرف على العلامة. مثل هذه الأخيرة ، يمكن استخدام أي صور بدون قناة ألفا. صحيح ، يعمل Wikitude فقط مع التنسيقات الأصلية. يجب أن يتم حزم صور العلامة بتنسيق .wtc ، ويجب تحويل النماذج ثلاثية الأبعاد إلى ملفات .wt3. في الإنصاف ، تجدر الإشارة إلى أن Wikitude يوفر أدوات تحويل على موقعه على الويب.
بشكل عام ، يتماشى إطار العمل بشكل جيد مع مهمته: يتم التعرف على العلامات ، ويتم وضع كائنات AR في المكان الذي خططت له ، ولا تسبح عند تغيير زاوية العرض أو تحريك الكاميرا. ليس من الصعب نشر صورة أو مقطع فيديو أو نموذج ثلاثي الأبعاد ، بالإضافة إلى ضمان تفاعلها. يتم دعم العمل المتزامن مع العديد من العلامات ، ولكن عند تكوين فئات المكتبة ، من الأفضل تحديد عددهم لتحسين الأداء.
ومع ذلك ، ألاحظ أنه في ظروف الإضاءة السيئة ، وكذلك الحركة غير الدقيقة للجهاز ، هناك مشاكل في التعرف على العلامات حتى إذا تم استخدام صور مصدر عالية الجودة لإنشائها.
يدعم Wikitude JS والإصدار الأصلي من SDK.
إذا اخترت إصدار JS للتكامل ، فاستعد لرفض Swift أو Objective-C العزيزة على قلبك والتركيز على كتابة كود JavaScript. وبما أن هذا الأخير مؤلم تمامًا عند العمل في Xcode ، فقم بتثبيت Sublime أو أحد بدائله في نفس الوقت. وحاول الكتابة على الفور ، لأن عملية تصحيح الأخطاء وإصلاحها لن تكون سهلة.
نقطة أخرى تتعلق بالتحسين. عند التفاعل مع كائنات JS AR لأي فترة زمنية ، يبدأ إصدار الإطار في التباطؤ بشكل ملحوظ ، حيث يستنزف fps كثيرًا ، وهذا ليس مفاجئًا.
النسخة الأصلية من SDK ، بكل سهولة ، تخلو عمليا من "السحر". في الواقع ، يُعلمك فقط أنه تم التعرف على العلامة ، ويبلغ عن معرفها وينسق في الفضاء ، وبعد ذلك يمرر العلم إليك. ثم أنت حر في استخدام أداتك المفضلة ، على سبيل المثال ، OpenGL ، لرسم كائنات الواقع المعزز.
الخلاصة
لذا ، إذا كنت مبتدئًا قرر تجربة يده في الواقع المعزز ، فكل هذا يعتمد على عميلك واحتياجاته. إذا لم يكن العميل آسفًا لإنفاق عدة آلاف من اليورو على إطار عمل مدفوع عالي الجودة ، ولا تخاف من JavaScript أو OpenGL ، فخذ Wikitude. خلاف ذلك ، ابدأ بـ ARKit. بفضل العديد من الأمثلة ودعم المجتمع ، يمكنك تنفيذ المهام البسيطة بسرعة و "فحص" هذه التكنولوجيا. بعد ذلك ، عندما تبدأ في فهم ما هو ، وتعتاد عليه قليلاً ، سيكون من الممكن اقتحام OpenCV منخفض المستوى وقهر قمم غير قابلة للوصول سابقًا.