Мощности контроллера Arduino Nano 33 BLE Sense со встроенным в BLE-модуль NINA B306 микроконтроллером Nordic nRF 52840 с ядром ARM Cortex-M4 (64 MHz, 1MB Flash, 256 KB of RAM) — хватает для запуска на нём TensorFlow Lite Micro.
Об этом подробно рассказано в блоге TensorFlow — How-to Get Started with Machine Learning on Arduino.
Теперь, для работы с нейронными сетями достаточно установить Arduino IDE и через Arduino Library Manager загрузить библиотеку Arduino_TensorFlowLite.
В составе библиотеки уже идут примеры:
micro_speech — распознавание речи с помощью встроенного микрофона,
magic_wand — распознавание жестов с помощью встроенного IMU,
person_detection — обнаружение человека с помощью внешней камеры ArduCam.
Что самое важное — вся обработка сигнала происходит на самом контроллере и хотя распознавание речи не будет демонстрировать качество на уровне современных голосовых ассистентов, но может осуществить распознавание базовых команд вроде: «Yes» или «No».
Статья How-to Get Started with Machine Learning on Arduino — подробно рассказывает о процессе сбора обучающих данных, тренировки сети с использованием Google Colab и последующей выгрузки весов натренированной сети в виде заголовочного .h-файла.
далее: AIfES — библиотека машинного обучения для Arduino
Ссылки
How-to Get Started with Machine Learning on Arduino
TensorFlow Lite for Microcontrollers
github — TensorFlow Lite for Microcontrollers
Tiny ML on Arduino — arduino_tinyml_workshop.ipynb
Google Colab
По теме
STM32Cube.AI — пакет расширения для STM32CubeMX для встраивания нейронных сетей в микроконтроллеры STM32
CMSIS-NN — библиотека для работы с нейронными сетями для микроконтроллеров ARM Cortex-M
uTensor — AI на микроконтроллерах
Глубокие нейронные сети как следующий этап развития программного обеспечения
Будущее глубокого обучения
Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN