Pijplijn
Met pijplijnen kunt u video opnemen, verwerken en publiceren in Azure Video Analyzer Edge en de cloud. Met pijplijnologieën kunt u definiëren hoe video moet worden opgenomen, verwerkt en gepubliceerd via een set configureerbare knooppunten. Zodra de topologies zijn gedefinieerd, kunnen ze worden gemaakt als afzonderlijke pijplijnen die gericht zijn op specifieke camera's of broninhoud, die onafhankelijk worden verwerkt. Pijplijnen kunnen aan de rand worden gedefinieerd en ge instantieerd voor on-premises videoverwerking of in de cloud. De onderstaande diagrammen bieden grafische weergaven van dergelijke pijplijnen.
Aanbevolen om te lezen
Pijplijnologieën
Met een pijplijntopologie kunt u beschrijven hoe livevideo's of opgenomen video's moeten worden verwerkt en geanalyseerd op basis van uw aangepaste behoeften via een set onderling verbonden knooppunten. Het fungeert als een sjabloon of blauwdruk voor uw livevideowerkstroom. Video Analyzer ondersteunt twee soorten topologies: live en batch. Live-pologies, zoals de naam al aangeeft, worden gebruikt met live video van camera's. Batch-topologies worden gebruikt om opgenomen video's te verwerken.
Pijplijn ondersteunt verschillende typen knooppunten:
- Bronknooppunten maken het vastleggen van gegevens in de pijplijn mogelijk. Gegevens verwijzen naar audio, video en/of metagegevens.
- Processorknooppunten maken de verwerking van media in de pijplijn mogelijk.
- Sink-knooppunten maken het mogelijk om de resultaten te leveren aan services en apps buiten de pijplijn.
U kunt verschillende topologieën voor verschillende scenario's maken door te selecteren welke knooppunten zich in de topologie, hoe ze zijn verbonden, met parameters als tijdelijke aanduidingen voor waarden. Een pijplijn is een afzonderlijk exemplaar van een specifieke pijplijntopologie. Een pijplijn is waar media daadwerkelijk worden verwerkt. Pijplijnen kunnen worden gekoppeld aan afzonderlijke camera's of opgenomen video's via door de gebruiker gedefinieerde parameters die zijn gedeclareerd in de pijplijntopologie. Exemplaren van een livetopologie worden live-pijplijnen genoemd en exemplaren van een batchtopologie worden pijplijntaken genoemd.
Als u bijvoorbeeld video's van meerdere IP-camera's wilt opnemen, kunt u een pijplijntopologie definiëren die bestaat uit een RTSP-bron-knooppunt en een videos sink-knooppunt. Het RTSP-bron-knooppunt kan een RTSP-URL, gebruikersnaam en wachtwoord als parameters hebben. Het video-sink-knooppunt kan de videonaam als parameter hebben. Waarden voor deze parameters kunnen worden opgegeven bij het maken van meerdere pijplijnen op basis van dezelfde topologie: één pijplijn per camera.
Batch-pologies worden alleen ondersteund in de Video Analyzer-service (en niet in de Edge-module van Video Analyzer). Live-pijplijnen worden in beide ondersteund.
Pijplijn-staten
U begint met het maken van de pijplijntopologie. Zodra de topologie is gedefinieerd, kunt u pijplijnen maken door waarden op te geven voor de parameters.
Live-pijplijn
De levenscyclus van een pijplijn wordt weergegeven in het onderstaande diagram.
Wanneer een pijplijn is gemaakt, heeft deze de status 'Inactief'. Na activering krijgt een pijplijn kort de status Activeren voordat deze de status Actief krijgt. Gegevens (live video) stromen door de pijplijn wanneer deze de status Actief hebben. Na deactivering krijgt een actieve pijplijn de status Deactiveren en vervolgens Deactive. Alleen inactieve pijplijnen kunnen worden verwijderd.
Live-pijplijnen zijn ontworpen om actief te blijven, zodra ze zijn geactiveerd, en om de live video van de bron (camera) te blijven verwerken. Een expliciete deactiveeropdracht is vereist om de verwerking te stoppen. Een pijplijn kan actief zijn zonder dat er gegevens doorheen stromen (de bron van de invoervideo gaat bijvoorbeeld offline). Uw Azure-abonnement wordt gefactureerd wanneer de pijplijn actief is.
Batch-pijplijn
De levenscyclus van een pijplijn taak wordt weergegeven in het onderstaande diagram.
Wanneer een pijplijn taak is gemaakt, wordt deze in de status 'Verwerking' gezet. Als de taak is voltooid, heeft deze de status Voltooid, anders wordt de status Mislukt als deze mislukt. Hoewel de pijplijn job de status 'Processing' heeft, kan er ook een annuleringsaanvraag worden uitgegeven. Als deze aanvraag is geslaagd, krijgt de taak de status Geannuleerd. Uw Azure-abonnement wordt alleen gefactureerd als de pijplijn-taak is voltooid.
Meerdere pijplijnen kunnen worden gemaakt op basis van één topologie door verschillende waarden op te geven voor de parameters in de topologie. U kunt bijvoorbeeld pijplijntaken met dezelfde topologie verzenden voor verschillende video-opnamen. Een topologie kan worden verwijderd wanneer alle pijplijnen zijn verwijderd.
Bronnen, processors en sinks
Met Video Analyzer kunt u pijplijn-topologies definiëren met de volgende knooppunten.
Notitie
Niet alle knooppunten zijn beschikbaar in zowel de Edge-module als de service van Video Analyzer. Zie Regels voor het gebruik van knooppunten.
Bronnen
RTSP-bron
Met een RTSP-bron-knooppunt kunt u media vastleggen vanaf een RTSP-camera. Kijk hier voor meer informatie. Voor het RTSP-bron-knooppunt moet u een RTSP-URL opgeven, samen met referenties om een geverifieerde verbinding mogelijk te maken.
IoT Hub-berichtbron
Net als IoT Edge-moduleskan de Azure Video Analyzer-module berichten ontvangen via IoT Edge hub. Berichten kunnen worden verzonden vanuit andere modules of apps die worden uitgevoerd op het Edge-apparaat of vanuit de cloud. Dergelijke berichten kunnen worden bezorgd (gerouteerd) naar een benoemde invoer in de video analyzer-module. Een IoT Hub berichtbron-knooppunt maakt de opname van dergelijke berichten in een pijplijn mogelijk. Berichten kunnen vervolgens worden gebruikt in een pijplijn om een signaalpoort te activeren (zie onderstaande signaalpoorten).
U kunt bijvoorbeeld een module IoT Edge die een bericht genereert wanneer een deur wordt geopend. Het bericht van die module kan worden doorgeleid naar IoT Edge hub, van waar het vervolgens kan worden gerouteerd naar de berichtbron van de IoT-hub van een pijplijn. Binnen de pijplijn kan het bericht worden doorgegeven van de berichtbron van de IoT-hub naar een signaalpoortprocessor, die vervolgens de opname van de video van een RTSP-bron in een bestand kan in- of uit te zetten.
Videobron
Hiermee kan video-inhoud die door Video Analyzer is opgenomen, worden gebruikt als bron. Voor het knooppunt moet u de naam van de videoresourceopgeven, evenals de begin- en eindtijd van de gedeelten van de opgenomen video die moet worden verwerkt.
Processors
Bewegingsdetectieprocessor
Met het knooppunt van de bewegingsdetectieprocessor kunt u beweging in live video detecteren. Het onderzoekt binnenkomende videoframes en bepaalt of er beweging in de video is. Als er beweging wordt gedetecteerd, wordt het videoframe door geven aan het volgende knooppunt in de pijplijn en wordt een gebeurtenis. Het knooppunt van de bewegingsdetectieprocessor (in combinatie met andere knooppunten) kan worden gebruikt om de opname van de binnenkomende video te activeren wanneer er beweging wordt gedetecteerd.
HTTP-extensieprocessor
Met het knooppunt van de HTTP-extensieprocessor kunt u de pijplijn uitbreiden naar uw IoT Edge module. Dit knooppunt neemt gedecodeerde videoframes als invoer en geeft dergelijke frames door aan een HTTP REST-eindpunt dat door uw module wordt getoond, waar u het frame kunt analyseren met een AI-model en de deferenceresultaten kunt retourneren. Daarnaast heeft dit knooppunt een ingebouwde afbeeldingsindeling voor het schalen en coderen van videoframes voordat ze naar het HTTP-eindpunt worden doorgegeven. De scaler heeft opties voor de afbeeldingsverhouding die moet worden behouden, opgevuld of uitgerekt. De afbeeldingscoder ondersteunt JPEG-, PNG-, BMP- en RAW-indelingen. Meer informatie over de processor kunt u hier vinden.
gRPC-extensieprocessor
Het knooppunt van de gRPC-extensieprocessor neemt gedecodeerde videoframes als invoer en geeft dergelijke frames door aan een gRPC-eindpunt dat door uw module wordt blootgesteld. Het knooppunt ondersteunt het overdragen van gegevens met behulp van gedeeld geheugen of het rechtstreeks insluiten van het frame in de body van gRPC-berichten. Net als bij het HTTP-extensieproces heeft dit knooppunt ook een ingebouwde afbeeldingsindeling voor het schalen en coderen van videoframes voordat deze naar het gRPC-eindpunt worden doorgegeven. Meer informatie over de processor kunt u hier vinden.
Cognitive Services-extensieprocessor
Met Cognitive Services-extensieprocessor kunt u de pijplijn uitbreiden naar de module Ruimtelijke analyse IoT Edge module. Dit knooppunt neemt gedecodeerde videoframes als invoer en geeft dergelijke frames door aan een gRPC-eindpunt dat wordt blootgesteld door, waar u het frame kunt analyseren met vaardigheden voor ruimtelijke analyse en de deferenceresultaten kunt retourneren. Meer informatie over de processor kunt u hier vinden.
Signaalpoortprocessor
Met het signaalpoortprocessor-knooppunt kunt u media voorwaardelijk van het ene knooppunt naar het andere doorsturen. Het signaalpoortprocessor-knooppunt moet onmiddellijk worden gevolgd door een video-sink of bestandss sink. Een voorbeeld van een gebruiksvoorbeeld is het invoegen van een signaalpoortprocessor-knooppunt tussen het RTSP-bron-knooppunt en het videos sink-knooppunt, en het gebruik van de uitvoer van een bewegingsdetectorprocessor-knooppunt om de poort te activeren. Met een dergelijke pijplijn zou u alleen video opnemen wanneer er beweging wordt gedetecteerd. U kunt ook de uitvoer van het HTTP- of gRPC-extensie-knooppunt gebruiken om de poort te activeren, in plaats van het knooppunt van de bewegingsdetectieprocessor, zodat video kan worden opgenomen wanneer er iets interessants wordt gedetecteerd.
Objecttrackerprocessor
Met het objecttrackerprocessor-knooppunt kunt u objecten bijhouden die zijn gedetecteerd in een upstream HTTP- of gRPC-extensieprocessor-knooppunt. Dit knooppunt is handig wanneer u objecten in elk frame moet detecteren, maar het edge-apparaat niet de benodigde rekenkracht heeft om het AI-model op elk frame toe te passen. Als u uw Computer Vision-model alleen op elk 10e frame kunt uitvoeren, kan de objecttracker de resultaten van een dergelijk frame nemen en vervolgens optische stroomtechnieken gebruiken om resultaten te genereren voor het tweede, derde,..., 9e frame, totdat het model opnieuw wordt toegepast op het volgende frame. Er is een afweging tussen rekenkracht en nauwkeurigheid bij het gebruik van dit knooppunt. Hoe dichter de frames waarop het AI-model wordt toegepast, hoe nauwkeuriger. Dit betekent echter dat het AI-model vaker moet worden toegepast en moet worden vertaald naar een hogere rekenkracht. Een veelgebruikt gebruik van het objecttrackerprocessor-knooppunt is om te detecteren wanneer een object een lijn passeert.
Processor voor lijnkruising
Met het processor-knooppunt voor lijnkruising kunt u detecteren wanneer een object een door u gedefinieerde lijn passeert. Daarnaast wordt er ook een telling bijhoudt van het aantal objecten dat de regel passeert (vanaf het moment dat een pijplijn wordt geactiveerd). Dit knooppunt moet downstream van een objecttrackerprocessor-knooppunt worden gebruikt.
Encoderprocessor
Met het knooppunt van de encoderprocessor kan de gebruiker coderingseigenschappen opgeven bij het converteren van de opgenomen video naar de gewenste indeling voor downstreamverwerking. Video's die zijn opgenomen vanaf een camera die is geconfigureerd voor een resolutie van 4K, moeten bijvoorbeeld mogelijk worden geconfigureerd naar een resolutie van Volledig HD (1920x1080) voordat deze naar een bestand wordt geëxporteerd.
Putten
Video-sink
Met een videos sink-knooppunt kunt u video's en bijbehorende metagegevens opslaan in uw Video Analyzer-cloudresource. Video's kunnen continu of verspreid (op basis van gebeurtenissen) worden opgenomen. Video-sink-knooppunt kan video op het edge-apparaat in de cache cachen als de verbinding met de cloud is verloren en het uploaden hervatten wanneer de verbinding is hersteld. U kunt het artikel continue video-opname bekijken voor meer informatie over hoe de eigenschappen van dit knooppunt kunnen worden geconfigureerd.
Uit veiligheidsoverwegingen kan een bepaald exemplaar van de Video Analyzer Edge-module alleen inhoud opnemen in nieuwe video-vermeldingen of eerder opgenomen video-vermeldingen door dezelfde module. Elke poging om inhoud op te nemen in een bestaande video die niet is gemaakt door hetzelfde edge-module-exemplaar, resulteert in een fout bij het opnemen.
Bestandss sink
Met het bestandss sink-knooppunt kunt u video schrijven naar een locatie op het lokale bestandssysteem van het edge-apparaat. Er kan slechts één bestandss sink-knooppunt in een pijplijn zijn en het moet downstream zijn van een signaalpoortprocessor-knooppunt. Dit beperkt de duur van de uitvoerbestanden tot waarden die zijn opgegeven in de eigenschappen van het signaalpoortprocessor-knooppunt. Om ervoor te zorgen dat uw edge-apparaat geen schijfruimte meer heeft, kunt u ook de maximale grootte instellen die de Video Analyzer Edge-module kan gebruiken om gegevens in de cache op te nemen.
Als de cache vol is, worden de oudste gegevens door de Edge-module van Video Analyzer verwijderd en vervangen door de nieuwe.
IoT Hub message sink
Met IoT Hub message sink-knooppunt kunt u gebeurtenissen publiceren naar IoT Edge hub. De IoT Edge hub kan worden geconfigureerd om de gegevens door te geven naar andere modules of apps op het edge-apparaat, of om IoT Hub in de cloud te gebruiken (volgens routes die zijn opgegeven in het implementatiemanifest). Het IoT Hub message sink-knooppunt kan gebeurtenissen accepteren van upstreamprocessorknooppunten, zoals een knooppunt van een bewegingsdetectieprocessor of van een externe deductieservice via een HTTP-extensieprocessorknooppunt.
Regels voor het gebruik van knooppunten
In de volgende tabel worden de huidige regels beschreven waarop knooppunten zijn toegestaan in live- en batchologieën, en in de Edge-module en -service van Video Analyzer.
| Naam van knooppunt | Type topologie | Implementatie |
|---|---|---|
| RTSP-bron | Live | Edge en cloud |
| IoT Hub-berichtbron | Live | Edge |
| Videobron | Batch | Cloud |
| Bewegingsdetectieprocessor | Live | Edge |
| HTTP-extensieprocessor | Live | Edge |
| gRPC-extensieprocessor | Live | Edge |
| Cognitive Services-extensieprocessor | Live | Edge |
| Signaalpoortprocessor | Live | Edge |
| Objecttrackerprocessor | Live | Edge |
| Processor voor lijnkruising | Live | Edge |
| Encoderprocessor | Batch | Cloud |
| Video-sink | Live en batch | Edge en cloud |
| Bestandss sink | Live | Edge |
| Berichtens sink voor IoT Hub | Live | Edge |
Zie beperkingen voor pijplijnen voor aanvullende regels voor het gebruik van verschillende knooppunten binnen een topologie.
Scenario's
Met behulp van een combinatie van de bronnen, processors en sinks die hierboven zijn gedefinieerd, kunt u pijplijnen bouwen voor verschillende scenario's waarbij live video wordt geanalyseerd. Voorbeeldscenario's zijn:
Volgende stappen
Zie Snelstart:aan de slag - Azure Video Analyzer om te zien hoe u bewegingsdetectie kunt uitvoeren op een livevideofeed.