Pipeline
Med pipelines kan du mata in, bearbeta och publicera video i Azure Video Analyzer i gräns- och molntjänster. Med pipeline-topologier kan du definiera hur video ska matas in, bearbetas och publiceras i via en uppsättning konfigurerbara noder. När topologier har definierats kan de instansieras som enskilda pipelines som riktar in sig på specifika kameror eller källinnehåll, som bearbetas oberoende av varandra. Pipelines kan definieras och instansieras vid gränsen för lokal videobearbetning eller i molnet. Diagrammen nedan visar grafiska representationer av sådana pipelines.
Föreslagen förläsning
Pipeline-topologier
Med en pipelinetopologi kan du beskriva hur livevideo eller inspelade videor ska bearbetas och analyseras för dina anpassade behov via en uppsättning sammankopplade noder. Den fungerar som en mall eller skiss för ditt live-videoarbetsflöde. Videoanalys har stöd för två typer av topologier: live och batch. Live-topologier används, som namnet antyder, med livevideo från kameror. Batch-topologier används för att bearbeta inspelade videor.
Pipeline stöder olika typer av noder:
- Källnoder gör det möjligt att samla in data till pipelinen. Data avser ljud, video och/eller metadata.
- Processornoder möjliggör bearbetning av media i pipelinen.
- Med hjälp av noder för mottagare kan du leverera resultaten till tjänster och appar utanför pipelinen.
Du kan skapa olika topologier för olika scenarier genom att välja vilka noder som finns i topologin, hur de är anslutna, med parametrar som platshållare för värden. En pipeline är en enskild instans av en specifik pipelinetopologi. En pipeline är den plats där media faktiskt bearbetas. Pipelines kan associeras med enskilda kameror eller inspelade videor via användardefinierade parametrar som deklareras i pipelinetopologin. Instanser av en live-topologi kallas live-pipelines och instanser av en batchtopologi kallas pipelinejobb.
Om du till exempel vill spela in videor från flera IP-kameror kan du definiera en pipelinetopologi som består av en RTSP-källnod och en nod för video mottagare. RTSP-källnoden kan ha RTSP-URL, användarnamn och lösenord som parametrar. Video-mottagarens nod kan ha videonamnet som en parameter. Värden för dessa parametrar kan anges när du skapar flera pipelines från samma topologi – en pipeline per kamera.
Batch-topologier stöds endast i Video Analyzer-tjänsten (och inte i Video Analyzer Edge-modulen). Live-pipelines stöds i båda.
Pipeline-tillstånd
Du börjar med att skapa pipelinetopologin. När topologin har definierats kan du skapa pipelines genom att ange värden för parametrarna.
Live-pipeline
Livscykeln för en pipeline visas i diagrammet nedan.
När en pipeline har skapats är den i tillståndet "Inaktiv". Vid aktiveringen går en pipeline kort in i tillståndet Aktivera innan den går till tillståndet "Aktiv". Data (livevideo) börjar flöda genom pipelinen när den är i tillståndet "Aktiv". Vid inaktivering går en aktiv pipeline in i tillståndet "Inaktiverar" och sedan "Inaktiv". Endast inaktiva pipelines kan tas bort.
Live-pipelines är utformade för att förbli aktiva, när de har aktiverats och fortsätta bearbeta livevideon från källan (kameran). Ett explicit inaktivera-kommando krävs för att stoppa bearbetningen. En pipeline kan vara aktiv utan att data flödar genom den (till exempel går indatavideokällan offline). Din Azure-prenumeration debiteras när pipelinen är i aktivt tillstånd.
Batch-pipeline
Livscykeln för ett pipeline-jobb visas i diagrammet nedan.
När ett pipeline-jobb har skapats hamnar det i tillståndet "Bearbetning". Om jobbet har slutförts förs det i tillståndet Slutfört, annars hamnar det i tillståndet Misslyckad om det misslyckas. Även om pipelinejobbet är i tillståndet Bearbetning kan en begäran om att avbryta utfärdas. Om begäran lyckas går jobbet till tillståndet Avbruten. Din Azure-prenumeration debiteras bara om pipelinejobbet har slutförts.
Flera pipelines kan skapas från en enda topologi genom att ange olika värden för parametrarna i topologin. Du kan till exempel skicka pipelinejobb med samma topologi för olika videoinspelningar. En topologi kan tas bort när alla pipelines har tagits bort.
Källor, processorer och mottagare
Med Video Analyzer kan du definiera pipeline-topologier med följande noder.
Anteckning
Alla noder är inte tillgängliga i både Video Analyzer Edge-modulen och -tjänsten. Se Regler för nodanvändning.
Källor
RTSP-källa
Med en RTSP-källnod kan du samla in media från en RTSP-kompatibel kamera . Mer information finns här. Rtsp-källnoden kräver att du anger en RTSP-URL, tillsammans med autentiseringsuppgifter för att aktivera en autentiserad anslutning.
IoT Hub meddelandekälla
Precis som IoT Edge moduler kanAzure Video Analyzer-modulen ta emot meddelanden via IoT Edge hubben. Meddelanden kan skickas från andra moduler eller appar som körs på Edge-enheten eller från molnet. Sådana meddelanden kan levereras (dirigeras) till namngivna indata i videoanalysmodulen. En IoT Hub-nod för meddelandekälla möjliggör inmatning av sådana meddelanden i en pipeline. Meddelanden kan sedan användas i en pipeline för att aktivera en signalport (se signalgrindarna nedan).
Du kan till exempel ha en IoT Edge modul som genererar ett meddelande när en port öppnas. Meddelandet från den modulen kan dirigeras till IoT Edge, där det sedan kan dirigeras till IoT Hub-meddelandekällan för en pipeline. I pipelinen kan meddelandet skickas från IoT Hub-meddelandekällan till en signalportprocessor, som sedan kan aktivera inspelning av videon från en RTSP-källa till en fil.
Videokälla
Tillåter att ett Video Analyzer-inspelat videoinnehåll används som källa. Noden kräver att du anger namnet på videoresursen, samt start- och sluttiden för de delar av den eller de inspelade videor som ska bearbetas.
Processorer
Processor för rörelseidentifiering
Med noden för rörelseidentifieringsprocessorn kan du identifiera rörelse i direktsänd video. Den undersöker inkommande bildrutor och avgör om videon rör sig. Om rörelse identifieras skickar den videoramen till nästa nod i pipelinen och ger en händelse. Noden för rörelseidentifieringsprocessorn (tillsammans med andra noder) kan användas för att utlösa inspelning av den inkommande videon när rörelse identifieras.
PROCESSOR för HTTP-tillägg
Med http-tilläggsprocessornoden kan du utöka pipelinen till din egen IoT Edge modul. Den här noden tar avkodade bildrutor som indata och vidarebefordrar sådana bildrutor till en HTTP REST-slutpunkt som exponeras av din modul, där du kan analysera ramen med en AI-modell och returnera slutsatsslutpunktsresultat. Dessutom har den här noden en inbyggd bildformaterare för skalning och kodning av bildrutor innan de vidarebefordras till HTTP-slutpunkten. Skalning har alternativ för bildproportportförhållandet som ska bevaras, vaddas eller sträckas ut. Bildkodaren stöder JPEG-, PNG-, BMP- och RAW-format. Läs mer om processorn här.
gRPC-tilläggsprocessor
Processornoden för gRPC-tillägget tar avkodade bildrutor som indata och vidarebefordrar sådana bildrutor till en gRPC-slutpunkt som exponeras av modulen. Noden stöder överföring av data med delat minne eller direkt inbäddning av ramen i brödtexten i gRPC-meddelanden. Precis som HTTP-tilläggsprocessen har den här noden också en inbyggd bildformaterare för skalning och kodning av bildrutor innan de vidarebefordras till gRPC-slutpunkten. Läs mer om processorn här.
Cognitive Services tilläggsprocessor
Med Cognitive Services tilläggsprocessornoden kan du utöka pipelinen till modulen Spatial Analysis IoT Edge. Den här noden tar avkodade bildrutor som indata och vidarebefordrar sådana bildrutor till en gRPC-slutpunkt som exponeras av, där du kan analysera ramen med spatiala analyskunskaper och returnera inferensresultat tillbaka. Läs mer om processorn här.
Signalportprocessor
Med signalportens processornod kan du villkorligt vidarebefordra media från en nod till en annan. Signalportens processornod måste omedelbart följas av en video mottagare eller fil mottagare. Ett exempel på ett användningsfall är att infoga en signalportprocessornod mellan RTSP-källnoden och videoströmsnoden och använda utdata från en nod för rörelsedetektorprocessorn för att utlösa grinden. Med en sådan pipeline skulle du bara spela in video när rörelse identifieras. Du kan också använda utdata från HTTP- eller gRPC-tilläggsnoden för att utlösa grinden i stället för processornoden för rörelseidentifiering, vilket möjliggör inspelning av video när något intressant identifieras.
Objektspårarprocessor
Med objektspårarprocessornoden kan du spåra objekt som identifierats i en överordnad HTTP- eller gRPC-tilläggsprocessornod. Den här noden är användbar när du behöver identifiera objekt i varje bildruta, men gränsenheterna inte har den beräkningskraft som krävs för att kunna tillämpa AI-modellen på varje bildruta. Om du bara kan köra din modell för datorseende på var 10:e bildruta kan objektspåraren ta resultaten från en sådan bildruta och sedan använda optiska flödestekniker för att generera resultat för den andra, tredje,..., nitn ram tills modellen tillämpas igen på nästa bildruta. Det finns en avvägning mellan beräkningskraft och noggrannhet när du använder den här noden. Ju närmare bildrutorna som AI-modellen används, desto bättre noggrannhet. Det innebär dock att AI-modellen används oftare, vilket översätter till högre beräkningskraft. En vanlig användning av objektspårarprocessornoden är att identifiera när ett objekt passerar en linje.
Linjeöveringsprocessor
Med en linjekorsningsprocessornod kan du identifiera när ett objekt passerar en linje som definieras av dig. Utöver detta upprätthåller den också antalet objekt som passerar linjen (från den tidpunkt då en pipeline aktiveras). Den här noden måste användas nedströms till en objektspårarprocessornod.
Kodarprocessor
Kodarprocessornoden låter användaren ange kodningsegenskaper när den inspelade videon konverteras till önskat format för underordnad bearbetning. Till exempel kan video som registrerats från en kamera som konfigurerats för 4K-upplösning behöva ändras till full HD-upplösning (1920 x 1080) innan den exporteras till en fil.
Sjunker
Video mottagare
Med en nod för video mottagare kan du spara video och associerade metadata till din Video Analyzer-molnresurs. Video kan spelas in kontinuerligt eller sparsamt (baserat på händelser). Noden för video mottagare kan cachelagra video på gränsenhet om anslutningen till molnet går förlorad och återuppta uppladdningen när anslutningen har återställts. Du kan se artikeln kontinuerlig videoinspelning för information om hur egenskaperna för den här noden kan konfigureras.
Av säkerhetsskäl kan en viss Video Analyzer Edge-modulinstans endast spela in innehåll till nya videoposter eller tidigare inspelade videoposter av samma modul. Alla försök att spela in innehåll till en befintlig video som inte har skapats av samma edge-modulinstans leder till att det inte går att spela in.
Fil mottagare
Med noden för fil mottagare kan du skriva video till en plats i det lokala filsystemet på gränsenhet. Det kan bara finnas en nod för fil mottagare i en pipeline och den måste vara nedströms från en signalportprocessornod. Detta begränsar varaktigheten för utdatafilerna till värden som anges i egenskaperna för signalportprocessornoden. För att säkerställa att gränsenheten inte får slut på diskutrymme kan du också ange den maximala storlek som Video Analyzer Edge-modulen kan använda för att cachelagra data.
Om cacheminnet blir fullt börjar Video Analyzer Edge-modulen att ta bort de äldsta data och ersätta dem med den nya.
IoT Hub meddelande mottagare
En IoT Hub-nod för meddelanden gör att du kan publicera händelser till IoT Edge hub. Hubben IoT Edge konfigureras för att dirigera data till andra moduler eller appar på gränsenhet eller för att IoT Hub i molnet (per vägar som anges i distributionsmanifestet). Den IoT Hub kan ta emot händelser från överordnade processornoder, till exempel en nod för rörelseidentifiering, eller från en extern härledningstjänst via en HTTP-tilläggsprocessornod.
Regler för användning av noder
I följande tabell beskrivs de aktuella reglerna för vilka noder som tillåts i live- och batch-topologier samt i Video Analyzer Edge-modulen och -tjänsten.
| Nodnamn | Topologi typ | Distribution |
|---|---|---|
| RTSP-källa | Direktsändning | Gräns och moln |
| Meddelandekälla för IoT Hub | Direktsändning | Edge |
| Videokälla | Batch | Moln |
| Rörelseidentifieringsprocessor | Direktsändning | Edge |
| PROCESSOR för HTTP-tillägg | Direktsändning | Edge |
| gRPC-tilläggsprocessor | Direktsändning | Edge |
| Cognitive Services tilläggsprocessor | Direktsändning | Edge |
| Signalportprocessor | Direktsändning | Edge |
| Objektspårarprocessor | Direktsändning | Edge |
| Linjeöveringsprocessor | Direktsändning | Edge |
| Kodarprocessor | Batch | Moln |
| Video mottagare | Live och batch | Gräns och moln |
| Fil mottagare | Direktsändning | Edge |
| IoT Hub-meddelande mottagare | Direktsändning | Edge |
Se begränsningar för pipelines för ytterligare regler för hur olika noder kan användas i en topologi.
Scenarier
Med en kombination av källor, processorer och mottagare som definieras ovan kan du skapa pipelines för en mängd olika scenarier som omfattar analys av livevideo. Exempelscenarier är:
Nästa steg
Om du vill se hur du kan köra rörelseidentifiering på en livevideofeed kan du gå till Snabbstart: Komma igång – Azure Video Analyzer.