Предисловие:
Edge AI сегодня — очень захватывающая область, в которой будет много разработок и инноваций. В прогнозах машинного обучения на протяжении многих лет наблюдается четкая тенденция к переходу на встроенное оборудование, которое находится ближе к пользователю, не требует подключения к сети и может решать сложные проблемы, такие как автономное вождение, в режиме реального времени. Существует множество новых платформ и движков с моделями гораздо меньшего размера, специально разработанными для работы на устройствах Edge. Кроме того, гораздо проще решать очень важные вопросы конфиденциальности и безопасности пользователей, когда личные данные пользователя не покидают пограничное устройство. Сложные алгоритмы, анализирующие результаты логического вывода, могут выполняться на периферийных устройствах, отправляя в облако только окончательно запутанную информацию (например, оповещения о некоторых аномалиях).
Эта статья основана на нашей работе в Darwin Edge, где мы фокусируемся на периферийных приложениях искусственного интеллекта, применяемых в здравоохранении и производстве. Для демонстрации производительности платы мы использовали известную среду высокопроизводительных вычислений нейронной сети NCNN с открытым исходным кодом, оптимизированную для мобильных и встроенных платформ (GitHub.com/Tencent/Вы можете…cmake и использование инструментов кросс-компиляции для сборки и настройки sysroot), а также для простого сравнения производительности платы был выполнен тест вывода по умолчанию NCNN (benchncnn). Тест NCNN построен статически, и большинство его зависимостей построены статически, поэтому в целом не так уж сложно заставить его работать на стандартной встроенной системе Linux.
В своей разработке мы часто используем платформу разработчика Bonseyes (www.bonseyes.com/), он может использовать тот же инструмент…Платформа поставляется с инструментами и образами докеров для сред кросс-компиляции для многих встраиваемых платформ. Он поддерживает создание образа платформы, настройку целевой платы и кросс-компиляцию пользовательских приложений, которая выполняется независимым от платформы способом путем создания приложений внутри контейнеров.
Обратите внимание и сосредоточьтесь на техническом обзоре компьютерного зрения, отслеживания новейших технологий и интерпретации классических статей.
Малина PI Модель 4B
Известные платформы, которые делают встраиваемые хобби-приложения доступными и популярными, также доступны для приложений машинного обучения средней сложности. При доступной цене около 50 долларов это отличный инструмент для энтузиастов, занимающихся граничными вычислениями.
Raspberry PI 4
Доступны 2 дистрибутива ОС на базе Linux — официальный дистрибутив Raspberry Pi ОС Raspberry Pi (Raspbian) и порт Ubuntu Raspberry Pi.
Raspbian более удобен (и проще для новичков) с точки зрения настройки и управления целевыми платами, но Ubuntu имеет более широкую поддержку внешних приложений и библиотек с доступом к стандартному репозиторию пакетов Ubuntu ARM. Портирование приложений ИИ и кросс-компиляция могут оказаться более удобными. Оба дистрибутива доступны в 32-битной и 64-битной версиях.
По нашему опыту, 64-разрядные системы на 50% быстрее 32-разрядных систем в тестах приложений машинного обучения.
Технические характеристики оборудования Raspberry PI 4
Была официально выпущена инициатива с открытым исходным кодом по разработке драйверов Vulkan для графического процессора Raspberry Pi 4 путем прохождения 100 000 тестов в наборе тестов на соответствие Khronos Vulkan 1.0. К сожалению, разработка драйверов Vulkan ориентирована на 32-битные платформы и очень мало поддерживает 64-битные операционные системы.
В общем, Ubuntu (или другой хорошо поддерживаемый дистрибутив Linux) — хорошая среда кросс-компиляции для Raspberry Pi 4. Цепочка инструментов кросс-компиляции GNU может легко установить linux-gnu из официальных репозиториев (g++-aarch64-linux-gnu и gcc-aarch64-).
Хороший способ реализовать среду кросс-компиляции — создать образ Docker, установить туда все инструменты разработки хоста и использовать поддержку мультиплатформенного репозитория Ubuntu для создания корня целевой системы, а также позволить инструменту Ubuntu apt проанализировать и загрузить все зависимости. для целевой библиотеки платы Этот sysroot необходим для полной функциональности (подробнее об этой теме в следующей статье).
В таблице ниже приведены результаты тестов NCNN для платы Raspberry Pi 4B:
Jetson AGX Xavier
Флагманский продукт NVIDIA, предназначенный в первую очередь для периферийных приложений машинного обучения, основан на модуле NVIDIA® Jetson AGX Xavier. Это мощная платформа с богатой экосистемой инструментов и библиотек NVIDIA для разработки приложений ИИ.
Простой в использовании NVIDIA SDK Manager, работающий на рабочих станциях ПК, поддерживает загрузку и установку последней доступной операционной системы (в настоящее время Ubuntu 18.04), а также дополнительных библиотек и драйверов, относящихся к встроенному оборудованию. Многие предустановленные библиотеки имеют дополнительную поддержку оборудования NVIDIA (например, аппаратное кодирование/декодирование gstreamer).
Технические характеристики оборудования Jetson AGX Xavier
Графический процессор Volta с 512 ядрами CUDA обеспечивает достойную вычислительную и вычислительную мощность. Он поддерживает вычислительные возможности CUDA 7.0. Для сравнения, известный графический процессор NVIDIA GTX 1060 для ПК имеет поддержку Compute Capability 6.0 и 1280 ядер CUDA.
Кроме того, поскольку CUDA является первой универсальной платформой программирования графических процессоров и в последнее десятилетие использовалась в основном в области машинного обучения, эта платформа обладает уникальным преимуществом, заключающимся в возможности легкого использования существующих сред и библиотек ИИ. Системы Ubuntu, работающие на целевых системах, поддерживают простую установку с помощью инструмента apt для многих пакетов, доступных в репозитории Ubuntu ARM.
В общем, из-за своей мощности, простоты установки и наличия пакетов сама целевая плата может использоваться для компиляции собственных пользовательских приложений без необходимости настройки среды кросс-компиляции на рабочей станции ПК. Процесс обычно включает в себя клонирование репозитория github непосредственно на плату, запуск cmake для проверки отсутствующих зависимостей, использование инструмента apt-get для установки этих зависимостей и выполнения перенастройки, а затем выполнение команды make для сборки приложения. Компиляция на AGX Xavier происходит на порядок медленнее, чем на высокопроизводительной современной рабочей станции ПК, но для проектов среднего размера это простой способ протестировать и попробовать что-то новое.
AGX Xavier также поддерживает TensorRT, движок NVIDIA для выполнения оптимизированного вывода ИИ. Он компилирует стандартные форматы моделей, такие как ONNX, в оптимизированный код, который можно выполнять на графических процессорах или ускорителях глубокого обучения. Дополнительную информацию о TensorRT можно найти на веб-сайте NVIDIA.
Комплект разработчика AGX Xavier стоит около 850 долларов, что делает его первым набором для хобби Edge AI. Его более дешевый (100 долларов) кузен, NVIDIA Jetson Nano, не имеет такого великолепного графического процессора (он основан на архитектуре Maxvell — 128 ядер вычислительных возможностей CUDA 5.2) и ускорителей глубокого обучения с поддержкой TensorRT, но среда разработки и инструменты/ОС То же самое Да, поэтому рекомендуется начать с платы Nano, а затем легко переключиться на платформу AGX Xavier, когда сложность приложения машинного обучения начнет снижать производительность.
В таблице ниже приведены результаты тестов NCNN для комплекта разработчика AGX Xavier:
NXP i.MX 8 Multisensory Enablement Kit (MEK)
NXP предлагает ряд прикладных процессоров i.MX 8 для расширенной графики, обработки изображений, машинного зрения и приложений, критически важных для безопасности, а также ряд демонстрационных/целевых платформ с различными периферийными устройствами на базе этих процессоров. NXP i.MX 8 Multisensor Enablement Kit (MEK) — это удобная платформа для приложений машинного обучения.
Он очень мощный со многими включенными аппаратными средствами/расширениями:
При цене 1000+$ он предназначен для использования в качестве профессиональной платформы.
На веб-сайте NXP есть обширная документация по плате, а также доступны образы Linux, которые можно легко записать на SD-карту на ПК с помощью таких инструментов, как Etcher. Операционная система, используемая на борту, представляет собой настройку Yocto Linux от NXP на основе стандартного дистрибутива Poky Linux. Эта настройка добавляет множество библиотек, распространенных в приложениях Edge AI (opencv, gstreamer, QT, рабочий драйвер Vulkan).
Распаковать и загрузить плату MEK с предварительно записанной SD-карты несложно, но настройка ПК рабочей станции в качестве среды кросс-компиляции требует дополнительных усилий. Для этого требуется корень системы сборки Yocto и SDK, а пользовательские приложения могут быть кросс-компилированы для запуска на плате.
Yocto — это очень сложная система сборки, которая предлагает большие возможности для настройки каждого аспекта образа платы и системной библиотеки, но имеет крутую кривую обучения и требует много времени для понимания и практики. Настраивать сборку NXP iMX8 по умолчанию (например, если отсутствуют какие-то дополнительные библиотеки с открытым исходным кодом) очень утомительно. Yocto загружает исходный код и создает все с нуля (включая набор инструментов кросс-компиляции GNU, адаптированный для компьютерной среды сборки), первоначальная сборка, которая занимает целый день на современном персональном компьютере высокого класса.
Тесты NCNN, выполненные на платформе, дали следующие результаты:
Conclusion
Для тех, кто хочет окунуться в захватывающий мир Edge AI, есть множество простых в использовании целевых платформ на выбор. Мы сравнили несколько платформ. Для хобби/демонстрационных целей есть дешевые, но с поддержкой машинного обучения Raspberry PI 4 и NVIDIA Jetson Nano. Nvidia AGX Xavier — флагманский продукт NVIDIA с удобными инструментами и ОС Ubuntu, хорошей поддержкой графического процессора и CUDA. NXP i.MX 8 — более сложная платформа для профессиональных промышленных и коммерческих приложений.
Автор: Атанасиевский
Перевод: Техническое руководство по резюме
Оригинальная ссылка:
Эта статья взята из серии технических сводок Технического руководства CV для общедоступных аккаунтов.
Добро пожаловать в техническое руководство CV для общедоступной учетной записи, в котором основное внимание уделяется техническому обзору компьютерного зрения, отслеживанию новейших технологий и интерпретации классических статей.
Ответьте на ключевое слово «техническое резюме» в официальном аккаунте, чтобы получить краткий PDF-файл исходной технической сводной статьи официального аккаунта.
Другие статьи
Техническое руководство по CV - Резюме и классификация основных статей
Резюме методов настройки параметров для гиперпараметров нейронной сети
CVPR2021 | Переосмысление пакетной обработки в BatchNorm
ICCV2021 | Переосмысление пространственного измерения визуальных трансформеров
CVPR2021 | Transformer для сквозной сегментации экземпляров видео
Анализ сложности сверточных нейронных сетей
Обзор последних исследований по обнаружению малоразмерных целей в 2021 году
Самостоятельное внимание в компьютерном зрении
Обзорная колонка | Обзор оценки позы
Почему GEMM лежит в основе глубокого обучения
Почему 8 бит достаточно для использования глубоких нейронных сетей?
Серия Classic Paper — Капсульные сети: новая сеть глубокого обучения
Как просмотреть пузырь искусственного интеллекта
Четкое обнаружение границ с использованием Dice loss
PVT — многофункциональная основа для плотного прогнозирования без свертки
CVPR2021 | Обнаружение объектов в открытом мире
Визуальное обнаружение и распознавание объектов Прошлое, настоящее и возможное
Краткое изложение методов недообучения и переобучения
Краткое изложение общих идей бумажных инноваций
Резюме методов эффективного чтения англоязычной литературы по направлению CV
Обзор непродолжительного обучения компьютерному зрению
Краткий обзор дистилляции знаний
Оптимизировать скорость чтения видео OpenCV
Краткое изложение методов функции потерь
Техническое резюме механизма внимания
Краткое изложение технологии пирамиды функций
Краткое изложение технологии объединения
Краткое изложение методов увеличения данных
Резюме эволюции структуры CNN (1) Классическая модель
Резюме эволюции структуры CNN (2) Облегченная модель
Резюме эволюции структуры CNN (3) Принципы проектирования
Как увидеть будущее направление компьютерного зрения
Краткое изложение технологии визуализации CNN (1) Визуализация карты объектов
Краткое описание технологии визуализации CNN (2) Визуализация ядра свертки
Краткое изложение технологии визуализации CNN (три) визуализации
Краткое описание технологии визуализации CNN (4) инструменты и проекты визуализации