Rychlý start: Detekce pohybu a vysílání událostí

ikona Edge
Další možností je vyhledat si témata v části vytváření aplikací pro videa ve službě.


Tento rychlý start vás provede kroky pro zahájení práce s Analyzátorem videa Azure. V tomto článku se používá virtuální počítač Azure jako zařízení IoT Edge a simulovaný živý video stream. Po dokončení kroků nastavení budete moct spustit simulovaný stream živého videa prostřednictvím kanálu videa, který detekuje a hlásí jakýkoli pohyb v tomto streamu. Následující diagram znázorňuje grafické znázornění tohoto kanálu.

Detekce pohybu

Tento článek je založený na ukázkovém kódu napsaném v jazyce C#.

Tento článek je založený na ukázkovém kódu napsaném v Pythonu.

Požadavky

  • Účet Azure, který zahrnuje aktivní předplatné. Vytvořte si účet zdarma, pokud ho ještě nemáte.

    Poznámka

    Budete potřebovat předplatné Azure, ke kterému máte přístup jak k roli Přispěvatel , tak k roli Správce přístupu uživatelů . Pokud nemáte správná oprávnění, kontaktujte svého správce účtu, abyste vám tato oprávnění udělili.

  • Visual Studio Codes následujícími rozšířeními:

    Tip

    Při instalaci rozšíření Azure IoT Tools se může zobrazit výzva k instalaci Dockeru. Tuto výzvu ignorujte.

  • .NET Core 3.1 SDK.

  • Účet Azure, který zahrnuje aktivní předplatné. Vytvořte si účet zdarma, pokud ho ještě nemáte.

    Poznámka

    Budete potřebovat předplatné Azure, ke kterému máte přístup jak k roli Přispěvatel , tak k roli Správce přístupu uživatelů . Pokud nemáte správná oprávnění, kontaktujte svého správce účtu, abyste vám tato oprávnění udělili.

  • Visual Studio Codes následujícími rozšířeními:

    Tip

    Při instalaci rozšíření Azure IoT Tools se může zobrazit výzva k instalaci Dockeru. Tuto výzvu ignorujte.

Nastavení prostředků Azure

Nasazení do Azure

Proces nasazení bude trvat přibližně 20 minut. Po dokončení budete mít v předplatném Azure nasazené určité prostředky Azure, mezi které patří:

  1. Účet Analyzátoru videatato cloudová služba slouží k registraci hraničního modulu Analyzátoru videa a k přehrávání nahraných videí a analýz videa.
  2. Storage účet – pro ukládání nahraných analýz videa a videa.
  3. Spravovaná identita – spravovaná identita přiřazená uživatelem, která slouží ke správě přístupu k výše uvedenému účtu úložiště.
  4. Virtuální počítač – virtuální počítač, který bude sloužit jako simulované hraniční zařízení.
  5. IoT Hub – Slouží jako centrální centrum zpráv pro obousměrnou komunikaci mezi vaší aplikací IoT, IoT Edge moduly a zařízeními, která spravuje.

Kromě výše uvedených prostředků se ve sdílené složky deployment-output ve vašem účtu úložiště vytvoří také následující položky pro použití v rychlých startech a kurzech:

  • appsettings.json – Tento soubor obsahuje připojovací řetězec zařízení a další vlastnosti potřebné ke spuštění ukázkové aplikace v Visual Studio Code.
  • env.txt – Tento soubor obsahuje proměnné prostředí, které budete potřebovat ke generování manifestů nasazení pomocí Visual Studio Code.
  • deployment.json – toto je manifest nasazení používaný šablonou k nasazení hraničních modulů do simulovaného hraničního zařízení.

Tip

Pokud na máte problémy s vytvořením všech požadovaných prostředků Azure, postupujte podle ručních kroků v tomto rychlém startu.

Přehled

Azure Video Analyzer na základě detekce pohybu

Tento diagram znázorňuje tok signálů v tomto rychlém startu. Hraniční modul simuluje IP kameru hostující server rtSP (Real-Time Streaming Protocol). Zdrojový uzel RTSP si z tohoto serveru vytahuje informační kanál videa a odesílá snímky videa do uzlu procesoru pro detekci pohybu. Uzel procesoru detekce pohybu umožňuje detekovat pohyb v živém videu. Prozkoumá příchozí snímky videa a určí, jestli se ve videu pohybuje. Pokud se detekuje pohyb, předá snímek videa dalšímu uzlu v kanálu a vysílá událost. Nakonec se všechny vygenerované události odesílaly do jímky zpráv centra IoT, kde jsou publikované do IoT Hub.

