Creare una soluzione AVOps (Autonomous Vehicle Operations)

Azure Machine Learning
Azure Data Factory
Condivisione dati di Azure
Azure Batch
GitHub

Idee per le soluzioni

Questo articolo descrive un'idea di soluzione. L'architetto cloud può usare queste linee guida per visualizzare i componenti principali per un'implementazione tipica di questa architettura. Usare questo articolo come punto di partenza per progettare una soluzione ben progettata in linea con i requisiti specifici del carico di lavoro.

Questa architettura fornisce indicazioni e consigli per lo sviluppo di una soluzione di guida automatizzata.

Architettura

Diagramma che mostra un'architettura AVOps.

Scaricare un file di Visio contenente i diagrammi dell'architettura in questo articolo.

Flusso di dati

  1. I dati di misurazione provengono da flussi di dati per sensori come telecamere, radar, ultrasuoni, lidar e dati di telemetria dei veicoli. I logger di dati nel veicolo archiviano i dati di misurazione nei dispositivi di archiviazione del logger. I dati di archiviazione del logger vengono quindi caricati nel data lake di destinazione. Un servizio come Azure Data Box o Azure Stack Edge o una connessione dedicata, ad esempio Azure ExpressRoute, inserisce i dati in Azure.

    I dati di misurazione possono anche essere dati sintetici provenienti da simulazioni o da altre origini. (MDF4, TDMS e rosbag sono formati di dati comuni per le misurazioni). Nella fase DataOps vengono elaborate le misurazioni inserite. I controlli di convalida e qualità dei dati, ad esempio checksum, vengono eseguiti per rimuovere dati di bassa qualità. In questa fase vengono estratti i metadati delle informazioni non elaborate registrate da un driver di test durante un test drive. Questi dati vengono archiviati in un catalogo di metadati centralizzato. Queste informazioni consentono ai processi downstream di identificare scene e sequenze specifiche.

  2. I dati vengono elaborati da una pipeline di estrazione, trasformazione e caricamento (ETL) di Azure Data Factory . L'output viene archiviato come dati non elaborati e binari in Azure Data Lake. I metadati vengono archiviati in Azure Cosmos DB. A seconda dello scenario, potrebbe quindi essere inviato ad Azure Esplora dati o Ricerca cognitiva di Azure.

  3. Informazioni aggiuntive, informazioni dettagliate e contesto vengono aggiunte ai dati per migliorarne l'accuratezza e l'affidabilità.

  4. I dati di misurazione estratti vengono forniti ai partner di etichettatura (human-in-the-loop) tramite Azure Condivisione dati. I partner di terze parti eseguono l'etichettatura automatica, l'archiviazione e l'accesso ai dati tramite un account Data Lake separato.

  5. I set di dati etichettati passano ai processi MLOps downstream, principalmente per creare modelli di percezione e fusione dei sensori. Questi modelli eseguono funzioni usate dai veicoli autonomi per rilevare scene (ovvero cambiamenti di corsia, strade bloccate, pedoni, semafori e segnali stradali).

  6. Nella fase ValOps i modelli sottoposti a training vengono convalidati tramite test a ciclo aperto e ciclo chiuso.

  7. Strumenti come Foxglove, in esecuzione su servizio Azure Kubernetes o Istanze di Azure Container, visualizzare i dati inseriti ed elaborati.

Raccolta dati

La raccolta dei dati è una delle sfide principali delle operazioni dei veicoli autonomi (AVOps). Il diagramma seguente mostra un esempio di come è possibile raccogliere e archiviare i dati dei veicoli offline e online in un data lake.

Diagramma che mostra la raccolta di dati offline e online.

DataOps

Le operazioni sui dati (DataOps) sono un set di procedure, processi e strumenti per migliorare la qualità, la velocità e l'affidabilità delle operazioni sui dati. L'obiettivo del flusso DataOps per la guida autonoma (AD) è garantire che i dati usati per controllare il veicolo siano di alta qualità, accurato e affidabile. Usando un flusso DataOps coerente, è possibile migliorare la velocità e l'accuratezza delle operazioni sui dati e prendere decisioni migliori per controllare i veicoli autonomi.

