Cvičení – vytvoření image kontejneru pomocí modelu YOLO a jeho nasazení do IoT Edge
Než začnete, ujistěte se, že jste nainstalovali požadavky na místní počítač.
- Instalace Dockeru na počítač
- Instalace curl
Vytvoření registru kontejneru Azure
Na webu Azure Portal otevřete Azure Cloud Shell pomocí jeho ikony.
Pomocí příkazu az acr create vytvoříte registr kontejneru Azure. Spuštěním následujícího příkazu definujte proměnnou s názvem ACR_NAME. Název registru kontejneru musí být v rámci Azure jedinečný a musí obsahovat 5 až 50 alfanumerických znaků.
ACR_NAME=<enter-registry-name>
Zadáním následujícího příkazu do editoru Cloud Shell vytvořte nový registr kontejneru.
az acr create --resource-group <replace-with-resource-group> --name $ACR_NAME --sku Standard
Přejděte k prostředku registru kontejneru, který jste právě vytvořili, a přejděte na přístupové klíče.
Zkopírujte název registru, přihlašovací server, uživatelské jméno a heslo.
Stáhněte si model Odvozování YOLOv4(tiny) TensorFlow Lite
Přejděte na místní počítač a
https://github.com/Azure/live-video-analytics
stáhněte si zip.Ve stažené složce přejděte na následující cestu.
live-video-analytics-master/utilities/video-analysis/yolov4-tflite-tiny
Vytvořte na počítači nový adresář a zkopírujte všechny soubory (včetně podsložek) z této složky GitHubu do nového adresáře.
Sestavení image kontejneru pomocí modelu YOLO
Zobrazí se soubor Dockerfile, který obsahuje pokyny k sestavení pro image kontejneru.
Otevřete terminál v tomto adresáři. Spuštěním následujícího příkazu Dockeru z příkazového okna v tomto adresáři sestavte image kontejneru.
docker build . -t yolov4-tflite-tiny:latest
Nasdílení image Dockeru do služby Azure Container Registry
Teď máte image Dockeru s modelem YOLO. Než budete moct odeslat image do registru, musíte ji označit plně kvalifikovaným názvem přihlašovacího serveru registru. Název přihlašovacího serveru je ve formátu azurecr.io (musí být malými písmeny).
Na místním počítači se přihlaste k Azure pomocí Azure CLI.
az login
Přihlaste se k ACR pomocí Azure CLI (můžete použít i Docker).
docker login <replace-with-your-acr-login-server>
Označte image pomocí příkazu docker tag. Nahraďte <login-server> názvem přihlašovacího serveru vaší instance ACR.
docker tag <original-image-name:tag> <registry-name>.azurecr.io/<image-name:tag>
Pomocí docker push nasdílejte image do instance registru. Nahraďte <login-server> názvem přihlašovacího serveru vaší instance registru.
docker push <registry-name>.azurecr.io/<image-name:tag>
Nasdílení kontejnerizovaného modelu do registru kontejnerů Azure bude nějakou dobu trvat. Po nahrání image do registru kontejneru by identifikátor URI image byl:
<registry-name>.azurecr.io/<image-name:tag>
Pokud chcete ověřit, jestli se image nasdílí, přejdete do prostředku registru kontejneru a přejdete do úložiště.
Nasazení modelu YOLO jako modulu Azure IoT Edge
Na webu Azure Portal přejděte k prostředku ioT Hubu.
V levém podokně v části Automatické Správa zařízení vyberte IoT Edge.
Vyberte zařízení IoT Edge, které má nasazení přijmout.
Na horním panelu vyberte Nastavit moduly.
Zadejte následující:
Název: Nahraďte názvem registru vašeho registru kontejneru Azure.
Adresa: Nahrazení přihlašovacím serverem registru kontejneru Azure
Uživatelské jméno: Nahraďte uživatelské jméno vašeho registru kontejneru Azure.
Heslo: Nahraďte ho heslem vašeho registru kontejneru Azure.
Vyberte Přidat.
V části Moduly IoT Edge vyberte Přidat a v rozevírací nabídce vyberte Modul IoT Edge.
Zadejte název modulu IoT Edge a zadejte adresu URL obrázku, což je cesta, jak je uvedeno níže.
<registry-name>.azurecr.io/<image-name:tag>
Vyberte Přidat.
Kontrola a vytvoření
Po nastavení modulu vyberte Zkontrolovat a vytvořit. V části kontroly se zobrazí manifest nasazení JSON vytvořený na základě vámi nastavených modulů. Zkontrolujte, jestli je modul, který jste nastavili v předchozí části, definován v manifestu.
Kontrola nasazeného modulu na hraničním zařízení
Po nasazení můžete modul v hraničním zařízení zkontrolovat. Připojení k virtuálnímu počítači a spusťte příkaz docker ps.
docker ps
Teď máte v hraničním zařízení vlastní modul odvozování a koncový bod předpovědi je přístupný prostřednictvím /score s portem 80 , pokud je váš obrázek sestavený z modelu Tiny YOLOv4 TensorFlow Lite.
Poznamenejte si predikovaný koncový bod, který je ve formě http://{název_modulu}:80/score a je přístupný pouze v rámci hraničního zařízení.