tariel.ge › Полезное: бесплатные книги › ИИ изнутри: от нейрона до своей моделиБесплатно · автор Тариел Бежанидзе
← ИИ изнутри ЛИСТ 23Зрение и железоРЕВ. 1
Глава 23 · Зрение и железо

ИИ на микроконтроллере: TinyML в ваших самоделках

Модель на несколько десятков килобайт, работающая на копеечном микроконтроллере без интернета и без облака. Здесь сходятся все ваши интересы сразу.

О чём речь

Всё предыдущее требовало видеокарты. Здесь наоборот: модель ужимается до десятков килобайт и работает на микроконтроллере с сотнями килобайт памяти, питаясь от батарейки.

Модель на ПКНа микроконтроллере
РазмерГигабайтыДесятки килобайт
ПамятьГигабайтыСотни килобайт
ПитаниеДесятки и сотни ваттМилливатты
АвтономностьНетМесяцы от батарейки
ЗадачиЛюбыеОдна конкретная
ЦенаТысячиЕдиницы долларов

Что реально помещается

ЗадачаДатчикРеалистичность
Кодовое словоМикрофонКлассика жанра. Работает надёжно
Аномалия в вибрацииАкселерометрОтлично. Подшипники, дисбаланс — глава 21
Аномалия в звукеМикрофонОтлично
Распознавание жестовАкселерометр, гироскопРаботает
Есть ли человекКамераРаботает на маленьких картинках
Классификация по датчикамТемпература, ток, давлениеРаботает хорошо
Распознавание речиМикрофонНет. Только отдельные команды
Что-либо с языком—Нет
Ваш самый естественный проект

Датчик состояния механизма. Акселерометр на корпусе, модель обучена на вибрации исправного устройства, и она зажигает светодиод, когда вибрация перестала быть обычной. Не требует облака, интернета и обслуживания. Обнаружение аномалии из главы 21, только целиком внутри копеечной железки — и это соединяет всю книгу с вашей мастерской.

Как модель ужимают

ПриёмЧто даёт
Целочисленная арифметикаВместо дробных чисел — восьмибитные целые. Вчетверо меньше и намного быстрее: у микроконтроллеров часто нет блока дробной арифметики
Отсечение лишнегоУдалить веса, близкие к нулю. Их всегда много
Обучение маленькой по большойКрупная модель «учит» маленькую повторять свои ответы. Маленькая получается лучше, чем при обучении с нуля
Простая архитектураНикаких трансформеров — несколько слоёв из главы 03
Признаки вместо сырых данныхПосчитать спектр на самом контроллере, а в сеть подать уже его. Резко упрощает задачу
Последний приём — самый важный

Не пытайтесь подать в крошечную сеть сырой сигнал с датчика. Посчитайте спектр, статистику, максимумы — то, что вы и так умеете делать в схемотехнике, — и подайте десяток осмысленных чисел. Сеть тогда нужна совсем маленькая. В этой области ручная подготовка признаков не устарела, в отличие от больших моделей.

Железо

КлассЧто умеетЗамечание
Простые 32-битные контроллерыВибрация, датчики, простые звуковые задачиСамый дешёвый вход
Контроллеры с ускорителем ИИЗвук, маленькие изображенияПоявляются в популярных семействах, включая те, что вы уже используете
Одноплатные компьютерыПолноценное зрение, распознавание речиУже не микроконтроллер: нужна операционная система и питание посерьёзнее
Отдельные ускорителиЗрение в реальном времениДороже, зато быстро
Смотрите на память, а не на частоту

Ограничение почти всегда — оперативная память, а не скорость процессора. Модель, буфер входных данных и промежуточные результаты должны поместиться одновременно. Выбирая контроллер под такую задачу, смотрите на объём памяти в первую очередь.

Как это делается

  1. Собрать данные с того же датчика, который будет в изделии. Не с другого — характеристики отличаются, и модель этого не переживёт.
  2. Записать оба состояния: нормальное и то, что надо ловить. Для обнаружения аномалии достаточно только нормального.
  3. Обучить на компьютере. Модель крошечная, обучение занимает минуты.
  4. Преобразовать в целочисленный вид и проверить, что качество не рухнуло.
  5. Получить модель в виде массива для включения в прошивку.
  6. Проверить на устройстве — в реальных условиях, а не на записанных данных.
Есть готовые платформы

Существуют сервисы, которые проводят через весь путь — от сбора данных с платы до готовой прошивки — и берут на себя подготовку признаков и преобразование модели. Для первого проекта это резко снижает порог: вы занимаетесь задачей, а не инструментами. Бесплатные тарифы для личных проектов обычно есть.

Типичные грабли

ПроблемаПричинаРешение
На компьютере работает, на плате нетДругой датчик, другая частота опроса, другое креплениеСобирать данные тем же железом в том же положении
Не помещается в памятьМодель велика или буфер большойМеньше слоёв, короче окно, сильнее сжатие
Ложные срабатыванияМало разнообразия в «нормальных» данныхЗаписать нормальное в разное время и в разных условиях
Сильно село качество после сжатияЦелочисленный вид требует калибровкиПроверять качество после преобразования, а не до
Работает, пока держишь рукойИзменилась передача вибрацииКрепить так же, как в изделии, с самого начала

Проверьте, что поняли

Что дальше

Обратно к большим моделям — и к тому, как в одной модели соединяются текст, изображение и звук.

Глава23 — ИИ на микроконтроллере: TinyML в ваших самоделках
БлокЗрение и железо
Далее24 — Мультимодальность: модель, которая видит и слышит
Ревизия1
↑ Оглавление Предыдущая глава← 22 · Компьютерное зрение: найти объект на фото Следующая глава24 · Мультимодальность: модель, которая видит и слышит →

Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.