Componenti DataOps

  • Data Box viene usato per trasferire i dati dei veicoli raccolti ad Azure tramite un vettore regionale.
  • ExpressRoute estende la rete locale nel cloud Microsoft tramite una connessione privata.
  • Azure Data Lake Storage archivia i dati in base alle fasi, ad esempio non elaborate o estratte.
  • Azure Data Factory esegue ETL tramite calcolo batch e crea flussi di lavoro basati sui dati per orchestrare lo spostamento e la trasformazione dei dati.
  • Azure Batch esegue applicazioni su larga scala per attività come data wrangling, filtro e preparazione dei dati ed estrazione dei metadati.
  • Azure Cosmos DB archivia i risultati dei metadati, ad esempio le misurazioni archiviate.
  • Condivisione dati viene usato per condividere i dati con le organizzazioni partner, ad esempio le aziende di etichettatura, con sicurezza avanzata.
  • Azure Databricks offre un set di strumenti per la gestione di soluzioni di dati di livello aziendale su larga scala. È necessario per operazioni a esecuzione prolungata su grandi quantità di dati del veicolo. I data engineer usano Azure Databricks come workbench di analisi.
  • Azure Synapse Analytics riduce il tempo necessario per ottenere informazioni dettagliate tra data warehouse e sistemi Big Data.
  • Ricerca cognitiva di Azure fornisce servizi di ricerca del catalogo dati.

MLOps

Le operazioni di Machine Learning (MLOps) includono:

  • Modelli di estrazione delle funzionalità (ad esempio CLIP e YOLO) per classificare le scene (ad esempio, se un pedone si trova nella scena) durante la pipeline DataOps .
  • Etichettatura automatica dei modelli per l'etichettatura di immagini e lidar e dati radar inseriti.
  • Modelli di percezione e visione artificiale per rilevare oggetti e scene.
  • Modello di fusione dei sensori che combina i flussi dei sensori.

Il modello di percezione è un componente importante di questa architettura. Questo modello di Azure Machine Learning genera un modello di rilevamento oggetti usando scene rilevate ed estratte.

Il trasferimento del modello di Machine Learning in contenitori in un formato che può essere letto dal sistema in un hardware (SoC) hardware e software di convalida/simulazione avviene nella pipeline MLOps. Questo passaggio richiede il supporto del produttore SoC.

Componenti MLOps

ValOps

Le operazioni di convalida (ValOps) sono il processo di test dei modelli sviluppati in ambienti simulati tramite scenari gestiti prima di eseguire costosi test ambientali reali. I test ValOps consentono di garantire che i modelli soddisfino gli standard di prestazioni, gli standard di accuratezza e i requisiti di sicurezza desiderati. L'obiettivo del processo di convalida nel cloud è identificare e risolvere eventuali problemi prima di distribuire il veicolo autonomo in un ambiente attivo. ValOps include:

  • Convalida della simulazione. Gli ambienti di simulazione basata sul cloud (test a ciclo aperto e a ciclo chiuso) consentono il test virtuale dei modelli di veicoli autonomi. Questo test viene eseguito su larga scala ed è meno costoso rispetto ai test reali.
  • Convalida delle prestazioni. L'infrastruttura basata sul cloud può eseguire test su larga scala per valutare le prestazioni dei modelli di veicoli autonomi. La convalida delle prestazioni può includere test di stress, test di carico e benchmark.

L'uso di ValOps per la convalida consente di sfruttare la scalabilità, la flessibilità e l'efficacia dei costi di un'infrastruttura basata sul cloud e ridurre il time-to-market per i modelli di veicoli autonomi.

Test a ciclo aperto

La ripetizione della simulazione, o l'elaborazione dei sensori, è un sistema di test e convalida a ciclo aperto per le funzioni di guida automatica. Si tratta di un processo complesso e potrebbero esserci requisiti normativi per la sicurezza, la privacy dei dati, il controllo delle versioni dei dati e il controllo. I processi di ripetizione della simulazione registrano dati non elaborati da vari sensori di auto tramite un grafico nel cloud. La ripetizione della simulazione convalida gli algoritmi di elaborazione dei dati o rileva le regressioni. Gli OEM combinano sensori in un grafico aciclico diretto che rappresenta un veicolo reale.

La ripetizione della simulazione è un processo di calcolo parallelo su larga scala. Elabora decine o centinaia di PB di dati usando decine di migliaia di core. Richiede una velocità effettiva di I/O superiore a 30 GB/s. I dati di più sensori vengono combinati in set di dati che rappresentano una visualizzazione di ciò che i sistemi di visione artificiale su veicolo registrano quando il veicolo naviga nel mondo reale. Un test a ciclo aperto convalida le prestazioni degli algoritmi sulla base della verità usando la riproduzione e l'assegnazione dei punteggi. L'output viene usato più avanti nel flusso di lavoro per il training dell'algoritmo.

  • I set di dati vengono originati dai veicoli della flotta di test che raccolgono dati non elaborati dei sensori (ad esempio, fotocamera, lidar, radar e dati ad ultrasuoni).
  • Il volume di dati dipende dalla risoluzione della fotocamera e dal numero di sensori sul veicolo.
  • I dati non elaborati vengono rielaborati in base a versioni software diverse dei dispositivi.
  • I dati del sensore non elaborati vengono inviati all'interfaccia di input del sensore del software del sensore.
  • L'output viene confrontato con l'output delle versioni software precedenti e viene controllato in caso di correzioni di bug o nuove funzionalità, ad esempio il rilevamento di nuovi tipi di oggetto.
  • Una seconda reiniezione del processo viene eseguita dopo l'aggiornamento del modello e del software.
  • I dati di verità a terra vengono usati per convalidare i risultati.
  • I risultati vengono scritti nell'archiviazione e caricati in Azure Esplora dati per la visualizzazione.

Test e simulazione del ciclo chiuso

Il test a ciclo chiuso dei veicoli autonomi è il processo di test delle funzionalità del veicolo, includendo feedback in tempo reale dall'ambiente. Le azioni del veicolo sono basate sul suo comportamento pre-programmato e sulle condizioni dinamiche che incontra, e regola le sue azioni di conseguenza. I test a ciclo chiuso vengono eseguiti in un ambiente più complesso e realistico. Viene usato per valutare la capacità del veicolo di gestire scenari reali, incluso il modo in cui reagisce a situazioni impreviste. L'obiettivo dei test a ciclo chiuso è verificare che il veicolo possa operare in modo sicuro ed efficace in varie condizioni e perfezionare gli algoritmi di controllo e i processi decisionali in base alle esigenze.

La pipeline ValOps integra test a ciclo chiuso, simulazioni di terze parti e applicazioni ISV.

Gestione scenari

Durante la fase ValOps, viene usato un catalogo di scenari reali per convalidare la capacità della soluzione di guida autonoma di simulare il comportamento dei veicoli autonomi. L'obiettivo è velocizzare la creazione di cataloghi di scenari leggendo automaticamente la rete di route, che fa parte di uno scenario, da mappe digitali accessibili pubblicamente e liberamente disponibili. Usare strumenti di terze parti per la gestione degli scenari o un simulatore open source leggero come CARLA, che supporta il formato OpenDRIVE (xodr). Per altre informazioni, vedere ScenarioRunner per CARLA.

Componenti valops

  • servizio Azure Kubernetes esegue l'inferenza batch su larga scala per la convalida a ciclo aperto all'interno di un framework di resina. È consigliabile usare BlobFuse2 per accedere ai file di misurazione. È anche possibile usare NFS, ma è necessario valutare le prestazioni per il caso d'uso.
  • Azure Batch esegue l'inferenza batch su larga scala per la convalida a ciclo aperto all'interno di un framework Di resina.
  • Azure Esplora dati offre un servizio di analisi per le misurazioni e gli indicatori KPI, ovvero la ripetizione della simulazione e le esecuzioni dei processi.

Funzioni AVOps centralizzate

Un'architettura AVOps è complessa e coinvolge diverse parti, ruoli e fasi di sviluppo, quindi è importante implementare un modello di governance valido.

È consigliabile creare un team centralizzato per gestire funzioni come il provisioning dell'infrastruttura, la gestione dei costi, i metadati e il catalogo dati, la derivazione e la gestione complessiva dell'orchestrazione e degli eventi. La centralizzazione di questi servizi è efficiente e semplifica le operazioni.

