Exercício - Crie uma imagem de contêiner com o modelo YOLO e implante-a no IoT Edge
Antes de começar, certifique-se de que instalou os rerequisitos na sua máquina local.
- Instalar o Docker na sua máquina
- Instalar ondulação
Criar um registo de contentor do Azure
Abra o Azure Cloud Shell no portal do Azure ao selecionar o ícone do Cloud Shell.
Você criará um registro de contêiner do Azure com o comando az acr create. Execute o seguinte comando para definir uma variável chamada ACR_NAME. O nome do registo de contentor tem de ser exclusivo no Azure e pode incluir 5 a 50 carateres alfanuméricos.
ACR_NAME=<enter-registry-name>
Insira o seguinte comando no editor do Cloud Shell para criar um novo registro de contêiner.
az acr create --resource-group <replace-with-resource-group> --name $ACR_NAME --sku Standard
Vá para o recurso de registro de contêiner que você acabou de criar e navegue até Chaves de acesso.
Copie o nome do registo, o servidor de início de sessão, o nome de utilizador e a palavra-passe.
Faça o download do modelo de inferência YOLOv4(miny) TensorFlow Lite
Vá para
https://github.com/Azure/live-video-analytics
e baixe zip em sua máquina local.Vá para o seguinte caminho na pasta baixada.
live-video-analytics-master/utilities/video-analysis/yolov4-tflite-tiny
Crie um novo diretório em sua máquina e copie todos os arquivos (incluindo as subpastas) dessa pasta do GitHub para um novo diretório.
Criar uma imagem de contêiner com o modelo YOLO
Você verá Dockerfile que fornece instruções de compilação para a imagem de contêiner.
Abra o terminal neste diretório. Execute o seguinte comando docker a partir de uma janela de comando nesse diretório para criar a imagem do contêiner.
docker build . -t yolov4-tflite-tiny:latest
Enviar a imagem do docker para o Registro de Contêiner do Azure
Agora, você tem uma imagem docker com o modelo YOLO. Antes de enviar uma imagem para o seu registro, você deve marcá-la com o nome totalmente qualificado do seu servidor de login do registro. O nome do servidor de login está no formato azurecr.io (deve ser todo minúsculo).
Na sua máquina local, inicie sessão no Azure com a CLI do Azure.
az login
Faça logon no ACR com a CLI do Azure (o docker também pode ser usado).
docker login <replace-with-your-acr-login-server>
Crie uma etiqueta para a imagem com o comando etiqueta do docker. Substitua <o servidor> de login pelo nome do servidor de login da sua instância ACR.
docker tag <original-image-name:tag> <registry-name>.azurecr.io/<image-name:tag>
Use o docker push para enviar a imagem para a instância do Registro. Substitua <o servidor> de login pelo nome do servidor de login da sua instância do Registro.
docker push <registry-name>.azurecr.io/<image-name:tag>
Levará algum tempo para enviar seu modelo conteinerizado para o registro de contêiner do Azure. Depois de enviar a imagem para o registro do contêiner, o URI da imagem seria:
<registry-name>.azurecr.io/<image-name:tag>
Para verificar se a imagem foi enviada por push, você irá para o recurso de registro de contêiner e navegará pelo repositório.
Implantar o modelo YOLO como um módulo do Azure IoT Edge
No portal do Azure, vá para seu recurso do Hub IoT.
No painel esquerdo, selecione IoT Edge em Gerenciamento Automático de Dispositivos.
Selecione o dispositivo IoT Edge que receberá a implantação.
Na barra superior, selecione Definir módulos.
Forneça o seguinte.
Nome: Substitua pelo nome do Registro do seu Registro de contêiner do Azure
Endereço: Substitua pelo servidor de logon do seu registro de contêiner do Azure
Nome de usuário: substitua pelo nome de usuário do seu registro de contêiner do Azure
Senha: substitua pela senha do seu registro de contêiner do Azure
Selecione Adicionar.
Na seção Módulos do IoT Edge, selecione Adicionar e selecione Módulo IoT Edge no menu suspenso.
Dê um nome ao seu módulo IoT Edge e insira o URL da imagem, que é o caminho abaixo.
<registry-name>.azurecr.io/<image-name:tag>
Selecione Adicionar.
Rever + criar
Depois de definir o módulo, selecione Rever + criar. A seção de revisão mostra o manifesto de implantação JSON que foi criado com base nos módulos definidos. Verifique se o módulo definido na seção anterior está definido no manifesto.
Verifique o módulo implantado em seu dispositivo de borda
Após a implantação, você pode verificar o módulo em seu dispositivo de borda. Conecte-se à sua máquina virtual e execute o comando docker ps .
docker ps
Agora você tem seu próprio módulo de inferência no dispositivo de borda, e o ponto de extremidade de previsão pode ser acessado através de /score com a porta 80 se sua imagem for construída a partir do modelo Tiny YOLOv4 TensorFlow Lite.
Anote o ponto de extremidade de previsão que está na forma de http://{module-name}:80/score e pode ser acessado somente dentro do seu dispositivo de borda.