Nastavíte vývojové prostředí

Získání ukázkového kódu

  1. Naklonujte úložiště ukázek Ava C#.

  2. spusťte Visual Studio Code a otevřete složku, do které se úložiště stáhlo.

  3. v Visual Studio Code přejděte do složky src/cloud-to-device-console-app-device-console-device-console-a vytvořte soubor s názvem appsettings. json. Tento soubor obsahuje nastavení potřebná ke spuštění programu.

  4. Přejděte do sdílené složky v účtu úložiště vytvořeném v předchozím kroku nastavení a vyhledejte soubor appSettings. JSON ve sdílené složce nasazení-výstup. Klikněte na soubor a potom stiskněte tlačítko Stáhnout. Obsah by měl být otevřen na nové kartě prohlížeče, který by měl vypadat takto:

    {
        "IoThubConnectionString" : "HostName=xxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX",
        "deviceId" : "avasample-iot-edge-device",
        "moduleId" : "avaedge"
    }
    

    připojovací řetězec IoT Hub umožňuje používat Visual Studio Code k posílání příkazů do hraničních modulů přes Azure IoT Hub. Zkopírujte výše uvedený kód JSON do souboru Src/Cloud-to-Device-Console-App/appSettings. JSON .

  5. Potom přejděte do složky src/Edge a vytvořte soubor s názvem . env. tento soubor obsahuje vlastnosti, které Visual Studio Code používá k nasazení modulů do hraničního zařízení.

  6. Přejděte do sdílené složky v účtu úložiště vytvořeném v předchozím kroku nastavení a vyhledejte soubor env.txt pod sdílenou složkou nasazení-výstup. Klikněte na soubor a potom stiskněte tlačítko Stáhnout. Obsah by měl být otevřen na nové kartě prohlížeče, který by měl vypadat takto:

         SUBSCRIPTION_ID="<Subscription ID>"
         RESOURCE_GROUP="<Resource Group>"
         AVA_PROVISIONING_TOKEN="<Provisioning token>"
         VIDEO_INPUT_FOLDER_ON_DEVICE="/home/localedgeuser/samples/input"
         VIDEO_OUTPUT_FOLDER_ON_DEVICE="/var/media"
         APPDATA_FOLDER_ON_DEVICE="/var/lib/videoanalyzer"
         CONTAINER_REGISTRY_USERNAME_myacr="<your container registry username>"
         CONTAINER_REGISTRY_PASSWORD_myacr="<your container registry password>"
    

    Zkopírujte kód JSON z env.txt do souboru Src/Edge/. env .

Připojení IoT Hub

  1. v Visual Studio Code nastavte připojovací řetězec IoT Hub tak, že v levém dolním rohu vyberete ikonu další akce vedle podokna AZURE IoT Hub . Zkopírujte řetězec ze souboru src/Cloud-to-Device-Console-App/appSettings. JSON.

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  2. V přibližně 30 sekundách aktualizujte Azure IoT Hub v části vlevo dole. Mělo by se zobrazit hraniční zařízení avasample-iot-edge-device , které by mělo mít nasazené následující moduly:

    • Hraniční centrum (název modulu edgeHub)
    • Agent Edge (název modulu edgeAgent)
    • Video Analyzer (název modulu avaedge)
    • Simulátor RTSP (název modulu rtspsim)

Příprava na monitorování modulů

