Kurz: Provádění klasifikace obrázků na hraničních zařízeních s využitím služby Custom Vision

Platí pro:IoT Edge 1.4 checkmark IoT Edge 1.4

Důležité

IoT Edge 1.4 je podporovaná verze. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Azure IoT Edge může zvýšit efektivitu vašeho řešení IoT tím, že přesune úlohy z cloudu na hraniční zařízení. Tato schopnost se dobře hodí ke službám, které zpracovávají velké objemy dat, jako jsou modely počítačového zpracování obrazu. Azure AI Custom Vision umožňuje vytvářet vlastní klasifikátory imagí a nasazovat je do zařízení jako kontejnery. Kombinace těchto dvou služeb umožňuje získávat informace z obrázků a video streamů bez nutnosti nejprve přenášet všechna tato data do jiného umístění. Služba Custom Vision poskytuje klasifikátor, který generuje přehledy porovnáváním obrázků s natrénovaným modelem.

Služba Custom Vision na zařízení IoT Edge by například mohla určovat, jestli je na dálnici větší nebo menší provoz než normálně nebo jestli jsou v garáži v některé řadě volná parkovací místa. Tyto přehledy je možné sdílet s jinou službou, která na ně může reagovat.

V tomto kurzu se naučíte:

  • Vytvoření klasifikátoru obrázků s využitím služby Custom Vision
  • Vytvoření modulu IoT Edge, který dotazuje webový server služby Custom Vision na vašem zařízení
  • Odeslání výsledků klasifikátoru obrázků do služby IoT Hub

Diagram - Tutorial architecture, stage and deploy classifier

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

Tip

Tento kurz je zjednodušená verze služby Custom Vision a Azure IoT Edge v ukázkovém projektu Raspberry Pi 3 . Tento kurz byl navržen tak, aby běžel na cloudovém virtuálním počítači a používá statické obrázky k trénování a testování klasifikátoru obrázků, což je užitečné pro někoho, kdo právě začíná vyhodnocovat Službu Custom Vision v IoT Edge. Ukázkový projekt používá fyzický hardware a nastaví kanál živé kamery pro trénování a testování klasifikátoru obrázků, což je užitečné pro někoho, kdo chce vyzkoušet podrobnější scénář v reálném životě.

Vytvoření klasifikátoru obrázků s využitím služby Custom Vision

Pokud chcete vytvořit klasifikátor obrázků, je potřeba vytvořit projekt služby Custom Vision a poskytnout trénovací obrázky. Další informace o krocích, které provedete v této části, najdete v tématu Postup vytvoření klasifikátoru s využitím služby Custom Vision.

Jakmile bude klasifikátor obrázků vytvořený a natrénovaný, můžete ho exportovat jako kontejner Dockeru a nasadit do zařízení IoT Edge.

Vytvoření nového projektu

  1. Ve webovém prohlížeči přejděte na webovou stránku služby Custom Vision.

  2. Vyberte Přihlásit se a přihlaste se pomocí stejného účtu, který používáte pro přístup k prostředkům Azure.

  3. Vyberte Nový projekt.

  4. Vytvořte projekt s použitím následujících hodnot:

    Pole Hodnota
    Name Zadejte název projektu, například EdgeTreeClassifier.
    Popis Volitelný popis projektu.
    Prostředek Vyberte jednu z vašich skupin prostředků Azure, která obsahuje prostředek služby Custom Vision, nebo vytvořte nový , pokud jste ho ještě nepřidali.
    Typy projektů Klasifikace
    Typy klasifikace Více tříd (jedna značka na obrázek)
    Domény Obecné (kompaktní)
    Možnosti exportu Základní platformy (Tensorflow, CoreML, ONNX, ...)
  5. Vyberte příkaz Vytvořit projekt.

Nahrání obrázků a trénování klasifikátoru

