فهرست مطالب:
- تدارکات
- مرحله 1: انگیزه
- مرحله 2: NVIDIA JetBot و مرور پروژه
- مرحله 3: ساخت JetBot و بارگذاری نوت بوک های Jupyter
- مرحله 4: جمع آوری داده های آموزشی در JetBot
- مرحله 5: آموزش شبکه عصبی بر روی دستگاه GPU
- مرحله 6: اجرای نمایشی زنده در JetBot
تصویری: انتقال یادگیری با NVIDIA JetBot - سرگرم کننده با مخروط های ترافیکی: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
توسط dvillevaldGithub من دنبال کنید: من از برنامه های هوش مصنوعی و یادگیری ماشین ، به ویژه در زمینه رباتیک ، بیشتر خوشم می آید درباره dvillevald »
به ربات خود بیاموزید که با استفاده از دوربین و مدل یادگیری عمیق ، راهی را در پیچ و خم مخروط های ترافیکی پیدا کند.
تدارکات
-
NVIDIA JetBot
صفحه NVIDIA JetBot Wiki's Bill of Materials همه چیزهایی را که برای ساخت JetBot نیاز دارید ، همراه با خرید پیوندها از فروشندگان محبوب ، فهرست می کند
- کامپیوتر با GPU NVIDIA
برای آموزش مدل مورد نیاز است
- BlueDot Trading 4”RC Racing Agility Cones ، نارنجی - مجموعه 20 عددی
مرحله 1: انگیزه
هر بار که در ناحیه انقباض رانندگی می کنم به این فکر می کنم که حرکت یک خودروی خودران در مخروط های ترافیک چقدر دشوار خواهد بود. به نظر می رسد با JetBot جدید NVIDIA کار چندان دشواری نیست-تنها با چند صد تصویر ، می توانید یک مدل یادگیری عمیق پیشرفته را آموزش دهید تا به ربات خود بیاموزد که چگونه راهی را در پیچ و خم مخروط های ترافیک اسباب بازی پیدا کند. فقط با استفاده از دوربین داخلی و بدون سنسورهای دیگر.
مرحله 2: 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
- همانطور که در اینجا توضیح داده شده ، JetBot را بسازید و راه اندازی کنید
- با رفتن به https://: 8888 به ربات خود متصل شوید با رمز عبور پیش فرض jetbot وارد شوید
- خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
- به ~/نوت بوک ها بروید
- ایجاد زیر پوشه جدید ~/Notebooks/traffic_cones_driving/
- آپلود 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 ، مراحل زیر را دنبال کنید:
- با حرکت به https://: jetbot-ip-address:: 8888 به ربات خود متصل شوید
- با رمز عبور پیش فرض jetbot وارد شوید
- خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
- به ~/نوت بوک ها/traffic_cones_driving بروید
- نوت بوک data_collection_cones.ipynb را باز کرده و دنبال کنید
مرحله 5: آموزش شبکه عصبی بر روی دستگاه GPU
سپس ، از داده های جمع آوری شده برای آموزش مجدد مدل یادگیری عمیق AlexNet در دستگاه GPU (میزبان) با اجرای train_model_cones.ipynb استفاده خواهیم کرد.
توجه داشته باشید که train_model_cones.ipynb تنها نوت بوک Jupyter در این آموزش است که روی JetBot اجرا نمی شود
- با نصب PyTorch و سرور Jupyter Lab به دستگاه GPU متصل شوید
- نوت بوک train_model_cones.ipynb و در این دستگاه بارگذاری کنید
- فایل dataset_cones.zip را که در نوت بوک data_collection_cones.ipynb ایجاد کرده اید بارگذاری کرده و این مجموعه داده را استخراج کنید. (پس از این مرحله باید ببینید پوشه ای با نام dataset_cones در مرورگر فایل ظاهر می شود.)
- نوت بوک train_model_cones.ipynb را باز کرده و دنبال کنید. در پایان این مرحله ، شما یک مدل ایجاد خواهید کرد - فایل best_model_cones.pth که برای اجرای نمایشی زنده باید در JetBot بارگذاری شود.
مرحله 6: اجرای نمایشی زنده در JetBot
این مرحله نهایی این است که مدل best_model_cones.pth را در JetBot بارگذاری کرده و اجرا کنید.
- روبات خود را از پک USB باتری تغذیه کنید
- با رفتن به https://: jetbot-ip-address:: 8888 به ربات خود متصل شوید
- با رمز عبور پیش فرض jetbot وارد شوید
- خاموش کردن همه نوت بوک های در حال اجرا با انتخاب هسته -> خاموش کردن همه هسته ها…
- به ~/Notebooks/traffic_cones_driving بروید
- نوت بوک live_demo_cones.ipynb را باز کرده و دنبال کنید
با احتیاط شروع کنید و فضای کافی برای جابجایی به JetBot بدهید. پیکربندی مخروطی مختلف را امتحان کنید و ببینید که عملکرد ربات در محیط های مختلف ، روشنایی و غیره چقدر خوب است. در حالی که نوت بوک live_demo_cones.ipynb تمام مراحل را با جزئیات توضیح می دهد ، نمودار زیر منطق حرکت ربات را با توجه به احتمالات پیش بینی شده توسط مدل ها نشان می دهد.
این دفترچه همچنین نحوه ذخیره تاریخچه حرکت روبات ها با احتمالات آزاد/چپ/راست/مسدود شده پیش بینی شده توسط مدل و نحوه ساخت دو فیلم FPV (نمای اول شخص) (با سرعت 1 فریم در ثانیه و 15 فریم در ثانیه) با تله متری روی هم قرار داده شده است. داده های اقدامات JetBot. اینها برای اشکال زدایی ، تنظیم کنترل PID و بهبود مدل مفید هستند.
لذت ببرید و اگر سوالی دارید به من اطلاع دهید!:-)
کد در Github موجود است
توصیه شده:
متناوباً اصلاح کننده دیکوپتیک انتقال استریوسکوپی 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 مرحله
متناوباً اصلاح کننده دیکوپتیک انتقال استریوسکوپی 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: مدتی است که روی جانشین AODMoST اصلی کار می کنم. دستگاه جدید از میکروکنترلر سریعتر و بهتر 32 بیتی و سوئیچ سریعتر فیلم آنالوگ استفاده می کند. این به AODMoST 32 اجازه می دهد تا با وضوح بالاتر کار کند و عملکردهای جدید را پیاده سازی کند
متناوباً اصلاح کننده دیکوپتیک انتقال استریوسکوپی [ATmega328P+HEF4053B VGA Superimposer]: 7 مرحله
متناوباً اصلاح کننده دیکوپتیک انتقال استریوسکوپی [ATmega328P+HEF4053B VGA Superimposer]: پس از آزمایشاتم با شیشه های کریستال مایع که باعث انسداد چشم می شد (اینجا و آنجا) ، تصمیم گرفتم چیزی بسازم که کمی پیچیده تر باشد و همچنین کاربر را مجبور نکند. پوشیدن PCB روی پیشانی خود (افراد گاهی اوقات می توانند رفتار
روش انتقال PCB-روش انتقال سرد: 7 مرحله
روش انتقال PCB-ساخت و ساز سرد: سلام در این دستورالعمل به شما نشان می دهم که چگونه صفحه های مدار چاپی خود را در خانه ساخته ام. من از روش پرس گرم داغ خوشم نمی آید به همین دلیل من از روش انتقال سرد با پیچ و تاب کمی استفاده می کنم. جدا از این ، من همچنین به شما نشان خواهم داد که چگونه می خواهید
مبتدی: یادگیری IOT با تغذیه کننده ماهی سرد: 9 مرحله (همراه با تصاویر)
مبتدی: IOT را با یک تغذیه کننده ماهی خوب یاد بگیرید: این پروژه بیشتر در مورد راهنمای شروع با یک دستگاه IOT کم هزینه و کارهایی است که می توانید با آن انجام دهید. IOT چیست؟ از Google دریافت کرده اید: اینترنت اشیا مخفف Internet of Things است. اینترنت اشیا به شبکه رو به رشدی اشاره دارد که
شبیه دشمن خود باشید: نشانه هایی ایجاد کنید که گیج کننده ، مبهوت کننده و تقلید کننده باشد!: 6 مرحله (همراه با تصاویر)
شبیه دشمن خود باشید: نشانه هایی ایجاد کنید که باعث گیج شدن ، حیرت و تقلید می شود !: در این مقاله آموزشی طراحی استتار را خواهید آموخت. در پروژه های گذشته ، من تکنیک های مختلفی را برای تقلید از علائم دولتی یا شرکتی اختصاص داده و اصلاح کرده ام. استفاده از روش هایی که در مراحل زیر بیان شده است به شما امکان می دهد به طور موقت