Rychlý start: Detekce pohybu a vysílání událostí
![]()
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.
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.
Úč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
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ří:
- Účet Analyzátoru videa – tato 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.
- Storage účet – pro ukládání nahraných analýz videa a videa.
- 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ě.
- Virtuální počítač – virtuální počítač, který bude sloužit jako simulované hraniční zařízení.
- 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

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
Naklonujte úložiště ukázek Ava C#.
spusťte Visual Studio Code a otevřete složku, do které se úložiště stáhlo.
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.
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 .
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í.
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
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>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ů:
otevřete podokno průzkumník v Visual Studio Code a hledejte Azure IoT Hub v levém dolním rohu.
Rozbalte uzel zařízení .
Klikněte pravým tlačítkem na
avasample-iot-edge-devicea 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
Naklonujte úložiště ukázek Ava Pythonu.
spusťte Visual Studio Code a otevřete složku, do které se úložiště stáhlo.
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.
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 .
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í.
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
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>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ů:
otevřete podokno průzkumník v Visual Studio Code a hledejte Azure IoT Hub v levém dolním rohu.
Rozbalte uzel zařízení .
Klikněte pravým tlačítkem na
avasample-iot-edge-devicea 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ů
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é.
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ů.
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é.
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í.
Otevřete Visual Studio Code.
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 .

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>Klikněte pravým tlačítkem na Src/Edge/Deployment. template. JSON a vyberte Generovat IoT Edge manifest nasazení.

Tato akce by měla vytvořit soubor manifestu s názvem Deployment. amd64. JSON ve složce Src/Edge/config .
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í.

Až budete vyzváni k výběru zařízení IoT Hub, zvolte z rozevírací nabídky avasample-IoT-Edge-Device .
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)
- Modul Edge Analyzer pro video (název modulu
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í.
Otevřete Visual Studio Code.
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 .

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>Klikněte pravým tlačítkem na Src/Edge/Deployment. template. JSON a vyberte Generovat IoT Edge manifest nasazení.

Tato akce by měla vytvořit soubor manifestu s názvem Deployment. amd64. JSON ve složce Src/Edge/config .
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í.

Až budete vyzváni k výběru zařízení IoT Hub, zvolte z rozevírací nabídky avasample-IoT-Edge-Device .
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)
- Azure video Analyzer (název modulu
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:
Otevřete podokno Průzkumník v Visual Studio Code a vyhledejte Azure IoT Hub v levém dolním rohu.
Rozbalte uzel Zařízení.
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í).

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ů:
- otevřete podokno průzkumník v Visual Studio Code a vyhledejte Azure IoT Hub v levém dolním rohu.
- Rozbalte uzel zařízení .
- 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>
Spuštění ukázkového programu
Pomocí těchto kroků spusťte vzorový kód:
v Visual Studio Code otevřete kartu rozšíření (nebo stiskněte klávesy Ctrl + Shift + X) a vyhledejte IoT Hub Azure.
klikněte pravým tlačítkem a vyberte rozšíření Nastavení.
Vyhledejte a povolte možnost zobrazit podrobnou zprávu.
v Visual Studio Code, přejít na src/cloud-to-device-console-app/operations. json.
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"V
livePipelineSetlivePipelineDeleteuzlech a zajistěte, aby hodnota vlastnosti Topology odpovídala hodnotě vlastnosti Name v topologii kanálu:"topologyName" : "MotionDetection"Spusťte ladicí relaci, a to tak, že vyberete klávesu F5. V okně terminálu se zobrazí některé zprávy.
Soubor Operations. JSON se spustí s voláními
pipelineTopologyListalivePipelineList. 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é
livePipelineListukazuje, že živý kanál je ve stavu spuštěno.
- Volání
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.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.
Ž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í
livePipelineDeactivatedeaktivuje kanál. - Volání pro
livePipelineDeleteodstranění kanálu. - Volání pro
pipelineTopologyDeleteodstranění topologie. - Konečné volání k
pipelineTopologyListukáže, že seznam je prázdný.
- Volání
Pomocí těchto kroků spusťte vzorový kód:
v Visual Studio Code otevřete kartu rozšíření (nebo stiskněte klávesy Ctrl + Shift + X) a vyhledejte IoT Hub Azure.
klikněte pravým tlačítkem a vyberte rozšíření Nastavení.
Vyhledejte a povolte možnost zobrazit podrobnou zprávu.
v Visual Studio Code, přejít na src/cloud-to-device-console-app/operations. json.
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"V
livePipelineSetlivePipelineDeleteuzlech a zajistěte, aby hodnota vlastnosti Topology odpovídala hodnotě vlastnosti Name v topologii kanálu:"topologyName" : "MotionDetection"-
- Přejděte do
TERMINALokna 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
TERMINALokně.
- Přejděte do
Soubor Operations. JSON se spustí s voláními
pipelineTopologyListalivePipelineList. 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é
livePipelineListukazuje, že živý kanál je ve stavu spuštěno.
- Volání
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.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.
Ž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í
livePipelineDeactivatedeaktivuje kanál. - Volání pro
livePipelineDeleteodstranění kanálu. - Volání pro
pipelineTopologyDeleteodstranění topologie. - Konečné volání k
pipelineTopologyListukáže, že seznam je prázdný.
- Volání
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": "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": "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
Postupujte podle rychlého startu Analýza živého videa s vlastním modelem a použijte AI u informačních kanálů živého videa.
Projděte si další výzvy pro pokročilé uživatele:
- Místo simulátoru RTSP použijte IP kameru, která podporuje protokol RTSP. IP kamery, které podporují protokol RTSP, najdete na stránce produktů vyhovujících standardu ONVIF. Vyhledejte zařízení, která odpovídají profilům G, S nebo T.
- Místo virtuálního počítače s Linuxem v Azure použijte zařízení s Linuxem AMD64 nebo x64. Toto zařízení musí být ve stejné síti jako IP kamera. Postupujte podle pokynů v tématu Instalace Azure IoT Edge Runtime v Linuxu. Pak postupujte podle pokynů v tématu Nasazení prvního modulu IoT Edge do virtuálního zařízení s Linuxem a zaregistrujte zařízení v Azure IoT Hub.