Vytvoření klasifikátoru obrázků vyžaduje sadu trénovacích obrázků a testovacích obrázků.

  1. Na svůj místní vývojový počítač si naklonujte nebo stáhněte ukázkové obrázky z úložiště Cognitive-CustomVision-Windows.

    git clone https://github.com/Microsoft/Cognitive-CustomVision-Windows.git
    
  2. Vraťte se ke svému projektu služby Custom Vision a vyberte Přidat obrázky.

  3. Přejděte do místního úložiště Git, které jste naklonovali, a pak do první složky s obrázky Cognitive-CustomVision-Windows / Samples / Images / Hemlock. Vyberte všech 10 obrázků ve složce a pak vyberte Otevřít.

  4. Přidejte k této skupině obrázků značku hemlock (Jedlovec) a stiskněte Enter, aby se značka použila.

  5. Vyberte Nahrát soubory (10).

    Upload hemlock tagged files to Custom Vision

  6. Po úspěšném nahrání obrázků vyberte Hotovo.

  7. Znovu vyberte Přidat obrázky.

  8. Přejděte do druhé složky s obrázky Cognitive-CustomVision-Windows / Samples / Images / Japanese Cherry. Vyberte všech 10 obrázků ve složce a pak vyberte Otevřít.

  9. Přidejte k této skupině obrázků značku japanese cherry (Sakura) a stiskněte Enter, aby se značka použila.

  10. Vyberte Nahrát soubory (10). Po úspěšném nahrání obrázků vyberte Hotovo.

  11. Jakmile budou obě sady obrázků označené a nahrané, vyberte Trénovat a natrénujte klasifikátor.

Export klasifikátoru

  1. Po natrénování klasifikátoru na stránce Výkon klasifikátoru vyberte Exportovat.

    Export your trained image classifier

  2. Jako platformu vyberte DockerFile.

  3. Jako verzi vyberte Linux.

  4. Vyberte Exportovat.

    Export as DockerFile with Linux containers

  5. Po dokončení exportu vyberte Stáhnout a uložte balíček .zip místně do svého počítače. Extrahujte z balíčku všechny soubory. Tyto soubory použijete k vytvoření modulu IoT Edge, který obsahuje server klasifikace obrázků.

Až se k tomuto bodu dostanete, budete mít vytvořený a natrénovaný projekt služby Custom Vision. Exportované soubory použijete v další části, ale s webovou stránkou služby Custom Vision jste už skončili.

Vytvoření zařízení IoT Edge

Teď máte soubory pro kontejnerovou verzi klasifikátoru obrázků na svém místním vývojovém počítači. V této části nakonfigurujete kontejner klasifikátoru obrázků tak, aby se spouštěl jako modul IoT Edge. Vytvoříte také druhý modul, který se nasadí společně s klasifikátorem image. Druhý modul odesílá požadavky do klasifikátoru a výsledky odesílá jako zprávy do služby IoT Hub.

Vytvoření nového řešení

Řešení představuje logický způsob vývoje a uspořádání více modulů pro jedno nasazení IoT Edge. Řešení obsahuje kód pro jeden nebo více modulů a manifest nasazení, který deklaruje, jak je nakonfigurovat na zařízení IoT Edge.

  1. V editoru Visual Studio Code výběrem palety příkazů Zobrazit>otevřete paletu příkazů editoru Visual Studio Code.

  2. Na paletě příkazů zadejte a spusťte příkaz Azure IoT Edge: New IoT Edge solution (Azure IoT Edge: Nové řešení IoT Edge). Na paletě příkazů zadejte následující informace k vytvoření řešení:

    Pole Hodnota
    Vybrat složku Zvolte umístění na vývojovém počítači pro Visual Studio Code a vytvořte soubory řešení.
    Zadejte název řešení Zadejte popisný název řešení, například CustomVisionSolution, nebo přijměte výchozí hodnotu.
    Vyberte šablonu modulu Zvolte Modul Python.
    Zadejte název modulu Pojmenujte modul classifier.

    Je důležité, aby tento název modulu byl malými písmeny. IoT Edge při odkazování na moduly rozlišuje malá a velká písmena a toto řešení využívá knihovnu, která všechny požadavky formátuje tak, aby obsahovaly pouze malá písmena.
    Zadejte pro modul úložiště imagí Dockeru Úložiště imagí zahrnuje název registru kontejneru a název image kontejneru. Image kontejneru je předem vyplněná z předchozího kroku. Nahraďte localhost:5000 hodnotou přihlašovacího serveru z registru kontejneru Azure. Přihlašovací server můžete načíst ze stránky Přehled registru kontejneru na webu Azure Portal.

    Konečný řetězec vypadá jako <název> registru.azurecr.io/classifier.

    Provide Docker image repository

V okně Visual Studio Code se načte pracovní prostor řešení IoT Edge.

Přidání přihlašovacích údajů registru

V souboru prostředí jsou uložené přihlašovací údaje pro registr kontejneru, které soubor sdílí s modulem runtime IoT Edge. Modul runtime tyto přihlašovací údaje potřebuje k přetažení vašich privátních imagí do zařízení IoT Edge.

Rozšíření IoT Edge se pokusí načíst přihlašovací údaje registru kontejneru z Azure a naplní je v souboru prostředí. Zkontrolujte, jestli už jsou vaše přihlašovací údaje zahrnuté. Pokud ne, přidejte je teď:

  1. V průzkumníku editoru Visual Studio Code otevřete soubor .env.
  2. Aktualizujte pole hodnotami uživatelské jméno a heslo, které jste zkopírovali z registru kontejneru Azure.
  3. Soubor uložte.

Poznámka:

Tento kurz používá přihlašovací údaje správce pro Službu Azure Container Registry, které jsou vhodné pro scénáře vývoje a testování. Až budete připraveni na produkční scénáře, doporučujeme použít možnost ověřování s nejnižšími oprávněními, jako jsou instanční objekty. Další informace najdete v tématu Správa přístupu k registru kontejneru.

Výběr cílové architektury

Visual Studio Code v současné době může vyvíjet moduly pro zařízení s Linuxem AMD64 a LinuxEM ARM32v7. Potřebujete vybrat, na kterou architekturu cílíte u každého řešení, protože kontejner je sestavený a spouštěný odlišně pro každý typ architektury. Výchozí hodnota je Linux AMD64, což je to, co používáme pro účely tohoto kurzu.

  1. Otevřete paletu příkazů a vyhledejte Azure IoT Edge: Nastavte výchozí cílovou platformu pro řešení Edge nebo vyberte ikonu zástupce na bočním panelu v dolní části okna.

  2. Na paletě příkazů vyberte cílovou architekturu ze seznamu možností. V tomto kurzu používáme jako zařízení IoT Edge virtuální počítač s Ubuntu, takže ponechte výchozí amd64.

Přidání klasifikátoru obrázků

Šablona modulu Python v editoru Visual Studio Code obsahuje ukázkový kód, který můžete spustit a otestovat IoT Edge. V tomto scénáři tento kód nevyužijete. Místo toho pomocí postupu v této části nahraďte vzorový kód kontejnerem klasifikátoru obrázků, který jste exportovali dříve.

  1. V Průzkumníku souborů přejděte k balíčku služby Custom Vision, který jste stáhli a extrahovali. Zkopírujte veškerý obsah extrahovaného balíčku. Mělo by se jednat o dvě složky (app a azureml) a dva soubory (Dockerfile a README).

  2. V Průzkumníku řešení přejděte do adresáře, který jste ve Visual Studio Code nastavili pro vytvoření řešení IoT Edge.

  3. Otevřete složku modulu classifier. Pokud jste v předchozí části použili navrhované názvy, vypadá struktura složek takto: CustomVisionSolution / modules / classifier.

  4. Vložte soubory do složky classifier.

  5. Vraťte se do okna Visual Studio Code. Ve vašem pracovním prostoru řešení by se teď ve složce modulu měly zobrazit soubory klasifikátoru obrázků.

    Solution workspace with image classifier files

  6. Otevřete soubor module.json ve složce classifier.

  7. Aktualizujte parametr platformy tak, aby odkazovat na nový soubor Dockerfile, který jste přidali, a odeberte všechny možnosti kromě AMD64, což je jediná architektura, kterou používáme pro účely tohoto kurzu.

    "platforms": {
        "amd64": "./Dockerfile"
    }
    
  8. Uloží vaše změny.

Vytvoření modulu simulované kamery

Ve skutečném nasazení služby Custom Vision byste měli kameru poskytující živé obrázky nebo streamy videa. V tomto scénáři budete simulovat kameru tím, že vytvoříte modul, který do klasifikátoru obrázků odešle testovací obrázek.

Přidání a konfigurace nového modulu

V této části do stejného řešení CustomVisionSolution přidáte nový modul a zadáte kód pro vytvoření simulované kamery.

  1. Ve stejném okně Visual Studio Code pomocí palety příkazů spusťte Azure IoT Edge:Přidání modulu IoT Edge. Na paletě příkazů zadejte následující informace o novém modulu:

    Výzva Hodnota
    Vyberte soubor šablony nasazení Vyberte soubor deployment.template.json ve složce CustomVisionSolution.
    Vyberte šablonu modulu Vyberte Modul Python.
    Zadejte název modulu Pojmenujte modul cameraCapture.
    Zadejte pro modul úložiště imagí Dockeru Nahraďte localhost:5000 hodnotou přihlašovacího serveru pro váš registr kontejneru Azure.

    Konečný řetězec vypadá takto: <název_registru>.azurecr.io/cameracapture.

    V okně editoru Visual Studio Code se nový modul načte do pracovního prostoru řešení a aktualizuje deployment.template.json soubor. Teď by se měly zobrazit dvě složky modulu: classifier a cameraCapture.

  2. Otevřete soubor main.py ve složce modules / cameraCapture.

  3. Celý soubor nahraďte následujícím kódem. Tento vzorový kód odesílá požadavky POST do služby pro zpracování obrázků spuštěné v modulu classifier. Pro tento kontejner modulu zadáme ukázkový obrázek, který se použije v požadavcích. Kód pak zabalí odpověď do zprávy pro službu IoT Hub a odešle ji do výstupní fronty.

    # Copyright (c) Microsoft. All rights reserved.
    # Licensed under the MIT license. See LICENSE file in the project root for
    # full license information.
    
    import time
    import sys
    import os
    import requests
    import json
    from azure.iot.device import IoTHubModuleClient, Message
    
    # global counters
    SENT_IMAGES = 0
    
    # global client
    CLIENT = None
    
    # Send a message to IoT Hub
    # Route output1 to $upstream in deployment.template.json
    def send_to_hub(strMessage):
        message = Message(bytearray(strMessage, 'utf8'))
        CLIENT.send_message_to_output(message, "output1")
        global SENT_IMAGES
        SENT_IMAGES += 1
        print( "Total images sent: {}".format(SENT_IMAGES) )
    
    # Send an image to the image classifying server
    # Return the JSON response from the server with the prediction result
    def sendFrameForProcessing(imagePath, imageProcessingEndpoint):
        headers = {'Content-Type': 'application/octet-stream'}
    
        with open(imagePath, mode="rb") as test_image:
            try:
                response = requests.post(imageProcessingEndpoint, headers = headers, data = test_image)
                print("Response from classification service: (" + str(response.status_code) + ") " + json.dumps(response.json()) + "\n")
            except Exception as e:
                print(e)
                print("No response from classification service")
                return None
    
        return json.dumps(response.json())
    
    def main(imagePath, imageProcessingEndpoint):
        try:
            print ( "Simulated camera module for Azure IoT Edge. Press Ctrl-C to exit." )
    
            try:
                global CLIENT
                CLIENT = IoTHubModuleClient.create_from_edge_environment()
            except Exception as iothub_error:
                print ( "Unexpected error {} from IoTHub".format(iothub_error) )
                return
    
            print ( "The sample is now sending images for processing and will indefinitely.")
    
            while True:
                classification = sendFrameForProcessing(imagePath, imageProcessingEndpoint)
                if classification:
                    send_to_hub(classification)
                time.sleep(10)
    
        except KeyboardInterrupt:
            print ( "IoT Edge module sample stopped" )
    
    if __name__ == '__main__':
        try:
            # Retrieve the image location and image classifying server endpoint from container environment
            IMAGE_PATH = os.getenv('IMAGE_PATH', "")
            IMAGE_PROCESSING_ENDPOINT = os.getenv('IMAGE_PROCESSING_ENDPOINT', "")
        except ValueError as error:
            print ( error )
            sys.exit(1)
    
        if ((IMAGE_PATH and IMAGE_PROCESSING_ENDPOINT) != ""):
            main(IMAGE_PATH, IMAGE_PROCESSING_ENDPOINT)
        else: 
            print ( "Error: Image path or image-processing endpoint missing" )
    
  4. Uložte soubor main.py.

  5. Otevřete soubor requirements.txt.

  6. Přidejte nový řádek pro knihovnu, která se zahrne do kontejneru.

    requests
    
  7. Uložte soubor requirements.txt.

