Image

ESP32 + LD2410: Архитектуры нейронных сетей для классификации движений

Схема подключения.
Схема подключения.
Движения для классификации.
Движения для классификации.

Микроконтроллеры давно перестали быть простыми устройствами для управления датчиками и исполнительными механизмами. Сегодня, благодаря библиотекам вроде TensorFlow Lite, даже компактный ESP32 способен выполнять инференс нейросетей в реальном времени. В этой статье я расскажу о серии экспериментов по классификации движений человека с помощью сверхширокополосного радарного датчика LD2410 и различных базовых архитектур машинного обучения, таких как полносвязная, свёрточная, рекуррентная нейронные сети и трансформер (механизм внимания).

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

Постановка задачи

LD2410 выдаёт каждую секунду вектор из 18 значений. Для классификации используется окно в 10 секунд (10 последовательных векторов), что формирует матрицу 10×18. Цель — по этим данным распознать, что происходит в поле зрения радара: человек стоит, бежит, прыгает, приседает, или никого нет.

Для обучения сначала нужно собрать датасет. Я использовал веб-интерфейс на ESP32 (реализован в отдельном скетче), где можно выбрать категорию движения, запустить запись и скачать файл с данными. После этого данные передаются в ноутбуки на Python, где выполняется предобработка, обучение и конвертация моделей.

📂 GitHub-репозиторий с исходным кодом

Полносвязная нейронная сеть

📹 VK: https://vkvideo.ru/video-229753773_456239020
📂 GitHub: https://github.com/DenissStepanjuk/ESP32.LD2410.movements-classification-with-Neural-Networks/tree/main/02_LD2410_TFL_Linear

Полносвязная нейронная сеть
Полносвязная нейронная сеть

Самый простой способ применить нейросеть — использовать полносвязную сеть. Так как окно наблюдения 10 секунд, а каждая секунда даёт 18 чисел от радара, то следует «развернуть» окно данных в вектор длины 180 (10×18) и подать его на вход полносвязной сети, где каждый слой преобразует входные данные через взвешенные связи и нелинейные функции, но не видит ни порядок во времени, ни локальные связи между фичами. По сути, это «статическая» модель, которая смотрит на весь 10-секундный кусок сразу.

  • Точность: ~93.5%

  • Простая реализация.

  • Легко конвертируется в TFLite и запускается на ESP32.

Сверточная нейронная сеть

📹 VK: https://vkvideo.ru/video-229753773_456239021
📂 GitHub:https://github.com/DenissStepanjuk/ESP32.LD2410.movements-classification-with-Neural-Networks/tree/main/03_LD2410_TFL_CNN

Свёртка.
Свёртка.

Свёрточная нейронная сеть — это особый тип реализации искусственного интеллекта, который использует специальную математическую операцию, называемую свёрткой, для обработки данных из изображений. Свёртка выполняется путём перемножения двух матриц и получения третьей, меньшей матрицы. Сеть принимает входное изображение и использует фильтр (ядро) для создания карты признаков, описывающей изображение. В операции свёртки фильтр (обычно матрица 2×2 или 3×3) скользит по матрице изображения. Соответствующие числа в обеих матрицах перемножаются и складываются, образуя одно число, описывающее данный участок изображения. Этот процесс повторяется для всего изображения.

Псевдоизображения сформированные из данных с LD2410
Псевдоизображения сформированные из данных с LD2410

Так как на вход свёрточной сети необходимо подать изображение, то потребуется сформировать из данных «псевдоизображение» 10×18. Если просто посмотреть на эти «псевдоизображения», то видно, что изображения внутри каждой категории похожи между собой, но если сравнить изображения из разных категорий, то они будут сильно отличаться друг от друга.

  • Точность: ~95.5%

  • CNN лучше улавливает различия между движениями.

  • Легко интегрируется в ESP32 через TFLite.

  • Производительность лучше, чем у полносвязной модели.

Рекуррентная нейронная сеть

📹 VK: https://vkvideo.ru/video-229753773_456239022
📂 GitHub: https://github.com/DenissStepanjuk/ESP32.LD2410.movements-classification-with-Neural-Networks/tree/main/04_LD2410_TFL_RNN

Рекуррентная нейронная сеть
Рекуррентная нейронная сеть

Рекуррентная нейронная сеть — это особый тип нейросети, которая предназначена для работы с последовательными данными, такими как текст, речь или временные ряды. В отличие от обычных сетей, RNN учитывает не только текущий вход, но и контекст из предыдущих шагов. На каждом шагу сеть принимает входные данные и скрытое состояние, содержащее информацию о предыдущих шагах. Сеть обновляет скрытое состояние, что позволяет ей запоминать последовательность событий. Это делает RNN особенно полезными для задач обработки естественного языка, распознавания речи и анализа временных рядов. Главная особенность рекуррентных сетей — наличие “памяти”, которая хранит информацию о прошлых шагах и помогает точнее интерпретировать текущие данные.

