Комплексное компьютерное зрение на краю для производства

Фабрика данных Azure
Azure IoT Edge
Центр Интернета вещей Azure
Машинное обучение Azure
Azure Pipelines

В этом примере архитектуры показан комплексный подход к компьютерному зрению Интернета вещей в производстве.

Архитектура

Diagram showing the end-to-end approach to computer vision from the edge to the cloud and back.

Скачайте файл Visio для этой архитектуры.

Поток данных

  1. Пользовательский модуль IoT Edge записывает потоковую трансляцию видео, разбивает его на кадры и выполняет вывод данных изображения, чтобы определить, произошло ли инцидент.
  2. Пользовательский модуль также использует методы пакета SDK службы хранилища Azure или API BLOB-объектов для отправки необработанных видеофайлов в служба хранилища Azure, который выступает в качестве необработанного хранилища мультимедиа.
  3. Пользовательский модуль отправляет результаты вывода и метаданные в Центр Интернета вещей Azure, который выступает в качестве центрального концентратора сообщений для обмена данными в обоих направлениях.
  4. Azure Logic Apps отслеживает Центр Интернета вещей сообщений о событиях инцидентов. Logic Apps направляет результаты вывода и метаданные в Microsoft Dataverse для хранения.
  5. При возникновении инцидента Logic Apps отправляет sms и уведомления по электронной почте инженеру сайта. Инженер сайта использует мобильное приложение на основе Power Apps для подтверждения и устранения инцидента.
  6. Power Apps извлекает результаты вывода и метаданные из Dataverse и необработанных видеофайлов из большого двоичного объекта служба хранилища для отображения соответствующих сведений об инциденте. Power Apps обновляет Dataverse с разрешением инцидентов, предоставленным инженером сайта. Этот шаг выступает в качестве проверки в цикле для переобучения модели.
  7. Фабрика данных Azure — это оркестратор данных, который извлекает необработанные видеофайлы из необработанного хранилища мультимедиа и получает соответствующие результаты вывода и метаданные из Dataverse.
  8. Фабрика данных хранит необработанные видеофайлы, а также метаданные в Azure Data Lake, который служит в качестве архива видео для целей аудита.
  9. Фабрика данных разбивает необработанные видеофайлы в кадры, преобразует результаты вывода в метки и передает данные в служба хранилища BLOB-объектов, который выступает в качестве хранилища данных машинного обучения.
  10. Изменения в коде модели автоматически активируют конвейер оркестратора модели Azure Pipelines, который операторы также могут активировать вручную. Изменения кода также запускают процесс обучения и проверки модели машинного обучения в Машинное обучение Azure.
  11. Машинное обучение Azure начинает обучение модели, проверяя данные из хранилища данных машинного обучения и копируя необходимые наборы данных в служба хранилища BLOB-объектов Azure Premium. Этот уровень производительности предоставляет кэш данных для ускорения обучения модели.
  12. Машинное обучение Azure использует набор данных в кэше данных Уровня "Премиум" для обучения модели, проверки производительности обученной модели, оценки его по новой обученной модели и регистрации модели в реестре Машинное обучение Azure.
  13. Оркестратор моделей Azure Pipelines проверяет производительность недавно обученной модели машинного обучения и определяет, лучше ли это, чем предыдущие модели. Если новая модель работает лучше, конвейер загружает модель из Машинное обучение Azure и создает новую версию модуля вывода машинного обучения для публикации в Реестр контейнеров Azure.
  14. Когда будет готов новый модуль вывода машинного обучения, Azure Pipelines развертывает контейнер модуля из реестра контейнеров в модуль IoT Edge в Центр Интернета вещей.
  15. Центр Интернета вещей обновляет устройство IoT Edge с помощью нового модуля вывода машинного обучения.

Компоненты

  • Служба Azure IoT Edge анализирует данные устройства локально, чтобы отправлять в облако меньше данных, реагировать на события быстро и работать в условиях низкой доступности. Модуль машинного обучения IoT Edge может извлекать полезные аналитические сведения из потоковых видеоданных.
  • Центр Интернета вещей Azure — это управляемая служба, которая обеспечивает надежный и защищенный двунаправленный обмен данными между миллионами устройств Интернета вещей и облачным сервером. Центр Интернета вещей предоставляет проверку подлинности на устройство, маршрутизацию сообщений, интеграцию с другими службами Azure и функции управления для управления устройствами Интернета вещей и настройки.
  • Azure Logic Apps — это бессерверная облачная служба для создания и запуска автоматизированных рабочих процессов, которые интегрируют приложения, данные, службы и системы. Разработчики могут использовать визуальный конструктор для планирования и оркестрации общих рабочих процессов задач. Logic Apps имеет соединители для многих популярных облачных служб, локальных продуктов и других приложений как услуги (SaaS). В этом решении Logic Apps запускает автоматизированный рабочий процесс уведомлений, который отправляет sms и оповещения по электронной почте инженерам сайта.
  • Power Apps — это платформа данных и набор приложений, служб и соединителей. Она служит быстрой средой разработки приложений. Базовая платформа данных — Microsoft Dataverse.
  • Dataverse — это облачная платформа хранения для Power Apps. Dataverse поддерживает уведомления в цикле и сохраняет метаданные, связанные с конвейером данных MLOps.
  • Хранилище BLOB-объектов Azure масштабируемое и безопасное хранилище объектов для неструктурированных данных. Его можно использовать для архивов, озер данных, высокопроизводительных вычислений, машинного обучения и облачных рабочих нагрузок. В этом решении хранилище BLOB-объектов предоставляет локальное хранилище данных для хранилища данных машинного обучения и кэш данных Класса Premium для обучения модели машинного обучения. Уровень "Премиум" служба хранилища BLOB-объектов предназначен для рабочих нагрузок, требующих быстрого отклика и высоких скоростей транзакций, таких как метка видео в цикле в этом примере.
  • Data Lake служба хранилища — это масштабируемая и безопасная служба хранения для высокопроизводительных рабочих нагрузок аналитики. Данные обычно берутся из нескольких разнородных источников и могут быть структурированы, полуструктурированными или неструктурированными. Azure Data Lake Storage 2-го поколения объединяет возможности Azure Data Lake Storage 1-го поколения с служба хранилища BLOB-объектов и обеспечивает семантику файловой системы, безопасность на уровне файлов и масштабирование. Он также предлагает многоуровневые хранилища, высокий уровень доступности и аварийное восстановление больших двоичных объектов служба хранилища. В этом решении Data Lake служба хранилища предоставляет архивное хранилище видео для необработанных видеофайлов и метаданных.
  • Фабрика данных Azure — это гибридное, полностью управляемое, бессерверное решение для рабочих процессов интеграции и преобразования данных. Он предоставляет пользовательский интерфейс без кода и панель мониторинга, простую в использовании. Фабрика данных Azure использует конвейеры для перемещения данных. Сопоставления потоков данных выполняют различные задачи преобразования, такие как извлечение, преобразование и загрузка (ETL) и извлечение, загрузка и преобразование (ELT). В этом примере фабрика данных оркеструет данные в конвейере ETL в данные вывода, которые хранятся для повторного обучения.
  • Машинное обучение Azure — это служба машинного обучения корпоративного уровня для быстрого создания и развертывания моделей. Он предоставляет пользователям на всех уровнях навыков с помощью конструктора с низким кодом, автоматизированного машинного обучения и размещенной среды записной книжки Jupyter, поддерживающей различные идентификаторы.
  • Azure Pipelines, часть служб разработчиков на основе команд Azure DevOps, создает конвейеры непрерывной интеграции (CI) и непрерывного развертывания (CD). В этом примере оркестратор модели Azure Pipelines проверяет код машинного обучения, активирует конвейеры бессерверных задач, сравнивает модели машинного обучения и создает контейнер вывода.
  • Реестр контейнеров создает реестр Docker и управляет им для создания, хранения и управления образами контейнеров Docker, включая контейнерные модели машинного обучения.
  • Azure Monitor собирает данные телеметрии из ресурсов Azure, чтобы команды могли заранее выявлять проблемы и повысить производительность и надежность.

Альтернативные варианты

Вместо использования конвейера данных для разбиения видеопотока в кадры изображений можно развернуть модуль Хранилище BLOB-объектов Azure на устройстве IoT Edge. Затем модуль вывода передает выводные кадры изображений в модуль хранилища на пограничном устройстве. Модуль хранилища определяет, когда следует отправлять кадры непосредственно в хранилище данных машинного обучения. Преимущество этого подхода заключается в том, что он удаляет шаг из конвейера данных. Компромисс заключается в том, что пограничное устройство тесно связано с Хранилище BLOB-объектов Azure.

Для оркестрации моделей можно использовать Azure Pipelines или Фабрика данных Azure.

  • Преимущество Azure Pipelines — это его тесные связи с кодом модели машинного обучения. Вы можете легко активировать конвейер обучения с помощью изменений кода с помощью CI/CD.
  • Преимущество фабрики данных заключается в том, что каждый конвейер может подготавливать необходимые вычислительные ресурсы. Фабрика данных не удерживает агенты Azure Pipelines на выполнение обучения машинного обучения, что может задержать обычный поток CI/CD.

Подробности сценария

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

В этом примере камеры отправляют изображения на устройство Azure IoT Edge с моделью машинного обучения. Модель вычисляет вывод и отправляет практические выходные данные в облако для дальнейшей обработки. Человеческие вмешательства являются частью разведки модели машинного обучения. Процесс машинного обучения — это непрерывный цикл обучения, тестирования, настройки и проверки алгоритмов машинного обучения.

Потенциальные варианты использования

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

  • Помогите обеспечить соответствие производственным рекомендациям, таким как правильная маркировка.
  • Выявление производственных дефектов, таких как неравномерность поверхности.
  • Повышение безопасности путем мониторинга входов в здание или зону.
  • Обеспечение безопасности работников путем обнаружения использования личного защитного оборудования (PPE) и других методик безопасности.

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Доступность

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

Операции

Это решение разделено на три операционные области:

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

  • MLOps использует методики DevOps для оркестрации обучения, тестирования и развертывания моделей. Управление жизненным циклом MLOps автоматизирует процесс использования моделей машинного обучения для сложного принятия решений или создания моделей. Ключом к MLOps является тесная координация между командами, которые создают, обучают, оценивают и развертывают модели машинного обучения.

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

    Следующие роли человека являются частью этого решения:

    • Инженеры сайта получают уведомления об инциденте , отправляемые Logic Apps, и вручную проверяют результаты или прогнозы модели машинного обучения. Например, инженер сайта может проверить клапан, спрогнозировавший ошибку модели.

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

    • Специалисты по обработке и анализу данных используют помеченные наборы данных для обучения алгоритмов, чтобы сделать правильные прогнозы в реальной жизни. Специалисты по обработке и анализу данных используют MLOps с GitHub Actions или Azure Pipelines в процессе CI для автоматического обучения и проверки модели. Обучение можно активировать вручную или автоматически, проверка в новых сценариях обучения или данных. Специалисты по обработке и анализу данных работают в рабочей области Машинное обучение Azure, которая может автоматически регистрировать, развертывать и управлять моделями.

    • Инженеры Интернета вещей используют Azure Pipelines для публикации модулей IoT Edge в контейнерах в реестре контейнеров. Инженеры могут развертывать и масштабировать инфраструктуру по требованию с помощью конвейера CD.

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

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

Производительность

Устройства Интернета вещей имеют ограниченный объем памяти и мощности обработки, поэтому важно ограничить размер контейнера модели, отправленного на устройство. Не забудьте использовать устройство Интернета вещей, которое может сделать вывод модели и получить результаты в приемлемом количестве времени.

Для оптимизации производительности моделей обучения в этом примере используется служба хранилища BLOB-объектов Azure Premium. Этот уровень производительности предназначен для рабочих нагрузок, требующих быстрого времени отклика и высокой скорости транзакций, таких как сценарий метки видео в цикле.

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

Масштабируемость

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

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

  • максимальная дневная квота сообщений в Центре Интернета вещей;
  • квота на число подключенных устройств в экземпляре Центра Интернета вещей;
  • Прием и обработка пропускной способности.

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

Общие рекомендации по разработке масштабируемых решений см. в разделе Контрольный список для обеспечения производительности в Центре архитектуры Azure.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

Управление доступом в Dataverse и других службах Azure помогает обеспечить доступ только авторизованным пользователям к среде, данным и отчетам. Это решение использует Azure Key Vault для управления паролями и секретами. служба хранилища шифруется с помощью ключей, управляемых клиентом.

Общие рекомендации по проектированию безопасных решений Интернета вещей см. в документации по безопасности Azure и эталонной архитектуре Azure IoT.

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

В общих случаях для оценки затрат используйте калькулятор цен Azure. Дополнительные сведения см. в разделе "Оптимизация затрат".

Машинное обучение Azure также развертывает реестр контейнеров, служба хранилища Azure и службы Azure Key Vault, которые требуют дополнительных затрат. Дополнительные сведения см. в статье о работе Машинное обучение Azure: архитектура и основные понятия.

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

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Основной автор:

  • Уилсон Ли | Главный инженер программного обеспечения

Следующие шаги