Nejčastější dotazy k Video Analyzeru

Tento článek obsahuje odpovědi na nejčastější dotazy k Azure Video Analyzeru.

Obecné

Jaké systémové proměnné můžu použít v definici topologie kanálu?

Proměnná Popis
System.Runtime.DateTime Představuje okamžik v čase UTC, obvykle vyjádřený jako datum a čas dne v následujícím formátu:
yyyyMMddTHHmmssZ
System.Runtime.PreciseDateTime Představuje instanci data a času utc (Coordinated Universal Time) ve formátu kompatibilním se soubory ISO8601 v milisekundách v následujícím formátu:
yyyyMMmddTHHmmss.fffZ
System.TopologyName Představuje název topologie kanálu.
System.PipelineName Představuje název živého kanálu.

Poznámka

System.Runtime.DateTime a System.Runtime.PreciseDateTime nelze použít jako součást názvu prostředku videa Azure Video Analyzer v uzlu jímky videa. Tyto proměnné lze použít v uzlu jímky souborů k pojmenování souboru.

Jaké jsou zásady ochrany osobních údajů pro Video Analyzer?

Video Analyzer se vztahuje na Prohlášení společnosti Microsoft o zásadách ochrany osobních údajů. Prohlášení o zásadách ochrany osobních údajů vysvětluje, jaké osobní údaje společnost Microsoft zpracovává, jak je společnost Microsoft zpracovává a k jakým účelům je zpracovává. Další informace o ochraně osobních údajů najdete v Centru zabezpečení Microsoftu.

Konfigurace a nasazení

Můžu nasadit hraniční modul na Windows 10 zařízení?

Ano. Další informace najdete v tématu Kontejnery Linuxu na Windows 10.

Používám virtuální počítač jako simulované hraniční zařízení. Můžu po nasazení změnit velikost konfigurace virtuálního počítače?

Ano, po nasazení hraničních modulů, jako je Video Analyzer, můžete virtuální počítač vertikálně navýšit nebo snížit na jinou velikost . Možná budete muset na virtuálním počítači restartovat modul runtime IoT Edge. Pro virtuální počítač s Linuxem použijte příkaz sudo systemctl restart iotedge. Pokud byly živé kanály spuštěné, měly by po dokončení restartování pokračovat. Během restartování byste viděli přerušení výstupu z kanálu (například události odvozování, nahrávání videa).

Jak můžu do modulu simulátoru kamery RTSP na IoT Edge zařízení přidat ukázkové videosoubory?

Pokud jste k instalaci simulátoru kamery použili rychlý start nebo kurz, přidejte nový videosoubor:

  • Zkontrolujte, jestli je soubor v podporovaném formátu a používá kodek videa H.264.
  • Stáhněte si soubor do /home/localedgeuser/samples/input/<videofile.mkv> IoT Edge zařízení, jak je znázorněno v této části.

Ukázkové multimediální soubory dostupné pro testování najdete v tématu Datové sady médií.

Zachytávání z IP kamery a nastavení RTSP

Musím k odeslání streamu videa na zařízení použít speciální sadu SDK?

Ne, Video Analyzer podporuje zachytávání médií pomocí protokolu RTSP (Real-Time Streaming Protocol) pro streamování videa, které je podporováno u většiny IP kamer.

Můžu do Video Analyzeru odesílat média pomocí jiných protokolů než RTSP?

Ne, Video Analyzer podporuje pouze RTSP pro záznam videa z IP kamer. Měla by fungovat jakákoli kamera, která podporuje streamování RTSP přes PROTOKOL TCP/HTTP.

Můžu resetovat nebo aktualizovat adresu URL zdroje RTSP v živém kanálu?

Ano, pokud je živý kanál v neaktivním stavu.

Je simulátor RTSP k dispozici pro použití během testování a vývoje?

Ano, hraniční modul simulátoru RTSP je k dispozici pro použití v rychlých startech a kurzech pro podporu procesu učení. Tento modul se poskytuje v rámci maximálního úsilí a nemusí být vždy k dispozici. Důrazně doporučujeme , abyste simulátor nepoužít déle než několik hodin. Před plánováním produkčního nasazení byste měli investovat do testování se skutečným zdrojem RTSP.

Návrh modelu AI

Mám několik modelů AI zabalených v kontejneru Dockeru. Jak je mám používat se službou Video Analyzer?

Řešení se liší v závislosti na komunikačním protokolu, který používá server pro odvozování ke komunikaci se službou Video Analyzer. Následující části popisují, jak jednotlivé protokoly fungují.

