Pozyskiwanie wideo i wykrywanie obiektów na brzegu i w chmurze

Azure Stack Edge
Azure Kubernetes Service (AKS)
Azure SQL Edge
Azure Container Registry

W tym artykule opisano sposób używania robota mobilnego z kamerą transmisji strumieniowej na żywo w celu zaimplementowania różnych przypadków użycia. Rozwiązanie implementuje system, który działa lokalnie w usłudze Azure Stack Edge w celu pozyskiwania i przetwarzania strumienia wideo oraz usług azure AI, które wykonują wykrywanie obiektów.

Architektura

Diagram przedstawiający architekturę pozyskiwania wideo i wykrywania obiektów.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

W tym przepływie pracy opisano sposób przetwarzania danych przychodzących przez system:

  1. Kamera zainstalowana na strumieniu robota przesyła wideo w czasie rzeczywistym przy użyciu protokołu przesyłania strumieniowego w czasie rzeczywistym (RTSP).

  2. Kontener w klastrze Kubernetes w usłudze Azure Stack Edge odczytuje strumień przychodzący i dzieli wideo na oddzielne obrazy. Narzędzie oprogramowania typu open source o nazwie FFmpeg pozyskuje i przetwarza strumień wideo.

  3. Obrazy są przechowywane na lokalnym koncie magazynu usługi Azure Stack Edge.

  4. Za każdym razem, gdy nowa ramka klucza jest zapisywana na koncie magazynu, kontener usługi AI Vision pobiera go. Aby uzyskać informacje o rozdzieleniu logiki na wiele kontenerów, zobacz Szczegóły scenariusza.

  5. Gdy ładuje ramkę klucza z kontenera magazynu, kontener AI Vision wysyła go do usług Azure AI w chmurze. Ta architektura korzysta z usługi Azure AI Vision, która umożliwia wykrywanie obiektów za pośrednictwem analizy obrazów.

  6. Wyniki analizy obrazów (wykryte obiekty i ocena ufności) są wysyłane do kontenera wykrywania anomalii.

  7. Kontener wykrywania anomalii przechowuje wyniki analizy obrazów i wykrywania anomalii w lokalnym wystąpieniu usługi Azure SQL Database usługi Azure Stack Edge w celu uzyskania przyszłej dokumentacji. Użycie lokalnego wystąpienia bazy danych skraca czas dostępu, co pomaga zminimalizować opóźnienia dostępu do danych.

  8. Przetwarzanie danych jest uruchamiane w celu wykrycia wszelkich anomalii w przychodzącym strumieniu wideo w czasie rzeczywistym. Jeśli wykryto anomalie, interfejs użytkownika frontonu wyświetla alert.

Składniki

  • Azure Stack Edge to urządzenie zarządzane przez platformę Azure, które przenosi zasoby obliczeniowe, magazyn i analizę platformy Azure na brzeg. Ta architektura używa jej do hostowania usług platformy Azure w środowisku lokalnym, w pobliżu lokalizacji, w której występuje wykrywanie anomalii, co zmniejsza opóźnienie.

  • Usługa Azure Kubernetes Service (AKS) w usłudze Azure Stack Edge. Azure Kubernetes Service (AKS) to zarządzana usługa Kubernetes, której można użyć do wdrażania konteneryzowanych aplikacji i zarządzania nimi. W tej architekturze używamy wersji usługi AKS działającej na urządzeniu Azure Stack Edge do zarządzania kontenerami odpowiedzialnymi za logikę systemu.

  • Azure Arc to most, który rozszerza usługi platformy Azure na brzeg. Korzystając z usługi Azure Arc w tej architekturze, możemy kontrolować usługi brzegowe za pośrednictwem portalu w chmurze.

  • Azure AI Vision to ujednolicona usługa, która oferuje możliwości przetwarzania obrazów. W tej architekturze funkcja analizy obrazu służy do wykrywania obiektów w kluczowych ramkach strumienia wideo.

  • Azure Blob Storage to rozwiązanie magazynu obiektów firmy Microsoft dla chmury. W tej architekturze jest używana do przechowywania obrazów klatek kluczowych wyodrębnionych ze strumienia wideo.

  • Usługa Azure SQL Edge to niewielki, zoptymalizowany pod kątem krawędzi aparat SQL z wbudowaną sztuczną inteligencją. W tej architekturze specjalnie wprowadziliśmy obsługę brzegowej wersji aparatu SQL do przechowywania metadanych analizy obrazów, utrzymując ją blisko usługi, która zużywa i przetwarza.

  • Usługa Azure Container Registry to rejestr obrazów Platformy Docker i Open Container Initiative (OCI) z obsługą wszystkich artefaktów OCI. W tej architekturze rejestr przechowuje obrazy kontenerów platformy Docker na potrzeby wykrywania anomalii i kontenerów przetwarzania obrazów sztucznej inteligencji.

  • Azure Key Vault to usługa zapewniająca bezpieczne zarządzanie kluczami w chmurze. W tej architekturze jest używana do przechowywania wpisów tajnych i kluczy w celu umożliwienia logiki systemu interakcji z usługami zewnętrznymi, w których tożsamość zarządzana jest niedostępna.

  • Usługa Azure Monitor to kompleksowe rozwiązanie do monitorowania służące do zbierania, analizowania i reagowania na dane monitorowania ze środowisk w chmurze i środowiskach lokalnych. W tej architekturze ta usługa jest podstawową platformą do obserwacji obciążenia.

Szczegóły scenariusza

Ta architektura demonstruje system, który przetwarza strumień wideo w czasie rzeczywistym, porównuje wyodrębnione dane w czasie rzeczywistym z zestawem danych referencyjnych i podejmuje decyzje na podstawie wyników. Na przykład można go użyć do zapewnienia zaplanowanych inspekcji ogrodzonego obwodu wokół zabezpieczonej lokalizacji.

Architektura korzysta z usługi Azure Stack Edge, aby upewnić się, że większość procesów intensywnie korzystających z zasobów jest wykonywana lokalnie, blisko źródła filmu wideo. Ten projekt znacznie poprawia czas odpowiedzi systemu, co jest ważne, gdy natychmiastowa reakcja na anomalię jest krytyczna.

Ponieważ części systemu są wdrażane jako niezależne kontenery w klastrze Kubernetes, można skalować tylko wymagane podsystemy zgodnie z zapotrzebowaniem. Jeśli na przykład zwiększysz liczbę kamer do kanału informacyjnego wideo, możesz skalować kontener odpowiedzialny za pozyskiwanie i przetwarzanie wideo w celu obsługi zapotrzebowania, ale zachować pozostałą część klastra na oryginalnym poziomie.

Odciążanie funkcji wykrywania obiektów w usługach Azure AI znacznie zmniejsza wiedzę, którą należy wdrożyć w tej architekturze. O ile wymagania dotyczące wykrywania obiektów nie są wysoce wyspecjalizowane, gotowe podejście, które można uzyskać z usługi Analizy obrazów, jest wystarczające i nie wymaga wiedzy na temat uczenia maszynowego.

Potencjalne przypadki użycia

  • Monitorowanie zabezpieczeń obwodu

  • Wykrywanie niebezpiecznego środowiska roboczego w fabryce

  • Wykrywanie anomalii w zautomatyzowanej linii zestawu

  • Wykrywanie braku płynu deicjowania w samolocie

Kwestie wymagające rozważenia

Te zagadnienia implementują filary platformy Azure Well-Architected Framework, która jest zestawem wytycznych, których można użyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

Jedną z największych zalet korzystania z usługi Azure Stack Edge jest uzyskanie w pełni zarządzanych składników na sprzęcie lokalnym. Wszystkie w pełni zarządzane składniki platformy Azure są automatycznie odporne na poziomie regionalnym.

Ponadto uruchomienie systemu w klastrze Kubernetes umożliwia odciążenie odpowiedzialności za utrzymanie podsystemów w dobrej kondycji dla systemu aranżacji Kubernetes.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Tożsamości zarządzane firmy Microsoft Entra zapewniają bezpieczeństwo wszystkich składników tej architektury. Użycie tożsamości zarządzanych eliminuje konieczność przechowywania wpisów tajnych w kodzie lub plikach konfiguracji. Upraszcza kontrolę dostępu, zarządzanie poświadczeniami i przypisywanie ról.

Optymalizacja kosztów

Optymalizacja kosztów polega na zmniejszeniu niepotrzebnych wydatków i poprawie wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Aby wyświetlić przykład cen dla tego scenariusza, użyj kalkulatora cen platformy Azure. Najdroższe składniki w scenariuszu to Azure Stack Edge i Azure Kubernetes Service. Te usługi zapewniają pojemność skalowania systemu w celu zaspokojenia zwiększonego zapotrzebowania w przyszłości.

Koszt korzystania z usług Azure AI na potrzeby wykrywania obiektów różni się w zależności od tego, jak długo działa system. Powyższy przykład cenowy jest oparty na systemie, który tworzy jeden obraz na sekundę i działa przez 8 godzin dziennie. Jeden FPS jest wystarczający w tym scenariuszu. Jeśli jednak system musi działać przez dłuższy czas, koszt korzystania z usług Azure AI jest wyższy:

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Ponieważ kod jest wdrażany w klastrze Kubernetes, możesz skorzystać z zalet tego zaawansowanego systemu aranżacji. Ponieważ różne podsystemy są oddzielone od kontenerów, można skalować tylko najbardziej wymagające części aplikacji. Na poziomie podstawowym przy użyciu jednego przychodzącego kanału informacyjnego wideo system może zawierać tylko jeden węzeł w klastrze. Ten projekt znacznie upraszcza konfigurację początkową. W miarę wzrostu zapotrzebowania na przetwarzanie danych można łatwo skalować klaster, dodając węzły.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Inni współautorzy:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Dokumentacja produktu:

Ścieżka szkoleniowa z przewodnikiem: