Tworzenie rozwiązania do obsługi pojazdów autonomicznych (AVOps)

Azure Machine Learning
Azure Data Factory
Azure Data Share
Azure Batch
GitHub

Pomysły dotyczące rozwiązań

W tym artykule opisano pomysł rozwiązania. Architekt chmury może użyć tych wskazówek, aby ułatwić wizualizowanie głównych składników dla typowej implementacji tej architektury. Skorzystaj z tego artykułu jako punktu wyjścia, aby zaprojektować dobrze zaprojektowane rozwiązanie zgodne z konkretnymi wymaganiami obciążenia.

Ta architektura zawiera wskazówki i zalecenia dotyczące tworzenia zautomatyzowanego rozwiązania do jazdy.

Architektura

Diagram przedstawiający architekturę AVOps.

Pobierz plik programu Visio zawierający diagramy architektury w tym artykule.

Przepływ danych

  1. Dane pomiarów pochodzą ze strumieni danych dla czujników, takich jak kamery, radar, usg, lidar i telemetria pojazdów. Rejestratory danych w magazynie pojazdów przechowują dane pomiaru na urządzeniach magazynujących rejestratora. Dane magazynu rejestratora są następnie przekazywane do docelowej usługi Data Lake. Usługa, na przykład Azure Data Box lub Azure Stack Edge, lub dedykowane połączenie, takie jak Azure ExpressRoute, pozyskuje dane na platformie Azure.

    Dane pomiarów mogą być również syntetycznymi danymi z symulacji lub z innych źródeł. (MDF4, TDMS i rosbag są typowymi formatami danych dla pomiarów). Na etapie metodyki DataOps są przetwarzane pozyskane miary. Sprawdzanie poprawności i jakości danych, takie jak suma kontrolna, są wykonywane w celu usunięcia danych o niskiej jakości. Na tym etapie wyodrębnione są nieprzetworzone metadane informacji zarejestrowane przez kierowcę testowego podczas jazdy testowej. Te dane są przechowywane w scentralizowanym wykazie metadanych. Te informacje ułatwiają procesom podrzędnym identyfikowanie określonych scen i sekwencji.

  2. Dane są przetwarzane przez potok wyodrębniania, przekształcania i ładowania (ETL) usługi Azure Data Factory . Dane wyjściowe są przechowywane jako dane pierwotne i binarne w usłudze Azure Data Lake. Metadane są przechowywane w usłudze Azure Cosmos DB. W zależności od scenariusza może być następnie wysyłany do usługi Azure Data Explorer lub Azure Cognitive Search.

  3. Dodatkowe informacje, szczegółowe informacje i kontekst są dodawane do danych w celu zwiększenia jego dokładności i niezawodności.

  4. Wyodrębnione dane pomiarów są udostępniane partnerom etykietowania (human-in-the-loop) za pośrednictwem usługi Azure Data Share. Partnerzy innych firm wykonują automatyczne etykietowanie, przechowywanie danych i uzyskiwanie do nich dostępu za pośrednictwem oddzielnego konta usługi Data Lake.

  5. Zestawy danych z etykietami przepływają do podrzędnych procesów MLOps , głównie w celu tworzenia modeli percepcji i łączenia czujników. Modele te wykonują funkcje używane przez pojazdy autonomiczne do wykrywania scen (czyli zmian pasa ruchu, zablokowanych dróg, pieszych, świateł drogowych i znaków drogowych).

  6. Na etapie ValOps trenowane modele są weryfikowane za pośrednictwem testowania open-loop i zamkniętej pętli.

  7. Narzędzia, takie jak Foxglove, uruchomione w usłudze Azure Kubernetes Service lub Azure Container Instances, wizualizuj pozyskane i przetworzone dane.

Zbieranie danych

Zbieranie danych jest jednym z głównych wyzwań związanych z operacjami pojazdów autonomicznych (AVOps). Na poniższym diagramie przedstawiono przykład sposobu zbierania i przechowywania danych pojazdu w trybie offline i online w usłudze Data Lake.

Diagram przedstawiający zbieranie danych w trybie offline i online.

DataOps

Operacje na danych (DataOps) to zestaw praktyk, procesów i narzędzi do poprawy jakości, szybkości i niezawodności operacji danych. Celem przepływu metodyki DataOps na potrzeby autonomicznej jazdy (AD) jest zapewnienie, że dane używane do kontrolowania pojazdu są wysokiej jakości, dokładne i niezawodne. Dzięki spójnemu przepływowi metodyki DataOps można zwiększyć szybkość i dokładność operacji na danych oraz podejmować lepsze decyzje w celu kontrolowania pojazdów autonomicznych.

Składniki metody DataOps

  • Urządzenie Data Box służy do transferu zebranych danych pojazdu na platformę Azure za pośrednictwem regionalnego przewoźnika.
  • Usługa ExpressRoute rozszerza sieć lokalną na chmurę firmy Microsoft za pośrednictwem połączenia prywatnego.
  • Usługa Azure Data Lake Storage przechowuje dane na podstawie etapów, na przykład nieprzetworzonych lub wyodrębnionych.
  • Usługa Azure Data Factory wykonuje operacje ETL za pośrednictwem obliczeń wsadowych i tworzy oparte na danych przepływy pracy do organizowania przenoszenia i przekształcania danych.
  • Usługa Azure Batch uruchamia aplikacje na dużą skalę dla zadań, takich jak uzdatnianie danych, filtrowanie i przygotowywanie danych oraz wyodrębnianie metadanych.
  • Usługa Azure Cosmos DB przechowuje wyniki metadanych, takie jak przechowywane miary.
  • Usługa Data Share służy do udostępniania danych organizacjom partnerskim, na przykład firmom etykietowania, z zwiększonymi zabezpieczeniami.
  • Usługa Azure Databricks udostępnia zestaw narzędzi do obsługi rozwiązań danych klasy korporacyjnej na dużą skalę. Jest to wymagane w przypadku długotrwałych operacji na dużych ilościach danych pojazdu. Inżynierowie danych używają usługi Azure Databricks jako aplikacji analitycznej workbench.
  • Usługa Azure Synapse Analytics skraca czas na wgląd w magazyny danych i systemy danych big data.
  • Usługa Azure Cognitive Search udostępnia usługi wyszukiwania wykazu danych.

MLOps

Operacje uczenia maszynowego (MLOps) obejmują:

  • Modele wyodrębniania funkcji (takie jak CLIP i YOLO) do klasyfikowania scen (na przykład tego, czy pieszy znajduje się na scenie) podczas potoku Metodyka DataOps .
  • Modele automatycznego etykietowania na potrzeby etykietowania pozyskanych obrazów oraz danych lidaru i radaru.
  • Modele percepcji i przetwarzania obrazów do wykrywania obiektów i scen.
  • Model łączenia czujników, który łączy strumienie czujników.

Model percepcji jest ważnym składnikiem tej architektury. Ten model usługi Azure Machine Learning generuje model wykrywania obiektów przy użyciu wykrytych i wyodrębnionych scen.

Transfer konteneryzowanego modelu uczenia maszynowego do formatu, który można odczytać przez system na sprzęcie (SoC) sprzętu i walidacji/symulacji odbywa się w potoku MLOps. Ten krok wymaga obsługi producenta SoC.

Składniki metodyki MLOps

ValOps

Operacje weryfikacji (ValOps) to proces testowania opracowanych modeli w symulowanych środowiskach za pośrednictwem scenariuszy zarządzanych przed wykonaniem kosztownych rzeczywistych testów środowiskowych. Testy ValOps pomagają zagwarantować, że modele spełniają żądane standardy wydajności, standardy dokładności i wymagania bezpieczeństwa. Celem procesu weryfikacji w chmurze jest zidentyfikowanie i rozwiązanie wszelkich potencjalnych problemów przed wdrożeniem pojazdu autonomicznego w środowisku na żywo. Metodyka ValOps obejmuje:

  • Walidacja symulacji. Środowiska symulacji opartej na chmurze (open-loop i testowania w pętli zamkniętej) umożliwiają wirtualne testowanie autonomicznych modeli pojazdów. Te testy są uruchamiane na dużą skalę i są tańsze niż testy w świecie rzeczywistym.
  • Weryfikacja wydajności. Infrastruktura oparta na chmurze może uruchamiać testy na dużą skalę, aby ocenić wydajność modeli pojazdów autonomicznych. Walidacja wydajności może obejmować testy obciążeniowe, testy obciążeniowe i testy porównawcze.

Użycie metody ValOps do walidacji może pomóc w wykorzystaniu skalowalności, elastyczności i efektywności kosztów infrastruktury opartej na chmurze oraz skrócenia czasu na rynek dla modeli pojazdów autonomicznych.

Testowanie open-loop

Ponowne symulacje lub przetwarzanie czujników to system testów open-loop i walidacji dla funkcji automatycznej jazdy. Jest to złożony proces i mogą istnieć wymagania prawne dotyczące bezpieczeństwa, prywatności danych, przechowywania wersji danych i inspekcji. Ponowne symulacje procesów rejestrowało nieprzetworzone dane z różnych czujników samochodów za pośrednictwem grafu w chmurze. Ponowne symulacje weryfikuje algorytmy przetwarzania danych lub wykrywa regresje. Producenci OEM łączą czujniki w skierowanym grafie acyklicznym, który reprezentuje rzeczywisty pojazd.

Ponowne symulacje to zadanie obliczeniowe równoległe na dużą skalę. Przetwarza dziesiątki lub setki baz danych przy użyciu dziesiątek tysięcy rdzeni. Wymaga ona przepływności we/wy przekraczającej 30 GB/s. Dane z wielu czujników są łączone w zestawy danych, które reprezentują widok tego, co systemy przetwarzania obrazów pojazdu rejestrują, gdy pojazd porusza się po świecie rzeczywistym. Test open-loop weryfikuje wydajność algorytmów względem prawdy naziemnej przy użyciu powtarzania i oceniania. Dane wyjściowe są używane w dalszej części przepływu pracy na potrzeby trenowania algorytmów.

  • Zestawy danych pochodzą z pojazdów floty testowej, które zbierają nieprzetworzone dane czujników (na przykład dane z kamery, lidaru, radaru i ultradźwięków).
  • Ilość danych zależy od rozdzielczości kamery i liczby czujników w pojeździe.
  • Nieprzetworzone dane są ponownie przetwarzane w różnych wersjach oprogramowania urządzeń.
  • Nieprzetworzone dane czujnika są wysyłane do interfejsu wejściowego czujnika oprogramowania czujnika.
  • Dane wyjściowe są porównywane z danymi wyjściowymi poprzednich wersji oprogramowania i są sprawdzane pod kątem poprawek błędów lub nowych funkcji, takich jak wykrywanie nowych typów obiektów.
  • Drugie ponowne wstrzyknięcie zadania jest wykonywane po zaktualizowaniu modelu i oprogramowania.
  • Dane podstawowe są używane do sprawdzania poprawności wyników.
  • Wyniki są zapisywane w magazynie i odciążane do usługi Azure Data Explorer na potrzeby wizualizacji.

Testowanie i symulacja pętli zamkniętej

Testowanie zamkniętego pętli pojazdów autonomicznych jest procesem testowania możliwości pojazdów, a jednocześnie przesyłania opinii w czasie rzeczywistym ze środowiska. Działania pojazdu są oparte zarówno na jego wstępnie zaprogramowanym zachowaniu, jak i na warunkach dynamicznych, które napotyka, i odpowiednio dostosowuje swoje działania. Testy zamkniętej pętli są uruchamiane w bardziej złożonym i realistycznym środowisku. Służy do oceny zdolności pojazdu do obsługi rzeczywistych scenariuszy, w tym sposobu reagowania na nieoczekiwane sytuacje. Celem testów zamkniętych pętli jest sprawdzenie, czy pojazd może działać bezpiecznie i skutecznie w różnych warunkach, oraz do uściślić algorytmy sterowania i procesy podejmowania decyzji zgodnie z potrzebami.

Potok ValOps integruje testowanie zamkniętej pętli, symulacje innych firm i aplikacje niezależnego dostawcy oprogramowania.

Zarządzanie scenariuszami

Na etapie ValOps wykaz rzeczywistych scenariuszy służy do weryfikowania możliwości autonomicznego rozwiązania do prowadzenia pojazdów autonomicznych w celu symulowania zachowania pojazdów autonomicznych. Celem jest przyspieszenie tworzenia katalogów scenariuszy przez automatyczne odczytywanie sieci tras, która jest częścią scenariusza, z publicznie dostępnych i bezpłatnych map cyfrowych. Użyj narzędzi innych firm do zarządzania scenariuszami lub lekkiego symulatora typu open source, takiego jak CARLA, który obsługuje format OpenDRIVE (xodr). Aby uzyskać więcej informacji, zobacz ScenarioRunner for CARLA (Scenariuszrunner dla CARLA).

Składniki ValOps

  • Usługa Azure Kubernetes Service uruchamia wnioskowanie wsadowe na dużą skalę na potrzeby weryfikacji pętli open-loop w ramach platformy Żywica. Zalecamy używanie narzędzia BlobFuse2 do uzyskiwania dostępu do plików pomiarów. Możesz również użyć systemu plików NFS, ale musisz ocenić wydajność dla przypadku użycia.
  • Usługa Azure Batch uruchamia wnioskowanie wsadowe na dużą skalę na potrzeby weryfikacji open-loop w ramach platformy Żywica.
  • Usługa Azure Data Explorer udostępnia usługę analizy dla pomiarów i wskaźników KPI (czyli ponownej symulacji i przebiegów zadań).

Scentralizowane funkcje AVOps

Architektura avOps jest złożona i obejmuje różne strony trzecie, role i etapy programowania, dlatego ważne jest zaimplementowanie dobrego modelu ładu.

Zalecamy utworzenie scentralizowanego zespołu do obsługi funkcji, takich jak aprowizowanie infrastruktury, zarządzanie kosztami, metadane i wykaz danych, pochodzenie danych oraz ogólna aranżacja i obsługa zdarzeń. Scentralizowanie tych usług jest wydajne i upraszcza operacje.

Zalecamy użycie scentralizowanego zespołu do obsługi tych obowiązków:

  • Udostępnianie szablonów ARM/Bicep, w tym szablonów dla standardowych usług, takich jak magazyn i zasoby obliczeniowe używane przez każdy obszar i obszar podrzędny architektury AVOps
  • Implementacja centralnych wystąpień usługi Azure Service Bus/Azure Event Hubs na potrzeby orkiestracji sterowanej zdarzeniami pętli danych AVOps
  • Własność wykazu metadanych
  • Możliwości kompleksowego pochodzenia i możliwości śledzenia we wszystkich składnikach AVOps

Diagram przedstawiający scentralizowane funkcje AVOps.

Szczegóły scenariusza

Tej architektury można użyć do utworzenia zautomatyzowanego rozwiązania do jazdy na platformie Azure.

Potencjalne przypadki użycia

Producenci samochodów, dostawcy warstwy 1 i niezależnych dostawców oprogramowania, którzy opracowują rozwiązania do zautomatyzowanej jazdy.

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.

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

Ważne jest, aby zrozumieć podział odpowiedzialności między producentem OEM a dostawcą usług w chmurze. W pojeździe OEM jest właścicielem całego stosu, ale gdy dane są przenoszone do chmury, niektóre obowiązki są przenoszone do dostawcy usług w chmurze. Platforma Azure jako usługa (PaaS) zapewnia wbudowane ulepszone zabezpieczenia na stosie fizycznym, w tym system operacyjny. Oprócz składników zabezpieczeń infrastruktury można zastosować następujące ulepszenia. Te ulepszenia umożliwiają podejście zero-trust.

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.

Za pomocą tych strategii można zmniejszyć koszty związane z opracowywaniem autonomicznych rozwiązań do jazdy:

  • Optymalizowanie infrastruktury chmury. Staranne planowanie i zarządzanie infrastrukturą chmury może pomóc zmniejszyć koszty. Na przykład użyj tanich typów wystąpień i skalowania infrastruktury, aby spełnić zmieniające się obciążenia. Postępuj zgodnie ze wskazówkami w przewodniku Azure Cloud Adoption Framework.
  • Użyj maszyn wirtualnych typu spot. Możesz określić, które obciążenia we wdrożeniu avOps nie wymagają przetwarzania w określonym przedziale czasu i używać maszyn wirtualnych typu spot dla tych obciążeń. Maszyny wirtualne typu spot umożliwiają korzystanie z nieużywanej pojemności platformy Azure w celu uzyskania znacznych oszczędności kosztów. Jeśli platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne.
  • Użyj skalowania automatycznego. Skalowanie automatyczne umożliwia automatyczne dostosowywanie infrastruktury chmury na podstawie zapotrzebowania, co zmniejsza potrzebę ręcznej interwencji i pomaga zmniejszyć koszty. Aby uzyskać więcej informacji, zobacz Projektowanie pod kątem skalowania.
  • Rozważ użycie warstw Gorąca, Chłodna i Archiwum dla magazynu. Magazyn może być znaczącym kosztem w autonomicznym rozwiązaniu do jazdy, dlatego należy wybrać ekonomiczne opcje magazynowania, takie jak magazyn zimny lub rzadko dostępny magazyn. Aby uzyskać więcej informacji, zobacz Zarządzanie cyklem życia danych.
  • Użyj narzędzi do zarządzania kosztami i optymalizacji. Usługa Microsoft Cost Management udostępnia narzędzia, które ułatwiają identyfikowanie i rozwiązywanie problemów dotyczących obszarów redukcji kosztów, takich jak nieużywane lub nieużywane zasoby.
  • Rozważ użycie usług platformy Azure. Na przykład możesz użyć usługi Azure Machine Learning do tworzenia i trenowania autonomicznych modeli jazdy. Korzystanie z tych usług może być bardziej ekonomiczne niż tworzenie i utrzymywanie infrastruktury wewnętrznej.
  • Użyj zasobów udostępnionych. Jeśli to możliwe, możesz użyć zasobów udostępnionych, takich jak udostępnione bazy danych lub współużytkowane zasoby obliczeniowe, aby zmniejszyć koszty związane z autonomicznym opracowywaniem. Scentralizowane funkcje w tej architekturze, na przykład, implementują centralną magistralę, centrum zdarzeń i wykaz metadanych. Usługi takie jak Azure Data Share mogą również pomóc w osiągnięciu tego celu.

Współautorzy

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

Autorzy zabezpieczeń:

Inni współautorzy:

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

Następne kroki

Aby uzyskać więcej informacji na temat opracowywania metodyki DataOps dla zautomatyzowanego systemu jazdy, zobacz:

Możesz również zainteresować się następującymi artykułami pokrewnymi: