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

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

галерея

ИИ почти всех обгонит? Прогнозы звучат громко, но есть нюансы…
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

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