Přidání testovacího obrázku do kontejneru

Místo toho, abychom k poskytování kanálu obrázků pro tento scénář použili skutečnou kameru, použijeme jeden testovací obrázek. Testovací obrázek je součástí úložiště GitHub s trénovacími obrázky, které jste stáhli dříve v tomto kurzu.

  1. Přejděte k testovacímu obrázku, který se nachází v umístění Cognitive-CustomVision-Windows / Samples / Images / Test.

  2. Zkopírujte soubor test_image.jpg.

  3. Přejděte do adresáře řešení IoT Edge a vložte testovací obrázek do složky modules / cameraCapture. Obrázek musí být ve stejné složce jako soubor main.py, který jste upravovali v předchozí části.

  4. Ve Visual Studio Code otevřete soubor Dockerfile.amd64 s modulem cameraCapture.

  5. Za řádek, který určuje pracovní adresář (WORKDIR /app) přidejte následující řádek kódu:

    ADD ./test_image.jpg .
    
  6. Uložte soubor Dockerfile.

Příprava manifestu nasazení

Zatím jste v tomto kurzu natrénovali model služby Custom Vision pro klasifikaci obrázků stromů a tento model jste zabalili do modulu IoT Edge. Potom jste vytvořili druhý modul, který může odesílat dotazy na server klasifikace obrázků a hlásit jeho výsledky zpět do služby IoT Hub. Teď jste připraveni vytvořit manifest nasazení, který informuje zařízení IoT Edge, jak tyto dva moduly společně spustit a provozovat.

Rozšíření IoT Edge pro Visual Studio Code poskytuje v každém řešení IoT Edge šablonu, která vám pomůže vytvořit manifest nasazení.

  1. Otevřete soubor deployment.template.json ve složce řešení.

  2. Vyhledejte oddíl modulů, který by měl obsahovat tři moduly: dva, které jste vytvořili, klasifikátor a cameraCapture a třetí modul, který je ve výchozím nastavení součástí SimulatedTemperatureSensor.

  3. Odstraňte modul SimulatedTemperatureSensor se všemi jeho parametry. Tento modul je zahrnutý za účelem poskytování ukázkových dat pro testovací scénáře, ale v tomto nasazení ho nepotřebujeme.

  4. Pokud jste modul klasifikace obrázků pojmenovali jinak než classifier, zkontrolujte teď název a ujistěte se, že obsahuje pouze malá písmena. Modul cameraCapture k volání modulu classifier používá knihovnu requests, která všechny požadavky formátuje tak, aby obsahovaly pouze malá písmena, a IoT Edge rozlišuje malá a velká písmena.

  5. Aktualizujte parametr createOptions pro modul cameraCapture s použitím následujícího kódu JSON. S použitím těchto informací se v kontejneru modulu vytvoří proměnné prostředí, které se načítají v procesu main.py. Díky zahrnutí těchto informací do manifestu nasazení může změnit obrázek nebo koncový bod, aniž byste museli znovu sestavovat image modulu.

    "createOptions": "{\"Env\":[\"IMAGE_PATH=test_image.jpg\",\"IMAGE_PROCESSING_ENDPOINT=http://classifier/image\"]}"
    

    Pokud jste modul služby Custom Vision pojmenovali jinak než classifier, aktualizujte odpovídajícím způsobem hodnotu koncového bodu pro zpracování obrázků.

  6. V dolní části souboru aktualizujte parametr routes pro modul $edgeHub. Výsledky předpovědí z modulu cameraCapture chcete směrovat do služby IoT Hub.

        "routes": {
          "cameraCaptureToIoTHub": "FROM /messages/modules/cameraCapture/outputs/* INTO $upstream"
        },
    

    Pokud jste druhý modul pojmenovali jinak než cameraCapture, aktualizujte odpovídajícím způsobem hodnotu trasy.

  7. Uložte soubor deployment.template.json.

Sestavení a nasdílení řešení IoT Edge

Když máte vytvořené oba moduly a nakonfigurovanou šablonu manifestu nasazení, jste připraveni sestavit image kontejneru a odeslat je do registru kontejneru.

Jakmile budou image ve vašem registru, můžete řešení nasadit do zařízení IoT Edge. Moduly na zařízení můžete nastavit prostřednictvím služby IoT Hub, ale přistupovat ke službě IoT Hub a zařízením můžete také přes Visual Studio Code. V této části nastavíte přístup ke službě IoT Hub a pak pomocí editoru Visual Studio Code nasadíte řešení do zařízení IoT Edge.

Nejprve sestavte řešení a odešlete ho do registru kontejneru.

  1. Výběrem možnosti Zobrazit>terminál otevřete integrovaný terminál editoru Visual Studio Code.

  2. Přihlaste se k Dockeru zadáním následujícího příkazu v terminálu. Přihlaste se pomocí uživatelského jména, hesla a přihlašovacího serveru z registru kontejneru Azure. Tyto hodnoty můžete načíst z části Přístupové klíče vašeho registru na webu Azure Portal.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    

    Může se zobrazit upozornění zabezpečení, které doporučuje použití --password-stdin. I když se tento osvědčený postup doporučuje pro produkční scénáře, je mimo rozsah tohoto kurzu. Další informace najdete v referenčních informacích k přihlášení dockeru.

  3. V Průzkumníku editoru Visual Studio Code klikněte pravým tlačítkem na soubor deployment.template.json a vyberte Sestavit a odeslat řešení IoT Edge.

    Příkaz sestavení a nabízení spustí tři operace. Nejprve vytvoří v řešení novou složku s názvem config , která obsahuje úplný manifest nasazení, který je sestavený z informací v šabloně nasazení a dalších souborech řešení. Za druhé se spustí docker build sestavení image kontejneru na základě příslušného souboru Dockerfile pro vaši cílovou architekturu. Potom se spustí docker push pro nasdílení úložiště imagí do registru kontejneru.

    Tento proces může trvat několik minut poprvé, ale při příštím spuštění příkazů je rychlejší.

Nasazení modulů do zařízení

Pomocí Průzkumníka editoru Visual Studio Code a rozšíření Azure IoT Edge nasaďte projekt modulu do zařízení IoT Edge. Manifest nasazení už máte připravený pro váš scénář, soubor deployment.amd64.json ve složce konfigurace. Teď stačí jen vybrat zařízení, na které se nasazení provede.

Ujistěte se, že je vaše zařízení IoT Edge spuštěné a spuštěné.

  1. V Průzkumníku editoru Visual Studio Code v části Azure IoT Hub rozbalte zařízení , abyste viděli seznam zařízení IoT.

  2. Klikněte pravým tlačítkem na název vašeho zařízení IoT Edge a pak vyberte Create Deployment for Single Device (Vytvořit nasazení pro jedno zařízení).

  3. Vyberte soubor deployment.amd64.json ve složce konfigurace a pak vyberte Manifest nasazení Edge. Nepoužívejte soubor deployment.template.json.

  4. V zařízení rozbalte moduly a zobrazte seznam nasazených a spuštěných modulů. Vyberte tlačítko aktualizovat. Měli byste vidět nový klasifikátor a moduly cameraCapture spuštěné společně s $edgeAgent a $edgeHub.

Můžete také zkontrolovat, jestli jsou na vašem zařízení zprovozněné všechny moduly. Spuštěním následujícího příkazu na vašem zařízení IoT Edge zobrazte stav modulů.

iotedge list

Spuštění modulů může trvat několik minut. Modul runtime IoT Edge potřebuje získat nový manifest nasazení, stáhnout image modulů z modulu runtime kontejneru a pak spustit každý nový modul.