Данные с LD2410 собранные за 10 секунд — это временные последовательности, которые необходимо передавать шаг за шагом на вход RNN, на каждом шаге обновляется скрытое состояние с учётом информации о предыдущих шагах. Таким образом передав на вход сети 10 векторов по 18 значений в каждом получим предсказание.

  • SimpleRNN: ~94.5%.

  • GRU: ~93%.

  • LSTM: до 98.5% (лучший результат на PC).

Проблема заключается в том, что TFLite Micro не поддерживает RNN для ESP32. Поэтому пришлось реализовать ручной инференс SimpleRNN. Для чего веса выгружаются в weights.h, а скрытое состояние обновляется через матричные операции в Arduino-скетче.

Трансформер и механизм внимания

📹 VK: https://vkvideo.ru/video-229753773_456239023
📂 GitHub: https://github.com/DenissStepanjuk/ESP32.LD2410.movements-classification-with-Neural-Networks/tree/main/05_LD2410_TFL_Attention_and_Transformers

Трансформер и механизм внимания
Трансформер и механизм внимания

text{Attention}(Q, K, V) = text{Softmax} big( frac{QK^T}{sqrt{d_k}} big)V

Трансформер применяется для анализа последовательностей. В отличие от RNN, которые обрабатывают данные пошагово и хранят скрытое состояние, Transformer использует механизм Self-Attention, где каждый вектор «смотрит» на все остальные, чтобы извлечь более полное представление. Это особенно важно для временных рядов, где нужно учитывать взаимосвязи между всеми моментами времени.

С LD2410 каждую секунду мы получаем вектор из 18 признаков. Для одного предсказания формируем окно из 10 последовательных векторов → матрица 10×18. Именно эта матрица подаётся на вход модели Transformer.

Вектора Queries, Keys и Values это вектора входной последовательности пропущенные через три разных полносвязных слоя чтобы выделить из них разную информацию.

Queries — запрос

Вектор Q — вектор входной последовательности пропущенный через полносвязный слой Queries от лица которого идёт обращение ко всем векторам входной последовательности пропущеным через полносвязный слой Keys, чтобы получить информацию о том как вектор Q связан со всеми векторами входной последовательности.

Keys — ключ

Вектор K — вектор входной последовательности пропущенный через полносвязный слой Keys к которому обращается вектор Q чтобы выявить какую информацию вектор K может отдать о том как они связаны.

QK^T — скалярное произведение вектора Q на вектор K, числовое значение (коэфицент) отражающие как сильно связаны между собой вектор Q с вектором K.

Values — значения

Вектор V — вектор входной последовательности пропущенный через полносвязный слой Values чтобы выделить из него полезную информацию. В дальнейшем каждый вектор V будет умножен на соответствующий коэфицент QK^T, после чего все отмаштабированные вектора V будут сложены между собой чтобы сформировать новый вектор содержащий обобщённую информацию обо всех векторах. Данный вектор встанет на место вектора Q.

В простейшей реализации все новые вектора усредняются (mean aggregation) и передаются в полносвязный классификатор → на выходе softmax выдаёт предсказание движения (Empty, Stand, Run, Jump, Squat).

  • Однослойный Transformer: ~84.5% точность.

  • Трёхслойный Transformer: ~78% точность

Заключение

  • Линейная модель — отличный старт, легко запускать на ESP32.

  • CNN — оптимальный выбор: высокая точность, простая интеграция.

  • RNN — показывает лучшие результаты на PC (особенно LSTM), но сложная реализация для ESP32.

  • Transformer — перспективное направление, но требует больше данных и мощностей.

Эти эксперименты показывают, что даже простой ESP32 в связке с дешёвым LD2410 способны решать задачи классификации движений с помощью нейросетей. Главное — правильно выбрать архитектуру и учитывать ограничения микроконтроллера.

Мы рассмотрели базовые подходы к машинному обучению на ESP32 с датчиком LD2410. От простых полносвязных сетей до современных трансформеров — каждый метод имеет свои плюсы и минусы. Если вы хотите повторить эксперименты или попробовать улучшить результаты, все исходники доступны в репозитории.

Отдельно хочу порекомендовать исследование «UWB‑gestures, a public dataset of dynamic hand gestures acquired using impulse radar sensors», которое навело меня на мысль об этом проекте. Я подробно разобрал это исследование в своей публикации.

Источник: habr.com

✅ Найденные теги: ESP32 +, новости
Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых