Questa architettura di esempio illustra un approccio end-to-end alla visione artificiale di Internet delle cose (IoT) nella produzione.
Architettura
Scaricare un file di Visio di questa architettura.
Flusso di dati
- Il modulo personalizzato IoT Edge acquisisce il flusso video live, lo suddivide in fotogrammi ed esegue l'inferenza sui dati dell'immagine per determinare se si è verificato un evento imprevisto.
- Il modulo personalizzato usa anche metodi SDK o API BLOB di Archiviazione di Azure per caricare i file video non elaborati in Archiviazione di Azure, che funge da archivio di file multimediali non elaborati.
- Il modulo personalizzato invia i risultati e i metadati di inferenza a hub IoT di Azure, che funge da hub di messaggi centrale per le comunicazioni in entrambe le direzioni.
- App per la logica di Azure monitora hub IoT per i messaggi relativi agli eventi imprevisti. App per la logica instrada i risultati e i metadati di inferenza a Microsoft Dataverse per l'archiviazione.
- Quando si verifica un evento imprevisto, App per la logica invia notifiche tramite SMS e posta elettronica al tecnico in loco. Il tecnico in loco usa un'app per dispositivi mobili basata su Power Apps per riconoscere e risolvere l'evento imprevisto.
- Power Apps esegue il pull dei risultati e dei metadati di inferenza da file video non elaborati e di Dataverse da Archiviazione BLOB per visualizzare informazioni rilevanti sull'evento imprevisto. Power Apps aggiorna Dataverse con la risoluzione dell'evento imprevisto fornita dal tecnico in loco. Questo passaggio funge da convalida con intervento umano per scopi di ripetizione del training del modello.
- Azure Data Factory è l'agente di orchestrazione dati che recupera i file video non elaborati dall'archivio dei file multimediali non elaborati e riceve i risultati e i metadati di inferenza corrispondenti da Dataverse.
- Data Factory archivia i file video non elaborati, oltre ai metadati, in Azure Data Lake, che funge da archivio video a scopo di controllo.
- Data Factory suddivide i file video non elaborati in fotogrammi, converte i risultati di inferenza in etichette e carica i dati in Archiviazione BLOB, che funge da archivio dati di ML.
- Le modifiche apportate al codice del modello attivano automaticamente la pipeline dell'agente di orchestrazione del modello di Azure Pipelines, che gli operatori possono anche attivare manualmente. Le modifiche al codice avviano anche il processo di training e convalida del modello di ML in Azure Machine Learning.
- Azure Machine Learning avvia il training del modello convalidando i dati dall'archivio dati di ML e copiando i set di dati necessari in Archiviazione BLOB Premium di Azure. Questo livello di prestazioni fornisce una cache dei dati per un training del modello più rapido.
- Azure Machine Learning usa il set di dati nella cache dei dati Premium per eseguire il training del modello, convalidare le prestazioni del modello sottoposto a training, assegnare un punteggio rispetto al modello appena sottoposto a training e registrare il modello nel registro di Azure Machine Learning.
- L'agente di orchestrazione del modello di Azure Pipelines esamina le prestazioni del modello di ML appena sottoposto a training e determina se sono migliori rispetto ai modelli precedenti. Se il nuovo modello offre prestazioni migliori, la pipeline scarica il modello da Azure Machine Learning e compila una nuova versione del modulo di inferenza di ML da pubblicare in Registro Azure Container.
- Quando è pronto un nuovo modulo di inferenza di ML, Azure Pipelines distribuisce il contenitore del modulo dal Registro Container al modulo IoT Edge in hub IoT.
- Hub IoT aggiorna il dispositivo IoT Edge con il nuovo modulo di inferenza di ML.
Componenti
- Il servizio Azure IoT Edge analizza i dati dei dispositivi in locale per inviare meno dati al cloud, reagire rapidamente agli eventi e operare in condizioni di bassa connettività. Un modulo di ML di IoT Edge può estrarre informazioni dettagliate utili dai dati video in streaming.
- L'hub IoT di Azure è un servizio gestito che consente comunicazioni bidirezionali affidabili e sicure tra milioni di dispositivi IoT e un back-end basato sul cloud. Hub IoT fornisce l'autenticazione per dispositivo, il routing dei messaggi, l'integrazione con altri servizi di Azure e le funzionalità di gestione per controllare e configurare i dispositivi IoT.
- Azure Logic Apps è un servizio cloud serverless per la creazione e l'esecuzione di flussi di lavoro automatizzati che integrano app, dati, servizi e sistemi. Gli sviluppatori possono usare una finestra di progettazione grafica per pianificare e orchestrare flussi di lavoro di attività comuni. App per la logica include connettori per molti servizi cloud diffusi , prodotti locali e altre applicazioni SaaS (Software as a Service). In questa soluzione, App per la logica esegue il flusso di lavoro di notifica automatizzato che invia avvisi via SMS ed email ai tecnici in loco.
- Power Apps è una piattaforma dati e una suite di app, servizi e connettori. Funge da ambiente di sviluppo rapido delle applicazioni. La piattaforma dati sottostante è Microsoft Dataverse.
- Dataverse è una piattaforma di archiviazione basata sul cloud per Power Apps. Dataverse supporta le notifiche con intervento umano e archivia i metadati associati alla pipeline di dati MLOps.
- Archiviazione BLOB di Azure è un'archiviazione oggetti scalabile e sicura per dati non strutturati. È possibile utilizzarla per archivi, data lake, calcolo ad alte prestazioni, Machine Learning e carichi di lavoro nativi per il cloud. In questa soluzione, Archiviazione BLOB fornisce un archivio dati locale per l'archivio dati di ML e una cache dei dati Premium per il training del modello di ML. Il livello Premium di Archiviazione BLOB è destinato ai carichi di lavoro che richiedono tempi di risposta rapidi e velocità di transazione elevate, ad esempio l'etichettatura video con intervento umano di questo esempio.
- Data Lake Storage è un servizio di archiviazione altamente scalabile e sicuro per carichi di lavoro di analisi a elevate prestazioni. I dati provengono generalmente da più origini eterogenee e possono essere strutturati, semistrutturati o non strutturati. Azure Data Lake Storage Gen2 combina le funzionalità di Azure Data Lake Storage Gen1 con Archiviazione BLOB e offre semantica del file system, sicurezza a livello di file e scalabilità. Offre anche l'archiviazione a più livelli, la disponibilità elevata e le funzionalità di ripristino di emergenza di Archiviazione BLOB. In questa soluzione, Data Lake Storage fornisce l'archivio video di archiviazione per i file video non elaborati e i metadati.
- Azure Data Factory è una soluzione ibrida, completamente gestita e serverless per l'integrazione dei dati e i flussi di lavoro di trasformazione. Offre un'interfaccia utente senza codice e un pannello di monitoraggio facile da usare. Azure Data Factory usa pipeline per lo spostamento dati. I flussi di dati per mapping eseguono varie attività di trasformazione, ad esempio l'estrazione, la trasformazione e il caricamento (ETL) e l'estrazione, il caricamento e la trasformazione (ELT). In questo esempio, Data Factory orchestra i dati in una pipeline ETL ai dati di inferenza, archiviati per scopi di ripetizione del training.
- Azure Machine Learning è un servizio di Machine Learning di livello aziendale per la creazione e la distribuzione rapida di modelli. Offre agli utenti a tutti i livelli di competenza una finestra di progettazione con poco codice, un Machine Learning automatizzato e un ambiente Jupyter notebook ospitato che supporta vari ambienti di sviluppo integrato.
- Azure Pipelines, parte dei servizi per gli sviluppatori basati su team Azure DevOps, crea pipeline di integrazione continua (CI) e di distribuzione continua (CD). In questo esempio, l'agente di orchestrazione del modello di Azure Pipelines convalida il codice di ML, attiva le pipeline di attività serverless, confronta i modelli di ML e compila il contenitore di inferenza.
- Registro Container crea e gestisce il registro Docker per compilare, archiviare e gestire le immagini del contenitore Docker, inclusi i modelli di ML in contenitori.
- Monitoraggio di Azure raccoglie i dati di telemetria dalle risorse di Azure, in modo che i team possano identificare in modo proattivo i problemi e ottimizzare le prestazioni e l'affidabilità.
Alternative
Anziché usare la pipeline di dati per suddividere il flusso video in fotogrammi di immagine, è possibile distribuire un modulo Archiviazione BLOB di Azure nel dispositivo IoT Edge. Il modulo di inferenza carica quindi i frame di immagine definiti tramite inferenza nel modulo di archiviazione del dispositivo perimetrale. Il modulo di archiviazione determina quando caricare i frame direttamente nell'archivio dati di ML. Il vantaggio di questo approccio è che rimuove un passaggio dalla pipeline di dati. Lo svantaggio è che il dispositivo perimetrale è strettamente associato ad Archiviazione BLOB di Azure.
Per l'orchestrazione del modello, è possibile usare Azure Pipelines o Azure Data Factory.
- Il vantaggio di Azure Pipelines è la stretta relazione con il codice del modello di ML. È possibile attivare facilmente la pipeline di training con modifiche al codice tramite CI/CD.
- Il vantaggio di Data Factory è che ogni pipeline può effettuare il provisioning delle risorse di calcolo necessarie. Data Factory non è vincolato agli agenti di Azure Pipelines per eseguire il training di ML, che potrebbero congestionare il normale flusso CI/CD.
Dettagli dello scenario
Le smart factory completamente automatizzate usano l'intelligenza artificiale (IA) e Machine Learning (ML) per analizzare i dati, eseguire i sistemi e migliorare i processi nel tempo.
In questo esempio, le fotocamere inviano immagini a un dispositivo Azure IoT Edge che esegue un modello di ML. Il modello calcola le inferenze e invia un output utile al cloud per un'ulteriore elaborazione. Gli interventi umani fanno parte dell'intelligenza acquisita dal modello di ML. Il processo di ML è un ciclo continuo di training, test, ottimizzazione e convalida degli algoritmi di ML.
Potenziali casi d'uso
I processi di produzione usano la visione artificiale IoT nelle applicazioni di sicurezza e controllo della qualità. I sistemi di visione artificiale IoT possono:
- Garantire la conformità alle linee guida di produzione, ad esempio l'etichettatura corretta.
- Identificare i difetti di produzione, come le irregolarità delle superfici.
- Migliorare la sicurezza monitorando gli ingressi dell'edificio o dell'area.
- Sostenere la sicurezza dei lavoratori rilevando l'utilizzo dei dispositivi di protezione individuale (DPI) e altre pratiche di sicurezza.
Considerazioni
Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.
Disponibilità
Le applicazioni basate sul ML richiedono in genere un set di risorse per il training e un altro per la gestione. Le risorse di training in genere non richiedono disponibilità elevata, perché non sono usate direttamente dalle richieste di produzione in tempo reale. Le risorse necessarie per la gestione delle richieste necessitano invece di disponibilità elevata.
Operazioni
Questa soluzione è suddivisa in tre aree operative:
Nelle operazioni IoT un modello di Machine Learning nel dispositivo perimetrale usa immagini in tempo reale da fotocamere connesse per inferenza di fotogrammi video. Il dispositivo perimetrale invia anche flussi video memorizzati nella cache all'archiviazione cloud da usare per il controllo e la ripetizione del training del modello. Dopo la ripetizione del training di ML, hub IoT di Azure aggiorna il dispositivo perimetrale con il nuovo modulo di inferenza di ML.
MLOps usa procedure DevOps per orchestrare le operazioni di training, test e distribuzione del modello. La gestione del ciclo di vita di MLOps automatizza il processo di utilizzo dei modelli di ML per processi decisionali complessi o per la produzione dei modelli. La chiave per MLOps è un coordinamento stretto tra i team che creano, eseguono training, valutano e distribuiscono i modelli di ML.
Le operazioni con intervento umano avvisano gli utenti di intervenire in determinati passaggi nell'automazione. Nelle transazioni con intervento umano, i lavoratori controllano e valutano i risultati delle previsioni di Machine Learning. Gli interventi umani diventano parte dell'intelligenza acquisita dal modello di ML e consentono di convalidare il modello.
I ruoli umani seguenti fanno parte di questa soluzione:
I tecnici in loco ricevono le notifiche sugli eventi imprevisti inviati da App per la logica e convalidano manualmente i risultati delle previsioni del modello di ML. Ad esempio, il tecnico in loco può esaminare una valvola che il modello ha previsto come non funzionante.
Gli etichettatori di dati etichettano i set di dati per ripetere il training allo scopo di completare il ciclo della soluzione end-to-end. Il processo di etichettatura dei dati è particolarmente importante per i dati di immagine, come primo passaggio per il training di un modello affidabile tramite algoritmi. In questo esempio, Azure Data Factory organizza i fotogrammi video in raggruppamenti di positivi e falsi positivi, che semplificano il lavoro dell'etichettatore di dati.
I data scientist usano i set di dati etichettati per eseguire il training degli algoritmi per le previsioni corrette e realistiche. I data scientist usano MLOps con GitHub Actions o Azure Pipelines in un processo di integrazione continua per eseguire automaticamente il training e la convalida di un modello. Il training può essere attivato manualmente o automaticamente archiviando nuovi script o dati di training. I data scientist lavorano in un'area di lavoro di Azure Machine Learning in grado di registrare, distribuire e gestire automaticamente i modelli.
I tecnici IoT usano Azure Pipelines per pubblicare publish moduli IoT Edge nei contenitori in Registro Container. I tecnici possono distribuire e scalare l'infrastruttura su richiesta usando una pipeline CD.
I revisori di sicurezza riesaminano i flussi video archiviati per rilevare anomalie, valutare la conformità e confermare i risultati quando sorgono dubbi sulle previsioni di un modello.
In questa soluzione, hub IoT inserisce i dati di telemetria provenienti dalle fotocamere e invia le metriche a Monitoraggio di Azure, in modo che i tecnici in loco possano analizzare e risolvere i problemi. Azure Machine Learning invia metriche di osservabilità e dati di telemetria del modello a Monitoraggio di Azure, aiutando i tecnici e i data scientist IoT a ottimizzare le operazioni.
Prestazioni
I dispositivi IoT hanno una quantità limitata di memoria e potenza di elaborazione, quindi è importante limitare le dimensioni del contenitore del modello inviato al dispositivo. Assicurarsi di usare un dispositivo IoT in grado di eseguire l'inferenza del modello e produrre risultati in un periodo di tempo accettabile.
Per ottimizzare le prestazioni per i modelli di training, questa architettura di esempio usa Archiviazione BLOB Premium di Azure. Questo livello di prestazioni è progettato per i carichi di lavoro che richiedono tempi di risposta rapidi e velocità elevate delle transazioni, ad esempio lo scenario di etichettatura video con intervento umano.
Le considerazioni sulle prestazioni si applicano anche alla pipeline di inserimento dati. Data Factory ottimizza lo spostamento dati offrendo una soluzione conveniente e a prestazioni elevate.
Scalabilità
La maggior parte dei componenti usati in questa soluzione è costituita da servizi gestiti con scalabilità automatica.
La scalabilità per l'applicazione IoT dipende dalle quote e limitazioni dell'hub IoT. I fattori da considerare includono:
- La quota giornaliera massima di messaggi nell'hub IoT.
- La quota di dispositivi connessi in un'istanza di Hub IoT.
- Velocità effettiva di inserimento ed elaborazione.
Nel ML, la scalabilità si riferisce ai cluster con scalabilità orizzontale usati per eseguire il training dei modelli su set di dati di grandi dimensioni. La scalabilità consente anche al modello di ML di soddisfare le esigenze delle applicazioni che lo usano. Per soddisfare queste esigenze, il cluster di ML deve fornire scalabilità orizzontale nelle CPU e nei nodi abilitati per l'unità di elaborazione grafica (GPU).
Per indicazioni generali sulla progettazione di soluzioni scalabili, vedere l'elenco di controllo per l'efficienza delle prestazioni nel Centro architetture di 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.
La gestione degli accessi in Dataverse e in altri servizi Azure garantisce che solo gli utenti autorizzati possano accedere all'ambiente, ai dati e ai report. Questa soluzione usa Azure Key Vault per gestire password e segreti. L'archiviazione viene crittografata usando chiavi gestite dal cliente.
Per indicazioni generali sulla progettazione di soluzioni IoT sicure, vedere la Documentazione sulla sicurezza di Azure e l'architettura di riferimento di Azure IoT.
Ottimizzazione dei costi
L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.
In linea generale, usare il calcolatore dei prezzi di Azure per stimare i costi. Per altre considerazioni, vedere Ottimizzazione dei costi.
Azure Machine Learning distribuisce anche i servizi Registro Container, Archiviazione di Azure e Azure Key Vault, che comportano costi aggiuntivi. Per altre informazioni, vedere Modalità di funzionamento di Azure Machine Learning: Architettura e concetti.
I prezzi di Azure Machine Learning includono addebiti per le macchine virtuali (VM) usate per eseguire il training del modello nel cloud. Per informazioni sulla disponibilità di Azure Machine Learning e delle macchine virtuali per ogni area di Azure, vedere Prodotti disponibili per area.
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autore principale:
- Wilson Lee | Principal Software Engineer
Passaggi successivi
- concetti relativi a IoT e all'hub IoT di Azure
- Cosa sono le app per la logica di Azure?
- Cos'è Power Apps?
- Documentazione di Microsoft Power Apps
- Cos'è Microsoft Dataverse?
- Documentazione di Microsoft Dataverse
- Introduzione ad Azure Data Lake Storage Gen2
- Che cos'è Azure Data Factory?
- Documentazione di Azure Machine Learning
- Cos'è Azure DevOps?
- Che cos'è Azure Pipelines?
- Documentazione di Registro Azure Container
- Panoramica di Monitoraggio di Azure
- Azure IoT per ambienti di lavoro più sicuri
- Dow Chemical usa l'intelligenza artificiale per la visione nei dispositivi perimetrali per incrementare la sicurezza dei dipendenti con Azure
- Esempio GitHub di rilevamento degli oggetti perimetrali