Když použijete příkaz Spustit v tomto rychlém startu nebo kurzu, události se odešlou do IoT Hub. Chcete-li zobrazit tyto události, postupujte podle následujících kroků:

  1. otevřete podokno průzkumník v Visual Studio Code a hledejte Azure IoT Hub v levém dolním rohu.

  2. Rozbalte uzel zařízení .

  3. Klikněte pravým tlačítkem na avasample-iot-edge-device a vyberte Spustit sledování předdefinovaného koncového bodu události.

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Získání ukázkového kódu

  1. Naklonujte úložiště ukázek Ava Pythonu.

  2. spusťte Visual Studio Code a otevřete složku, do které se úložiště stáhlo.

  3. v Visual Studio Code přejděte do složky src/cloud-to-device-console-app-device-console-device-console-a vytvořte soubor s názvem appsettings. json. Tento soubor obsahuje nastavení potřebná ke spuštění programu.

  4. Přejděte do sdílené složky v účtu úložiště vytvořeném v předchozím kroku nastavení a vyhledejte soubor appSettings. JSON ve sdílené složce nasazení-výstup. Klikněte na soubor a potom stiskněte tlačítko Stáhnout. Obsah by měl být otevřen na nové kartě prohlížeče, který by měl vypadat takto:

    {
      "IoThubConnectionString": "HostName=xxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX",
      "deviceId": "avasample-iot-edge-device",
      "moduleId": "avaedge"
    }
    

    připojovací řetězec IoT Hub umožňuje používat Visual Studio Code k posílání příkazů do hraničních modulů přes Azure IoT Hub. Zkopírujte výše uvedený kód JSON do souboru Src/Cloud-to-Device-Console-App/appSettings. JSON .

  5. Potom přejděte do složky src/Edge a vytvořte soubor s názvem . env. tento soubor obsahuje vlastnosti, které Visual Studio Code používá k nasazení modulů do hraničního zařízení.

  6. Přejděte do sdílené složky v účtu úložiště vytvořeném v předchozím kroku nastavení a vyhledejte soubor env.txt pod sdílenou složkou nasazení-výstup. Klikněte na soubor a potom stiskněte tlačítko Stáhnout. Obsah by měl být otevřen na nové kartě prohlížeče, který by měl vypadat takto:

         SUBSCRIPTION_ID="<Subscription ID>"
         RESOURCE_GROUP="<Resource Group>"
         AVA_PROVISIONING_TOKEN="<Provisioning token>"
         VIDEO_INPUT_FOLDER_ON_DEVICE="/home/localedgeuser/samples/input"
         VIDEO_OUTPUT_FOLDER_ON_DEVICE="/var/media"
         APPDATA_FOLDER_ON_DEVICE="/var/lib/videoanalyzer"
         CONTAINER_REGISTRY_USERNAME_myacr="<your container registry username>"
         CONTAINER_REGISTRY_PASSWORD_myacr="<your container registry password>"
    

    Zkopírujte kód JSON z env.txt do souboru Src/Edge/. env .

Připojení IoT Hub

  1. v Visual Studio Code nastavte připojovací řetězec IoT Hub tak, že v levém dolním rohu vyberete ikonu další akce vedle podokna AZURE IoT Hub . Zkopírujte řetězec ze souboru src/Cloud-to-Device-Console-App/appSettings. JSON.

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  2. V přibližně 30 sekundách aktualizujte Azure IoT Hub v části vlevo dole. Mělo by se zobrazit hraniční zařízení avasample-iot-edge-device , které by mělo mít nasazené následující moduly:

    • Hraniční centrum (název modulu edgeHub)
    • Agent Edge (název modulu edgeAgent)
    • Video Analyzer (název modulu avaedge)
    • Simulátor RTSP (název modulu rtspsim)

Příprava na monitorování modulů

Když použijete příkaz Spustit v tomto rychlém startu nebo kurzu, události se odešlou do IoT Hub. Chcete-li zobrazit tyto události, postupujte podle následujících kroků:

  1. otevřete podokno průzkumník v Visual Studio Code a hledejte Azure IoT Hub v levém dolním rohu.

  2. Rozbalte uzel zařízení .

  3. Klikněte pravým tlačítkem na avasample-iot-edge-device a vyberte Spustit sledování předdefinovaného koncového bodu události.

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Kontrola ukázkového videa

Když nastavíte prostředky Azure, zkopíruje se krátké video o dálničním provozu na virtuální počítač s Linuxem v Azure, který používáte jako IoT Edge zařízení. V tomto rychlém startu se k simulaci živého streamu používá videosoubor.

Otevřete aplikaci, jako je VLC Media Player. Stiskněte kombinaci kláves Ctrl+N a pak vložte odkaz na ukázkové video pro průnik dálniční cesty a spusťte přehrávání. Vidíte záběry mnoha vozidel, která se pohybují na dálniční dopravě.

Při nastavování prostředků Azure se krátké video provozního provozu zkopíruje do virtuálního počítače Linux v Azure, který používáte jako zařízení IoT Edge. V tomto rychlém startu se k simulaci živého streamu používá videosoubor.

Otevřete aplikaci, jako je VLC Media Player. Vyberte CTRL + N a pak vložte odkaz na ukázkové video s přepojováním na dálnici a začněte přehrávat. Vidíte, že se v provozu na dálnicích pohybuje záběr řady vozidel.

Prozkoumání ukázkových souborů

  1. v Visual Studio Code, přejít na src/edge. Zobrazí se soubor . env a některé soubory šablon nasazení.

    Šablona nasazení odkazuje na manifest nasazení pro hraniční zařízení, kde jsou proměnné použity pro některé vlastnosti. Soubor . env obsahuje hodnoty pro tyto proměnné.

  2. Přejít do složky Src/Cloud-to-Device-Console-App Tady vidíte soubor appSettings. JSON a několik dalších souborů:

    • C2D-Console-App. csproj – soubor projektu pro Visual Studio Code.

    • Operations. JSON – seznam operací, které má program spustit.

    • Program. cs – ukázkový kód programu Tento kód:

      • Načte nastavení aplikace.
      • Vyvolá přímé metody, které jsou zpřístupněny v rámci modulu video Analyzer Edge. Pomocí modulu můžete analyzovat živé datové proudy videa vyvoláním jeho přímých metod.
      • Pozastaví, aby bylo možné kontrolovat výstup programu v okně terminálu a prozkoumávat události vygenerované modulem v okně výstup .
      • Vyvolá přímé metody pro vyčištění prostředků.
  1. v Visual Studio Code, přejít na src/edge. Zobrazí se soubor . env a některé soubory šablon nasazení.

    Šablona nasazení odkazuje na manifest nasazení pro hraniční zařízení, kde jsou proměnné použity pro některé vlastnosti. Soubor . env obsahuje hodnoty pro tyto proměnné.

  2. Přejít do složky Src/Cloud-to-Device-Console-App Tady vidíte soubor appSettings. JSON a několik dalších souborů:

    • Operations. JSON – seznam operací, které má program spustit.

    • Main.py – vzorový programový kód. Tento kód:

      • Načte nastavení aplikace.
      • Vyvolá přímé metody, které jsou zpřístupněny modulem Azure video Analyzer. Pomocí modulu můžete analyzovat živé datové proudy videa vyvoláním jeho přímých metod.
      • Pozastaví, aby bylo možné kontrolovat výstup programu v okně terminálu a prozkoumávat události vygenerované modulem v okně výstup .
      • Vyvolá přímé metody pro vyčištění prostředků.

Generování a nasazení manifestu nasazení

Manifest nasazení definuje, které moduly jsou nasazeny do hraničního zařízení. Definuje také nastavení konfigurace pro tyto moduly.

Pomocí těchto kroků vygenerujte manifest ze souboru šablony a potom ho nasaďte do hraničního zařízení.

  1. Otevřete Visual Studio Code.

  2. Vedle podokna Azure IoT Hub vyberte ikonu Další akce a nastavte připojovací řetězec IoT Hub. Můžete zkopírovat řetězec ze souboru Src/Cloud-to-Device-Console-App/appSettings. JSON .

    Nastavení připojovacího řetězce IOT

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  3. Klikněte pravým tlačítkem na Src/Edge/Deployment. template. JSON a vyberte Generovat IoT Edge manifest nasazení.

    Vygenerovat manifest nasazení IoT Edge

    Tato akce by měla vytvořit soubor manifestu s názvem Deployment. amd64. JSON ve složce Src/Edge/config .

  4. Klikněte pravým tlačítkem na Src/Edge/config/Deployment. amd64. JSON, vyberte vytvořit nasazení pro jedno zařízení a pak vyberte název hraničního zařízení.

    Vytvoření nasazení pro jedno zařízení

  5. Až budete vyzváni k výběru zařízení IoT Hub, zvolte z rozevírací nabídky avasample-IoT-Edge-Device .

  6. Po přibližně 30 sekundách se v levém dolním rohu okna aktualizují Azure IoT Hub. Hraniční zařízení nyní zobrazuje následující nasazené moduly:

    • Modul Edge Analyzer pro video (název modulu avaedge )
    • Simulátor protokolu RTSP (Real-Time streaming Protocol) (název modulu rtspsim )

Manifest nasazení definuje, které moduly jsou nasazeny do hraničního zařízení. Definuje také nastavení konfigurace pro tyto moduly.

Pomocí těchto kroků vygenerujte manifest ze souboru šablony a potom ho nasaďte do hraničního zařízení.

  1. Otevřete Visual Studio Code.

  2. Vedle podokna Azure IoT Hub vyberte ikonu Další akce a nastavte připojovací řetězec IoT Hub. Můžete zkopírovat řetězec ze souboru Src/Cloud-to-Device-Console-App/appSettings. JSON .

    Nastavení připojovacího řetězce IOT

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  3. Klikněte pravým tlačítkem na Src/Edge/Deployment. template. JSON a vyberte Generovat IoT Edge manifest nasazení.

    Vygenerovat manifest nasazení IoT Edge

    Tato akce by měla vytvořit soubor manifestu s názvem Deployment. amd64. JSON ve složce Src/Edge/config .

  4. Klikněte pravým tlačítkem na Src/Edge/config/Deployment. amd64. JSON, vyberte vytvořit nasazení pro jedno zařízení a pak vyberte název hraničního zařízení.

    Vytvoření nasazení pro jedno zařízení

  5. Až budete vyzváni k výběru zařízení IoT Hub, zvolte z rozevírací nabídky avasample-IoT-Edge-Device .

  6. Po přibližně 30 sekundách se v levém dolním rohu okna aktualizují Azure IoT Hub. Hraniční zařízení nyní zobrazuje následující nasazené moduly:

    • Azure video Analyzer (název modulu avaedge )
    • Simulátor protokolu RTSP (Real-Time streaming Protocol) (název modulu rtspsim )

Příprava na monitorování událostí

Hraniční modul Analyzátoru videa použijete k detekci pohybu v příchozím živém video streamu a odesílání událostí do IoT Hub. Pokud chcete zobrazit tyto události, postupujte takto:

  1. Otevřete podokno Průzkumník v Visual Studio Code a vyhledejte Azure IoT Hub v levém dolním rohu.

  2. Rozbalte uzel Zařízení.

  3. Klikněte pravým tlačítkem na a na a nasa-iot-edge-device a vyberte Start Monitoring Built-in Event Endpoint (Zahájit monitorování předdefinového koncového bodu událostí).

    Zahájení monitorování integrovaného koncového bodu událostí

    Poznámka

    Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Pomocí modulu Azure video Analyzer zjistíte pohyb příchozích datových proudů v reálném videu a odešlete události do IoT Hub. Chcete-li zobrazit tyto události, postupujte podle následujících kroků:

  1. otevřete podokno průzkumník v Visual Studio Code a vyhledejte Azure IoT Hub v levém dolním rohu.
  2. Rozbalte uzel zařízení .
  3. Klikněte pravým tlačítkem na avasample-IoT-Edge-Device a vyberte Spustit sledování předdefinovaného koncového bodu události.

Začít monitorovat vestavěný koncový bod události

Poznámka

Můžete být vyzváni k zadání předdefinovaných informací koncového bodu pro IoT Hub. Chcete-li získat tyto informace, v Azure Portal přejděte do IoT Hub a vyhledejte v levém navigačním podokně možnost Předdefinované koncové body . Klikněte na něj a vyhledejte koncový bod kompatibilní s centrem událostí v části koncový bod kompatibilní s centrem událostí. Zkopírujte a použijte text v poli. Koncový bod bude vypadat přibližně takto: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Spuštění ukázkového programu

Pomocí těchto kroků spusťte vzorový kód:

  1. v Visual Studio Code otevřete kartu rozšíření (nebo stiskněte klávesy Ctrl + Shift + X) a vyhledejte IoT Hub Azure.

  2. klikněte pravým tlačítkem a vyberte rozšíření Nastavení.

    Nastavení rozšíření

  3. Vyhledejte a povolte možnost zobrazit podrobnou zprávu.

    Zobrazit podrobnou zprávu

  4. v Visual Studio Code, přejít na src/cloud-to-device-console-app/operations. json.

  5. V uzlu pipelineTopologySet se ujistěte, že vidíte následující hodnotu:

    "pipelineTopologyUrl" : "https://raw.githubusercontent.com/Azure/video-analyzer/main/pipelines/live/topologies/motion-detection/topology.json"
    
  6. V livePipelineSet livePipelineDelete uzlech a zajistěte, aby hodnota vlastnosti Topology odpovídala hodnotě vlastnosti Name v topologii kanálu:

    "topologyName" : "MotionDetection"

  7. Spusťte ladicí relaci, a to tak, že vyberete klávesu F5. V okně terminálu se zobrazí některé zprávy.

  8. Soubor Operations. JSON se spustí s voláními pipelineTopologyList a livePipelineList . Pokud jste vyčistili prostředky po dokončení předchozích rychlých startů, bude tento proces vracet prázdné seznamy.

    -----------------------  Request: pipelineTopologyList  --------------------------------------------------
    
    {
    "@apiVersion": "1.1"
    }
    
    ---------------  Response: pipelineTopologyList - Status: 200  ---------------
    
    {
      "value": []
    }
    
    --------------------------------------------------------------------------
    
    

    V okně terminálu se zobrazí další sada volání přímých metod:

    • Volání pipelineTopologySet , které používá předchozí pipelineTopologyUrl
    • Volání livePipelineSet , které používá následující tělo:
    {
      "@apiVersion": "1.1",
      "name": "Sample-Pipeline-1",
      "properties": {
        "topologyName": "MotionDetection",
        "description": "Sample pipeline description",
        "parameters": [
          {
            "name": "rtspUrl",
            "value": "rtsp://rtspsim:554/media/camera-300s.mkv"
          },
          {
            "name": "rtspUserName",
            "value": "testuser"
          },
          {
            "name": "rtspPassword",
            "value": "testpassword"
          }
        ]
      }
    }
    
    • Volání livePipelineActivate , které spustí živý kanál a tok videa.
    • Druhé volání, které livePipelineList ukazuje, že živý kanál je ve stavu spuštěno.
  9. Výstup v okně terminálu pozastaví Press Enter to continue . Ještě nevybírejte ENTER. Posuňte se nahoru, abyste viděli datové části odpovědi JSON pro přímé metody, které jste vyvolali.

  10. Přepněte do okna výstup v Visual Studio Code. Zobrazí se zpráva, že modul pro odesílání videí Analyzer do centra IoT odesílá. Následující část tohoto rychlého startu popisuje tyto zprávy.

  11. Živý kanál pokračuje v běhu a tiskne výsledky. Simulátor RTSP zachovává smyčku zdrojového videa. Pokud chcete zastavit živý kanál, vraťte se do okna terminálu a vyberte Enter.

    Další série volání vyčistí prostředky:

    • Volání livePipelineDeactivate deaktivuje kanál.
    • Volání pro livePipelineDelete odstranění kanálu.
    • Volání pro pipelineTopologyDelete odstranění topologie.
    • Konečné volání k pipelineTopologyList ukáže, že seznam je prázdný.

Pomocí těchto kroků spusťte vzorový kód:

  1. v Visual Studio Code otevřete kartu rozšíření (nebo stiskněte klávesy Ctrl + Shift + X) a vyhledejte IoT Hub Azure.

  2. klikněte pravým tlačítkem a vyberte rozšíření Nastavení.

    Nastavení rozšíření

  3. Vyhledejte a povolte možnost zobrazit podrobnou zprávu.

    Zobrazit podrobnou zprávu

  4. v Visual Studio Code, přejít na src/cloud-to-device-console-app/operations. json.

  5. Ujistěte se pipelineTopologySet , že je na uzlu zobrazena následující hodnota:

    "pipelineTopologyUrl" : "https://raw.githubusercontent.com/Azure/video-analyzer/main/pipelines/live/topologies/motion-detection/topology.json"
    
  6. V livePipelineSet livePipelineDelete uzlech a zajistěte, aby hodnota vlastnosti Topology odpovídala hodnotě vlastnosti Name v topologii kanálu:

    "topologyName" : "MotionDetection"

    • Přejděte do TERMINAL okna v vs Code
    • Pomocí příkazu CD přejděte do adresáře/video-Analyzer-IoT-Edge-Python-Main/src/Cloud-to-Device-Console-App
    • Spusťte "Python main.py". zobrazí se zprávy vytisknuté v TERMINAL okně.
  7. Soubor Operations. JSON se spustí s voláními pipelineTopologyList a livePipelineList . Pokud jste vyčistili prostředky po dokončení předchozích rychlých startů, bude tento proces vracet prázdné seznamy.

    -----------------------  Request: pipelineTopologyList  --------------------------------------------------
    
    {
    "@apiVersion": "1.1"
    }
    
    ---------------  Response: pipelineTopologyList - Status: 200  ---------------
    
    {
      "value": []
    }
    
    --------------------------------------------------------------------------
    
    

    V okně terminálu se zobrazí další sada volání přímých metod:

    • Volání pipelineTopologySet , které používá předchozí pipelineTopologyUrl
    • Volání livePipelineSet , které používá následující tělo:
    {
      "@apiVersion": "1.1",
      "name": "Sample-Pipeline-1",
      "properties": {
        "topologyName": "MotionDetection",
        "description": "Sample pipeline description",
        "parameters": [
          {
            "name": "rtspUrl",
            "value": "rtsp://rtspsim:554/media/camera-300s.mkv"
          },
          {
            "name": "rtspUserName",
            "value": "testuser"
          },
          {
            "name": "rtspPassword",
            "value": "testpassword"
          }
        ]
      }
    }
    
    • Volání livePipelineActivate , které spustí živý kanál a tok videa.
    • Druhé volání, které livePipelineList ukazuje, že živý kanál je ve stavu spuštěno.
  8. Výstup v okně terminálu pozastaví Press Enter to continue . Ještě nevybírejte ENTER. Posuňte se nahoru, abyste viděli datové části odpovědi JSON pro přímé metody, které jste vyvolali.

  9. Přepněte do okna výstup v Visual Studio Code. Zobrazí se zprávy, které modul Azure video Analyzer odesílá do služby IoT Hub. Následující část tohoto rychlého startu popisuje tyto zprávy.

  10. Živý kanál pokračuje v běhu a tiskne výsledky. Simulátor RTSP zachovává smyčku zdrojového videa. Pokud chcete zastavit živý kanál, vraťte se do okna terminálu a vyberte Enter.

    Další série volání vyčistí prostředky:

    • Volání livePipelineDeactivate deaktivuje kanál.
    • Volání pro livePipelineDelete odstranění kanálu.
    • Volání pro pipelineTopologyDelete odstranění topologie.
    • Konečné volání k pipelineTopologyList ukáže, že seznam je prázdný.

Interpretace výsledků

Když spustíte živý kanál, výsledky z uzlu procesoru detektoru pohybu projdou kanálem IoT Hub jímky zpráv do centra IoT. Zprávy, které se zobrazí v okně VÝSTUP Visual Studio Code obsahují oddíl body a oddíl applicationProperties. Další informace najdete v tématu Vytvoření a čtení IoT Hub zpráv.

V následujících zprávách modul hran Analyzátoru videa definuje vlastnosti aplikace a obsah těla.

Událost MediaSessionEstablished

Po aktivaci živého kanálu se zdrojový uzel RTSP pokusí připojit k serveru RTSP, který běží v kontejneru rtspsim-live555. Pokud je připojení úspěšné, vytiskne se následující událost.

[IoTHubMonitor] [10:51:34 AM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
  {
    "sdp&quot;: &quot;SDP:\nv=0\r\no=- 1620204694595500 1 IN IP4 xxx.xxx.xxx.xxx\r\ns=Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\ni=media/camera-300s.mkv\r\nt=0 0\r\na=tool:LIVE555 Streaming Media v2020.08.19\r\na=type:broadcast\r\na=control:*\r\na=range:npt=0-300.000\r\na=x-qt-text-nam:Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\na=x-qt-text-inf:media/camera-300s.mkv\r\nm=video 0 RTP/AVP 96\r\nc=IN IP4 0.0.0.0\r\nb=AS:500\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=Z00AKeKQCgC3YC3AQEBpB4kRUA==,aO48gA==\r\na=control:track1\r\n"
  },
  "properties": {
    "topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ava-sample-deployment/providers/Microsoft.Media/videoAnalyzers/avasample",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sources/rtspSource",
    "eventType": "Microsoft.VideoAnalyzer.Diagnostics.MediaSessionEstablished",
    "eventTime": "2021-05-06T00:58:58.602Z",
    "dataVersion": "1.0"
  },
  "systemProperties": {
    "iothub-connection-device-id": "avasample-iot-edge-device",
    "iothub-connection-module-id": "avaedge",
    "iothub-message-source": "Telemetry",
    "messageId": "459c3255-7c86-4ff5-a1e5-7ce3fcb07627",
    "contentType": "application/json",
    "contentEncoding": "utf-8"
  }
}

V předchozím výstupu:

  • Zpráva je diagnostická událost MediaSessionEstablished. Označuje, že zdrojový uzel RTSP (subjekt) je připojený k simulátoru RTSP a začal přijímat (simulovaný) živý kanál.
  • Oddíl sdp obsahuje data o události diagnostiky. V tomto případě se data skládají z podrobností protokolu SDP (Session Description Protocol).

Událost MotionDetection

Když se detekuje pohyb, modul Analyzátor videa odešle událost odvozování. Typ * * je nastavený na pohyb, který označuje, že se jedná o výsledek z procesoru pro detekci pohybu.

Tady je příklad této zprávy:

{
  "body": {
    "timestamp": 145818422564951,
    "inferences": [
      {
        "type": "motion",
        "motion": {
          "box": {
            "l": 0.322176,
            "t": 0.574627,
            "w": 0.525,
            "h": 0.088889
          }
        }
      }
    ]
  },
  "properties": { … },
  "systemProperties": { … }
}

V tomto příkladu:

  • Hodnota textu jsou data o analytické události. V tomto případě je událost událostí odvozování, takže tělo obsahuje časová razítka a odvozování dat.

  • Data odvození indikuje, že typ je pohyb. Obsahuje další data o této události pohybu.

  • Oddíl box obsahuje souřadnice ohraničovacího rámečku kolem přesouvajícího objektu. Hodnoty jsou normalizovány šířkou a výškou videa v pixelech. Pokud byste například chtěli získat souřadnice původních pixelů, vynásobíme vodorovné rozměry 1920 a svislé rozměry 1080.

    l - distance from left of image
    t - distance from top of image
    w - width of bounding box
    h - height of bounding box
    

