Kompleksowe przetwarzanie obrazów na brzegu produkcji

Azure Data Factory
Azure IoT Edge
Azure IoT Hub
Azure Machine Learning
Azure Pipelines

W tej przykładowej architekturze przedstawiono kompleksowe podejście do przetwarzania obrazów internetu rzeczy (IoT) w produkcji.

Architektura

Diagram showing the end-to-end approach to computer vision from the edge to the cloud and back.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

  1. Niestandardowy moduł usługi IoT Edge przechwytuje strumień wideo na żywo, dzieli go na ramki i wykonuje wnioskowanie na danych obrazu w celu określenia, czy wystąpiło zdarzenie.
  2. Moduł niestandardowy używa również metod zestawu SDK usługi Azure Storage lub interfejsu API obiektów blob do przekazywania nieprzetworzonych plików wideo do usługi Azure Storage, która działa jako nieprzetworzone magazyny multimediów.
  3. Moduł niestandardowy wysyła wyniki wnioskowania i metadane do usługi Azure IoT Hub, która działa jako centralne centrum komunikatów do komunikacji w obu kierunkach.
  4. Usługa Azure Logic Apps monitoruje usługę IoT Hub pod kątem komunikatów dotyczących zdarzeń zdarzenia. Usługa Logic Apps kieruje wnioskowanie wyników i metadanych do usługi Microsoft Dataverse na potrzeby magazynu.
  5. W przypadku wystąpienia zdarzenia usługa Logic Apps wysyła powiadomienia SMS i e-mail do inżyniera lokacji. Inżynier witryny używa aplikacji mobilnej opartej na usłudze Power Apps, aby potwierdzić i rozwiązać zdarzenie.
  6. Usługa Power Apps pobiera wyniki i metadane z usługi Dataverse i nieprzetworzonych plików wideo z usługi Blob Storage w celu wyświetlenia odpowiednich informacji o zdarzeniu. Usługa Power Apps aktualizuje usługę Dataverse za pomocą rozwiązania zdarzenia dostarczonego przez inżyniera lokacji. Ten krok działa jako walidacja pętli człowiek-in-the-loop na potrzeby ponownego trenowania modelu.
  7. Usługa Azure Data Factory to orkiestrator danych, który pobiera nieprzetworzone pliki wideo z nieprzetworzonego magazynu multimediów i pobiera odpowiednie wyniki wnioskowania i metadane z usługi Dataverse.
  8. Usługa Data Factory przechowuje nieprzetworzone pliki wideo oraz metadane w usłudze Azure Data Lake, która służy jako archiwum wideo do celów inspekcji.
  9. Usługa Data Factory dzieli nieprzetworzone pliki wideo na ramki, konwertuje wyniki wnioskowania na etykiety i przekazuje dane do usługi Blob Storage, która działa jako magazyn danych uczenia maszynowego.
  10. Zmiany kodu modelu automatycznie wyzwalają potok orkiestratora modelu usługi Azure Pipelines, który operatory mogą również wyzwalać ręcznie. Zmiany kodu rozpoczynają również proces trenowania i walidacji modelu uczenia maszynowego w usłudze Azure Machine Edukacja.
  11. Usługa Azure Machine Edukacja rozpoczyna trenowanie modelu przez weryfikowanie danych z magazynu danych uczenia maszynowego i kopiowanie wymaganych zestawów danych do usługi Azure Premium Blob Storage. Ta warstwa wydajności zapewnia pamięć podręczną danych na potrzeby szybszego trenowania modelu.
  12. Usługa Azure Machine Edukacja używa zestawu danych w pamięci podręcznej danych Premium do trenowania modelu, weryfikowania wydajności wytrenowanego modelu, oceniania go względem nowo wytrenowanego modelu i rejestrowania modelu w rejestrze usługi Azure Machine Edukacja.
  13. Orkiestrator modelu usługi Azure Pipelines sprawdza wydajność nowo wytrenowanego modelu uczenia maszynowego i określa, czy jest on lepszy niż poprzednie modele. Jeśli nowy model działa lepiej, potok pobiera model z usługi Azure Machine Edukacja i tworzy nową wersję modułu wnioskowania uczenia maszynowego w celu opublikowania w usłudze Azure Container Registry.
  14. Gdy nowy moduł wnioskowania uczenia maszynowego jest gotowy, usługa Azure Pipelines wdraża kontener modułu z usługi Container Registry do modułu usługi IoT Edge w usłudze IoT Hub.
  15. Usługa IoT Hub aktualizuje urządzenie usługi IoT Edge przy użyciu nowego modułu wnioskowania uczenia maszynowego.

Elementy

  • Usługa Azure IoT Edge analizuje dane urządzenia lokalnie, aby wysyłać mniej danych do chmury, szybko reagować na zdarzenia i działać w warunkach niskiej łączności. Moduł uczenia maszynowego usługi IoT Edge może wyodrębniać szczegółowe informacje umożliwiające podejmowanie działań z danych wideo przesyłanych strumieniowo.
  • Azure IoT Hub to usługa zarządzana, która umożliwia niezawodną i bezpieczną dwukierunkową komunikację między milionami urządzeń IoT a zapleczem opartym na chmurze. Usługa IoT Hub zapewnia uwierzytelnianie poszczególnych urządzeń, routing komunikatów, integrację z innymi usługami platformy Azure oraz funkcje zarządzania w celu kontrolowania i konfigurowania urządzeń IoT.
  • Azure Logic Apps to bezserwerowa usługa w chmurze służąca do tworzenia i uruchamiania zautomatyzowanych przepływów pracy, które integrują aplikacje, dane, usługi i systemy. Deweloperzy mogą używać projektanta wizualnego do planowania i organizowania typowych przepływów pracy zadań. Usługa Logic Apps ma łączniki dla wielu popularnych usług w chmurze, produktów lokalnych i innych aplikacji typu oprogramowanie jako usługa (SaaS). W tym rozwiązaniu usługa Logic Apps uruchamia zautomatyzowany przepływ pracy powiadomień, który wysyła alerty SMS i e-mail do inżynierów witryny.
  • Power Apps to platforma danych i zestaw aplikacji, usług i łączników. Służy jako szybkie środowisko programistyczne aplikacji. Podstawowa platforma danych to Microsoft Dataverse.
  • Dataverse to oparta na chmurze platforma magazynu dla usługi Power Apps. Usługa Dataverse obsługuje powiadomienia typu human-in-the-loop i przechowuje metadane skojarzone z potokiem danych MLOps.
  • Usługa Azure Blob Storage jest skalowalnym i bezpiecznym magazynem obiektów dla danych bez struktury. Można go używać do archiwów, magazynów danych, obliczeń o wysokiej wydajności, uczenia maszynowego i obciążeń natywnych dla chmury. W tym rozwiązaniu usługa Blob Storage udostępnia lokalny magazyn danych dla magazynu danych uczenia maszynowego i pamięć podręczną danych Premium na potrzeby trenowania modelu uczenia maszynowego. Warstwa Premium usługi Blob Storage dotyczy obciążeń wymagających szybkich czasów odpowiedzi i wysokich stawek transakcji, takich jak etykietowanie wideo w pętli człowieka w tym przykładzie.
  • Usługa Data Lake Storage to wysoce skalowalna i bezpieczna usługa magazynu na potrzeby obciążeń analitycznych o wysokiej wydajności. Dane zazwyczaj pochodzą z wielu heterogenicznych źródeł i mogą być ustrukturyzowane, częściowo ustrukturyzowane lub nieustrukturyzowane. Usługa Azure Data Lake Storage Gen2 łączy funkcje usługi Azure Data Lake Storage Gen1 z usługą Blob Storage i zapewnia semantyka systemu plików, zabezpieczenia na poziomie plików i skalowanie. Oferuje również warstwowy magazyn, wysoką dostępność i odzyskiwanie po awarii usługi Blob Storage. W tym rozwiązaniu usługa Data Lake Storage udostępnia archiwalny magazyn wideo dla nieprzetworzonych plików wideo i metadanych.
  • Usługa Azure Data Factory to hybrydowe, w pełni zarządzane, bezserwerowe rozwiązanie do obsługi przepływów pracy integracji i przekształcania danych. Zapewnia on bezpłatny interfejs użytkownika i łatwy w użyciu panel monitorowania. Usługa Azure Data Factory używa potoków do przenoszenia danych. Przepływy mapowania danych wykonują różne zadania przekształcania, takie jak wyodrębnianie, przekształcanie i ładowanie (ETL) oraz wyodrębnianie, ładowanie i przekształcanie (ELT). W tym przykładzie usługa Data Factory organizuje dane w potoku ETL do danych wnioskowania, które są przechowywane na potrzeby ponownego trenowania.
  • Usługa Azure Machine Edukacja to usługa uczenia maszynowego klasy korporacyjnej służąca do szybkiego tworzenia i wdrażania modeli. Zapewnia ona użytkownikom na wszystkich poziomach umiejętności projektanta niskiego poziomu kodu, zautomatyzowanego uczenia maszynowego i hostowanego środowiska notesu Jupyter, które obsługuje różne środowiska IDE.
  • Usługa Azure Pipelines, część usług deweloperskich opartych na zespołach usługi Azure DevOps , tworzy potoki ciągłej integracji i ciągłego wdrażania (CD). W tym przykładzie orkiestrator modelu usługi Azure Pipelines weryfikuje kod uczenia maszynowego, wyzwala potoki zadań bezserwerowych, porównuje modele uczenia maszynowego i tworzy kontener wnioskowania.
  • Usługa Container Registry tworzy rejestr platformy Docker i zarządza nim w celu tworzenia, przechowywania i zarządzania obrazami kontenerów platformy Docker, w tym konteneryzowanych modeli uczenia maszynowego.
  • Usługa Azure Monitor zbiera dane telemetryczne z zasobów platformy Azure, dzięki czemu zespoły mogą aktywnie identyfikować problemy i maksymalizować wydajność i niezawodność.

