RisalDash RisalDash

Гайд · TinyML · ИИ

TinyML: нейросеть, что не звонит в облако

Чтобы вложить капельку интеллекта в устройство, облако не нужно. TinyML крутит маленькую нейросеть на самом ESP32 — ловит ключевое слово, жест или звук протечки — и данные с микрофона не покидают чип. Вот что это, почему брать именно ESP32-S3 и пайплайн от записи до запуска.

TinyMLEdge ImpulseESP32-S3ИИOn-device
Маленькая нейросеть работает внутри чипа ESP32-S3, рядом перечёркнутое облако — инференс остаётся на устройстве
Модель работает там, где датчик — инференс на чипе, без похода на сервер.

Что такое TinyML — и зачем держать локально

TinyML — это инференс машинного обучения, ужатый под микроконтроллер: модель обучают на большой машине, затем квантуют и компилируют так, чтобы она шла в килобайтах на TensorFlow Lite Micro. Держать на устройстве даёт три реальные вещи — приватность (аудио/видео никуда не уходит), мгновенную задержку (без сетевого round-trip) и работу офлайн на батарее. Это ровно противоположный компромисс облачному LLM-агенту: крошечное и локальное вместо огромного и удалённого.

Реальность железа: бери S3

Модель — это multiply-accumulate до самого низа, и вот тут чип важен. ESP32-S3 добавляет векторные (SIMD) инструкции, что ускоряют ровно эти операции, плюс PSRAM, нужную, чтобы держать модель и буфер аудио/картинки — так инференс идёт в разы быстрее классического ESP32. Обычный ESP32 потянет простые модели; всё с аудио или зрением хочет S3. См. гайд по чипам и следи, куда уходит память — модель плюс её буферы это и есть твой бюджет RAM.

Пайплайн: запись → обучение → прошивка

Сеть руками не пишешь. Обычный поток с Edge Impulse (или тулчейном ESP-DL):

  1. Собери датасет — запиши образцы каждого класса (скажем, «вкл», «выкл» и фон) прямо с устройства.
  2. Обучи в браузере — он подберёт признаки и обучит маленькую модель.
  3. Оптимизируй — квантуй в int8, чтобы стало мало и быстро, и проверь, что влезает в бюджет RAM/задержки.
  4. Прошей — экспортируй Arduino/ESP-IDF библиотеку и зови из скетча; на выходе просто класс + уверенность.

С чего начать

Начни с малого и очевидного на слух — победа мотивирует, а модель остаётся крошечной:

ПроектДатчикСложность
Ключевое слово / wake wordмикрофон (I2S)классический первый проект
Звук-событие (протечка, стекло, сигнал)микрофонлегко, высокая польза
Жест / движениеакселерометр (IMU)легко, дешёвый датчик
Зрение (человек / объект)камерасложнее — только S3 + PSRAM

Правило: меньше классов и чистый сигнал побеждают. Детектор двух слов на микрофоне — выходные; живое распознавание объектов — проект. В любом случае, когда модель срабатывает, у тебя простой результат для действия — мигнуть LED, опубликовать по MQTT или показать на отданном дашборде.

Покажи, что видит модель — живой дашборд с того же чипа, в пару строк C++.