Комплект Google использует RPi Zero и Coral Accelerator для машинного обучения

Проект Alto от Google Creative Lab ставит перед Coral USB Accelerator и Raspberry Pi Zero SBC задачу реализовать простое для понимания машинное обучение с помощью мини-робота с открытым исходным кодом, который вы создаете сами.

Google Creative Lab представила проект под названием Alto. Alto от Google Creative Lab - это «объект, который можно обучить с помощью Coral USB Accelerator». «ALTO» означает «Маленький обучаемый объект». Он разработан, чтобы позволить пользователям получить базовые знания о машинном обучении. Alto использует Coral USB Accelerator и Raspberry Pi, чтобы помочь пользователям легко добавлять машинное обучение в свои проекты оборудования.

Репозиторий Google Alto GitHub содержит все инструкции и файлы, необходимые для создания Alto с нуля. Alto является полностью открытым исходным кодом - все коды и шаблоны для этого проекта бесплатны для доступа. Google отмечает, что Alto не является официальным продуктом Google, а является результатом совместной работы Google Creative Lab и ее партнеров из RRD Labs.

Здание Альто (слева) и Альто собраны

За прошедшие годы мы рассмотрели ряд учебных комплектов на основе искусственного интеллекта Google. И SBC Raspberry Pi были в пути на протяжении всего пути. Первым примером в 2016 году была образовательная платформа Google Project Bloks для детей, построенная на базе Raspberry Pi Zero. А в 2017 году Google выпустила свой SDK Google Assistant на основе Python , набор для голосового агента Google Assistant с искусственным интеллектом. За этим последовал комплект AIY Projects для проектов голоса / AI на Raspberry Pi. В 2018 году компания основывалась на стратегии AIY, выпустив новые версии своих голосовых комплектов AIY Voice Kit и AIY Vision Kit , которые поставляются с Raspberry Pi Zero WH.

Alto упрощает машинное обучение. На передней панели Alto есть камера, а с каждой стороны - рука и кнопка. Альто использует камеру, чтобы наблюдать за окружающим миром. Кнопки используются для начала обучения, и Альто укажет рукой, когда увидит то, что он научился распознавать. Альт может изучать два класса вещей. Когда Альто узнает одного из них, он укажет соответствующей рукой. Чем больше вы будете учить Альто одному и тому же объекту, тем лучше он будет его распознавать.

Альто распознает разницу между двумя объектами и указывает на них разными руками

Alto состоит из трех основных элементов: Raspberry Pi Zero SBC с камерой; Coral USB Accelerator для ускорения машинного обучения на устройстве; и некоторая простая электроника для его пользовательского интерфейса.

Raspberry Pi Zero работает под управлением ОС Raspberry Pi. Он отвечает за взаимодействие с подключенным оборудованием пользователя (подключенным через GPIO), модулем камеры и TPU Coral Edge (подключенным через USB). ОС запускается автоматически и действует как хост для программного приложения, на котором работает Alto. Система ускоряет все логические выводы машинного обучения (и часть обучения), делегируя выполнение графа машинного обучения на Edge TPU на Coral USB Accelerator. Edge TPU - это сопроцессор машинного обучения. Это позволяет компьютерам с низким энергопотреблением, таким как Raspberry Pi, выполнять расширенные рабочие нагрузки машинного обучения с гораздо более высоким уровнем производительности, чем если бы они были запущены на ЦП. Все задачи машинного обучения, выполняемые Alto, выполняются на устройстве (в автономном режиме) с использованием Edge TPU.

Программное обеспечение Coral для Edge TPU официально не поддерживает Raspberry Pi Zero (он имеет чипсет ARMv6, но Coral официально требует ARMv8). Тем не менее, программное обеспечение Coral для Edge TPU Runtime имеет открытый исходный код и было успешно скомпилировано для Raspberry Pi Zero.

Программное обеспечение Alto написано на Python. Он получает входные данные от модуля камеры Raspberry Pi, подготавливает его для классификации модулем Edge TPU и взаимодействует с интерфейсом электроники. Google сообщает, что приложение использует «модель классификатора k-ближайших соседей (k-NN) для определения близости данного изображения к другим в его изученном наборе данных».

Когда Alto обучается, он вычисляет встраивание входящих данных от датчика изображения в свою модель и присваивает ему метку - в случае Alto эта метка является его левой или правой рукой. Когда Alto находится в режиме распознавания, определяются вложения кадров данных с датчика изображения и вычисляется их близость к другим известным вложениям. Если они находятся на определенном расстоянии от помеченной вложения, то Альто что-то распознал и укажет на это соответствующей рукой.

Простые внешние элементы робота Alto (слева)
и полный набор электроники для сборки Alto (справа)

Согласно Google Creative Lab, электроника для Alto разработана так, чтобы быть максимально гибкой и взломанной. Он основан на одной макетной плате со сквозным отверстием, которую можно легко собрать вручную. Эта плата подключается к контактам GPIO Raspberry Pi Zero и выламывает заголовки для других компонентов Alto: двух сервоприводов, двух кнопок и одного светодиода. В конструкцию и спецификацию материалов (BOM) входит сборная коммутационная плата USB, которая включает дискретную схему регулирования мощности, которая обеспечивает бесперебойную подачу необходимой мощности на Alto во время нормальной работы.

Дальнейшая информация

Вся информация, включая инструкции, файлы и полезные изображения, доступна на странице Alto GitHub . Хорошее краткое изложение того, что такое Alto и что с ним можно, представлено в этой статье SlashGear .