Поскольку миллиарды устройств, подключенных к Интернету, больше не являются далекой реальностью, появляется все больше и больше интеллектуальных шлюзов, необходимых для работы в качестве основы сложной инфраструктуры для Интернета вещей (IoT). Растет потребность в большем количестве шлюзов, которые могли бы работать с низким энергопотреблением в ограниченных средах, а также иметь возможность обрабатывать как можно больше данных, также называемых пограничными шлюзами.

Пограничный шлюз обрабатывает данные датчиков, в некоторых случаях делает выводы и обнаруживает любые аномалии перед отправкой данных в облако. Эта ограниченная возможность очень важна, чтобы избежать более высоких расходов, связанных с использованием облачной инфраструктуры. Кроме того, чтобы снизить стоимость аппаратной инфраструктуры, существует тенденция к разработке пограничного шлюза на основе микроконтроллеров (MCU). Пограничный шлюз MCU может работать в операционной системе реального времени (RTOS) и выполнять определенное количество задач для экономии энергии при работе с ограниченным объемом ОЗУ и низким объемом флэш-памяти.

Например, простая метеостанция для сельскохозяйственных полевых работ должна обрабатывать данные о температуре и влажности. Для этого простого приложения требуется контроллер с АЦП (аналого-цифровой преобразователь) для выборки аналоговых значений и возможности GPRS через последовательный интерфейс. Нет необходимости в многоцелевом шлюзе на базе высокопроизводительного процессора. Однако необходимо обнаруживать шаблон данных датчиков и отправлять в облако только ценные данные или аномалии. Наличие таких ограниченных возможностей с минимально возможной мощностью невозможно без добавления возможностей искусственного интеллекта/машинного обучения (AI/ML). на краю.

Встраивание обученных моделей в код встроенного ПО позволяет использовать возможности AI/ML и обеспечивает интеллектуальное преимущество. Возьмем пример метеостанции: в тропическом климате колебания влажности больше, и потребность в контролируемом орошении играет важную роль в урожайности. Получение своевременных данных и обнаружение любых аномалий в информации о влажности играет важную роль в принятии прогностических решений. Таким образом, развертывание моделей логического вывода машинного обучения на периферии вместе с периферийной аналитикой приводит к уточнению данных на периферии.

Модели AI/ML работают с определенным набором фреймворков, таких как Keras, TFLite (TensorFlow Lite), ONNX, Lasagne, Caffe, Convetjs и т. д. Написанный на C++ 11, TFLite официально обеспечивает поддержку микроконтроллеров серии ARM Cortex-M. архитектура. Существует прямая поддержка некоторых популярных платформ для разработки. Несмотря на все такие поддержки, существуют некоторые ограничения, которые заключаются в следующем:

  • Поддержка ограниченного подмножества операций TensorFlow.
  • Поддержка ограниченного набора устройств
  • Низкоуровневый C++ API, требующий ручного управления памятью
  • Обучение на устройстве не поддерживается

Кроме того, разработка моделей обучения на основе необработанных данных датчиков с использованием этих отдельных платформ с нуля требует знаний в области науки о данных, алгоритмов и других методов машинного обучения. Увеличение времени выхода на рынок — самая большая проблема для внедрения AI/ML на периферии.

Поскольку ARM является ведущим выбором архитектуры для разработки шлюза на основе MCU, мы попытались найти партнеров, обеспечивающих поддержку AI/ML. Мы нашли полный список поставщиков решений, которые являются партнерами экосистемы STM32. Эти поставщики решений не только устранили упомянутое выше ограничение, но и предоставили комплексное решение для комплексной разработки встроенного ПО.

Мы попытались разобраться в деталях двух основных решений — Cartesiam AI и Edge Impulse. Ниже приведено подробное описание каждой из этих платформ.

Cartesiam.AI — Студия искусственного интеллекта Nanoedge

Cartesiam — один из ведущих партнеров экосистемы STM, обладающий опытом в области искусственного интеллекта. Компания Catesium разработала студию искусственного интеллекта NanoEdge — революционную технологию, обеспечивающую машинное обучение и анализ искусственного интеллекта в небольших устройствах с низким энергопотреблением, таких как микроконтроллеры STM32. Студия искусственного интеллекта NanoEdge упрощает создание конвейера на основе данных. Он автоматически находит и генерирует модель, необходимую для ваших нужд, и генерирует код. Затем код можно интегрировать в ваше приложение и принимать решения, основанные на AI/ML.

Он позволяет загружать сложные модели ИИ в стандартные процессоры ARM для расширенного анализа данных с нескольких датчиков. Он не только выполняет анализ, но и позволяет обучаться внутри микроконтроллера и без помощи сложной облачной инфраструктуры.

Существует 3 типа модели ценообразования — Entry, Pro и Corp. Начальный уровень — это 2 месяца пробного аккаунта с ограниченным функционалом. Разработчикам необходимо загрузить программное обеспечение студии искусственного интеллекта nanoedge, чтобы начать с ним работать. Прикрепленный скриншот программы -

Подключение устройства

Одной из ключевых особенностей этой платформы является гибкость выбора целевой архитектуры ARM, такой как M0, M0+, M1, M3, M4, M23, M33, M7 и т. д. Последние обновления этой платформы обеспечивают прямую поддержку плат STM Nucleo.

Получение данных

Захват необработанных данных с датчика возможен только в двух режимах — либо в виде простого текстового файла, либо непосредственно через последовательный порт. Процесс сбора данных и создания библиотеки показан ниже с помощью блок-схемы.

Дизайн параметров модели

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

Учебная модель с аномалиями

На этом этапе выполняется оптимизация и бенчмаркинг выбранных классов сигналов. Он ищет лучшую библиотеку среди миллионов библиотек с сервера Cartesiam. Удостоверяется, что сбалансированная точность и достоверность достигают 90% или выше, как показано на блок-схеме.

Живой тест (эмулятор) / Тестирование модели

NanoEdge AI Studio позволяет разработчикам тестировать модель на аппаратном эмуляторе так, как она должна работать на реальном микроконтроллере. Такая функция дает уверенность в модели перед выпуском готовой прошивки. После развертывания есть возможность запустить обучение в самом микроконтроллере. Эта возможность обеспечивает гибкость запуска обучения в полевых условиях и, таким образом, позволяет постоянно совершенствовать модель машинного обучения для обеспечения наилучшего обнаружения аномалий.

Развертывание

Выходные данные обученной модели представляют собой статический файл .a, который является библиотекой, используемой основными компонентами ИИ. Он предоставляет интеллектуальные функции (обучение, обнаружение и т. д.) в качестве строительных блоков для реализации интеллектуальных функций в вашем коде C, которые будут встроены в микроконтроллеры. Выходной файл можно использовать в STM32 CubeEdge IDE для разработки прошивки. Однако учетная запись начального уровня позволяет загружать только поддерживаемые файлы библиотеки плат. С профессиональной учетной записью неограниченное количество прототипов доступно на любом ядре Cortex M.

Вывод

Демо-счет поставляется с 3-месячным пробным периодом и не полностью открытым исходным кодом. Это не позволяет обучать модели временных рядов. Кажется, он все еще развивается. Документация собрана, но платформа все еще развивается. https://cartesiam-neai-docs.readthedocs-hosted.com/studio/studio.html

Демо

https://youtu.be/C0lW-9t-I1c

Краевой импульс

Edge Impulse — это продвинутая пограничная платформа AI/ML с широким спектром поддержки интеграции устройств. Имея технологию Edge Optimized Neural (EON)™, он позволяет эффективно использовать 99% данных датчиков, от которых сегодня отказываются из-за стоимости, пропускной способности или мощности. Edge Impulse обеспечивает максимальную эффективность на широком спектре оборудования, от микроконтроллеров до процессоров, и является бесплатным для разработчиков, а также пользуется доверием предприятий.

Как показано ниже, он работает на веб-портале под названием Edge Impulse Studio.

Подключение устройства

Студия Edge Impulse обеспечивает прямую поддержку для получения данных датчиков со следующих плат: ST IoT Discovery Kit, Arduino Nano 33 BLE sense, датчик AI Eta Compute ECM3532, OpenMV Cam H7 Plus. Помимо этих напрямую поддерживаемых плат, он может получать данные датчиков смартфона за 3 простых шага. Разработчики могут легко обучать модели, используя данные сенсора телефона, а граничный импульс обеспечивает простую интеграцию для создания приложений на основе AI/ML.

Для получения данных с любого другого устройства есть варианты использования пересылки данных через последовательный интерфейс или прямой загрузки данных в существующем формате наборов данных, таком как WAV, JPG, PNG, CBOR или JSON.

Сбор данных/тестовые и обучающие данные

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

Дизайн параметров модели

Формат Edge Impulse Data Acquisition представляет собой оптимизированный двоичный формат для данных временных рядов. Это позволяет криптографическую подпись данных, когда выборка завершена, чтобы доказать подлинность данных. Данные кодируются с использованием CBOR (краткое представление двоичных объектов) или JSON и подписываются в соответствии со спецификацией веб-подписи JSON.

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

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

Подобно блокам обработки, существуют разные типы блоков машинного обучения, каждый из которых имеет свои уникальные преимущества и недостатки. Edge Impulse дает возможность выбирать блоки обучения, такие как нейронная сеть (Keras), обнаружение аномалий K-Means, обучение передаче изображений и т. д.

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

{

«защищено»: {

«вер»: «v1»,

«алг»: «HS256»,

«иат»: 1564128599

},

«подпись»: «b0ee0572a1984b93b6bc56e6576e2cbbd6bccd65d0c356e26b31bbc9a48210c6»,

«полезная нагрузка»: {

«имя_устройства»: «ac:87:a3:0a:2d:1b»,

«тип_устройства»: «DISCO-L475VG-IOT01A»,

«интервал_мс»: 10,

«сенсоры»: [

{ «имя»: «accX», «единицы»: «м/с2» },

{ «название»: «accY», «единицы измерения»: «м/с2» },

{ «имя»: «accZ», «единицы измерения»: «м/с2» }

],

"ценности": [

[ -9.81, 0.03, 1.21 ],

[ -9.83, 0.04, 1.27 ],

[ -9.12, 0.03, 1.23 ],

[ -9.14, 0.01, 1.25 ]

]

}

}

Где iat обозначает данные, когда файл был создан в секундах с начала эпохи. Устанавливайте это только в том случае, если устройство, создающее файл, имеет точные часы (необязательно).

Модель переобучения с аномалиями

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

Живой тест (эмулятор) / Тестирование модели

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

Развертывание

Существует прямая интеграция для системы контроля версий сгенерированных выходных данных модели. Прямая поддержка создания библиотек Arduino обеспечивает гибкость быстрого прототипирования. Прямая поддержка для создания пакета STM32Cube.AI позволяет разрабатывать встроенное ПО промышленного уровня в надежной экосистеме STM32 ARM. Прямая доступность библиотек C++ позволяет интегрировать обучающие модели для любого типа архитектуры ядра ARM. Также возможно запускать модели на микроконтроллерной архитектуре Zephyr RTOS.

Вывод

Одним из существенных преимуществ Edge pulse является наличие SDK и API. Практически все сервисы и шаги, описанные в этой статье, можно автоматизировать с помощью API-интеграции. Его можно использовать бесплатно, а SDK имеет открытый исходный код. Документация правильно организована, чтобы обеспечить бесперебойный цикл разработки. https://docs.edgeimpulse.com/docs/getting-started

Сравнительное решение

В статье представлено подробное описание Cartesiam NanoEdge AI и Edge Impulse. Edge Impulse определенно имеет больше возможностей и дружественный характер для разработчиков, а его SDK и API с открытым исходным кодом позволяют более широкое внедрение. Cartesiam NanoEdge AI, кажется, все еще развивается, но есть обещание предоставить всю поддержку и возможности для профессиональных и корпоративных учетных записей.

Наконец, мы из практики IoT Techolution рекомендуем Edge Impulse для добавления возможностей AI/ML на пограничном шлюзе. Он имеет сквозные возможности с точным контролем над дизайном модели AI/ML. Однако автоматическая интеграция всех фрагментов кода встроенного ПО в масштабе требует значительных усилий со стороны специалистов.