Potok

Uwaga

Od 1 grudnia 2022 r. zalecamy wycofanie usługi Azure Video Analyzer w wersji zapoznawczej.

To wycofanie nie ma wpływu na usługę Azure Video Analyzer for Media. Jest ona teraz zmieniana na usługę Azure Video Indexer. Kliknij tutaj , aby dowiedzieć się więcej.

Wymagane działanie: aby zminimalizować zakłócenia w obciążeniach, przejdź aplikację z usługi Video Analyzer zgodnie z sugestiami opisanymi w tym przewodniku przed 01 grudnia 2022 r. Po 1 grudnia 2022 r. konto usługi Azure Video Analyzer nie będzie już działać. Od 2 maja 2022 r. nie będzie można tworzyć nowych kont usługi Video Analyzer.

Pipelines umożliwia pozyskiwanie, przetwarzanie i publikowanie wideo w usłudze Azure Video Analyzer na urządzeniach brzegowych i w chmurze. Topologie potoków umożliwiają definiowanie sposobu pozyskiwania, przetwarzania i publikowania wideo w ramach zestawu konfigurowalnych węzłów. Po zdefiniowaniu topologie mogą być tworzone jako pojedyncze potoki przeznaczone dla określonych kamer lub zawartości źródłowej, które są przetwarzane niezależnie. Pipelines można zdefiniować i utworzyć wystąpienie na urządzeniach brzegowych na potrzeby lokalnego przetwarzania wideo lub w chmurze. Poniższe diagramy zawierają graficzne reprezentacje takich potoków.

Representation of a pipeline

Representation of a cloud pipeline

Sugerowane wstępne czytanie

Topologie potoku

Topologia potoku umożliwia opisanie sposobu przetwarzania wideo na żywo lub nagranych filmów wideo i analizowania ich pod kątem niestandardowych potrzeb za pośrednictwem zestawu połączonych węzłów. Służy on jako szablon lub strategia dla przepływu pracy wideo na żywo. Analizator wideo obsługuje dwa rodzaje topologii: na żywo i wsadowe. Topologie na żywo, jak sugeruje nazwa, są używane z wideo na żywo z kamer. Topologie usługi Batch są używane do przetwarzania zarejestrowanych filmów wideo.

Potok obsługuje różne typy węzłów:

  • Węzły źródłowe umożliwiają przechwytywanie danych do potoku. Dane odnoszą się do dźwięku, wideo i/lub metadanych.
  • Węzły procesora umożliwiają przetwarzanie nośnika w potoku.
  • Węzły ujścia umożliwiają dostarczanie wyników do usług i aplikacji poza potokiem.

Możesz utworzyć różne topologie dla różnych scenariuszy, wybierając węzły w topologii, sposób ich połączenia z parametrami jako symbolami zastępczymi wartości. Potok jest pojedynczym wystąpieniem określonej topologii potoku. Potok to miejsce, w którym nośnik jest rzeczywiście przetwarzany. Pipelines można skojarzyć z poszczególnymi aparatami lub nagranymi filmami wideo za pomocą parametrów zdefiniowanych przez użytkownika zadeklarowanych w topologii potoku. Wystąpienia topologii na żywo są nazywane potokami na żywo, a wystąpienia topologii wsadowej są nazywane zadaniami potoku.

Jeśli na przykład chcesz rejestrować wideo z wielu kamer IP, możesz zdefiniować topologię potoku składającą się z węzła źródłowego RTSP i węzła ujścia wideo. Węzeł źródłowy RTSP może mieć adres URL, nazwę użytkownika i hasło protokołu RTSP jako parametry. Węzeł ujścia wideo może mieć nazwę wideo jako parametr. Wartości tych parametrów można podać podczas tworzenia wielu potoków z tej samej topologii — jednego potoku na kamerę.

Topologie usługi Batch są obsługiwane tylko w usłudze Video Analyzer (a nie w module krawędzi usługi Video Analyzer). Potoki na żywo są obsługiwane w obu tych przypadkach.

Stany potoku

Zaczynasz od utworzenia topologii potoku. Po zdefiniowaniu topologii można tworzyć potoki, podając wartości parametrów.

Potok na żywo

Cykl życia potoku jest reprezentowany na poniższym diagramie.

Lifecycle of a live pipeline

Po pomyślnym utworzeniu potoku jest w stanie "Nieaktywne". Po aktywacji potok krótko wprowadza stan "Aktywowanie" przed przejściem do stanu "Aktywne". Dane (wideo na żywo) zaczynają przepływać przez potok, gdy są w stanie "Aktywne". Po dezaktywacji aktywny potok przechodzi w stan "Dezaktywacja", a następnie stan "Nieaktywny". Można usuwać tylko nieaktywne potoki.

Potoki na żywo są przeznaczone do zachowania aktywności, po aktywowaniu i przetwarzania wideo na żywo ze źródła (kamery). Aby zatrzymać przetwarzanie, wymagane jest jawne polecenie dezaktywacji. Potok może być aktywny bez przepływu danych (na przykład wejściowe źródło wideo przechodzi w tryb offline). Twoja subskrypcja platformy Azure zostanie naliczona, gdy potok jest w stanie aktywnym.

Potok wsadowy

Cykl życia zadania potoku jest reprezentowany na poniższym diagramie.

Diagram of a batch pipeline lifecycle.

Po pomyślnym utworzeniu zadania potoku przechodzi on w stan "Przetwarzanie". Jeśli zadanie zakończy się pomyślnie, przejdzie w stan "Ukończono", w przeciwnym razie, jeśli nie powiedzie się, przejdzie do stanu "Niepowodzenie". Alternatywnie, gdy zadanie potoku jest w stanie "Przetwarzanie", można wysłać żądanie anulowania. Jeśli to żądanie zakończy się pomyślnie, zadanie przejdzie do stanu "Anulowano". Twoja subskrypcja platformy Azure zostanie naliczona tylko wtedy, gdy zadanie potoku zakończy się pomyślnie.

Wiele potoków można utworzyć na podstawie jednej topologii, podając różne wartości parametrów w topologii. Na przykład można przesyłać zadania potoku z tą samą topologią dla różnych nagrań wideo. Topologię można usunąć po usunięciu wszystkich potoków.

Źródła, procesory i ujścia

Usługa Video Analyzer umożliwia definiowanie topologii potoku z następującymi węzłami.

Uwaga

Nie wszystkie węzły są dostępne zarówno w module krawędzi usługi Video Analyzer, jak i w usłudze. Zobacz Reguły dotyczące użycia węzłów.

Źródła

Źródło RTSP

Węzeł źródłowy RTSP umożliwia przechwytywanie multimediów z kamery obsługującej protokół RTSP — zobacz tutaj , aby uzyskać szczegółowe informacje. Węzeł źródłowy RTSP wymaga określenia adresu URL protokołu RTSP wraz z poświadczeniami w celu włączenia uwierzytelnionego połączenia.

IoT Hub źródło komunikatów

Podobnie jak w przypadku innych modułów IoT Edge moduł Azure Video Analyzer może odbierać komunikaty za pośrednictwem centrum IoT Edge. Komunikaty mogą być wysyłane z innych modułów lub aplikacji działających na urządzeniu brzegowym lub z chmury. Takie komunikaty mogą być dostarczane (kierowane) do nazwanych danych wejściowych w module analizatora wideo. Węzeł źródła komunikatów IoT Hub umożliwia pozyskiwanie takich komunikatów do potoku. Komunikaty mogą być następnie używane w potoku do aktywowania bramy sygnału (zobacz bramy sygnału poniżej).

Na przykład można mieć moduł IoT Edge, który generuje komunikat po otwarciu drzwi. Komunikat z tego modułu może być kierowany do centrum IoT Edge, z którego można następnie kierować go do źródła komunikatów centrum IoT potoku. W potoku komunikat można przekazać ze źródła komunikatów centrum IoT do procesora bramy sygnału, który następnie może włączyć nagrywanie wideo ze źródła RTSP do pliku.

Źródło wideo

Umożliwia używanie zarejestrowanej zawartości wideo w usłudze Video Analyzer jako źródła. Węzeł wymaga określenia nazwy zasobu wideo, a także czasu rozpoczęcia i zakończenia części zarejestrowanego wideo do przetworzenia.

Procesory

Procesor wykrywania ruchu

Węzeł procesora wykrywania ruchu umożliwia wykrywanie ruchu w wideo na żywo. Analizuje przychodzące ramki wideo i określa, czy w filmie występuje ruch. Jeśli ruch zostanie wykryty, przekazuje ramkę wideo do następnego węzła w potoku i emituje zdarzenie. Węzeł procesora wykrywania ruchu (w połączeniu z innymi węzłami) może służyć do wyzwalania rejestrowania przychodzącego wideo po wykryciu ruchu.

Procesor rozszerzenia HTTP

Węzeł procesora rozszerzenia HTTP umożliwia rozszerzenie potoku do własnego modułu IoT Edge. Ten węzeł przyjmuje zdekodowane ramki wideo jako dane wejściowe i przekazuje takie ramki do punktu końcowego REST PROTOKOŁU HTTP uwidocznionego przez moduł, w którym można analizować ramkę za pomocą modelu AI i zwracać wyniki wnioskowania z powrotem. Ponadto ten węzeł ma wbudowany formater obrazów umożliwiający skalowanie i kodowanie ramek wideo przed przekazaniem ich do punktu końcowego HTTP. Skalowanie ma opcje współczynnika proporcji obrazu do zachowania, wypełnienia lub rozciągnięcia. Koder obrazu obsługuje formaty JPEG, PNG, BMP i RAW. Dowiedz się więcej o procesorze tutaj.

procesor rozszerzenia gRPC

Węzeł procesora rozszerzenia gRPC pobiera zdekodowane ramki wideo jako dane wejściowe i przekazuje takie ramki do punktu końcowego gRPC uwidocznionego przez moduł. Węzeł obsługuje przesyłanie danych przy użyciu pamięci udostępnionej lub bezpośrednie osadzanie ramki w treści komunikatów gRPC. Podobnie jak w przypadku procesu rozszerzenia HTTP, ten węzeł ma również wbudowany formater obrazów do skalowania i kodowania ramek wideo przed przekazaniem ich do punktu końcowego gRPC. Dowiedz się więcej o procesorze tutaj.

Procesor rozszerzeń usług Cognitive Services

Węzeł procesora rozszerzeń usług Cognitive Services umożliwia rozszerzenie potoku do modułu Analiza przestrzenna IoT Edge. Ten węzeł przyjmuje zdekodowane ramki wideo jako dane wejściowe, a przekaźniki takie ramki do punktu końcowego gRPC uwidocznione przez, gdzie można analizować ramkę z umiejętnościami analizy przestrzennej i zwracać wyniki wnioskowania z powrotem. Dowiedz się więcej o procesorze tutaj.

Procesor bramy sygnału

Węzeł procesora bramy sygnału umożliwia warunkowe przekazywanie nośnika z jednego węzła do innego. Węzeł procesora bramy sygnału musi być natychmiast po ujściu wideo lub ujściu pliku. Przykładowy przypadek użycia polega na wstawieniu węzła procesora bramy sygnału między węzłem źródłowym RTSP a węzłem ujścia wideo oraz użycie danych wyjściowych węzła procesora czujnika ruchu w celu wyzwolenia bramy. W przypadku takiego potoku można nagrywać wideo tylko wtedy, gdy ruch zostanie wykryty. Możesz również użyć danych wyjściowych z węzła rozszerzenia HTTP lub gRPC, aby wyzwolić bramę, zamiast węzła procesora wykrywania ruchu, umożliwiając nagrywanie wideo w przypadku wykrycia czegoś interesującego.

Procesor trackera obiektów

Węzeł procesora trackera obiektów umożliwia śledzenie obiektów wykrytych w nadrzędnym węźle procesora rozszerzenia HTTP lub gRPC. Ten węzeł jest przydatny, gdy trzeba wykrywać obiekty w każdej ramce, ale urządzenie brzegowe nie ma niezbędnej mocy obliczeniowej, aby móc zastosować model sztucznej inteligencji na każdej ramce. Jeśli możesz uruchomić model przetwarzania obrazów tylko na każdej 10 ramce, śledzenie obiektów może pobrać wyniki z jednej takiej ramki, a następnie użyć technik przepływu optycznego do wygenerowania wyników dla drugiej, 3. ramki,..., 9, dopóki model nie zostanie zastosowany ponownie na następnej ramce. Istnieje kompromis między mocą obliczeniową i dokładnością podczas korzystania z tego węzła. Im bliżej ramek, na których jest stosowany model sztucznej inteligencji, tym większa dokładność. Oznacza to jednak częstsze stosowanie modelu sztucznej inteligencji, co przekłada się na większą moc obliczeniową. Jednym z typowych zastosowań węzła procesora trackera obiektów jest wykrywanie, kiedy obiekt przekracza linię.

Procesor przekraczania linii

Węzeł procesora przekraczania linii umożliwia wykrywanie, kiedy obiekt przekracza linię zdefiniowaną przez Ciebie. Oprócz tego zachowuje również liczbę obiektów, które przecinają linię (od momentu aktywowania potoku). Ten węzeł musi być używany podrzędnie węzła procesora monitora obiektów.

Procesor kodera

Węzeł procesora kodera umożliwia użytkownikowi określenie właściwości kodowania podczas konwertowania nagranego wideo na żądany format przetwarzania podrzędnego. Na przykład wideo nagrane z kamery skonfigurowanej na potrzeby rozdzielczości 4K może być konieczne zmianę rozmiaru na pełną rozdzielczość HD (1920x1080), zanim zostanie wyeksportowana do pliku.

Zlewozmywaki

Ujście wideo

Węzeł ujścia wideo umożliwia zapisywanie wideo i skojarzonych metadanych z zasobem chmury usługi Video Analyzer. Wideo można nagrywać w sposób ciągły lub rozrzedzony (na podstawie zdarzeń). Węzeł ujścia wideo może buforować wideo na urządzeniu brzegowym, jeśli łączność z chmurą zostanie utracona i wznowi przekazywanie po przywróceniu łączności. Aby uzyskać szczegółowe informacje na temat sposobu konfigurowania właściwości tego węzła, możesz zapoznać się z artykułem dotyczącym ciągłego nagrywania wideo .

Ze względu na bezpieczeństwo dane wystąpienie modułu usługi Video Analyzer edge może rejestrować zawartość tylko do nowych wpisów wideo lub wcześniej zarejestrowanych wpisów wideo przez ten sam moduł. Każda próba zarejestrowania zawartości w istniejącym filmie wideo, który nie został utworzony przez to samo wystąpienie modułu brzegowego, spowoduje niepowodzenie rejestrowania.

Ujście pliku

Węzeł ujścia plików umożliwia zapisywanie wideo w lokalizacji w lokalnym systemie plików urządzenia brzegowego. W potoku może znajdować się tylko jeden węzeł ujścia pliku i musi być podrzędny z węzła procesora bramy sygnału. Ogranicza to czas trwania plików wyjściowych do wartości określonych we właściwościach węzła procesora bramy sygnału. Aby upewnić się, że urządzenie brzegowe nie zabraknie miejsca na dysku, można również ustawić maksymalny rozmiar, którego moduł brzegowy analizatora wideo może używać do buforowania danych.

Jeśli pamięć podręczna zostanie zapełniana, moduł brzegowy usługi Video Analyzer rozpocznie usuwanie najstarszych danych i zastąpi je nowym.

ujście komunikatu IoT Hub

Węzeł ujścia komunikatów IoT Hub umożliwia publikowanie zdarzeń w centrum IoT Edge. Centrum IoT Edge można skonfigurować do kierowania danych do innych modułów lub aplikacji na urządzeniu brzegowym lub do IoT Hub w chmurze (zgodnie z trasami określonymi w manifeście wdrożenia). Węzeł ujścia komunikatów IoT Hub może akceptować zdarzenia z węzłów procesora nadrzędnego, takich jak węzeł procesora wykrywania ruchu, lub z zewnętrznej usługi wnioskowania za pośrednictwem węzła procesora rozszerzenia HTTP.

Reguły dotyczące używania węzłów

W poniższej tabeli opisano bieżące reguły, w których węzły są dozwolone w topologii na żywo i wsadowych, oraz w module i usłudze brzegowej usługi Video Analyzer.

Nazwa węzła Rodzaj topologii Wdrożenie
Źródło RTSP Na żywo Edge i chmura
Źródło komunikatów centrum IoT Na żywo Edge
Źródło wideo Batch Chmura
Procesor wykrywania ruchu Na żywo Edge
Procesor rozszerzenia HTTP Na żywo Edge
procesor rozszerzenia gRPC Na żywo Edge
Procesor rozszerzeń usług Cognitive Services Na żywo Edge
Procesor bramy sygnału Na żywo Edge
Procesor trackera obiektów Na żywo Edge
Procesor przekraczania linii Na żywo Edge
Procesor kodera Batch Chmura
Ujście wideo Na żywo i wsadowe Edge i chmura
Ujście pliku Na żywo Edge
Ujście komunikatów centrum IoT Hub Na żywo Edge

Zobacz ograniczenia potoków, aby uzyskać dodatkowe reguły dotyczące sposobu użycia różnych węzłów w topologii.

Scenariusze

Korzystając z kombinacji źródeł, procesorów i ujść zdefiniowanych powyżej, można tworzyć potoki dla różnych scenariuszy obejmujących analizę wideo na żywo. Przykładowe scenariusze to:

Następne kroki

Aby zobaczyć, jak można uruchamiać wykrywanie ruchu na kanale wideo na żywo, zobacz Szybki start: Wprowadzenie — Azure Video Analyzer.