جدول المحتويات:

نقل التعلم باستخدام NVIDIA JetBot - المرح مع المخاريط المرورية: 6 خطوات
نقل التعلم باستخدام NVIDIA JetBot - المرح مع المخاريط المرورية: 6 خطوات

فيديو: نقل التعلم باستخدام NVIDIA JetBot - المرح مع المخاريط المرورية: 6 خطوات

فيديو: نقل التعلم باستخدام NVIDIA JetBot - المرح مع المخاريط المرورية: 6 خطوات
فيديو: Waveshare Jetbot - Collision Avoidance using Transfer Learning! 2024, شهر نوفمبر
Anonim

بواسطة dvillevald My Github تابع حول: أنا أحب تطبيقات الذكاء الاصطناعي والتعلم الآلي ، لا سيما في مجال الروبوتات المزيد عن dvillevald »

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

اللوازم

  • نفيديا جت بوت

    تسرد صفحة قائمة المواد الخاصة بـ NVIDIA JetBot Wiki كل ما تحتاجه لإنشاء JetBot ، إلى جانب شراء روابط من البائعين المشهورين

  • كمبيوتر مع NVIDIA GPU

    مطلوب لتدريب النموذج

  • BlueDot Trading 4”RC Racing Agility Cones، Orange - مجموعة من 20

الخطوة الأولى: التحفيز

Image
Image

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

الخطوة 2: نظرة عامة حول NVIDIA JetBot & Project

نظرة عامة على المشروع و NVIDIA JetBot
نظرة عامة على المشروع و NVIDIA JetBot

JetBot هو روبوت مفتوح المصدر يعتمد على مجموعة NVIDIA Jetson Nano. يمكنك العثور على إرشادات مفصلة حول كيفية بنائه وإعداده هنا.

هذا المشروع هو مثال معدّل لتجنب الاصطدام من NVIDIA JetBot Wiki. يتكون من ثلاث خطوات رئيسية ، كل منها موصوفة في دفتر Jupyter منفصل:

  • جمع البيانات على JetBot - دفتر البيانات data_collection_cones.ipynb
  • نموذج تدريب على جهاز GPU آخر - قطار دفتر الملاحظات_model_cones.ipynb
  • تشغيل العرض التوضيحي المباشر على JetBot - دفتر الملاحظات live_demo_cones.ipynb

يمكنك العثور على دفاتر Jupyter الثلاثة هنا

الخطوة 3: بناء JetBot وتحميل Jupyter Notebooks

  1. بناء وإعداد JetBot كما هو موضح هنا
  2. اتصل بالروبوت الخاص بك بالانتقال إلى https://: 8888 قم بتسجيل الدخول باستخدام كلمة المرور الافتراضية jetbot
  3. قم بإيقاف تشغيل جميع أجهزة الكمبيوتر المحمولة الأخرى قيد التشغيل عن طريق تحديد Kernel -> Shutdown All Kernels …
  4. انتقل إلى ~ / Notebooks /
  5. إنشاء مجلد فرعي جديد ~ / Notebooks / traffic_cones_driving /
  6. تحميل data_collection_cones.ipynb و live_demo_cones.ipynb إلى ~ / Notebooks / traffic_cones_driving /

هام: يجب تشغيل دفاتر Jupyter data_collection_cones.ipynb و live_demo_cones.ipynb المشار إليها في هذه الإرشادات على JetBot أثناء train_model_cones.ipynb - على جهاز كمبيوتر مزود بوحدة معالجة الرسومات.

لذلك يتعين علينا تحميل data_collection_cones.ipynb و live_demo_cones.ipynb إلى JetBot ووضعهما في ~ / Notebooks / traffic_cones_driving /

الخطوة 4: جمع بيانات التدريب على JetBot

سنجمع مجموعة بيانات تصنيف الصور التي سيتم استخدامها لمساعدة JetBot في العمل في متاهة من أقماع المرور. سيتعلم JetBot كيفية تقدير الاحتمالات لأربعة سيناريوهات (فئات):

  • مجاني - عندما يكون من الآمن المضي قدمًا
  • محظور - عند وجود عائق أمام الروبوت
  • على اليسار - عندما يجب أن يدور الروبوت إلى اليسار
  • الحق - عندما يجب أن يدور الروبوت إلى اليمين

لجمع بيانات التدريب على JetBot ، سنستخدم دفتر Jupyter data_collection_cones.ipynb الذي يحتوي على إرشادات تفصيلية حول كيفية القيام بذلك. لتشغيل دفتر الملاحظات هذا على JetBot ، اتبع الخطوات التالية:

  1. اتصل بالروبوت الخاص بك بالانتقال إلى https://: jetbot-ip-address:: 8888
  2. قم بتسجيل الدخول باستخدام كلمة المرور الافتراضية jetbot
  3. قم بإيقاف تشغيل جميع أجهزة الكمبيوتر المحمولة الأخرى قيد التشغيل عن طريق تحديد Kernel -> Shutdown All Kernels …
  4. انتقل إلى ~ / Notebooks / traffic_cones_driving /
  5. افتح واتبع دفتر data_collection_cones.ipynb

الخطوة 5: تدريب الشبكة العصبية على جهاز GPU

بعد ذلك ، سنستخدم البيانات التي تم جمعها لإعادة تدريب نموذج التعلم العميق AlexNet على جهاز GPU (المضيف) عن طريق تشغيل train_model_cones.ipynb.

لاحظ أن train_model_cones.ipynb هو دفتر Jupyter الوحيد في هذا البرنامج التعليمي والذي يتم تشغيله ليس على JetBot

  1. اتصل بجهاز GPU مع تثبيت PyTorch وتشغيل خادم Jupyter Lab
  2. قم بتحميل دفتر train_model_cones.ipynb وعلى هذا الجهاز
  3. قم بتحميل ملف dataset_cones.zip الذي قمت بإنشائه في دفتر data_collection_cones.ipynb واستخرج مجموعة البيانات هذه. (بعد هذه الخطوة ، من المفترض أن يظهر مجلد باسم dataset_cones في مستعرض الملفات.)
  4. افتح واتبع دفتر train_model_cones.ipynb. في نهاية هذه الخطوة ، ستقوم بإنشاء نموذج - الملف best_model_cones.pth والذي يجب تحميله بعد ذلك إلى JetBot لتشغيل العرض التوضيحي المباشر.

الخطوة 6: تشغيل Live Demo على JetBot

قم بتشغيل Live Demo على JetBot
قم بتشغيل Live Demo على JetBot

هذه الخطوة الأخيرة هي تحميل النموذج best_model_cones.pth إلى JetBot وتشغيله.

  1. قم بتشغيل الروبوت الخاص بك من حزمة بطارية USB
  2. اتصل مرة أخرى بالروبوت الخاص بك بالانتقال إلى https://: jetbot-ip-address:: 8888
  3. قم بتسجيل الدخول باستخدام كلمة المرور الافتراضية jetbot
  4. قم بإيقاف تشغيل جميع أجهزة الكمبيوتر المحمولة الأخرى قيد التشغيل عن طريق تحديد Kernel -> Shutdown All Kernels …
  5. انتقل إلى ~ / Notebooks / traffic_cones_driving
  6. افتح واتبع دفتر الملاحظات live_demo_cones.ipynb

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

يشرح دفتر الملاحظات أيضًا كيفية تخزين تاريخ تحركات الروبوت مع الاحتمالات الحرة / اليسرى / اليمنى / المحظورة التي تنبأ بها النموذج وكيفية إنشاء مقطعي فيديو FPV (عرض الشخص الأول) (بمعدل 1 إطارًا في الثانية و 15 إطارًا في الثانية) باستخدام القياس عن بُعد المتراكب و بيانات إجراءات JetBot. هذه مفيدة لتصحيح الأخطاء وضبط وحدة التحكم PID وتحسين النموذج.

استمتع واسمحوا لي أن أعرف إذا كان لديك أسئلة!:-)

الكود متاح على جيثب

موصى به: