Рабочий процесс создания Edge AI приложений (3/4)
Подробный разбор четырёх ключевых фаз разработки Edge AI: сбор данных, предобработка, обучение модели и оценка результатов.
В предыдущем модуле мы познакомились с циклом разработки Edge AI и его шестью фазами. Теперь разберём подробнее четыре центральных этапа: сбор данных, предобработку, обучение модели и оценку. Цель — понять, как каждый этап выглядит на практике и какие решения действительно влияют на результат.

Фаза 1: Сбор данных
Данные — самый важный компонент любого проекта машинного обучения. Модель не может быть лучше тех данных, на которых она обучена. В этом разделе рассмотрим типы данных, используемых в Edge AI, стратегии их правильного сбора, а также вопросы количества и представительности выборки.
Типы данных для разных приложений
Edge AI приложения работают с данными от датчиков и камер. У каждого типа данных есть свои особенности, которые влияют на способ сбора, хранения и обработки.
Данные датчиков движения (IMU)
Датчики движения — акселерометры и гироскопы — измеряют ускорение и угловую скорость объекта. Трёхосевой акселерометр за одно считывание выдаёт три числовых значения (по одному на каждую ось: X, Y и Z), формируя временной ряд данных [1].
Такие данные применяются в задачах распознавания жестов (например, различение круговых и линейных движений), определения активности человека (ходьба, бег, сидение) и мониторинга вибраций промышленного оборудования.
Аудиоданные
Микрофоны захватывают звуковой сигнал и представляют колебания звукового давления во времени. Для Edge AI приложений — распознавания голосовых команд («вкл», «выкл») или классификации звуков окружающей среды (сигналы тревоги, звук разбитого стекла) — используются короткие записи, обычно от 1 до 3 секунд [2].
Аудио создаёт особые трудности: фоновый шум зависит от среды, а расстояние от источника звука до микрофона влияет на качество сигнала.
Данные изображений
Изображения для Edge AI обрабатываются при уменьшенном разрешении (например, 96×96 пикселей), чтобы вписаться в ограничения памяти микроконтроллеров. Они могут быть в оттенках серого или цветными — это напрямую влияет на объём данных, который модель должна обработать [3].
Применения: классификация объектов (например, различение видов фруктов), обнаружение людей и визуальный контроль качества на производственных линиях.
Данные об окружающей среде
Экологические датчики измеряют температуру, влажность, атмосферное давление и качество воздуха. В отличие от аудио или изображений, эти значения меняются медленно и собираются с большими интервалами (например, раз в секунду или в минуту) [4].
Области применения: экологический мониторинг и прогнозирование — обнаружение аномальных условий в теплице или прогноз энергопотребления здания.
Стратегии сбора качественных данных
Качество данных во многом определяет итоговую производительность модели. Небрежный сбор приводит к тому, что модели хорошо работают в лаборатории, но отказывают в реальных условиях [5].
Определение протокола сбора
Перед началом сбора необходимо составить чёткий план, фиксирующий экспериментальные условия. Протокол должен определять: какой датчик используется и с какой частотой, сколько длится каждый образец, при каких условиях захватываются данные, сколько повторений нужно и как будет размечен каждый образец.
В проекте распознавания жестов с акселерометром протокол может, например, предписывать: каждый участник повторяет каждый жест 50 раз, максимальная длительность жеста — две секунды, датчик закреплён на правом запястье.
Разнообразие данных
Распространённая ошибка — собирать данные в слишком контролируемых условиях. Чтобы модель работала в реальном мире, данные должны отражать естественную вариативность задачи.
Для аудиоданных это означает запись в разных помещениях (офис, улица, шумная среда), с разными дикторами и на различных расстояниях от микрофона. Для изображений разнообразие включает вариации освещения (естественное, искусственное, тени), углы съёмки и фоны.
Правильная разметка
Разметка присваивает каждому образцу правильную категорию (например, «круговой жест» или «линейный жест»). Неверная разметка вводит модель в заблуждение при обучении и может существенно снизить её производительность.
Лучшие практики: определять однозначные категории, документировать критерии разметки, по возможности проверять метки перекрёстным ревью и фиксировать сомнительные случаи для последующего анализа.
Сбор данных с Edge Impulse
Edge Impulse упрощает сбор данных: образцы можно захватывать прямо с платы Arduino. Процесс состоит из подключения платы к компьютеру, выбора датчика (акселерометр, микрофон, камера и т. д.), определения длительности каждого образца, захвата данных и присвоения меток в реальном времени [6].
Прямая интеграция с железом гарантирует, что данные будут собраны в тех же условиях, в которых модель будет работать при инференсе.
Соображения о количестве и представительности
Необходимый объём данных зависит от сложности задачи и количества категорий, которые модель должна различать.
Минимальный объём данных
В качестве ориентира рекомендуемые объёмы по типу задачи выглядят следующим образом:
| Task Type | Minimum Samples per Class | Recommended Samples per Class |
|---|---|---|
| Simple classification (2-3 classes) | 50 | 100 - 500 |
| Complex classification (4+ classes) | 100 | 500 - 2,000 |
| Anomaly detection | 500 (normal class only) | 1,000+ (normal class only) |
| Voice recognition | 100 per command | 500+ per command |
| Image classification | 100 | 500 - 1,000 |
Эти цифры — ориентировочные. Чем больше классы похожи друг на друга (например, два схожих жеста), тем больше данных нужно модели, чтобы научиться их различать.
Баланс между классами
Несбалансированный датасет, где одни классы представлены значительно большим числом образцов, чем другие, может сместить модель в сторону классов с большим количеством примеров. Например, если есть 500 образцов «ходьбы» и всего 50 «бега», модель будет склонна классифицировать всё как «ходьбу», потому что это чаще оказывается правильным ответом [7].
Рекомендуется поддерживать примерно одинаковое число образцов в каждом классе. Когда дисбаланс неизбежен (например, при обнаружении аномалий, где аномальные события редки), можно применять компенсационные техники, о которых речь пойдёт в разделе о предобработке.
Разбивка датасета
Собранные данные необходимо разделить на три набора с разными целями:
- Обучающая выборка (60–80%): на ней модель учится. Модель корректирует внутренние параметры, чтобы распознавать паттерны в этих данных.
- Валидационная выборка (10–20%): используется во время обучения для проверки того, что модель не просто запоминает данные.
- Тестовая выборка (10–20%): используется только один раз в конце процесса для получения реальной оценки производительности модели на полностью новых данных.
Тестовые данные ни в коем случае нельзя использовать во время обучения. Если модель уже «видела» эти данные, оценка не отразит её реальную производительность на новых данных.
Фаза 2: Предобработка данных
Данные, захваченные датчиками, редко готовы к непосредственной подаче в модель машинного обучения. Предобработка преобразует сырые данные в форму, пригодную для обучения, повышая качество и эффективность процесса.
Очистка и нормализация
Очистка данных
Очистка выявляет и исправляет дефектные данные, которые могут негативно сказаться на обучении. Наиболее распространённые проблемы: ошибочные показания из-за неисправности датчика, пропущенные данные вследствие потери соединения, шум, наложенный на полезный сигнал, и неверно размеченные образцы.
Методы очистки зависят от типа данных. Для сигналов датчиков фильтры могут сгладить сигнал, устранив резкие скачки, не соответствующие измеряемому явлению. Для изображений очистка может включать удаление размытых, переэкспонированных или иначе неинформативных фотографий.
Нормализация
Нормализация приводит данные к единому масштабу, обеспечивая однородный диапазон значений. Это важно, потому что модели машинного обучения работают лучше, когда входные значения находятся в ограниченном и сопоставимом диапазоне [8].
Например, акселерометр может выдавать значения от -4 до +4, а датчик температуры — от 0 до 100. Без нормализации модель может придать температуре большее значение просто потому, что её числа крупнее, а не потому, что она более информативна.
Наиболее распространённая техника в Edge AI — min-max нормализация, которая масштабирует все значения к диапазону [0, 1]. Вычисляется делением разности каждого значения и минимума на полный диапазон датчика. Таким образом, наименьшее значение становится 0, наибольшее — 1, а все промежуточные сохраняют пропорцию.
Извлечение признаков
Извлечение признаков преобразует сырые данные в более компактные представления, захватывающие информацию, релевантную для модели. Вместо того чтобы подавать тысячи показаний датчиков напрямую, вычисляются сводные значения, описывающие важные паттерны в сигнале [9].
Признаки во временной области
Эти признаки вычисляются непосредственно на исходном сигнале и описывают его общие свойства. Например, среднее значение указывает на центральное значение сигнала, стандартное отклонение измеряет, насколько значения отклоняются от среднего, а максимальные и минимальные значения задают диапазон сигнала.

