Упражнение. Создание образа контейнера с помощью модели YOLO и его развертывание в IoT Edge

Завершено

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

Создание реестра контейнеров Azure

  1. Откройте Azure Cloud Shell на портале Azure, нажав значок Cloud Shell.

    The illustration shows Azure Cloud Shell.

  2. Создайте реестр контейнеров Azure с помощью команды az acr. Выполните следующую команду, чтобы определить переменную с именем ACR_NAME. Имя реестра контейнеров должно быть уникальным в Azure и содержать от 5 до 50 букв и цифр.

    ACR_NAME=<enter-registry-name>
    
  3. Введите команду в редакторе Cloud Shell, чтобы создать новый реестр контейнеров.

    az acr create --resource-group <replace-with-resource-group> --name $ACR_NAME --sku Standard
    
  4. Перейдите к созданному ресурсу реестра контейнеров, а затем к разделуКлючи доступа.

  5. Скопируйте имя реестра, сервер входа, имя пользователя и пароль.

    The illustration shows the access keys.

Скачайте модель вывода YOLOv4 (tiny) TensorFlow Lite.

  1. Перейдите к https://github.com/Azure/live-video-analytics и скачайте zip-файл на свой локальный компьютер.

    The illustration shows how to download a project from GitHub.

  2. Перейдите по этому пути в загруженную папку.

    live-video-analytics-master/utilities/video-analysis/yolov4-tflite-tiny
    

    The illustration shows the project folder.

  3. Создайте новый каталог на компьютере, а затем скопируйте все файлы (включая вложенные папки) из папки GitHub в созданный каталог.

Создание образа контейнера с помощью модели YOLO

  1. Появится Dockerfile с инструкциями по сборке образа контейнера.

    The illustration shows Dockerfile.

  2. Откройте терминал в этом каталоге. Для создания образа контейнера выполните команду Docker из командного окна в этом каталоге.

    docker build . -t yolov4-tflite-tiny:latest
    

    The illustration shows how to build a docker image.

Отправка образа Docker в Реестр контейнеров Azure

Теперь у вас есть образ Docker с моделью YOLO. Прежде чем отправить образ в реестр, нужно добавить в него тег с полным именем сервера входа для реестра. Имя для входа на сервер имеет формат azurecr.io (все символы в нижнем регистре).

  1. На локальном компьютере войдите в Azure, используя Azure CLI.

    az login
    
  2. Войдите в реестр контейнеров Azure с помощью Azure CLI (также можно использовать Docker).

    docker login <replace-with-your-acr-login-server>
    

    The illustration shows how to login docker.

  3. Присвойте образу тег с помощью команды docker tag. Замените <login-server> именем входа на сервер для экземпляра реестра контейнеров Azure.

    docker tag <original-image-name:tag> <registry-name>.azurecr.io/<image-name:tag>
    

    The illustration shows how to a docker image.

  4. Используйте команду Отправка Docker для отправки образа в экземпляр реестра. Замените <login-server> именем входа на сервер для экземпляра реестра.

    docker push <registry-name>.azurecr.io/<image-name:tag>
    

    The illustration shows how to push image to a container registry.

  5. Отправка контейнерной модели в реестр контейнеров Azure займет некоторое время. После отправки образа в реестр контейнеров его URI-адрес будет следующим.

    <registry-name>.azurecr.io/<image-name:tag>
    
  6. Чтобы проверить, отправлен ли образ, перейдите к ресурсу реестра контейнеров, а затем к репозиторию.

    The illustration shows the containerized model in container registry.

Развертывание модели YOLO как модуля Azure IoT Edge

  1. Найдите нужный ресурс Центра Интернета вещей на портале Azure.

  2. В меню на левой панели выберите IoT Edge в разделе "Автоматическое управление устройствами".

  3. Выберите устройство IoT Edge, на которое будет выполняться развертывание.

  4. На верхней панели выберите Задание модулей.

  5. Укажите следующие сведения.

    • Имя: замените именем реестра в реестре контейнеров Azure.

    • Адрес: замените на сервер входа реестра контейнеров Azure.

    • Имя пользователя: замените именем пользователя реестра контейнеров Azure.

    • Пароль: замените паролем реестра контейнеров Azure.

    The illustration shows how to edit container credentials.

  6. Выберите Добавить.

  7. В разделе "Модули IoT Edge" щелкните "Добавить" и в раскрывающемся меню выберите "Модуль IoT Edge".

    The illustration shows how to add edge module.

  8. Присвойте имя модулю IoT Edge и введите URL-адрес образа, который представляет собой путь, как показано ниже.

    <registry-name>.azurecr.io/<image-name:tag>
    
  9. Выберите Добавить.

    The illustration shows how to add image path.

Проверить и создать

После настройки модуля выберите Просмотр и создание. В разделе обзорной информации вы увидите манифест развертывания в формате JSON, созданный на основе заданных модулей. Убедитесь, что модуль, заданный в предыдущем разделе, определен в манифесте.

The illustration shows the review of deployment.

Проверка развертываемого модуля на пограничном устройстве

После развертывания модуль можно проверить на пограничном устройстве. Подключитесь к виртуальной машине и запустите команду docker ps.

docker ps

Теперь у вас есть собственный модуль вывода на пограничном устройстве. Доступ к конечной точке прогнозирования можно получить посредством команды /score с портом 80 в том случае, если образ создан из модели Tiny YOLOv4 TensorFlow Lite.

Запишите конечную точку прогнозирования, которая представлена в формате http://{module-name}:80/score и доступна только на пограничном устройстве.

Проверьте свои знания

1.

Если у вас есть собственная модель машинного обучения и вы хотите упаковать ее как образ Docker, где вы определяете этапы сборки образа?