13.6. Edge Impulse

Edge Impulse – это сквозная платформа для построения моделей машинного обучения, работающих на микроконтроллерах: сбор и разметка данных, проектирование и обучение модели в браузере, а также её оптимизация под устройства с памятью, измеряемой в килобайтах. Развёртывание выполняется прямо на OpenMV – несколько кликов превращают обученную модель в файлы, готовые к запуску на камере. Собственная документация Edge Impulse подробнее раскрывает каждый шаг.

13.6.1. Получение данных

Модель работает лучше всего на тех изображениях, на которых она обучалась, поэтому захватывайте набор данных той камерой, которая будет его запускать. Редактор наборов данных в IDE создан именно для этого – создавайте папки классов, захватывайте размеченные изображения из живого буфера кадра, а затем загружайте набор данных прямо в проект Edge Impulse из подменю Export (сначала войдите в свою учётную запись). С этого момента вы работаете в Edge Impulse Studio.

См. также

Собственное руководство по настройке OpenMV Cam от Edge Impulse по установке инструментов и подключению камеры.

13.6.2. Обучение

Обучение полностью происходит в браузере: спроектируйте impulse (блоки ввода, обработки и обучения), обучите его и проверьте точность на отложенных тестовых данных.

Камере подходят два типа моделей. Классификатор изображений выдаёт список оценок классов, который вы считываете прямо с выхода модели – постобработчик не нужен. FOMO, быстрый детектор объектов, разработанный для микроконтроллеров, требует одного шага декодирования, и камера поставляется с постобработчиком для него (ml.postprocessing.edgeimpulse), так что такие модели тоже работают без дополнительного кода.

13.6.3. Развёртывание на камере

По завершении обучения откройте страницу Deployment проекта, выберите цель OpenMV Library и нажмите Build. Загружаемый файл – это zip-архив, содержащий обученную модель (trained.tflite), её метки (labels.txt) и пример скрипта. Модель квантована в целых числах. Edge Impulse описывает это, а также альтернативу с пользовательской прошивкой, в своём руководстве по запуску на OpenMV.

Добавьте файл .tflite на камеру с помощью редактора ROMFS в IDE, который конвертирует его для NPU платы, если та им оснащена, и загрузите его в скрипте через ml.Model. Модели также запускаются с флеш-накопителя камеры – скопируйте файлы и укажите ml.Model на путь к ним – но ROMFS является лучшим местом для них: модели там выполняются прямо из флеш-памяти без копирования в RAM.

См. также

Глава о машинном обучении о запуске моделей с помощью модуля ml – загрузке, конвейере вывода и декодировании выходных данных.