13.7. Edge Impulse#

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

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

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

См. также

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

13.7.2. Обучение#

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

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

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

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

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

См. также

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