È consigliabile usare un team centralizzato per gestire queste responsabilità:

  • Fornitura di modelli ARM/Bicep, inclusi modelli per servizi standard come archiviazione e calcolo usati da ogni area e sottoarea dell'architettura AVOps
  • Implementazione di istanze centrali di bus di servizio di Azure/Hub eventi di Azure per un'orchestrazione basata su eventi del ciclo di dati AVOps
  • Proprietà del catalogo dei metadati
  • Funzionalità per la derivazione end-to-end e la tracciabilità in tutti i componenti AVOps

Diagramma che mostra le funzioni AVOps centralizzate.

Dettagli dello scenario

È possibile usare questa architettura per creare una soluzione di guida automatizzata in Azure.

Potenziali casi d'uso

OEM automobilistici, fornitori di livello 1 e ISV che sviluppano soluzioni per la guida automatizzata.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che è possibile usare per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

È importante comprendere la divisione della responsabilità tra l'OEM automobilistico e il provider di servizi cloud. Nel veicolo, l'OEM possiede l'intero stack, ma man mano che i dati passano al cloud, alcune responsabilità vengono trasferite al provider di servizi cloud. La piattaforma distribuita come servizio (PaaS) di Azure offre una maggiore sicurezza nello stack fisico, incluso il sistema operativo. È possibile applicare i miglioramenti seguenti oltre ai componenti di sicurezza dell'infrastruttura. Questi miglioramenti consentono un approccio Zero-Trust.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda la riduzione delle spese non necessarie e il miglioramento dell'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

È possibile usare queste strategie per ridurre i costi associati allo sviluppo di soluzioni di guida autonome:

  • Ottimizzare l'infrastruttura cloud. Un'attenta pianificazione e gestione dell'infrastruttura cloud consente di ridurre i costi. Ad esempio, usare tipi di istanza convenienti e ridimensionare l'infrastruttura per soddisfare i carichi di lavoro mutevoli. Seguire le indicazioni in Azure Cloud Adoption Framework.
  • Usare spot Macchine virtuali. È possibile determinare quali carichi di lavoro nella distribuzione AVOps non richiedono l'elaborazione entro un intervallo di tempo specifico e usare Spot Macchine virtuali per questi carichi di lavoro. Spot Macchine virtuali consente di sfruttare la capacità di Azure inutilizzata per risparmiare sui costi significativi. Se Azure richiede di nuovo la capacità, l'infrastruttura di Azure rimuove le macchine virtuali spot.
  • Usare la scalabilità automatica. La scalabilità automatica consente di modificare automaticamente l'infrastruttura cloud in base alla richiesta, riducendo la necessità di intervento manuale e riducendo i costi. Per altre informazioni, vedere Progettare per il ridimensionamento.
  • È consigliabile usare livelli di archiviazione ad accesso frequente, ad accesso sporadico e archivio. L'archiviazione può essere un costo significativo in una soluzione di guida autonoma, quindi è necessario scegliere opzioni di archiviazione convenienti, ad esempio l'archiviazione ad accesso sporadico o l'archiviazione ad accesso sporadico. Per altre informazioni, vedere Gestione del ciclo di vita dei dati.
  • Usare gli strumenti di gestione dei costi e ottimizzazione. Gestione costi Microsoft offre strumenti che consentono di identificare e gestire le aree per la riduzione dei costi, ad esempio le risorse inutilizzate o sottoutilizzate.
  • Prendere in considerazione l'uso dei servizi di Azure. Ad esempio, è possibile usare Azure Machine Learning per creare ed eseguire il training di modelli di guida autonomi. L'uso di questi servizi può essere più conveniente rispetto alla creazione e alla gestione dell'infrastruttura interna.
  • Usare le risorse condivise. Quando possibile, è possibile usare risorse condivise, ad esempio database condivisi o risorse di calcolo condivise, per ridurre i costi associati allo sviluppo autonomo. Le funzioni centralizzate in questa architettura, ad esempio, implementano un bus centrale, un hub eventi e un catalogo di metadati. Anche i servizi come Azure Condivisione dati consentono di raggiungere questo obiettivo.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

Altri contributori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Per altre informazioni sullo sviluppo di DataOps per un sistema di guida automatizzato, vedere:

Articoli correlati: