إنشاء ملاح باستخدام تقنيات الواقع المعزز وأساليب التعلم الآلي

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

على سبيل المثال ، تنتمي كلية الهندسة والتكنولوجيا رقم 777 ، سانت بطرسبرغ ، إلى مثل هذه المباني. واجهنا مشكلة حيث أنه عندما يزور الضيوف والآباء مدرستنا ، يصعب عليهم العثور على المكتب المناسب أو أي مكان آخر ضروري. الكل يجد طريقه للخروج من هذا الوضع ، شخص يسأل عمال البناء بلا نهاية ، وآخر يتجول في ممرات لا نهاية لها. بعد تحليل هذه المشكلة ، قررنا إنشاء متصفح لزوار مدرستنا. لكن الملاح البسيط مع خريطة داخل المبنى غير ذي صلة ، والذي لا يمكن أن يقال عن إحدى التقنيات الجديدة والمتطورة بسرعة للواقع المعزز (AR). تم تطوير نظام الملاحة لدينا باستخدام تقنية AR ، ورؤية الكمبيوتر وأساليب التعلم الآلي. ستساعدك على التنقل والعثور على المكان المحدد الذي يجب أن يذهب إليه زوار مدرستنا.

هدف


الهدف هو إنشاء مساعد عالمي في بناء التوجه.

الأهداف الرئيسية:

  • لتبسيط توجهات الطلاب الجدد وأولياء الأمور والضيوف ؛
  • جعل التطبيق عالميًا بحيث يدعم لاحقًا التنقل ليس فقط في مدرستنا ، ولكن أيضًا في أي مباني أخرى حول العالم ؛
  • واجهة سهلة الاستخدام ومفهومة للجميع ؛

AR - الواقع المعزز


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

في الآونة الأخيرة ، قدمت Google و Apple محركات ARC ، ARCore و ARKit ، على التوالي ، والتي يمكننا من خلالها استنتاج أن تقنية AR ستصبح أكثر سهولة لتطوير وإنشاء المزيد من التطبيقات والألعاب الجديدة.

ما هو الواقع المعزز؟


الواقع المعزز هو بيئة تكمل في الوقت الحقيقي العالم الحقيقي ، كما نراه بمساعدة البيانات الرقمية التي تتم معالجتها باستخدام أي أجهزة وبرامج حوسبة إلكترونية.

أيضًا ، يجب تمييز الواقع المعزز (AR) عن الواقع الافتراضي (الواقع الافتراضي ، VR) والمختلط (الواقع المختلط ، MR).

ما هي اختلافاتهم الرئيسية؟


في الواقع المعزز ، يتم عرض الكائنات الرقمية الافتراضية على بيئة حقيقية ، على عكس الواقع الافتراضي.

الواقع الافتراضي هو عالم تم إنشاؤه بالوسائل التقنية الرقمية ، ينتقل إلى شخص من خلال الحواس.

الواقع المختلط هو تقاطع بين VR و AR ويجمع بين كلا النهجين.

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

آفاق التنمية


قد تحتل تقنية الواقع المعزز المكانة التي خصصها الخيال العلمي للصور المجسمة. لن تكون الصور المجسمة فقط قريبًا ، وأجهزة مثل Hololens (نظارات الواقع المعزز من Microsoft) جاهزة تقنيًا. يبدو احتمال مشاهدة الرسوم التوضيحية التفاعلية الافتراضية في المدارس ، والتي يمكن مشاهدتها من جميع الجهات ، والتي يمكنك من خلالها التفاعل ورؤية نتيجة تجاربك على الفور ، بعيدًا عن التخيلات الساطعة الجميلة حول المستقبل. يمكن أن يصبح التدريب في أي تخصص هندسي مرئيًا وسهل الفهم ومثيرًا للاهتمام.

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

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

الواقع المعزز يغير حاضرنا بالفعل: الأقنعة الافتراضية ، والبحث عن بوكيمون في المدن والمستنقعات ، والأطفال يطلقون النار على بعضهم البعض ليس من قطع الخشب ، ولكن من خلال شاشة الهاتف. الآن هي حقيقة واقعة.

تخطيط العمل


يحتوي ملاحنا على نظام التعرف على رقم الخزانة ، ويعمل هذا التعرف باستخدام طرق التعلم الآلي ، وعلى وجه التحديد ، تم استخدام تكنولوجيا الشبكة العصبية التلافيفية. دعونا نتعمق في العمارة.

بالنسبة لهذا النموذج ، كان علينا حل مشكلتين رئيسيتين:

  • كشف الحروف في الصورة ؛
  • التعرف على الحروف.

إذا كان التعرف على الحروف قديمًا - شبكات جيدة تشبه LeNet ، فعندها لاكتشاف الحروف في الصورة ، كان علينا كتابة بنية الشبكة العصبية وتجميع قاعدة بيانات وتدريب النموذج. من أجل تكوين البنية ، كنا بحاجة إلى فهم نوع مشكلة التعلم الآلي التي سيحلها نموذجنا.

بعد الكثير من النقاش ، توصلنا إلى توافق في الآراء - يجب على كاشف النص حل مشكلة الانحدار ، أي يجب أن يتنبأ النموذج بمكان وجود الحرف. ثم قمنا بمحاكاة شبكة عصبية تتكون من طبقتين ، لا تتضمن طبقات المدخلات والمخرجات ، ولكن بعد ذلك واجهنا مشكلة: كان هناك الكثير من بيانات المخرجات ، وبسبب هذا كانت لدينا مشكلة - مشكلة إعادة التدريب ، واستنتجنا أننا نحتاج إلى بنية ونهج مختلفين للمشكلة ، بعد نقاش طويل توصلنا إلى استنتاج مفاده أننا لا نحتاج إلى الكشف عن الحروف دفعة واحدة ، ولكن الكلمات الأولى ، ثم الحروف فقط. وهنا قضينا الكثير من الوقت في تغيير قاعدة البيانات ، ثم أضفنا شبكة عصبية أخرى إلى الشلال ، بسبب انخفاض معاملنا (اخترنا مقياس خطأ مربع التربيع) بنسبة 40٪ ، ولكن لا تزال النتيجة الفعلية بعيدة عن المستوى المطلوب ،لذلك ، قررنا إعادة كتابة بنية شبكتين عصبيتين لذلك كان علينا تفكيك "المجموعة" وفهم كيفية عمل كل شبكة بشكل منفصل وفهم سبب حاجتنا لكل معلمة لكل شبكة. ثم أدركنا أنه بدلاً من تقليل عدد المعلمات ، يمكننا تغيير نهج المشكلة ، وقام فريقنا بتغيير النموذج: الآن هذه هي شبكة عصبية تلافيفية واحدة ، مع هذا النهج ، قللنا معدل الخطأ بنسبة 30٪ وزادت سرعة التشغيل عبر الشبكة.الآن هذه هي شبكة عصبية تلافيفية واحدة ، مع هذا النهج قمنا بتقليل معدل الخطأ بنسبة 30٪ وزادت سرعة التشغيل عبر الشبكة.الآن هذه هي شبكة عصبية تلافيفية واحدة ، مع هذا النهج قمنا بتقليل معدل الخطأ بنسبة 30٪ وزادت سرعة التشغيل عبر الشبكة.

تم حل مشكلة الكشف عن الأحرف ، يبقى حل مشكلة التعرف على الأحرف ، لم يكن التعرف على الأحرف في حد ذاته مهمة جديدة لفريقنا ، قمنا بتدريب شبكة عصبية تلافيفية كانت مشابهة في الهندسة المعمارية لشبكة LeNet العصبية وتلقى معامل خطأ بنسبة 99 ٪ على مجموعة بيانات الاختبار (أي شبكة عصبية تقريبا لا خطأ). ولكن من الناحية العملية ، تبين أن هذا حل غير مقبول ، حيث يجب أن تذهب صورة ذات دقة ثابتة إلى مدخلات هذه الشبكة ، ولكن من الناحية العملية ، يمكن أن تأتي صور مختلفة ذات درجات دقة مختلفة ، ثم فكر فريقنا في ذلك وقرر تدريب نفس الشبكة العصبية ، ولكن فقط في الصور التي تحتوي على ما يكفي قرار كبير ، كبير جدًا بحيث يمكن افتراضه بدقة أنه لن يكون هناك إذن أكبر لدخول الشبكة العصبية ،ولكن بعد ذلك تخلينا عن هذه الفكرة لأننا نحاول تغيير دقة الصورة المقدمة لمدخلات العمارة التي لا تنطوي على تغيير في دقة الصورة ، لذا نحتاج الآن إلى التفكير في بنية التعرف على الحروف ، وأدركنا أن أفضل حل هو أن نأخذ كأساس العمارة - سليل شبكة LeNet العصبية - ResNet من Microsoft ، تشير هذه العمارة إلى أنها ستتلقى صورًا بدقة مختلفة.أنها ستتلقى الصور بدقة مختلفة.أنها ستتلقى الصور بدقة مختلفة.

ونتيجة لذلك ، بعد تدريبنا على الشبكة العصبية ، أصبح معدل الخطأ بالنسبة لنا 95٪ - نعم ، إنه أقل بقليل من هندسة LeNet ولكنه يعمل ، ثم تذكرنا أننا لسنا بحاجة إلى التعرف على جميع الأحرف ، ولكن فقط الأرقام وقررنا إضافتها قبل تحديد الرمز هو نموذج آخر سيحدد ما إذا كان الرمز الذي سيتم تحديده هو رقم أو حرف ، لأن هذا النموذج يحل مشكلة التصنيف ويصنف فئتين فقط ، كانت الشبكة العصبية لا معنى لها ، وبالتالي أخذنا الانحدار اللوجستي كأساس للهندسة المعمارية ، بعد إضافة هذا النموذج إلى "تجميع" وإعادة تدريب الشبكة العصبية (بالأرقام فقط) ، كان معدل الخطأ لدينا + - 97٪ وهو ليس سيئًا جدًا ، في هذه "الملاحظة" قررنا إنهاء العمل على التعرف على الأحرف ، ونتيجة لذلك ، حصلنا على مثل هذه "المجموعة":

الصورة الأصلية -> الشبكة العصبية التلافيفية التي تحدد مكان الكلمات -> الشبكة العصبية التلافيفية التي تحدد مكان الحروف -> الانحدار اللوجستي ، الذي يحدد الحرف في الصورة أو الرقم -> ResNet ، الذي يحدد الرقم النهائي