Zobrazení výsledků klasifikace

Výsledky modulů můžete zobrazit dvěma způsoby – buď na samotném zařízení během generování a odesílání zpráv, nebo ve Visual Studio Code při příjmu zpráv ve službě IoT Hub.

Na svém zařízení si prohlédněte protokoly modulu cameraCapture, kde uvidíte odesílané zprávy a potvrzení jejich příjmu službou IoT Hub.

iotedge logs cameraCapture

Například byste měli vidět výstup podobný tomuto:

admin@vm:~$ iotedge logs cameraCapture
Simulated camera module for Azure IoT Edge. Press Ctrl-C to exit.
The sample is now sending images for processing and will indefinitely.
Response from classification service: (200) {"created": "2023-07-13T17:38:42.940878", "id": "", "iteration": "", "predictions": [{"boundingBox": null, "probability": 1.0, "tagId": "", "tagName": "hemlock"}], "project": ""}

Total images sent: 1
Response from classification service: (200) {"created": "2023-07-13T17:38:53.444884", "id": "", "iteration": "", "predictions": [{"boundingBox": null, "probability": 1.0, "tagId": "", "tagName": "hemlock"}], "project": ""}

Můžete také zobrazit zprávy ze sady Visual Studio Code. Klikněte pravým tlačítkem na název zařízení IoT Edge a vyberte Spustit monitorování integrovaného koncového bodu události.

[IoTHubMonitor] [2:43:36 PM] Message received from [vision-device/cameraCapture]:
{
  "created": "2023-07-13T21:43:35.697782",
  "id": "",
  "iteration": "",
  "predictions": [
    {
      "boundingBox": null,
      "probability": 1,
      "tagId": "",
      "tagName": "hemlock"
    }
  ],
  "project": ""
}

Poznámka:

Zpočátku se ve výstupu modulu cameraCapture můžou zobrazit chyby připojení. Důvodem je zpoždění mezi nasazením a spuštěním modulů.

Modul cameraCapture se automaticky znovu připojí, dokud nebude úspěšné. Po úspěšném připojení se zobrazí očekávané zprávy klasifikace obrázků.

Výsledky z modulu Custom Vision, které se odesílají jako zprávy z modulu cameraCapture, zahrnují pravděpodobnost, že je obrázek buď hemlock, nebo třešňový strom. Vzhledem k tomu, že se jedná o obrázek jedlovce, měla by se zobrazit pravděpodobnost 1.0.

Vyčištění prostředků

Pokud máte v plánu pokračovat k dalšímu doporučenému článku, můžete si vytvořené prostředky a konfigurace uschovat a znovu je použít. Také můžete dál používat stejné zařízení IoT Edge jako testovací zařízení.

Jinak můžete odstranit místní konfigurace a prostředky Azure, které jste použili v tomto článku, abyste se vyhnuli poplatkům.

Odstranění prostředků Azure

Odstranění prostředků Azure a skupin prostředků je nevratná akce. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste centrum IoT vytvořili ve stávající skupině prostředků, která obsahuje prostředky, které chcete zachovat, odstraňte pouze samotný prostředek ioT Hubu, nikoli skupinu prostředků.

Odstranění prostředků:

  1. Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.

  2. Vyberte název skupiny prostředků, která obsahuje vaše testovací prostředky služby IoT Edge.

  3. Zkontrolujte seznam prostředků obsažených ve vaší skupině prostředků. Pokud chcete odstranit všechny prostředky, můžete vybrat možnost Odstranit skupinu prostředků. Pokud chcete odstranit pouze některé prostředky, můžete na ně kliknout a odstranit je jednotlivě.

Další kroky

V tomto kurzu jste natrénovali model služby Custom Vision a nasadili jste ho jako modul do zařízení IoT Edge. Potom jste vytvořili modul, který může odesílat dotazy do služby klasifikace obrázků a hlásit její výsledky zpět do služby IoT Hub.

V dalších kurzech se dozvíte o dalších způsobech, jak vám Může Azure IoT Edge pomoct s přeměnou dat na obchodní přehledy na hraničních zařízeních.