Гайд · TinyML · ИИ
TinyML: нейросеть, что не звонит в облако
Чтобы вложить капельку интеллекта в устройство, облако не нужно. TinyML крутит маленькую нейросеть на самом ESP32 — ловит ключевое слово, жест или звук протечки — и данные с микрофона не покидают чип. Вот что это, почему брать именно 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):
- Собери датасет — запиши образцы каждого класса (скажем, «вкл», «выкл» и фон) прямо с устройства.
- Обучи в браузере — он подберёт признаки и обучит маленькую модель.
- Оптимизируй — квантуй в int8, чтобы стало мало и быстро, и проверь, что влезает в бюджет RAM/задержки.
- Прошей — экспортируй Arduino/ESP-IDF библиотеку и зови из скетча; на выходе просто класс + уверенность.
С чего начать
Начни с малого и очевидного на слух — победа мотивирует, а модель остаётся крошечной:
| Проект | Датчик | Сложность |
|---|---|---|
| Ключевое слово / wake word | микрофон (I2S) | классический первый проект |
| Звук-событие (протечка, стекло, сигнал) | микрофон | легко, высокая польза |
| Жест / движение | акселерометр (IMU) | легко, дешёвый датчик |
| Зрение (человек / объект) | камера | сложнее — только S3 + PSRAM |
Правило: меньше классов и чистый сигнал побеждают. Детектор двух слов на микрофоне — выходные; живое распознавание объектов — проект. В любом случае, когда модель срабатывает, у тебя простой результат для действия — мигнуть LED, опубликовать по MQTT или показать на отданном дашборде.
Покажи, что видит модель — живой дашборд с того же чипа, в пару строк C++.