فهرست مطالب:

انتقال یادگیری با NVIDIA JetBot - سرگرم کننده با مخروط های ترافیکی: 6 مرحله
انتقال یادگیری با NVIDIA JetBot - سرگرم کننده با مخروط های ترافیکی: 6 مرحله

تصویری: انتقال یادگیری با NVIDIA JetBot - سرگرم کننده با مخروط های ترافیکی: 6 مرحله

تصویری: انتقال یادگیری با NVIDIA JetBot - سرگرم کننده با مخروط های ترافیکی: 6 مرحله
تصویری: 🔧افزایش سرعت و بهینه سازی کارت گرافیک انویدیا [افزایش اف پی اس و گرافیک بازی]|Best Nvidia Settings✅ 2024, جولای
Anonim

توسط dvillevaldGithub من دنبال کنید: من از برنامه های هوش مصنوعی و یادگیری ماشین ، به ویژه در زمینه رباتیک ، بیشتر خوشم می آید درباره dvillevald »

به ربات خود بیاموزید که با استفاده از دوربین و مدل یادگیری عمیق ، راهی را در پیچ و خم مخروط های ترافیکی پیدا کند.

تدارکات

  • NVIDIA JetBot

    صفحه NVIDIA JetBot Wiki's Bill of Materials همه چیزهایی را که برای ساخت JetBot نیاز دارید ، همراه با خرید پیوندها از فروشندگان محبوب ، فهرست می کند

  • کامپیوتر با GPU NVIDIA

    برای آموزش مدل مورد نیاز است

  • BlueDot Trading 4”RC Racing Agility Cones ، نارنجی - مجموعه 20 عددی

مرحله 1: انگیزه

Image
Image

هر بار که در ناحیه انقباض رانندگی می کنم به این فکر می کنم که حرکت یک خودروی خودران در مخروط های ترافیک چقدر دشوار خواهد بود. به نظر می رسد با JetBot جدید NVIDIA کار چندان دشواری نیست-تنها با چند صد تصویر ، می توانید یک مدل یادگیری عمیق پیشرفته را آموزش دهید تا به ربات خود بیاموزد که چگونه راهی را در پیچ و خم مخروط های ترافیک اسباب بازی پیدا کند. فقط با استفاده از دوربین داخلی و بدون سنسورهای دیگر.

مرحله 2: NVIDIA JetBot و مرور پروژه

NVIDIA JetBot و مرور پروژه
NVIDIA JetBot و مرور پروژه

JetBot یک ربات منبع باز است که بر اساس کیت NVIDIA Jetson Nano طراحی شده است. دستورالعمل های دقیق نحوه ساخت و راه اندازی آن را می توانید در اینجا بیابید.

این پروژه یک نمونه اجتناب از برخورد از NVIDIA JetBot Wiki است. این شامل سه مرحله اصلی است که هر یک در یک دفترچه جداگانه Jupyter شرح داده شده است:

  • جمع آوری داده ها در JetBot - notebook data_collection_cones.ipynb
  • مدل قطار در دستگاه GPU دیگر - notebook train_model_cones.ipynb
  • اجرای نمایشی زنده در JetBot - notebook live_demo_cones.ipynb

این سه دفترچه Jupyter را می توانید در اینجا پیدا کنید

مرحله 3: ساخت JetBot و بارگذاری نوت بوک های Jupyter

  1. همانطور که در اینجا توضیح داده شده ، JetBot را بسازید و راه اندازی کنید
  2. با رفتن به https://: 8888 به ربات خود متصل شوید با رمز عبور پیش فرض jetbot وارد شوید
  3. خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
  4. به ~/نوت بوک ها بروید
  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 - در رایانه ای با GPU.

بنابراین ما باید data_collection_cones.ipynb و live_demo_cones.ipynb را در JetBot بارگذاری کنیم و آنها را در ~/Notebooks/traffic_cones_driving/قرار دهیم.

مرحله 4: جمع آوری داده های آموزشی در JetBot

ما یک مجموعه داده طبقه بندی تصویر را جمع آوری می کنیم که برای کمک به JetBot در پیچ و خم مخروط های ترافیک استفاده می شود. JetBot یاد می گیرد که چگونه چهار سناریو (کلاس) را برآورد کند:

  • رایگان - وقتی می توانید به جلو حرکت کنید
  • مسدود شده - هنگامی که مانعی در مقابل روبات وجود دارد
  • چپ - وقتی ربات باید به چپ بچرخد
  • راست - زمانی که ربات باید به سمت راست بچرخد

برای جمع آوری داده های آموزشی در JetBot ، از Jupyter notebook data_collection_cones.ipynb استفاده می کنیم که حاوی دستورالعمل های دقیق نحوه انجام آن است. برای اجرای این نوت بوک در JetBot ، مراحل زیر را دنبال کنید:

  1. با حرکت به https://: jetbot-ip-address:: 8888 به ربات خود متصل شوید
  2. با رمز عبور پیش فرض jetbot وارد شوید
  3. خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
  4. به ~/نوت بوک ها/traffic_cones_driving بروید
  5. نوت بوک data_collection_cones.ipynb را باز کرده و دنبال کنید

مرحله 5: آموزش شبکه عصبی بر روی دستگاه GPU

سپس ، از داده های جمع آوری شده برای آموزش مجدد مدل یادگیری عمیق AlexNet در دستگاه GPU (میزبان) با اجرای train_model_cones.ipynb استفاده خواهیم کرد.

توجه داشته باشید که train_model_cones.ipynb تنها نوت بوک Jupyter در این آموزش است که روی JetBot اجرا نمی شود

  1. با نصب PyTorch و سرور Jupyter Lab به دستگاه GPU متصل شوید
  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: اجرای نمایشی زنده در JetBot

اجرای نمایشی زنده در JetBot
اجرای نمایشی زنده در JetBot

این مرحله نهایی این است که مدل best_model_cones.pth را در JetBot بارگذاری کرده و اجرا کنید.

  1. روبات خود را از پک USB باتری تغذیه کنید
  2. با رفتن به https://: jetbot-ip-address:: 8888 به ربات خود متصل شوید
  3. با رمز عبور پیش فرض jetbot وارد شوید
  4. خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
  5. به ~/Notebooks/traffic_cones_driving بروید
  6. نوت بوک live_demo_cones.ipynb را باز کرده و دنبال کنید

با احتیاط شروع کنید و فضای کافی برای جابجایی به JetBot بدهید. پیکربندی مخروطی مختلف را امتحان کنید و ببینید که عملکرد ربات در محیط های مختلف ، روشنایی و غیره چقدر خوب است. در حالی که نوت بوک live_demo_cones.ipynb تمام مراحل را با جزئیات توضیح می دهد ، نمودار زیر منطق حرکت ربات را با توجه به احتمالات پیش بینی شده توسط مدل ها نشان می دهد.

این دفترچه همچنین نحوه ذخیره تاریخچه حرکت روبات ها با احتمالات آزاد/چپ/راست/مسدود شده پیش بینی شده توسط مدل و نحوه ساخت دو فیلم FPV (نمای اول شخص) (با سرعت 1 فریم در ثانیه و 15 فریم در ثانیه) با تله متری روی هم قرار داده شده است. داده های اقدامات JetBot. اینها برای اشکال زدایی ، تنظیم کنترل PID و بهبود مدل مفید هستند.

لذت ببرید و اگر سوالی دارید به من اطلاع دهید!:-)

کد در Github موجود است

توصیه شده: