Video Analyzer – gyakori kérdések

Ez a cikk az Azure Video Analyzer szolgáltatással kapcsolatos gyakori kérdésekre ad választ.

Általános kérdések

Milyen rendszerváltozókat használhatok a folyamattopológia definíciójában?

Változó Leírás
System.Runtime.DateTime Egy időpontot jelöl UTC-ben, amely általában a nap dátumaként és időpontjaként van kifejezve a következő formátumban:
yyyyMMddTHHmmssZ
System.Runtime.PreciseDateTime Az egyezményes világidő (UTC) dátum-idő példányát jelöli ISO8601 fájlmegfelelő formátumban, ezredmásodpercben, a következő formátumban:
yyyyMMddTHHmmss.fffZ
System.TopologyName A folyamattopológia nevét jelöli.
System.PipelineName Az élő folyamat nevét jelöli.

Megjegyzés

A System.Runtime.DateTime és a System.Runtime.PreciseDateTime nem használható az Azure Video Analyzer videoerőforrás nevének részeként a videó fogadó csomópontjában. Ezek a változók a fájl fogadó csomópontjában használhatók a fájl elnevezéséhez.

Mi a Video Analyzer adatvédelmi szabályzata?

A Video Analyzerre a Microsoft adatvédelmi nyilatkozata vonatkozik. Az adatvédelmi nyilatkozat ismerteti a Microsoft által kezelt személyes adatokat, a Microsoft által feldolgozott adatokat, valamint azt, hogy a Microsoft milyen célokra dolgozza fel azokat. Az adatvédelemmel kapcsolatos további információkért látogasson el a Microsoft Adatvédelmi központba.

Konfigurálás és üzembe helyezés

Üzembe helyezhetem az edge modult egy Windows 10 eszközön?

Igen. További információ: Linux-tárolók Windows 10.

Virtuális gépet használok szimulált peremhálózati eszközként. Átméretezhetem a virtuális gép konfigurációját az üzembe helyezés után?

Igen, a virtuális gépeket fel- vagy leskálázhatja egy másik méretre a peremhálózati modulok, például a Video Analyzer üzembe helyezése után. Előfordulhat, hogy újra kell indítania a IoT Edge futtatókörnyezetet a virtuális gépen. Linux rendszerű virtuális gép esetén használja a parancsot sudo systemctl restart iotedge. Ha az élő folyamatok futottak, az újraindítás befejeződése után folytatódniuk kell. A folyamat kimenetében fennakadások (például következtetési események, videófelvétel) jelennének meg az újraindítás során.

Hogyan adhatok hozzá videofájlmintákat az RTSP kameraszimulátor modulhoz IoT Edge eszközömön?

Ha a kameraszimulátor telepítéséhez rövid útmutatót vagy oktatóanyagot használt, akkor adjon hozzá egy új videófájlt:

  • Ellenőrizze, hogy a fájl támogatott formátumban van-e, és a H.264 videokodeket használja-e
  • Töltse le a fájlt /home/localedgeuser/samples/input/<videofile.mkv> a IoT Edge eszközére, ahogy az ebben a szakaszban látható

A teszteléshez elérhető minta médiafájlok a Médiaadatkészletek területen találhatók.

Rögzítés IP-kameráról és RTSP-beállításokból

Speciális SDK-t kell használnom az eszközömön videóstream küldéséhez?

Nem, a Video Analyzer támogatja a média rögzítését az RTSP (Real-Time Streaming Protocol) használatával a videostreameléshez, amelyet a legtöbb IP-kamera támogat.

Leküldhetek adathordozót a Video Analyzerbe az RTSP protokollon kívül?

Nem, a Video Analyzer csak az RTSP-t támogatja az IP-kamerákból származó videók rögzítéséhez. Minden olyan kamerának működnie kell, amely támogatja a TCP/HTTP protokollon keresztüli RTSP-streamelést.

Alaphelyzetbe állíthatom vagy frissíthetem az RTSP-forrás URL-címét egy élő folyamatban?

Igen, ha az élő folyamat inaktív állapotban van.

Elérhető egy RTSP-szimulátor a tesztelés és fejlesztés során?

Igen, az RTSP-szimulátor peremmodulja elérhető a tanulási folyamat támogatásához szükséges rövid útmutatókban és oktatóanyagokban. Ez a modul a legjobb erőfeszítés, és lehet, hogy nem mindig érhető el. Javasoljuk, hogy néhány óránál tovább ne használja a szimulátort. Az éles üzembe helyezés megtervezése előtt érdemes a tényleges RTSP-forrással tesztelni.

Az AI-modell megtervezése

Több AI-modellem van egy Docker-tárolóba csomagolva. Hogyan használhatom őket a Video Analyzerrel?

A megoldások a következtetési kiszolgáló által a Video Analyzerrel való kommunikációhoz használt kommunikációs protokolltól függően változnak. A következő szakaszok ismertetik az egyes protokollok működését.

Használja a HTTP protokollt:

  • Egyetlen tároló ( avaextension néven elnevezett modul):

    A következtetési kiszolgálón egyetlen portot használhat, de különböző végpontokat a különböző AI-modellekhez. Egy Python-minta esetében például modellenként eltérőt routes használhat az itt látható módon:

    @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 
    … 
    

    Ezután a Video Analyzer üzembe helyezésekor az élő folyamatok aktiválásakor állítsa be a következtetési kiszolgáló URL-címét mindegyikhez az itt látható módon:

    1. élő folyamat: következtetési kiszolgáló URL-címe=http://avaextension:44000/score/face_detection
    2. élő folyamat: következtetési kiszolgáló URL-címe=http://avaextension:44000/score/vehicle_detection

    Megjegyzés

    Azt is megteheti, hogy az AI-modelleket különböző portokon teszi elérhetővé, és meghívja őket az élő folyamatok aktiválásakor.

  • Több tároló:

    Minden tároló más néven van üzembe helyezve. A rövid útmutatókban és oktatóanyagokban bemutattuk, hogyan helyezhet üzembe egy avaextension nevű bővítményt. Most két különböző tárolót fejleszthet, amelyek mindegyike ugyanazzal a HTTP-felülettel rendelkezik, ami azt jelenti, hogy ugyanazzal /score a végponttal rendelkeznek. Helyezze üzembe ezt a két különböző nevű tárolót, és győződjön meg arról, hogy mindkettő különböző portokat figyel.

    Például egy nevű avaextension1 tároló figyeli a portot 44000, a második nevű avaextension2 tároló pedig a portot 44001figyeli.

    A Video Analyzer-topológiában két különböző következtetési URL-címmel rendelkező élő folyamatot példányosít, az itt látható módon:

    1. élő folyamat: következtetési kiszolgáló URL-címe = http://avaextension1:44000/score
    2. élő folyamat: következtetési kiszolgáló URL-címe = http://avaextension2:44001/score

Használja a gRPC protokollt:

  • A gRPC-bővítménycsomópont rendelkezik egy tulajdonságtal extensionConfiguration, egy opcionális sztringgel, amely a gRPC-szerződés részeként használható. Ha több AI-modell van egyetlen következtetési kiszolgálón csomagolva, nem kell minden AI-modellhez elérhetővé tennie egy csomópontot. Ehelyett egy élő folyamat esetében Ön, mint bővítményszolgáltató meghatározhatja, hogyan választhatja ki a különböző AI-modelleket a extensionConfiguration tulajdonság használatával. A végrehajtás során a Video Analyzer átadja ezt a sztringet a következtetési kiszolgálónak, amellyel meghívhatja a kívánt AI-modellt.

GRPC-kiszolgálót építek egy AI-modell köré, és szeretném támogatni a használatát több kamerával vagy élő folyamattal. Hogyan hozhatom létre a kiszolgálómat?

Először győződjön meg arról, hogy a kiszolgáló egyszerre több kérést is képes kezelni, vagy párhuzamos szálakban dolgozik.

A következő Azure Video Analyzer gRPC-mintában például alapértelmezett számú párhuzamos csatorna van beállítva:

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

Az előző gRPC-kiszolgáló példányosítása során a kiszolgáló kameránként vagy élő folyamatonként egyszerre csak három csatornát nyithat meg. Ne próbáljon háromnál több példányt csatlakoztatni a kiszolgálóhoz. Ha háromnál több csatornát próbál megnyitni, a kérések függőben maradnak, amíg egy meglévő csatorna el nem csökken.

A fenti gRPC-kiszolgáló-implementációt a Python-mintákban használjuk. Fejlesztőként implementálhatja a saját kiszolgálóját, vagy használhatja az előző alapértelmezett implementációt a feldolgozószám növeléséhez, amelyet a videocsatornákhoz használandó kamerák számára állított be.

Több kamera beállításához és használatához több élő folyamatot is létrehozhat, amelyek mindegyike ugyanarra vagy egy másik következtetési kiszolgálóra mutat (például az előző bekezdésben említett kiszolgálóra).

Több keretet szeretnék kapni, mielőtt következtetési döntést hoznék. Hogyan engedélyezhetem ezt?

Az aktuális alapértelmezett mintákállapot nélküli módban működnek. Nem őrzik meg az előző hívások állapotát vagy a hívó azonosítóját. Ez azt jelenti, hogy több élő folyamat is meghívhatja ugyanazt a következtetési kiszolgálót, de a kiszolgáló nem tudja megkülönböztetni, hogy ki vagy az állapot hívónként.

Használja a HTTP protokollt:

Az állapot megőrzéséhez minden hívó vagy élő folyamat meghívja a következtetési kiszolgálót a hívó egyedi HTTP-lekérdezési paraméterével. Az egyes élő folyamatok következtetési kiszolgálói URL-címei például itt láthatók:

1. élő folyamat: http://avaextension:44000/score?id=1
2. élő folyamat: http://avaextension:44000/score?id=2

A kiszolgálóoldalon a id segítségével azonosíthatja a hívót. Ha id=1, akkor a kiszolgáló elkülönítheti az állapotot az élő folyamathoz. Ezután a fogadott videókereteket pufferben tarthatja. Használjon például egy tömböt vagy egy DateTime kulccsal rendelkező szótárt, az érték pedig a keret. Ezután meghatározhatja a feldolgozandó kiszolgálót (a következtetést) az x számú keret fogadása után.

Használja a gRPC protokollt:

A gRPC-bővítménnyel minden munkamenet egyetlen kameracsatornához tartozik, így nincs szükség azonosító megadására. Az extensionConfiguration tulajdonsággal tárolhatja a videókereteket egy pufferben, és meghatározhatja a feldolgozandó kiszolgálót (a következtetést) x számú képkocka fogadása után.

Egy adott tároló összes ProcessMediaStreamje ugyanazt az AI-modellt futtatja?

Nem. Az élő folyamatban a végfelhasználó hívásainak indítása vagy leállítása munkamenetnek minősül, vagy lehet, hogy a kamera kapcsolata megszakad vagy újracsatlakozik. A cél egy munkamenet megőrzése, ha a kamera videoképet streamel.

  • Két kamera, amely videoképet küld feldolgozásra (két külön élő folyamathoz) két munkamenetet hoz létre.
  • Az egyik kamera egy két gRPC-bővítménycsomóponttal rendelkező élő folyamathoz két munkamenetet hoz létre.

Minden munkamenet teljes kétirányú kapcsolat a Video Analyzer és a gRPC-kiszolgáló között, és minden munkamenetnek más modellje lehet.

Megjegyzés

A kamera leválasztása vagy újracsatlakozása esetén, ha a kamera a tűréshatárokon túli ideig offline állapotba kerül, a Video Analyzer új munkamenetet nyit meg a gRPC-kiszolgálóval. Nincs szükség arra, hogy a kiszolgáló nyomon kövesse az állapotot ezeken a munkameneteken.

A Video Analyzer emellett több gRPC-bővítményt is támogat egy élő folyamat egyetlen kamerájához. Ezeket a gRPC-bővítményeket használhatja az AI-feldolgozás szekvenciális, párhuzamos vagy mindkettő kombinációjára.

Megjegyzés

Ha több bővítmény fut párhuzamosan, az hatással lesz a hardvererőforrásokra. Ezt tartsa szem előtt, amikor a számítási igényeinek megfelelő hardvert választja.

Mi az egyidejű ProcessMediaStreamek maximális száma?

A Video Analyzer erre a számra nem alkalmaz korlátozásokat.

Hogyan dönthetem el, hogy a következtetési kiszolgálóm cpu-t vagy GPU-t vagy más hardvergyorsítót használjon?

A döntés a fejlett AI-modell összetettségétől és a PROCESSZOR- és hardvergyorsítók használatának módjától függ. Az AI-modell fejlesztése során megadhatja, hogy a modell milyen erőforrásokat használjon, és milyen műveleteket kell végrehajtania.

Hogyan a következtetési kiszolgáló által létrehozott határolókereteket?

A következtetési eredményeket a videoerőforrás adathordozójával együtt rögzítheti. A vezérlőkkel lejátszhatja a videót a következtetési adatok átfedésével.

gRPC-kompatibilitás

Honnan tudhatom, hogy mik a médiastream-leíró kötelező mezői?

Minden olyan mező, amelyhez nem ad meg értéket , a gRPC által megadott alapértelmezett értéket kapja.

A Video Analyzer a protokollpuffer nyelvének proto3 verzióját használja. A Video Analyzer-szerződések által használt összes protokollpuffer-adat elérhető a protokollpufferfájlokban.

Hogyan biztosíthatom, hogy a legújabb protokollpufferfájlokat használom?

A szerződésfájlok webhelyén beszerezheti a legújabb protokollpufferfájlokat. Amikor frissítjük a szerződésfájlokat, ezen a helyen lesznek. Nincs azonnali terv a protokollfájlok frissítésére, ezért keresse meg a csomag nevét a fájlok tetején, hogy megtudja a verziót. A következőt kell olvasnia:

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

A fájlok frissítései növelik a "v-value" értékét a név végén.

Megjegyzés

Mivel a Video Analyzer a nyelv proto3 verzióját használja, a mezők megadása nem kötelező, és a verzió visszamenőlegesen és előre kompatibilis.

Milyen gRPC-funkciók érhetők el a Video Analyzer használatához? Mely szolgáltatások kötelezőek, és melyek nem kötelezőek?

Bármilyen kiszolgálóoldali gRPC-funkciót használhat, feltéve, hogy a Protocol Buffers (Protobuf) szerződés teljesült.

Monitorozás és metrikák

Monitorozhatom a folyamatot a peremhálózaton Azure Event Grid használatával?

Igen. Felhasználhatja a Prometheus-metrikákat, és közzéteheti őket az eseményrácson.

Használhatom az Azure Monitort a folyamatok állapotának, metrikáinak és teljesítményének megtekintéséhez a felhőben vagy a peremhálózaton?

Igen, támogatjuk ezt a megközelítést. További információ: Az Azure Monitor-metrikák áttekintése.

Vannak olyan eszközök, amelyek megkönnyítik a Video Analyzer edge modul monitorozását?

A Visual Studio Code támogatja a Azure IoT Tools bővítményt, amellyel könnyedén monitorozhatja a Video Analyzer edge modulvégpontjait. Ezzel az eszközzel gyorsan megkezdheti az IoT Hub beépített végpontjának figyelését az "események" esetében, és megtekintheti a peremeszközről a felhőbe irányított következtetési üzeneteket.

Ezen kívül ezzel a bővítménnyel szerkesztheti a Video Analyzer edge modul ikermodulját a folyamatbeállítások módosításához.

További információt a monitorozásról és naplózásról szóló cikkben talál.

Számlázás és rendelkezésre állás

Hogyan történik a Video Analyzer számlázása?

A számlázás részleteiért lásd: A Video Analyzer díjszabása.