Иллюстрация нормального распределения: среднее значение (MEAN) и стандартное отклонение (Standard Deviation) — ключевые признаки временной области.
Чтобы показать их полезность: при различении «ходьбы» и «бега» с акселерометром стандартное отклонение является очень информативным признаком. При беге вариации ускорения значительно больше, чем при ходьбе, поэтому стандартное отклонение будет заметно выше.
Признаки в частотной области
Некоторые сигналы содержат повторяющиеся паттерны, которые не очевидны при непосредственном наблюдении данных, но проявляются при анализе частотных составляющих. Быстрое преобразование Фурье (FFT) разлагает сигнал на составляющие частоты — подобно тому, как призма разлагает белый свет на отдельные цвета.
Эти признаки особенно полезны в аудиоприложениях, где разные звуки имеют характерные частоты, и в мониторинге вибраций, где изменения доминирующих частот двигателя могут указывать на механический износ.
Блоки обработки в Edge Impulse
Edge Impulse организует извлечение признаков в настраиваемые блоки обработки, упрощая эту задачу. Наиболее актуальные блоки для проектов на Arduino:
- Spectral Analysis: вычисляет частотные признаки из сигналов датчиков, таких как акселерометры и гироскопы.
- MFCC: извлекает аудиопризнаки, оптимизированные для распознавания речи, имитируя способ восприятия звука человеческим ухом.
- Spectrogram: формирует представление, показывающее, как частоты аудиосигнала меняются во времени.
- Image: изменяет размер и нормализует изображения для визуальной классификации, позволяя настраивать разрешение и цветовой режим.
Каждый блок преобразует сырые данные в набор числовых значений, которые модель использует для обучения. Выбор подходящего блока зависит от типа датчика и задачи.
Техники аугментации данных
Аугментация данных генерирует новые образцы из существующих с помощью контролируемых преобразований. Она особенно ценна при ограниченном объёме собранных данных, поскольку позволяет расширить датасет без необходимости захватывать дополнительные образцы [10].
Аугментация данных для сигналов датчиков
Аудиосигналы могут подвергаться специфическим преобразованиям: добавлению фонового шума, записанного в среде развёртывания, незначительной корректировке скорости воспроизведения и смешиванию сигнала с другими звуками окружающей среды.
Для распознавания голосовых команд добавление фонового шума особенно важно, поскольку имитирует реальные условия работы модели.
Аугментация аудиоданных
Аудиосигналы могут подвергаться специфическим преобразованиям: добавлению фонового шума, записанного в среде развёртывания, незначительной корректировке скорости воспроизведения и смешиванию сигнала с другими звуками окружающей среды.
Для распознавания голосовых команд добавление фонового шума особенно важно, поскольку имитирует реальные условия работы модели.
Аугментация изображений
Изображения предоставляют широкий спектр возможных преобразований. Наиболее часто используемые в Edge AI: незначительный поворот (обычно ±15°), корректировка яркости и контраста, случайные обрезки и горизонтальное отражение (когда это имеет смысл для задачи).
Преобразования должны быть реалистичными. Например, нет смысла поворачивать классификатор продуктов на полке на 180°, поскольку продукты всегда ориентированы вверх.
Ограничения аугментации данных
Аугментация данных не заменяет реальный сбор данных. Сгенерированные образцы могут улучшить способность модели к обобщению, но не способны привнести принципиально новую информацию. Если исходный датасет не содержит примеров какого-либо специфического условия (например, работы под дождём), никакое преобразование не компенсирует этот пробел.
Фаза 3: Обучение модели
После сбора, очистки и предобработки данных следующий шаг — обучение модели машинного обучения. На этом этапе выбирается тип модели, настраиваются параметры обучения и проверяется, что модель работает в рамках ограничений устройства.
Выбор подходящей архитектуры
Выбор типа модели зависит прежде всего от типа данных и сложности задачи [11].
Модели для данных датчиков и аудио
Для данных датчиков движения и аудио наиболее распространены два варианта: простые нейронные сети и свёрточные сети.
Простые нейронные сети (полносвязные) — самый базовый вариант. Они хорошо работают для простых задач, где данные уже сведены к набору признаков (например, классификация активности человека по среднему и стандартному отклонению ускорения). Главное преимущество — небольшой размер и высокая скорость.
Свёрточные сети (CNN) мощнее. Они могут обучаться паттернам непосредственно из данных без ручного извлечения признаков. Предпочтительны, когда сигнал имеет сложные временные паттерны, но требуют больше памяти и вычислительных ресурсов.
Модели для изображений
Для классификации изображений на граничных устройствах чаще всего используются оптимизированные архитектуры, специально разработанные для работы с ограниченными ресурсами [12]:
- MobileNet: наиболее популярная архитектура для компьютерного зрения на встраиваемых устройствах. Использует специальные техники для резкого сокращения числа операций без значительной потери точности. Существуют две основные версии (V1 и V2), причём V2 более эффективна.
- Custom CNN: для простых задач (например, различение только двух категорий) небольшая свёрточная сеть, разработанная специально под задачу, может оказаться эффективнее MobileNet. Обычно состоит из 2–3 слоёв.
Как выбрать?
Выбор модели можно направлять следующими критериями:
| Data Type | Simple Problem | Complex Problem |
|---|---|---|
| Sensors (accelerometer, gyroscope) | Simple neural network | Convolutional network (1D-CNN) |
| Audio | Simple neural network with MFCC | Convolutional network with spectrogram |
| Images | Small custom CNN | MobileNet |
На практике Edge Impulse автоматически предлагает подходящую архитектуру на основе типа данных и выбранного железа, упрощая это решение для тех, кто только начинает работать с Edge AI.
Настройка параметров обучения
Параметры обучения управляют процессом обучения модели. Их правильная настройка важна для получения хороших результатов [14].
Learning rate (скорость обучения)
Scorость обучения определяет, насколько сильно модель корректирует внутренние веса на каждом шаге обучения. Это самый важный параметр.
Его можно представить как регулировку крана горячей воды в душе. Если повернуть слишком резко (высокая скорость), вы будете прыгать от ледяной воды к кипятку, так и не найдя нужную температуру. Если поворачивать слишком осторожно (низкая скорость), вы будете ждать очень долго и рискуете остановиться на неоптимальной температуре. Типичное начальное значение — 0.005.
Количество эпох
Эпоха — это один полный проход по всем обучающим данным. Количество эпох определяет, сколько раз модель просматривает весь датасет.
При малом числе эпох модель не успела достаточно раз увидеть данные, чтобы выучить паттерны. При слишком большом числе эпох модель может начать запоминать обучающие данные вместо того, чтобы обучаться общим паттернам. Это называется переобучением (overfitting) и является одной из самых распространённых проблем в машинном обучении.
Edge Impulse включает технику раннего останова (early stopping), которая отслеживает производительность модели во время обучения и автоматически останавливает процесс, когда модель перестаёт улучшаться, предотвращая переобучение.
Размер батча (batch size)
Размер батча определяет, сколько образцов модель обрабатывает перед корректировкой весов. Типичные значения для Edge AI проектов — от 16 до 32. В целом этот параметр оказывает меньшее влияние, чем скорость обучения и количество эпох, а значения по умолчанию в Edge Impulse обычно подходят для большинства проектов.
Оптимизация для устройства
Обучение выполняется на компьютере или в облаке, но результирующая модель должна работать на микроконтроллере с очень ограниченными ресурсами. Оптимизация уменьшает размер модели, чтобы она поместилась на устройстве без значительной потери точности [15].
Практические соображения
При обучении модели для Edge AI важно помнить, что у микроконтроллеров значительно меньше памяти, чем у компьютера. Поэтому рекомендуется начинать с небольшой простой модели и увеличивать сложность только при недостаточной производительности. Также предпочтительно снижать разрешение входных данных, когда это возможно: для изображений переход с 160×160 до 96×96 пикселей существенно снижает требования к памяти, а для сигналов датчиков аналогичный эффект даёт сокращение длительности окна анализа.
Квантизация, которую мы изучали в модуле 1.2, — фундаментальный шаг на этом этапе. Преобразование значений модели с 32 бит до 8 бит уменьшает размер примерно в 4 раза при минимальной потере точности.
Оптимизация с Edge Impulse
Edge Impulse автоматизирует большую часть оптимизации. При выборе целевого железа (например, Arduino UNO R4 WiFi) платформа автоматически рассчитывает, сколько памяти займёт модель, сколько времени займёт каждый инференс и помещается ли модель на устройство [6]. Если модель слишком велика, платформа предлагает конкретные корректировки: уменьшение числа слоёв или входного разрешения.
Фаза 4: Оценка модели
Оценка определяет, соответствует ли модель требованиям проекта, прежде чем её развернуть на реальном устройстве. Строгая оценка предотвращает проблемы в эксплуатации.
Ключевые метрики по типу задачи
В модуле 1.2 мы представили метрики оценки для каждого типа задачи. Теперь посмотрим, как их интерпретировать в практическом контексте Edge AI.
Матрица ошибок (Confusion Matrix)
Матрица ошибок — наиболее полезный инструмент для понимания поведения классификатора. Это таблица, показывающая для каждой реальной категории, сколько образцов было классифицировано правильно, а сколько — ошибочно.
Например, для классификатора трёх жестов (влево, вправо, вверх), оценённого на 150 тестовых образцах:
| Predicted: Left | Predicted: Right | Predicted: Up | |
|---|---|---|---|
| Actual: Left | 45 | 3 | 2 |
| Actual: Right | 4 | 42 | 4 |
| Actual: Up | 1 | 5 | 44 |
Значения на диагонали (45, 42, 44) — правильные предсказания. Значения вне диагонали — ошибки. Эта матрица говорит нам, что модель права в 87,3% случаев (131 из 150). Но она также раскрывает более конкретную информацию: жест «вправо» часто путается с «вверх» (4 случая), что указывает на схожесть двух жестов. Нужно больше данных, чтобы их различить.
Выбор правильной метрики
Выбор приоритетной метрики зависит от последствий каждого типа ошибки в конкретном приложении.
В системе безопасности пропуск реального вторжения (ложноотрицательный результат) значительно серьёзнее, чем ложная тревога (ложноположительный). В этом случае приоритетная метрика — чувствительность (recall): мы хотим, чтобы модель обнаруживала как можно больше реальных событий, даже если иногда генерирует ложные тревоги.
В системе классификации продуктов, где каждый ложноположительный результат влечёт потери (например, выбраковка хорошего продукта), важнее точность (precision): мы хотим, чтобы модель была права, когда говорит, что продукт дефектный.
Метрики устройства
Помимо точности модели, Edge AI оценивает специфические характеристики железа:
- Задержка инференса (inference latency): сколько времени модели требуется для обработки входных данных и генерации предсказания. Должна быть достаточно малой для приложения (например, менее 500 мс для распознавания речи).
- Использование памяти: сколько места занимает модель на устройстве. Должна оставлять достаточно места для остальной части программы.
- Энергопотребление: сколько энергии расходует каждый инференс. Актуально для устройств с питанием от батареи.
Валидация и тестирование
Процесс валидации и тестирования гарантирует, что модель корректно работает с данными, которые она не видела во время обучения.
Обнаружение переобучения и недообучения
Во время обучения производительность отслеживается как на обучающих, так и на валидационных данных. Соотношение двух показателей выявляет потенциальные проблемы.
Переобучение (overfitting) возникает, когда модель показывает отличные результаты на обучающих данных, но плохо работает на новых. Это похоже на студента, который заучивает ответы к конкретному экзамену, но не может решить аналогичные задачи с другой формулировкой. Решения: собрать больше данных, применить аугментацию или использовать более простую модель.
Недообучение (underfitting) возникает, когда модель плохо работает как на обучающих, так и на новых данных. Это указывает на то, что модель слишком проста для задачи. Решения: использовать более сложную модель, обучать больше эпох или улучшить извлечение признаков.
Тестирование на реальном устройстве
Финальную оценку следует проводить непосредственно на граничном устройстве, а не только на компьютере. Производительность может различаться в двух средах, поскольку квантизация может незначительно влиять на точность, реальные условия (шум, освещение) могут отличаться от лабораторных, а ограничения памяти и скорости микроконтроллера способны влиять на поведение модели.
Интерпретация результатов
Правильная интерпретация результатов так же важна, как и их получение. Несколько ключевых аспектов, которые следует учитывать.
Представительность тестовых данных
Результаты оценки надёжны только в том случае, если тестовые данные отражают реальные условия использования. Модель распознавания речи, обученная и оценённая исключительно на голосах молодых взрослых в тихой обстановке, может показывать 95% точности, но отказывать при развёртывании в шумной среде с пользователями разного возраста.
Анализ ошибок
Помимо глобальных метрик, изучение отдельных ошибок модели даёт ценную информацию для её улучшения. Это включает: определение наиболее часто путаемых классов с помощью матрицы ошибок, изучение случаев, когда модель ошибается с высокой уверенностью (неверные, но уверенные предсказания), и поиск паттернов в ошибках — например, специфических условий, вызывающих систематические сбои.
Этот анализ направляет решения о том, что улучшать: нужно ли больше данных для определённых классов, достаточно ли разнообразны условия сбора, подходит ли тип модели для задачи?
Итоги
В этом модуле мы подробно разобрали четыре центральные фазы рабочего процесса Edge AI.
Сбор данных — основа каждого проекта. Качество и разнообразие данных важнее их сырого количества. Чётко определённый протокол сбора, данные, представительные для реальной среды, и правильная разметка — фундамент успеха модели.
Предобработка преобразует сырые данные в представления, пригодные для обучения. Очистка удаляет дефектные данные, нормализация унифицирует масштабы, извлечение признаков захватывает релевантную информацию, а аугментация помогает компенсировать ограниченные датасеты.
Обучение модели требует выбора подходящего типа модели для задачи и доступного железа: параметры обучения, особенно скорость обучения и количество эпох, существенно влияют на производительность. Оптимизация для граничных устройств, включая квантизацию, — обязательный шаг.
Оценка выходит за рамки получения высокого числа точности. Она требует понимания матрицы ошибок, выбора подходящих метрик с учётом последствий каждого типа ошибки, проверки правильности обобщения модели и тестирования на реальном устройстве в представительных условиях.
В следующем модуле мы интегрируем все эти концепции в переходном занятии к практической реализации с платой Arduino UNO R4 WiFi и платформой Edge Impulse.
Список литературы
[1] P. Warden and D. Situnayake, TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers. Sebastopol, CA, USA: O'Reilly Media, 2019.
[2] Y. Zhang, N. Suda, and L. Lai, "Hello Edge: Keyword spotting on microcontrollers," arXiv preprint arXiv:1711.07128, 2017.
[3] A. G. Howard et al., "MobileNets: Efficient convolutional neural networks for mobile vision applications," arXiv preprint arXiv:1704.04861, 2017.
[4] R. Kallimani et al., "TinyML: Enabling of inference deep learning models on ultra-low-power IoT edge devices for AI applications," Micromachines, vol. 13, no. 6, p. 851, May 2022, doi: 10.3390/mi13060851.
[5] A. Garcia, J. Tardos, J. L. Ferrando, D. Aguinaga, D. Perez, and L. Estanga, "Embedded AI and TinyML: A practical analysis of workflows and libraries," in Distributed Computing and Artificial Intelligence (DCAI 2024), vol. 1259, Lecture Notes in Networks and Systems. Cham, Switzerland: Springer, 2025, pp. 1-10.
[6] Edge Impulse, "Edge Impulse Documentation," 2024. [Online]. Available: https://docs.edgeimpulse.com/
[7] I. Goodfellow, Y. Bengio, and A. Courville, "Machine learning basics," in Deep Learning. Cambridge, MA, USA: MIT Press, 2016, ch. 5. [Online]. Available: https://www.deeplearningbook.org/contents/ml.html
[8] S. Ioffe and C. Szegedy, "Batch normalization: Accelerating deep network training by reducing internal covariate shift," in Proc. Int. Conf. Mach. Learn. (ICML), Lille, France, 2015, pp. 448-456.
[9] J. Lin, L. Zhu, W.-M. Chen, W.-C. Wang, and S. Han, "Tiny machine learning: Progress and futures," IEEE Circuits Syst. Mag., vol. 23, no. 3, pp. 8-34, 2023, doi: 10.1109/MCAS.2023.3302182.
[10] C. Shorten and T. M. Khoshgoftaar, "A survey on image data augmentation for deep learning," J. Big Data, vol. 6, no. 1, p. 60, Jul. 2019, doi: 10.1186/s40537-019-0197-0.
[11] Y. Abadade, A. Temouden, H. Bamoumen, N. Benamar, Y. Chtouki, and A. S. Hafid, "A comprehensive survey on TinyML," IEEE Access, vol. 11, pp. 96892-96922, 2023, doi: 10.1109/ACCESS.2023.3294111.
[12] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L. Chen, "MobileNetV2: Inverted residuals and linear bottlenecks," in Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), Salt Lake City, UT, USA, 2018, pp. 4510-4520, doi: 10.1109/CVPR.2018.00474.
[13] V. Chandola, A. Banerjee, and V. Kumar, "Anomaly detection: A survey," ACM Comput. Surv., vol. 41, no. 3, pp. 1-58, Jul. 2009, doi: 10.1145/1541880.1541882.
[14] V. J. Reddi et al., "Widening access to applied machine learning with TinyML," Harvard Data Science Review, vol. 4, no. 1, 2022, doi: 10.1162/99608f92.a31e8c72.
[15] R. David et al., "TensorFlow Lite Micro: Embedded machine learning for TinyML systems," in Proc. Mach. Learn. Syst. (MLSys), 2021, pp. 800-811.