Оглавление:

Перенос обучения с помощью NVIDIA JetBot - веселье с транспортными конусами: 6 шагов
Перенос обучения с помощью NVIDIA JetBot - веселье с транспортными конусами: 6 шагов

Видео: Перенос обучения с помощью NVIDIA JetBot - веселье с транспортными конусами: 6 шагов

Видео: Перенос обучения с помощью NVIDIA JetBot - веселье с транспортными конусами: 6 шагов
Видео: JETBOT на базе NVIDIA Jetson Nano 2024, Ноябрь
Anonim

Автор dvillevaldМой GithubFollow About: Мне нравятся приложения для искусственного интеллекта и машинного обучения, особенно в робототехнике. Подробнее о dvillevald »

Научите своего робота находить путь в лабиринте дорожных конусов с помощью камеры и современной модели глубокого обучения.

Запасы

  • NVIDIA JetBot

    На странице спецификации материалов NVIDIA JetBot Wiki перечислено все, что вам нужно для создания JetBot, а также ссылки для покупки у популярных поставщиков

  • Компьютер с NVIDIA GPU

    Необходимо обучить модель

  • BlueDot Trading 4”радиоуправляемые гоночные конусы для ловкости, оранжевые - набор из 20 шт.

Шаг 1: мотивация

Image
Image

Каждый раз, когда я еду в зоне сжатия, я думаю о том, как сложно будет беспилотному автомобилю преодолевать конусы движения. Оказывается, с новым JetBot от NVIDIA это не так уж и сложно - имея всего пару сотен изображений, вы можете обучить ультрасовременную модель глубокого обучения, чтобы научить своего робота находить путь в лабиринте игрушечных дорожных конусов. используя только бортовую камеру и никакие другие датчики.

Шаг 2: NVIDIA JetBot и обзор проекта

NVIDIA JetBot и обзор проекта
NVIDIA JetBot и обзор проекта

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

  1. Соберите и настройте JetBot, как описано здесь.
  2. Подключитесь к своему роботу, перейдя по адресу https://: 8888, войдите в систему с паролем по умолчанию jetbot.
  3. Выключите все остальные работающие записные книжки, выбрав «Ядро» -> «Выключить все ядра…».
  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. Выключите все остальные работающие записные книжки, выбрав «Ядро» -> «Выключить все ядра…».
  4. Перейдите в ~ / Notebooks / traffic_cones_driving /
  5. Откройте записную книжку data_collection_cones.ipynb и следуйте ей

Шаг 5: Обучите нейронную сеть на машине с графическим процессором

Затем мы будем использовать собранные данные для повторного обучения модели глубокого обучения AlexNet на компьютере (хосте) с графическим процессором, запустив train_model_cones.ipynb.

Обратите внимание, что train_model_cones.ipynb - единственный блокнот Jupyter в этом руководстве, который запускается НЕ на JetBot

  1. Подключитесь к компьютеру с графическим процессором с установленным 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: Запустите живую демонстрацию на 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. Они полезны для отладки, настройки ПИД-регулятора и улучшения модели.

Удачи и дайте мне знать, если у вас возникнут вопросы!:-)

Код доступен на Github

Рекомендуемые: