Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Демонстрации машинного обучения reTerminal (Edge Impulse и Arm NN)

8 ГБ оперативной памяти 32 ГБ eMMC Raspberry Pi CM для разработки, с сенсорным экраном и множеством интерфейсов.

История

Последние несколько опубликованных мною статей касались TinyML с Wio Terminal - отладочной платы на базе Cortex M4F с ЖК-экраном в прочном пластиковом корпусе. Seeed studio, компания заставила Wio Terminal развить эту идею и недавно анонсировала reTerminal - плату разработки на базе вычислительного модуля Raspberry Pi 4 с ЖК-экраном в прочном пластиковом корпусе.

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

Технические характеристики

reTerminal питается от вычислительного модуля Raspberry Pi 4 (CM4) с четырехъядерным процессором Cortex-A72, работающим на частоте 1,5 ГГц. Версия модуля CM4, используемая для reTerminal, имеет 4 ГБ ОЗУ и 32 ГБ хранилища eMMC, что сокращает время загрузки и обеспечивает более плавное взаимодействие с пользователем. Что касается периферийных устройств, это 5-дюймовый емкостный сенсорный экран IPS с разрешением 1280 x 720, акселерометр, модуль RTC, зуммер, 4 кнопки, 4 светодиода и датчик освещенности. А для подключения новая плата имеет двухдиапазонный Wi-Fi 2,4 / 5 ГГц и Bluetooth 5.0 BLE, а также порт Gigabit Ethernet на боковой стороне.

reTerminal может питаться от того же источника питания, что и для Raspberry Pi 4, 5V2A, однако в официальном описании рекомендуется источник питания 4A, особенно при подключении большего количества периферийных устройств. Для демонстраций я использовал стандартный блок питания 5V2A от неизвестной компании и не получил предупреждения о пониженном напряжении. Сказав это, если сомневаетесь, используйте 5V4A.

По умолчанию ретерминалы поставляются с предустановленной 32-битной ОС Raspbian с установленными драйверами устройств. Однако, поскольку для приложений машинного обучения 64-разрядная ОС может дать значительный импульс, Seeed studio также предоставит 64-разрядную версию образа ОС Raspbian с предустановленными драйверами для reTerminal.

Также включены встроенная экранная клавиатура и простая демонстрация QT5. Сенсорный экран реагирует, но поскольку Raspbian OS не является мобильной операционной системой и не оптимизирована для сенсорных экранов, иногда может быть немного проблематично нажимать на более мелкие элементы пользовательского интерфейса. Стилус очень помогает.

Встроенная экранная клавиатура появляется, когда вам нужно ввести текст, и исчезает после этого. Вы можете изменить это поведение в настройках. Таким образом, можно использовать reTerminal в качестве портативного Raspberry Pi, хотя для этого вам может потребоваться взглянуть на другую ОС, например Ubuntu touch, которая работает с Raspberry Pi 4, но в настоящее время находится на стадии бета-разработки и в значительной степени экспериментальна. Основным вариантом использования reTerminal является отображение пользовательских интерфейсов, созданных с помощью QT, LVGL или Flutter. Давайте запустим пример приложения QT, которое показывает характеристики и параметры устройства, данные с датчиков и пример платы управления для воображаемого завода. Когда элементы интерфейса большие, пользоваться сенсорным экраном очень приятно.

Обнаружение объекта Edge Impulse

Мы собираемся использовать новейшие функции платформы разработки Edge Impulse, поддержку развертывания Linux. Мы можем легко обучить модель обнаружения объектов, собирая образцы с помощью камеры, подключенной к reTerminal, затем обучаться в облаке и автоматически загружать и запускать обученную модель с помощью edge-impulse-linux-runner.

Процедура установки Edge Impulse CLI описана в документации. Все сводится к нескольким простым шагам:

 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 установить пользователя root &&sudo npm install edge-impulse-linux -g --unsafe-perm

После Edge Impulse CLI установлен, убедитесь, что у вас подключена камера - я использовал простую веб-камеру USB, если вы используете камеру Raspberry Pi, не забудьте включить ее в raspi-config.

Прежде чем начать сбор данных для обнаружения объектов, убедитесь, что в Личном кабинете в разделе «Информация о проекте> Метод маркировки» выбран параметр «Ограничивающие рамки (обнаружение объекта)».

Сделайте не менее 100 изображений для каждого класса, который хотите узнать. В настоящее время вы можете загружать свои собственные изображения, нажав Показать параметры - Загрузить данные на вкладке Сбор данных. Но пока невозможно загрузить аннотации ограничивающих рамок, поэтому загружаемые изображения все равно нужно будет пометить вручную. После того, как у вас будет достаточно аннотированных изображений, перейдите в раздел «Создать импульс», выберите «Изображение для блока обработки» и «Обнаружение объектов (изображения) для блока обучения».

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

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

Одна из лучших особенностей недавно добавленной поддержки Linux для Edge Impulse - это edge-impulse-linux-runner. Когда обучение модели завершено и вы удовлетворены точностью набора данных проверки (который автоматически отделяется от данных обучения), вы можете протестировать модель в режиме динамической классификации, а затем перейти к ее развертыванию на устройстве. В этом случае это так же просто, как запустить

 edge-impulse-linux-runner 

в терминале. Модель будет автоматически загружена и подготовлена, затем результат вывода будет отображаться в браузере, вы увидите строку на своем терминале, похожую на:

Хотите видеть в браузере видео с камеры и классификацию в реальном времени? Перейти к http://192.168.1.19:4912

Щелкните ссылку в своем терминале, чтобы увидеть изображение с камеры в реальном времени.

Базовая модель, используемая для обучения передачи, - это MobileNetv2 SSD, она довольно велика, поэтому даже со всеми оптимизациями мы получаем около 2 кадров в секунду или ~ 400 мс. для кадра - видеопоток выглядит довольно отзывчивым, но это потому, что вывод выполняется не для каждого кадра, вы можете четко видеть, что если вы обнаруживаете объект, а затем он исчезает с изображения, ограничивающая рамка для него остается в течение некоторого времени . Поскольку поддержка Linux - это новая функция в Edge Impulse, я уверен, что в ближайшем будущем она получит множество улучшений, позволяющих быстрее выводить и загружать аннотированные пользователем данные.

Ускоренный вывод ARM NN

Хотя мы знаем, что Raspberry Pi 4 - не лучшая плата для логического вывода машинного обучения, поскольку у него нет для этого аппаратного ускорителя, мы все же можем достичь скорости логического вывода выше, чем в реальном времени

а) с использованием меньшего режима

б) убедиться, что мы используем все 4 ядра и инструкции Single Instruction Multiple Data (SIMD), когда несколько элементов обработки в конвейере выполняют операции с несколькими точками данных одновременно, что доступно с расширением архитектуры оптимизации Neon для процессоров Arm.

Источник: Демонстрации ретерминального машинного обучения (Edge Impulse и Arm NN)


Производственный процесс

  1. Цепочка поставок и машинное обучение
  2. ADLINK:периферийное решение для искусственного интеллекта и машинного обучения с множественным доступом, устан…
  3. Связь MQTT между NodeMCU и Raspberry Pi 3 B +
  4. Датчик температуры Python и Raspberry Pi
  5. Датчик температуры и освещенности Raspberry Pi
  6. Управление датчиком и исполнительным механизмом Raspberry Pi
  7. Повышение надежности и улучшение результатов обслуживания с помощью машинного обучения
  8. NXP удваивает объем машинного обучения на периферии
  9. Должны ли закупщики опасаться или приветствовать ИИ и технологии машинного обучения?
  10. AWS укрепляет свои предложения в области искусственного интеллекта и машинного обучения