Když spustíte živý kanál, výsledky z uzlu procesoru snímače pohybu procházejí uzlem IoT Hubch umyvadel zprávy do služby IoT Hub. zprávy, které vidíte v okně výstup Visual Studio Code, obsahují oddíl tělo a část applicationProperties . Další informace najdete v tématu Vytvoření a čtení zpráv IoT Hub.

V následujících zprávách modul Azure video Analyzer definuje vlastnosti aplikace a obsah těla.

Událost MediaSessionEstablished

Když se aktivuje živý kanál, pokusí se zdrojový uzel RTSP připojit k serveru RTSP, který běží na kontejneru rtspsim-live555. Pokud je připojení úspěšné, bude vytištěna následující událost.

[IoTHubMonitor] [10:51:34 AM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
  {
    "sdp&quot;: &quot;SDP:\nv=0\r\no=- 1620204694595500 1 IN IP4 xxx.xxx.xxx.xxx\r\ns=Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\ni=media/camera-300s.mkv\r\nt=0 0\r\na=tool:LIVE555 Streaming Media v2020.08.19\r\na=type:broadcast\r\na=control:*\r\na=range:npt=0-300.000\r\na=x-qt-text-nam:Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\na=x-qt-text-inf:media/camera-300s.mkv\r\nm=video 0 RTP/AVP 96\r\nc=IN IP4 0.0.0.0\r\nb=AS:500\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=Z00AKeKQCgC3YC3AQEBpB4kRUA==,aO48gA==\r\na=control:track1\r\n"
  },
  "properties": {
    "topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ava-sample-deployment/providers/Microsoft.Media/videoAnalyzers/avasample",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sources/rtspSource",
    "eventType": "Microsoft.VideoAnalyzer.Diagnostics.MediaSessionEstablished",
    "eventTime": "2021-05-06T00:58:58.602Z",
    "dataVersion": "1.0"
  },
  "systemProperties": {
    "iothub-connection-device-id": "avasample-iot-edge-device",
    "iothub-connection-module-id": "avaedge",
    "iothub-message-source": "Telemetry",
    "messageId": "459c3255-7c86-4ff5-a1e5-7ce3fcb07627",
    "contentType": "application/json",
    "contentEncoding": "utf-8"
  }
}

V předchozím výstupu:

  • Zpráva je událost diagnostiky, MediaSessionEstablished. Indikuje, že zdrojový uzel RTSP (předmět) připojený k simulátoru RTSP a začal přijímat (simulované) živé kanály.
  • Oddíl SDP obsahuje data o diagnostickou událost. V tomto případě data obsahují podrobnosti protokolu SDP (Session Description Protocol) .

Událost MotionDetection

Po zjištění pohybu odešle modul video Analyzer událost odvození. Typ je nastaven na pohyb , což značí, že je výsledkem procesoru detekce pohybu.

Tady je příklad této zprávy:

{
  "body": {
    "timestamp": 145818422564951,
    "inferences": [
      {
        "type": "motion",
        "motion": {
          "box": {
            "l": 0.322176,
            "t": 0.574627,
            "w": 0.525,
            "h": 0.088889
          }
        }
      }
    ]
  },
  "properties": { … },
  "systemProperties": { … }
}

V tomto příkladu:

  • Hodnota těla je data o události analýzy. V tomto případě událost je odvozená událost, takže tělo obsahuje časové razítko a odvození dat.

  • Odvozená data označují, že typ je pohyb. Obsahuje další data o této události pohybu .

  • Oddíl box obsahuje souřadnice ohraničujícího rámečku kolem objektu přesunutí. Hodnoty jsou normalizovány šířkou a výškou videa (v pixelech). Například pro získání původních souřadnic v pixelech byste měli vynásobit vodorovné rozměry 1920 a svislé rozměry hodnotou 1080.

    l - distance from left of image
    t - distance from top of image
    w - width of bounding box
    h - height of bounding box
    

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

Pokud chcete vyzkoušet další rychlé starty, měli byste vytvořené prostředky zachovat. Jinak v Azure Portal přejděte do svých skupin prostředků, vyberte skupinu prostředků, ve které jste tento rychlý start spustili, a pak odstraňte všechny prostředky.

Další kroky