Použijte protokol HTTP:

  • Jeden kontejner (modul s názvem avaextension):

    Na serveru pro odvozování můžete pro různé modely AI použít jeden port, ale různé koncové body. Například pro ukázku Pythonu můžete použít různé routes modely, jak je znázorněno tady:

    @app.route('/score/face_detection', methods=['POST']) 
    … 
    Your code specific to face detection model
    
    @app.route('/score/vehicle_detection', methods=['POST']) 
    … 
    Your code specific to vehicle detection model 
    … 
    

    Při aktivaci živých kanálů pak v nasazení video analyzeru nastavte adresu URL serveru odvozování pro každý z nich, jak je znázorněno tady:

    1. živý kanál: adresa URL serveru pro odvozování=http://avaextension:44000/score/face_detection
    2. živý kanál: adresa URL serveru pro odvozování=http://avaextension:44000/score/vehicle_detection

    Poznámka

    Případně můžete modely AI vystavit na různých portech a volat je při aktivaci živých kanálů.

  • Více kontejnerů:

    Každý kontejner se nasadí s jiným názvem. V rychlých startech a kurzech jsme vám ukázali, jak nasadit rozšíření s názvem avaextension. Teď můžete vyvinout dva různé kontejnery, každý se stejným rozhraním HTTP, což znamená, že mají stejný /score koncový bod. Nasaďte tyto dva kontejnery s různými názvy a ujistěte se, že oba naslouchají na různých portech.

    Například jeden kontejner s názvem avaextension1 naslouchá portu 44000a druhý kontejner s názvem avaextension2 naslouchá portu 44001.

    V topologii Analyzátoru videa vytvoříte instanci dvou živých kanálů s různými adresami URL pro odvozování, jak je znázorněno tady:

    1. živý kanál: adresa URL serveru odvozování = http://avaextension1:44000/score
    2. živý kanál: adresa URL serveru odvozování = http://avaextension2:44001/score

Použijte protokol gRPC:

  • Uzel rozšíření gRPC má vlastnost extensionConfiguration, volitelný řetězec, který lze použít jako součást kontraktu gRPC. Pokud máte na jednom serveru odvozování zabaleno více modelů AI, nemusíte zpřístupňovat uzel pro každý model AI. Místo toho pro živý kanál můžete jako poskytovatel rozšíření definovat, jak vybrat různé modely AI pomocí extensionConfiguration vlastnosti . Během provádění předá Video Analyzer tento řetězec serveru pro odvozování, který ho může použít k vyvolání požadovaného modelu AI.

Vytvářím server gRPC kolem modelu AI a chci mít možnost podporovat jeho použití několika kamerami nebo živými kanály. Jak mám sestavit server?

Nejprve se ujistěte, že váš server může zpracovávat více než jeden požadavek najednou nebo pracovat v paralelních vláknech.

Například v následující ukázce gRPC služby Azure Video Analyzer je nastavený výchozí počet paralelních kanálů:

server = grpc.server(futures.ThreadPoolExecutor(max_workers=3)) 

V předchozí instanci serveru gRPC může server otevřít pouze tři kanály najednou na kameru nebo na živý kanál. Nepokoušejte se připojit k serveru více než tři instance. Pokud se pokusíte otevřít více než tři kanály, požadavky zůstanou čekající, dokud stávající kanál nezapadne.

Předchozí implementace serveru gRPC se používá v našich ukázkách Pythonu. Jako vývojář můžete implementovat vlastní server nebo pomocí předchozí výchozí implementace zvýšit počet pracovních procesů, který nastavíte na počet kamer, které se mají používat pro videokanály.

Pokud chcete nastavit a používat více kamer, můžete vytvořit instanci několika živých kanálů, z nichž každý odkazuje na stejný nebo jiný server odvozování (například server uvedený v předchozím odstavci).

Chci mít možnost získat více snímků předtím, než učiním rozhodnutí o odvozování. Jak to můžu povolit?

Naše aktuální výchozí ukázky fungují v bezstavovém režimu. Nezachovají stav předchozích volání ani ID volajícího. To znamená, že více živých kanálů může volat stejný server odvozování, ale server nedokáže rozlišit, kdo volá nebo jaký je stav volajícího.

Použijte protokol HTTP:

Pokud chcete zachovat stav, každý volající nebo živý kanál volá server odvozování pomocí parametru dotazu HTTP, který je pro volající jedinečný. Tady jsou například uvedeny adresy URL serveru odvozování pro každý živý kanál:

1. živý kanál: http://avaextension:44000/score?id=1
2. živý kanál: http://avaextension:44000/score?id=2

Na straně id serveru pomáhá identifikovat volajícího. Pokud id=1, server může zachovat stav pro tento živý kanál samostatně. Přijaté snímky videa pak může uchovávat ve vyrovnávací paměti. Použijte například pole nebo slovník s klíčem DateTime a hodnota je rámec. Potom můžete definovat server, který se má zpracovat (odvodit) po přijetí x počtu snímků.

Použijte protokol gRPC:

S rozšířením gRPC je každá relace určená pro jeden informační kanál kamery, takže není potřeba zadávat identifikátor. Pomocí vlastnosti extensionConfiguration můžete snímky videa uložit do vyrovnávací paměti a definovat server, který se má zpracovat (odvodit) po přijetí x počtu snímků.