Alternatywy

Zamiast używać potoku danych do dzielenia strumienia wideo na ramki obrazów, możesz wdrożyć moduł usługi Azure Blob Storage na urządzeniu usługi IoT Edge. Następnie moduł wnioskowania przekazuje ramki obrazów wnioskowanych do modułu magazynu na urządzeniu brzegowym. Moduł magazynu określa, kiedy przekazywać ramki bezpośrednio do magazynu danych uczenia maszynowego. Zaletą tego podejścia jest usunięcie kroku z potoku danych. Kompromis polega na tym, że urządzenie brzegowe jest ściśle powiązane z usługą Azure Blob Storage.

W przypadku orkiestracji modelu można użyć usługi Azure Pipelines lub Azure Data Factory.

  • Zaletą usługi Azure Pipelines jest ścisłe powiązania z kodem modelu uczenia maszynowego. Potok trenowania można łatwo wyzwolić za pomocą zmian kodu za pośrednictwem ciągłej integracji/ciągłego wdrażania.
  • Zaletą usługi Data Factory jest to, że każdy potok może aprowizować wymagane zasoby obliczeniowe. Usługa Data Factory nie trzyma się agentów usługi Azure Pipelines w celu uruchomienia trenowania uczenia maszynowego, co może wiązać się z normalnym przepływem ciągłej integracji/ciągłego wdrażania.

Szczegóły scenariusza

W pełni zautomatyzowane fabryki inteligentne używają sztucznej inteligencji (AI) i uczenia maszynowego (ML) do analizowania danych, uruchamiania systemów i ulepszania procesów w czasie.

W tym przykładzie aparaty fotograficzne wysyłają obrazy do urządzenia usługi Azure IoT Edge z uruchomionym modelem uczenia maszynowego. Model oblicza wnioskowanie i wysyła możliwe do wykonania działania dane wyjściowe do chmury w celu dalszego przetwarzania. Interwencje człowieka są częścią analizy przechwytywanej przez model uczenia maszynowego. Proces uczenia maszynowego to ciągły cykl trenowania, testowania, dostrajania i weryfikowania algorytmów uczenia maszynowego.

Potencjalne przypadki użycia

Procesy produkcyjne używają przetwarzania obrazów IoT w aplikacjach zapewniających bezpieczeństwo i jakość. Systemy przetwarzania obrazów IoT mogą:

  • Pomóż zapewnić zgodność z wytycznymi produkcyjnymi, takimi jak odpowiednie etykietowanie.
  • Zidentyfikuj wady produkcyjne, takie jak nierówne powierzchnie.
  • Zwiększ bezpieczeństwo, monitorując wejścia do budynku lub obszaru.
  • Podtrzymuje bezpieczeństwo pracowników, wykrywając użycie osobistego sprzętu ochronnego (PPE) i inne praktyki bezpieczeństwa.

Kwestie wymagające rozważenia

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

Dostępność

Aplikacje oparte na uczeniu maszynowym zwykle wymagają jednego zestawu zasobów na potrzeby trenowania, a drugiego do obsługi. Zasoby szkoleniowe zazwyczaj nie wymagają wysokiej dostępności, ponieważ żądania produkcyjne na żywo nie korzystają bezpośrednio z tych zasobów. Zasoby wymagane do obsługi żądań muszą mieć wysoką dostępność.

Operacje

To rozwiązanie jest podzielone na trzy obszary operacyjne:

  • W przypadku operacji IoT model uczenia maszynowego na urządzeniu brzegowym używa obrazów w czasie rzeczywistym z połączonych kamer do wnioskowania klatek wideo. Urządzenie brzegowe wysyła również buforowane strumienie wideo do magazynu w chmurze do użycia na potrzeby inspekcji i ponownego trenowania modelu. Po ponownym trenowaniu uczenia maszynowego usługa Azure IoT Hub aktualizuje urządzenie brzegowe przy użyciu nowego modułu wnioskowania uczenia maszynowego.

  • Metodyka MLOps używa praktyk DevOps do organizowania trenowania, testowania i wdrażania modeli. Zarządzanie cyklem życia metodyki MLOps automatyzuje proces korzystania z modeli uczenia maszynowego na potrzeby złożonego podejmowania decyzji lub produkcji modeli. Kluczem do metodyki MLOps jest ścisła koordynacja między zespołami, które tworzą, szkolą, oceniają i wdrażają modele uczenia maszynowego.

  • Operacje pętli ludzkiej powiadamiają ludzi o interwencji w określonych krokach automatyzacji. W przypadku transakcji typu human-in-the-loop procesy robocze sprawdzają i oceniają wyniki przewidywań uczenia maszynowego. Interwencje człowieka stają się częścią analizy przechwytywanej przez model uczenia maszynowego i pomagają zweryfikować model.

    Następujące role ludzkie są częścią tego rozwiązania:

    • Inżynierowie lokacji otrzymują powiadomienia o zdarzeniach wysyłane przez usługę Logic Apps i ręcznie weryfikują wyniki lub przewidywania modelu uczenia maszynowego. Na przykład inżynier lokacji może zbadać zawór, który przewidywał model nie powiódł się.

    • Zestawy danych etykiet etykiet danych do ponownego trenowania, aby ukończyć pętlę kompleksowego rozwiązania. Proces etykietowania danych jest szczególnie ważny w przypadku danych obrazów jako pierwszy krok w trenowaniu niezawodnego modelu za pomocą algorytmów. W tym przykładzie usługa Azure Data Factory organizuje ramki wideo w dodatnie i fałszywie dodatnie grupowania, co ułatwia pracę elementu labeler danych.

    • Analitycy danych używają oznaczonych zestawów danych, aby wytrenować algorytmy w celu dokonania poprawnych przewidywań w rzeczywistym życiu. Analitycy danych używają metodyki MLOps z funkcją GitHub Actions lub azure Pipelines w procesie ciągłej integracji, aby automatycznie trenować i weryfikować model. Trenowanie może być wyzwalane ręcznie lub automatycznie przez zaewidencjonowanie nowych skryptów szkoleniowych lub danych. Analitycy danych pracują w obszarze roboczym usługi Azure Machine Edukacja, który może automatycznie rejestrować, wdrażać i zarządzać modelami.

    • Inżynierowie IoT używają usługi Azure Pipelines do publikowania modułów usługi IoT Edge w kontenerach w usłudze Container Registry. Inżynierowie mogą wdrażać i skalować infrastrukturę na żądanie przy użyciu potoku ciągłego wdrażania.

    • Sejf ty audytorów przejrzyj zarchiwizowane strumienie wideo, aby wykrywać anomalie, oceniać zgodność i potwierdzać wyniki, gdy pojawiają się pytania dotyczące przewidywań modelu.

    W tym rozwiązaniu usługa IoT Hub pozyskuje dane telemetryczne z kamer i wysyła metryki do usługi Azure Monitor, aby inżynierowie witryny mogli badać i rozwiązywać problemy. Usługa Azure Machine Edukacja wysyła metryki obserwacji i telemetrię modelu do usługi Azure Monitor, pomagając inżynierom IoT i analitykom danych zoptymalizować operacje.

Wydajność

Urządzenia IoT mają ograniczoną moc pamięci i przetwarzania, dlatego ważne jest ograniczenie rozmiaru kontenera modelu wysyłanego do urządzenia. Pamiętaj, aby użyć urządzenia IoT, które może wykonywać wnioskowanie modelu i generować wyniki w akceptowalnym czasie.

Aby zoptymalizować wydajność modeli szkoleniowych, w tej przykładowej architekturze jest używana usługa Azure Premium Blob Storage. Ta warstwa wydajności jest przeznaczona dla obciążeń wymagających szybkich czasów odpowiedzi i wysokich stawek transakcji, takich jak scenariusz etykietowania wideo w pętli human-in-the-loop.

Zagadnienia dotyczące wydajności dotyczą również potoku pozyskiwania danych. Usługa Data Factory maksymalizuje przenoszenie danych, zapewniając wysoce wydajne, ekonomiczne rozwiązanie.

Skalowalność

Większość składników używanych w tym rozwiązaniu to usługi zarządzane, które są automatycznie skalowane.

Skalowalność aplikacji IoT zależy od przydziałów i ograniczania przepustowości usługi IoT Hub. Czynniki, które należy wziąć pod uwagę, obejmują:

  • Maksymalny dzienny limit komunikatów dostarczanych do usługi IoT Hub.
  • Limit przydziału połączonych urządzeń w wystąpieniu usługi IoT Hub.
  • Pozyskiwanie i przetwarzanie przepływności.

W przypadku uczenia maszynowego skalowalność odnosi się do skalowania klastrów używanych do trenowania modeli względem dużych zestawów danych. Skalowalność umożliwia również modelowi uczenia maszynowego spełnienie wymagań aplikacji korzystających z niego. Aby spełnić te potrzeby, klaster uczenia maszynowego musi zapewniać skalowanie w poziomie na procesorach CPU i w węzłach z obsługą procesora graficznego (GPU).

Aby uzyskać ogólne wskazówki dotyczące projektowania skalowalnych rozwiązań, zobacz listę kontrolną wydajności w Centrum architektury platformy Azure.

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ń.

Zarządzanie dostępem w usłudze Dataverse i innych usługach platformy Azure pomaga zagwarantować, że tylko autoryzowani użytkownicy będą mogli uzyskiwać dostęp do środowiska, danych i raportów. To rozwiązanie używa usługi Azure Key Vault do zarządzania hasłami i wpisami tajnymi. Magazyn jest szyfrowany przy użyciu kluczy zarządzanych przez klienta.

Aby uzyskać ogólne wskazówki dotyczące projektowania bezpiecznych rozwiązań IoT, zobacz dokumentację zabezpieczeń platformy Azure i architekturę referencyjną usługi Azure IoT.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Ogólnie rzecz biorąc, możesz szacować koszty za pomocą kalkulatora cen platformy Azure. Aby zapoznać się z innymi zagadnieniami, zobacz Optymalizacja kosztów.

Usługa Azure Machine Edukacja wdraża również usługi Container Registry, Azure Storage i Azure Key Vault, które generują dodatkowe koszty. Aby uzyskać więcej informacji, zobacz How Azure Machine Edukacja works: Architecture and concepts (Jak działa usługa Azure Machine Edukacja: architektura i pojęcia).

Cennik usługi Azure Machine Edukacja obejmuje opłaty za maszyny wirtualne używane do trenowania modelu w chmurze. Aby uzyskać informacje o dostępności usługi Azure Machine Edukacja i maszyn wirtualnych na region świadczenia usługi Azure, zobacz Dostępność produktów według regionów.

Współautorzy

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

Główny autor:

Następne kroki