Плата Nividia Jetson Nano позволяет разрабатывать собственные проекты IA во встроенной системе. От распознавания лиц до автономного вождения.

С развитием ИИ и Интернета вещей Nvidia предлагает нам простое, дешевое и мощное решение для разработки встроенных приложений искусственного интеллекта. Джетсон Нано открывает возможности для создания самодельных роботов, интеллектуальных систем…

Jetson Nano - это плата, похожая на малину, но гораздо более мощная, которая запускает пользовательский образ Ubuntu с предварительно загруженным программным обеспечением Nvidia. Он оснащен четырехъядерным процессором ARM® Cortex®-A57 MPCore, графическим процессором с архитектурой NVIDIA Maxwell ™ со 128 ядрами NVIDIA CUDA® и 4 ГБ 64-битной памяти LPDDR4 1600 МГц. Это оборудование делает Jetson Nano подходящим для этапов обучения и вывода в задачах глубокого обучения. Он поддерживает наиболее распространенные фреймворки глубокого обучения, такие как TensorFlow, Caffe или PyTorch.

С помощью этой доски вы можете создать обучающего ИИ-робота под названием JetBot. Создание и использование JetBot дает практический опыт, необходимый для создания совершенно новых проектов искусственного интеллекта, включая этапы аппаратного и программного обеспечения. Создание JetBot не является целью данной статьи. На официальной странице GitHub вы можете найти всю информацию и требования. Https://github.com/NVIDIA-AI-IOT/jetbot

С помощью платы Jetson Nano вы можете легко эффективно запускать большинство фреймворков глубокого обучения, таких как TensorFlow, Caffe или PyTorch.

Заставим JetBot работать. Фотографируй и тренируй нашу сеть

Весь необходимый код для запуска этого проекта доступен на упомянутой выше странице JetBot GitHub. Тем не менее, вы можете воспользоваться преимуществами моего модифицированного ноутбука с такими улучшениями, как динамическая съемка фотографий при удаленном перемещении JetBot с помощью контроллера Xbox (легко расширяемого на другие контроллеры).

Шаг 1. Соберите данные для загрузки вашей модели.

Https://github.com/davidRetana/jetbot/blob/davidretana/notebooks/collision_avoidance/data_collection_teleoperation.ipynb

Чтобы обучить нашу нейронную сеть, нам нужно собирать изображения с камеры. Нам нужны изображения двух типов: заблокированные и бесплатные. Позаботьтесь о сбалансированном сборе изображений из двух классов (50–50%) и попробуйте разные положения одного и того же блокирующего объекта или свободного пути. Хороший набор данных - ключ к правильному функционированию робота.

Если путь заблокирован, JetBot повернет налево, и наоборот, если путь свободен, JetBot продолжит движение прямо.

Шаг 2. Обучите сеть

Https://github.com/davidRetana/jetbot/blob/davidretana/notebooks/collision_avoidance/train_model.ipynb

Сетевая архитектура, выбранная в этой работе, - AlexNet, но с небольшими изменениями для удовлетворения наших требований.

Эта архитектура была разработана для конкурса ImageNet LSVRC-2010 с 1000 различными классами. Однако нашей сети нужно только различать, является ли изображение свободным или заблокированным для перемещения JetBot, поэтому последний слой будет иметь только 2 выхода. Более того, PyTorch позволяет нам загружать предварительно обученную сеть AlexNet, что является огромным преимуществом для решения нашей проблемы, потому что на этапе обучения нам не нужно запускать веса сети случайным образом. Слои получили знания, полученные с 1000 различных классов в конкурсе ImageNet LSVRC-2010. Модель, разработанная для задачи, повторно используется в качестве отправной точки для модели для выполнения другой задачи. Этот метод называется трансферным обучением.

import torch
import torchvision.models as models
model = models.alexnet(pretrained=True)
model.classifier[6] = torch.nn.Linear(model.classifier[6].in_features, 2)
print(model)

Вы можете обучить сеть в самом JetBot или во внешней системе. Блокнот подготовлен для экспорта веса вашей модели в файл, который вы можете импортировать в JetBot позже.

Шаг 3. Запустите свою модель

Https://github.com/davidRetana/jetbot/blob/davidretana/notebooks/collision_avoidance/live_demo.ipynb

Теперь пора запустить вашу модель и посмотреть, как она работает.