Съдържание:
- Консумативи
- Стъпка 1: Мотивация
- Стъпка 2: Преглед на NVIDIA JetBot & Project
- Стъпка 3: Създайте JetBot и качете Jupyter Notebooks
- Стъпка 4: Събиране на данни за обучение в JetBot
- Стъпка 5: Обучете невронната мрежа на GPU машина
- Стъпка 6: Стартирайте демонстрацията на живо на JetBot
Видео: Трансферно обучение с NVIDIA JetBot - забавление с конуси на трафика: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
От dvillevaldMy GithubFollow About: Харесвам AI и приложенията за машинно обучение, особено в роботиката Повече за dvillevald »
Научете вашия робот да намира път в лабиринт от конуси с помощта на камерата и най-съвременния модел за дълбоко обучение.
Консумативи
-
NVIDIA JetBot
Страницата за материали на NVIDIA JetBot Wiki изброява всичко необходимо за изграждането на JetBot, както и връзки за закупуване от популярни доставчици
-
Компютър с NVIDIA GPU
Необходимо за обучение на модела
- BlueDot Trading 4”RC Racing Agility Cones, Orange - Комплект от 20 броя
Стъпка 1: Мотивация
Всеки път, когато карам в зоната на свиване, си мисля колко предизвикателно би било самоуправляващата се кола да се движи през конусите за движение. Оказва се, че не е толкова трудно с новия JetBot на NVIDIA-само с няколкостотин изображения можете да обучите най-съвременния модел за дълбоко обучение, за да научите робота си как да намери път в лабиринт от конуси за играчки използване само на вградената камера и без други сензори.
Стъпка 2: Преглед на NVIDIA JetBot & Project
JetBot е робот с отворен код, базиран на комплекта NVIDIA Jetson Nano. Тук можете да намерите подробни инструкции как да го изградите и настроите.
Този проект е модифициран пример за избягване на сблъсък от NVIDIA JetBot Wiki. Състои се от три основни стъпки, всяка от които е описана в отделна тетрадка на Jupyter:
- Събирайте данни в JetBot - бележник data_collection_cones.ipynb
- Модел на влак на друга GPU машина - преносим компютър train_model_cones.ipynb
- Пуснете демонстрация на живо на JetBot - бележник live_demo_cones.ipynb
Можете да намерите тези три тетрадки Jupyter тук
Стъпка 3: Създайте JetBot и качете Jupyter Notebooks
- Изградете и настройте JetBot, както е обяснено тук
- Свържете се с вашия робот, като отидете на https://: 8888 Влезте с паролата по подразбиране jetbot
- Изключете всички други работещи преносими компютри, като изберете Ядро -> Изключване на всички ядра …
- Придвижете се до ~/Бележници/
- Създайте нова подпапка ~/Бележници/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 - на компютър с графичен процесор.
Затова трябва да качим data_collection_cones.ipynb и live_demo_cones.ipynb в JetBot и да ги поставим в ~/Notebooks/traffic_cones_driving/
Стъпка 4: Събиране на данни за обучение в JetBot
Ще съберем набор от данни за класификация на изображения, които ще бъдат използвани, за да помогнем на JetBot да работи в лабиринт от конуси на трафика. JetBot ще научи как да оценява вероятностите на четири сценария (класове):
- Безплатно - когато е безопасно да продължите напред
- Блокиран - когато има препятствие пред робота
- Вляво - когато роботът трябва да се завърти наляво
- Вдясно - когато роботът трябва да се завърти надясно
За да събираме данните за обучението в JetBot, ще използваме бележника Jupyter 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
- Свържете се с GPU машина с инсталиран PyTorch и работещ сървър Jupyter Lab
- Качете бележника train_model_cones.ipynb и на тази машина
- Качете набора от данни_cones.zip, който сте създали в бележника data_collection_cones.ipynb и извлечете този набор от данни. (След тази стъпка трябва да видите папка с име_набора данни във файловия браузър.)
- Отворете и следвайте бележника 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
Препоръчано:
RGB часовник за обучение на децата за времето: 4 стъпки
RGB часовник за обучение на децата за времето: Снощи дойдох с идея как да помогна на моите 5 -годишни да усетят времето. Ясно е, че децата се ориентират към ежедневните събития, за да добият представа какво предстои. Но предишните събития обикновено са малко объркани и почти никога не са в ред
Автоматично устройство за контрол на трафика: 20 стъпки
Автоматизирано устройство за контрол на движението: Предупреждение: Преди да започнете строителния процес, уверете се, че носите подходяща ЛПС и спазвате правилата за безопасност на OSHA. Носете предпазно оборудване като предпазни очила, тапи за уши и ръкавици за удари. Необходими части: 1 " x 1 " квадратна тръба - 5
Разрешител на трафика: 7 стъпки
Traffic Solver: Traffic Solver автоматизира контрола на движението в рамките на една лента в строителна зона. За да работи тази система без инциденти между тях, трябва да има две единици, по една от всяка страна. И двете устройства ще имат двигател и въртящо се задържащо устройство, което
Картонен робот за контрол на трафика: 8 стъпки
Картонен робот за контрол на трафика: Участвам в конкурса за картон. Ако ви харесва моята инструкция, моля, гласувайте за нея! След като изучите тази инструкция, ще научите как да проектирате и използвате Cruizmo Cis. Cruizmo Cis е интелигентен робот, който контролира трафика. Той контролира и двата автомобила
Проверка на отчета за трафика (NL) с килим: 6 стъпки
Проверка на отчета за трафика (NL) с килим за врата: В тази инструкция ще опиша как да се изгради изтривалка, която да проверява отчетите за трафика на холандските магистрали. След като излезете навън върху изтривалката си и има задръстване по маршрута ви, постелката ще се превърне в червен цвят. Когато няма трафик