Používají všechny ProcessMediaStreams v konkrétním kontejneru stejný model AI?

No. Spuštění nebo zastavení hovorů od koncového uživatele v živém kanálu představuje relaci, nebo možná dojde k odpojení nebo opětovnému připojení kamery. Cílem je zachovat jednu relaci, pokud kamera streamuje video.

  • Dvě kamery odesílající video ke zpracování (do dvou samostatných živých kanálů) vytvoří dvě relace.
  • Jedna kamera, která přejde do živého kanálu, který má dva uzly rozšíření gRPC, vytvoří dvě relace.

Každá relace je plně duplexním připojením mezi Video Analyzerem a serverem gRPC a každá relace může mít jiný model.

Poznámka

V případě odpojení nebo opětovného připojení kamery a přechodu kamery do režimu offline po dobu, která překračuje limity tolerance, video analyzer otevře novou relaci se serverem gRPC. Server nemusí sledovat stav v těchto relacích.

Video Analyzer také přidává podporu pro více rozšíření gRPC pro jednu kameru v živém kanálu. Pomocí těchto rozšíření gRPC můžete provádět zpracování AI postupně, paralelně nebo v kombinaci obojího.

Poznámka

Souběžné spouštění více rozšíření ovlivní vaše hardwarové prostředky. Mějte to na paměti při výběru hardwaru, který vyhovuje vašim výpočetním potřebám.

Jaký je maximální počet současných ProcessMediaStreams?

Video Analyzer pro toto číslo neplatí žádná omezení.

Jak se můžu rozhodnout, jestli má server odvozování používat procesor, GPU nebo jiný hardwarový akcelerátor?

Vaše rozhodnutí závisí na složitosti vyvinutého modelu AI a na tom, jak chcete používat akcelerátory procesoru a hardwaru. Při vývoji modelu AI můžete určit, jaké prostředky má model používat a jaké akce má provádět.

Návody zobrazit ohraničující pole vygenerovaná serverem odvozování?

Výsledky odvození můžete nahrát společně s multimédii ve vašem prostředku videa. K přehrání videa s překrytím dat odvozování můžete použít widget .

Kompatibilita s gRPC

Jak zjistím, jaká jsou povinná pole pro popisovač streamu médií?

Každému poli, do kterého nezadáte hodnotu, se přidělí výchozí hodnota, jak je uvedeno v gRPC.

Video Analyzer používá verzi proto3 jazyka vyrovnávací paměti protokolu. Všechna data vyrovnávací paměti protokolu, která používají kontrakty Video Analyzeru, jsou k dispozici v souborech vyrovnávací paměti protokolu.

Jak můžu zajistit, že používám nejnovější soubory vyrovnávací paměti protokolu?

Nejnovější soubory vyrovnávací paměti protokolu můžete získat na webu souborů kontraktů. Kdykoli aktualizujeme soubory smluv, budou v tomto umístění. Neexistuje žádný okamžitý plán aktualizace souborů protokolu, proto vyhledejte název balíčku v horní části souborů, abyste poznali verzi. Mělo by se zobrazit:

microsoft.azure.media.live_video_analytics.extensibility.grpc.v1

Všechny aktualizace těchto souborů zvýší hodnotu "v-value" na konci názvu.

Poznámka

Vzhledem k tomu, že Video Analyzer používá verzi jazyka proto3, jsou pole volitelná a verze je zpětně a dopředu kompatibilní.

Jaké funkce gRPC mám k dispozici pro použití s video analyzerem? Které funkce jsou povinné a které volitelné?

Můžete použít jakékoli funkce gRPC na straně serveru za předpokladu, že je splněna smlouva o vyrovnávací paměti protokolu (Protobuf).

Monitorování a metriky

Můžu kanál na hraničních zařízeních monitorovat pomocí Azure Event Grid?

Ano. Můžete využívat metriky Prometheus a publikovat je do služby Event Grid.

Můžu pomocí Služby Azure Monitor zobrazit stav, metriky a výkon kanálů v cloudu nebo na hraničních zařízeních?

Ano, tento přístup podporujeme. Další informace najdete v tématu Přehled metrik služby Azure Monitor.

Existují nějaké nástroje, které usnadňují monitorování hraničního modulu Video Analyzeru?

Visual Studio Code podporuje rozšíření Azure IoT Tools, pomocí kterého můžete snadno monitorovat koncové body edge modulu Video Analyzer. Pomocí tohoto nástroje můžete rychle začít monitorovat integrovaný koncový bod služby IoT Hub pro "události" a zobrazit zprávy o odvozování, které se směrují z hraničního zařízení do cloudu.

Kromě toho můžete toto rozšíření použít k úpravě dvojčete modulu pro hraniční modul Video Analyzer a upravit nastavení kanálu.

Další informace najdete v článku o monitorování a protokolování .

Fakturace a dostupnost

Jak se Video Analyzer účtuje?

Podrobnosti o fakturaci najdete v tématu Ceny služby Video Analyzer.