ولكن بعد ذلك كانت لدينا مشكلة أخرى: مشكلة تتبع الموقع الجغرافي. في البداية اعتقدنا أن هذه كانت واحدة من أسهل المهام وتبين أنها خاطئة. بادئ ذي بدء ، نحن ، مثل المبرمجين الحقيقيين ، اتخذنا المسار الأقل مقاومة وتتبعنا ببساطة تحديد الموقع الجغرافي لنظام تحديد المواقع العالمي (GPS) في الكائن - لم يعمل ، كان الخطأ كبيرًا جدًا لدرجة أنه لا يناسبنا على الإطلاق ، قررنا التفكير في خيارات أخرى لتحديد الموقع الجغرافي وقررنا توصيل الخدمة من الشركة Yandex - Yandex Latitude ، ولكن تبين أنها لا تعمل ، أي إنها ليست خدمة عاملة لا يمكنك من خلالها توصيل واجهة برمجة التطبيقات ، فكرنا التالي كان توصيل إطار عمل Mapbox لمحرك Unity (كان علينا أن نقرر تطوير مشروعنا) ، بعد أن ربطنا هذا الإطار بنجاح ، وفحصنا قدراته وكتبنا جهاز تعقب GPS بسيطًا - النتيجة كان أفضل بالفعللكن الخطأ كان لا يزال كبيرًا ، وبسبب هذا واصلنا البحث عن حلول ، وبعد قراءة دقيقة للوثائق ، وجدنا أن القيمة التي تم الحصول عليها بها خطأ بنسبة 15 ٪ ، وهذا لا يناسبنا ، خاصة وأن هذا النهج كان له عيب كبير جدًا - فقد استخدم نظام تحديد المواقع العالمي (GPS) ، ونقوم بعمل ملاح حول المدرسة ، وهذا يعني في الداخل ، ثم ستكون إشارة GPS ضعيفة جدًا أو لا تكون على الإطلاق + GPS غير مدعوم على جميع الأجهزة ، وهذا هو السبب في أننا غيرنا النهج وانتقلنا من الاعتراف العالمي إلى المحلي بناءً على نظام تحديد المواقع المرئي هذه الطريقة لها أيضًا عيوبها ، لكنها لم تؤثر على عملنا بأي شكل من الأشكال ، لذلك كان نظام تتبع الموقع الجغرافي جاهزًا.أن القيمة التي تم الحصول عليها تحتوي على خطأ بنسبة 15٪ ، وهذا لا يناسبنا ، خاصة وأن هذا النهج كان له عيب كبير جدًا - فقد استخدم نظام تحديد المواقع العالمي (GPS) ، ونقوم بعمل ملاح حول المدرسة ، ثم في الداخل ، ثم ستكون إشارة GPS ضعيفة جدًا أو لن بشكل عام ، + GPS غير مدعوم على جميع الأجهزة ، ولهذا السبب قمنا بتغيير النهج وانتقلنا من الاعتراف العالمي إلى المحلي بناءً على نظام تحديد المواقع المرئي. هذه الطريقة لها أيضًا عيوبها ، لكنها لم تؤثر على عملنا بأي شكل من الأشكال ، لذلك كان نظام تتبع الموقع الجغرافي جاهزًا.أن هناك خطأ بنسبة 15 ٪ للقيمة التي تم الحصول عليها ، وهذا لا يناسبنا ، خاصة وأن هذا النهج كان له عيب كبير جدًا - فقد استخدم نظام تحديد المواقع العالمي (GPS) ، ونحن نقوم بالمتصفح حول المدرسة ، ثم في الداخل ، ثم ستكون إشارة GPS ضعيفة جدًا أو لن بشكل عام ، + GPS غير مدعوم على جميع الأجهزة ، ولهذا السبب قمنا بتغيير النهج وانتقلنا من الاعتراف العالمي إلى المحلي بناءً على نظام تحديد المواقع المرئي. هذه الطريقة لها أيضًا عيوبها ، لكنها لم تؤثر على عملنا بأي شكل من الأشكال ، لذلك كان نظام تتبع الموقع الجغرافي جاهزًا.ثم ستكون إشارة GPS ضعيفة جدًا أو لا تكون على الإطلاق + GPS غير مدعوم على جميع الأجهزة ، ولهذا السبب قمنا بتغيير النهج وتحولنا من الاعتراف العالمي إلى المحلي بناءً على نظام تحديد المواقع المرئي ، وهذه الطريقة لها أيضًا عيوبها ، لكنها لم تؤثر على عملنا ، لذلك كان نظام تتبع الموقع الجغرافي جاهزًا.ثم ستكون إشارة GPS ضعيفة جدًا أو لا تكون على الإطلاق + GPS غير مدعوم على جميع الأجهزة ، ولهذا السبب قمنا بتغيير النهج وتحولنا من الاعتراف العالمي إلى المحلي بناءً على نظام تحديد المواقع المرئي ، وهذه الطريقة لها أيضًا عيوبها ، لكنها لم تؤثر على عملنا ، لذلك كان نظام تتبع الموقع الجغرافي جاهزًا.

أهمية عملية


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

وظيفي


ما يمكن لتطبيقنا القيام به:

  • التعرف على رقم الخزانة بواسطة اللوحة ،
  • خريطة مدرسية مفصلة ،
  • قيادة شخص إلى مكتبه ،
  • البحث عن مكتب برقمه ،
  • البحث عن الفصل الدراسي في القائمة ونوعه (يتم توزيع جميع الفصول الدراسية في مجموعات معينة اعتمادًا على المادة التي يتم تدريسها في هذه الغرفة).

تنفيذ التطبيق


تم كتابة التطبيق على أحد المحركات الأكثر شعبية تسمى "الوحدة" ، باستخدام لغة البرمجة C # ، وكذلك استخدام Python ومكتبة TensorFlow ، بالإضافة إلى كل ما سبق ، تم استخدام مدير حزمة Anaconda.

كيفية استخدام هذا التطبيق؟


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

صورة

بعد ذلك ، يمكنني الانتقال إلى قائمة التعليمات لمعرفة كيفية استخدام التطبيق:

صورة

تصف هذه التعليمات بالتفصيل كيفية العثور على الفصل ، أي أولاً ، في القائمة الرئيسية ، نضغط على "Find Class" ، ثم يتم عرض القوائم التالية:

صورة

يسمح لنا السهم الموجود في الزاوية العلوية اليمنى بالعودة إلى القائمة الرئيسية ، إذا تعرف النظام على رقم الخزانة ، يظهر إطار حول اللوحة ، ثم نافذة تأكيد:

صورة

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

بعد ذلك ، يجب على "الوالدين" اختيار وجهة ، ولديه هنا خياران ، إما إدخال رقم المكتب ، أو تحديد نوعه والعثور عليه في القائمة لاحقًا:

صورة

صورة

بعد ذلك ، يجب على "الوالد" اتباع العلامات الموجودة على الكاميرا.

عندما تصل إلى وجهتك ، سيخطرك المستكشف بذلك.

هناك خيار آخر ، أكثر دراية ، ينقر "الوالد" على القائمة الرئيسية - "خطة المدرسة" وتفتح خطة تفصيلية ، حيث يمكنك التنقل بشكل مستقل حول كيفية الوصول إلى المكان المطلوب.

مخطط الطابق 1 مخطط الطابق

صورة


2

صورة

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

يمكنك مشاهدة الفيديو على الرابط أدناه:


استنتاج


من خلال العمل الجماعي الجيد التنسيق والوقت والمهارات الكافية لتطبيق المهارات الشخصية ، يمكن تنفيذ أي مشروع.

عملت على التطبيق:

Ilya Vasilenko - مبرمج (الواجهة الخلفية)

Parfenyev Demid - المصمم

Lunev Daniil - مطور الوحدة (الواجهة الأمامية)

Mikhail Purtov - Data Miner ، منشئ البيانات

بفضل مشروعنا ، تعلم كل عضو من فريقنا الكثير من الأشياء الجديدة. من التصميم إلى البرمجة ورؤية الكمبيوتر.

يعتقد فريق PYC لدينا أن هبر سيحب مشروعنا.

مع أطيب التحيات ، فريق PYC

أدوات


Unity + C #

Python + Anaconda manager manager + مكتبة لإنشاء شبكات عصبية TensorFlow + مكتبة لإنشاء نماذج تعلم الآلة scikit-learn

Immersal - مكتبة تنفذ VPS

قائمة المراجع



موقع Tensorflow موقع Immersal
موقع C #
موقع Python

* لا يتظاهر هذا المنشور بالإعلان عن تطبيقنا ، لأنه غير متاح حتى في المصادر المفتوحة ويعمل فقط داخل المدرسة

All Articles