Практикум по машинному обучению на reTerminal: Edge Impulse и ARM NN Demo
Плата разработки на базе Raspberry Pi Compute Module с 8 ГБ ОЗУ, 32 ГБ eMMC, 5-дюймовым сенсорным экраном и множеством интерфейсов.
История
Предыдущие посты исследовали TinyML на Wio Terminal — плате Cortex-M4F с rugged LCD. Seeed Studio расширило концепцию с reTerminal — платой на базе Raspberry Pi 4 Compute Module с интегрированным дисплеем.
Я распаковал reTerminal, записал короткое демо-видео и пишу эту сопутствующую статью для пошагового прохода по настройке окружения и ML-демонстрациям.
Спецификации
reTerminal питается Raspberry Pi Compute Module 4 с четырехъядерным Cortex-A72 CPU 1,5 ГГц, 4 ГБ ОЗУ и 32 ГБ eMMC. Эти спеки дают быструю загрузку и отзывчивый UX. 5-дюймовый IPS-сенсорный дисплей 1280×720, встроенные периферия: акселерометр, RTC, buzzer, четыре тактильные кнопки, четыре статусных LED, датчик света. Связь: двухдиапазонный 2,4/5 ГГц Wi-Fi, Bluetooth 5.0 BLE, Gigabit Ethernet.
Требования к питанию как у Raspberry Pi 4: стандартный 5 В/2 А адаптер достаточно, но производитель рекомендует 5 В/4 А для максимальной стабильности, особенно с дополнительными периферийными. В наших демо 5 В/2 А работал надежно, но советуем 5 В/4 А для запаса.
Плата идет с 32-битным Raspbian OS, предустановленным со всеми драйверами. Для ML-нагрузок 64-битный образ Raspbian от Seeed Studio дает заметный прирост производительности.
Экранная клавиатура появляется автоматически при вводе текста и может быть отключена в настройках. Raspbian не мобильная ОС, но интерфейс пригоден для крупных UI-элементов. Для более touch-friendly опыта рассмотрите экспериментальные ОС вроде Ubuntu Touch.
Запуск примера QT-приложения демонстрирует способность платы отображать данные сенсоров и управлять интерфейсами. При должном размере touch-таргетов 5-дюймовый экран очень отзывчив.
Обнаружение объектов с Edge Impulse
Новая поддержка Linux-деплоя Edge Impulse позволяет обучать и запускать модели прямо на reTerminal. Захватывайте изображения с подключенной камеры, обучайте модель в облаке, деплойте локально через edge-impulse-linux-runner.
Установка проста:
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y gcc g++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
npm config set user root && sudo npm install edge-impulse-linux -g --unsafe-perm
После установки Edge Impulse CLI подключите камеру — например, USB-вебкамеру. Для Raspberry Pi Camera Module включите через raspi-config.
Перед сбором данных убедитесь, что в Dashboard → Project info → Labeling method выбрано Bounding boxes (object detection). Соберите минимум 100 изображений на класс. Сырые изображения можно загрузить, но аннотации нужно делать вручную во вкладке Data Acquisition.
После сбора и разметки датасета создайте Impulse: выберите блок обработки Image и обучающий блок Object Detection (Images). Так как скромный датасет не может обучить большую сеть с нуля, мы дообучаем предобученную MobileNetV2-SSD. Дефолтные значения эпох, learning rate и confidence threshold обычно подходят; детекционный пайплайн не раскрыт в Expert mode, поэтому параметры фиксированы.
Обучение идет на CPU и может занять время в зависимости от размера датасета. Рекомендуется напиться чаем/кофе.
По завершении обучения запустите edge-impulse-linux-runner для скачивания модели и старта живого инференса:
edge-impulse-linux-runner
Runner автоматически готовит модель и стримит результаты в браузер. В терминале появится строка:
Want to see a feed of the camera and live classification in your browser? Go to https://192.168.1.19:4912
Перейдите по ссылке для просмотра живого видеопотока и вывода инференса. MobileNetV2-SSD дает ~2 FPS (~400 мс на кадр). Поскольку инференс не на каждом кадре, bounding boxes могут немного висеть после исчезновения объекта.
Linux-поддержка Edge Impulse еще развивается, ждите улучшений производительности и более плавных workflow загрузки данных в ближайшем будущем.
Ускоренный инференс с ARM NN
Хотя Raspberry Pi 4 не имеет выделенного ML-ускорителя, можно превзойти real-time инференс:
- Выбор легковесного режима инференса.
- Использование всех четырех CPU-ядер и ARM NEON SIMD-расширений для параллельной обработки.
ARM NN runtime, оптимизированный для NEON, дополнительно бустит производительность, компилируя модель в высокоэффективные ядра.
Источник: reTerminal Machine Learning Demos (Edge Impulse and Arm NN)
Производственный процесс
- Использование машинного обучения для оптимизации управления цепочкой поставок MRO
- ADLINK и Charles Industries представляют первое полное микро-краевое AI/ML решение для 5G столбовых развертываний
- Бесшовная MQTT интеграция: NodeMCU DHT22 сенсоры с Raspberry Pi 3 B+ как брокер
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
- Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
- Повышение надежности и снижение простоев: Машинное обучение трансформирует обслуживание
- NXP ускоряет Edge AI с инструментарием eIQ
- Принятие ИИ и машинного обучения в закупках: возможности, вызовы и лучшие практики
- AWS расширяет AI и ML сервисы новыми функциями и интеграциями