Eseguire l'analisi video usando Azure Machine Learning e Visione artificiale
Questo articolo descrive un'architettura che è possibile usare per sostituire l'analisi manuale dei filmati video con un processo di Machine Learning automatizzato e spesso più accurato.
Architettura
Scaricare un file di PowerPoint di questa architettura.I logo FFmpeg e Jupyter Notebook sono marchi delle rispettive società. Nessuna verifica dell'autenticità è implicita nell'uso di questi marchi.
Flusso di lavoro
- Una raccolta di filmati video, in formato MP4, viene caricata in Archiviazione BLOB di Azure. Idealmente, i video vengono inseriti in un contenitore "non elaborato".
- Una pipeline preconfigurata in Azure Machine Learning riconosce che i file video vengono caricati nel contenitore e avvia un cluster di inferenza per iniziare a separare il filmato video in fotogrammi.
- FFmpeg, uno strumento open source, suddivide il video ed estrae i fotogrammi. È possibile configurare il numero di fotogrammi al secondo estratti, la qualità dell'estrazione e il formato del file di immagine. Il formato può essere JPG o PNG.
- Il cluster di inferenza invia le immagini ad Azure Data Lake Storage.
- Un'app per la logica preconfigurata che monitora Data Lake Storage rileva che vengono caricate nuove immagini. Avvia un flusso di lavoro.
- L'app per la logica chiama un modello di visione personalizzata con training preliminare per identificare oggetti, funzionalità o qualità nelle immagini. In alternativa o in aggiunta, chiama un modello di visione artificiale (OCR) per identificare le informazioni testuali nelle immagini.
- I risultati vengono ricevuti in formato JSON. L'app per la logica analizza i risultati e crea coppie chiave-valore. È possibile archiviare i risultati in pool SQL dedicati di Azure di cui viene effettuato il provisioning da Azure Synapse Analytics.
- Power BI fornisce la visualizzazione dei dati.
Componenti
Archiviazione BLOB di Azure fornisce l'archiviazione di oggetti per carichi di lavoro nativi del cloud e archivi di Machine Learning. In questa architettura vengono archiviati i file video caricati.
Azure Machine Learning è un servizio di Machine Learning di livello aziendale per il ciclo di vita di Machine Learning end-to-end.
Azure Data Lake Storage offre un'archiviazione cloud a scalabilità elevata, ottimizzata e conveniente per carichi di lavoro di analisi ad alte prestazioni.
Visione artificiale fa parte dei Servizi di Azure AI. Viene usato per recuperare informazioni su ogni immagine.
Visione personalizzata consente di personalizzare e incorporare l'analisi delle immagini di visione artificiale all'avanguardia per i domini specifici.
App per la logica di Azure automatizza i flussi di lavoro connettendo app e dati tra gli ambienti. Fornisce un modo per accedere ed elaborare i dati in tempo reale.
Power BI è una raccolta di servizi software, app e connettori che interagiscono per fornire visualizzazioni dei dati.
Alternative
Se non è necessario chiamare un modello personalizzato di rilevamento oggetti con training preliminare, è possibile usare l'architettura seguente che si basa sul recupero video di Visione artificiale di Azure. L'uso di questo servizio omette la scomposizione del video in fotogrammi e l'uso di codice personalizzato per analizzare il processo di inserimento. Questo approccio è un percorso più semplice se il caso d'uso si basa sul rilevamento di oggetti o entità comuni in un video.
Scaricare un file PowerPoint di questa architettura.
Flusso di lavoro alternativo
- Una raccolta di filmati video, in formato MP4, viene caricata in Archiviazione BLOB di Azure.
- Un'app per la logica preconfigurata monitora l'archiviazione BLOB rileva che i nuovi video vengono caricati e avviano un flusso di lavoro.
- L'app per la logica chiama l'API Recupero video di Visione artificiale di Azure per creare un indice.
- L'app per la logica chiama l'API Recupero video di Visione artificiale di Azure per aggiungere documenti video all'indice.
- Un'app per la logica preconfigurata monitora l'inserimento per verificare quando l'indicizzazione è stata completata.
- L'app per la logica chiama l'API Recupero video per eseguire ricerche in linguaggio naturale, identificare oggetti, funzionalità o qualità nelle immagini.
- I risultati vengono ricevuti in formato JSON. L'app per la logica analizza i risultati e crea coppie chiave-valore. È possibile archiviare i risultati nel database SQL in Fabric.
- Power BI fornisce la visualizzazione dei dati.
Componenti alternativi
- Microsoft Fabric è una piattaforma di analisi unificata end-to-end per semplificare l'integrazione dei dati. È progettato per semplificare il processo di gestione e analisi dei dati in vari domini offrendo una suite completa di strumenti e servizi all'interno di una singola piattaforma. Viene usato in questa architettura come piattaforma di inserimento dati per eseguire il pull degli oggetti JSON e passarli al database SQL in Fabric.
- database SQL in Fabric è un servizio di database SQL semplice, autonomo e sicuro ottimizzato per l'intelligenza artificiale. Viene usato in questa architettura per archiviare informazioni sui video recuperati dall'API Recupero video di Azure.
- visione artificiale di Azure è un servizio che offre funzionalità avanzate di analisi di immagini e video senza richiedere competenze di Machine Learning. L'API recupero video viene usata in questa architettura per recuperare informazioni direttamente dal video.
Dettagli dello scenario
Molti settori registrano filmati video per rilevare la presenza o l'assenza di un particolare oggetto o entità o per classificare oggetti o entità. Il monitoraggio e le analisi video vengono tradizionalmente eseguite manualmente. Questi processi sono spesso monotoni e soggetti a errori, in particolare per le attività difficili per l'occhio umano. È possibile automatizzare questi processi usando intelligenza artificiale e Machine Learning.
Una registrazione video può essere separata in singoli fotogrammi in modo che varie tecnologie possano analizzare le immagini. Una di queste tecnologie è la visione artificiale: la funzionalità di un computer per identificare oggetti ed entità in un'immagine.
Con visione artificiale, il monitoraggio dei filmati video diventa automatizzato, standardizzato e potenzialmente più accurato. È possibile eseguire il training di un modello di visione artificiale e, a seconda del caso d'uso, è spesso possibile ottenere risultati almeno ottimali come quelli della persona che ha eseguito il training del modello. Usando le operazioni per l'apprendimento automatico (MLOps) per migliorare continuamente il modello, è possibile prevedere risultati migliori nel tempo e reagire alle modifiche apportate ai dati video nel tempo.
Potenziali casi d'uso
Questo scenario è rilevante per qualsiasi azienda che analizza i video. Di seguito sono riportate alcuni casi d'uso:
Agricoltura. Monitorare e analizzare le colture e le condizioni del suolo nel tempo. Usando droni o UAV, gli agricoltori possono registrare filmati video per l'analisi.
Scienze ambientali. Analizzare le specie acquatiche per capire dove si trovano e come si evolvono. Collegando telecamere subacquee a barche, i ricercatori ambientali possono navigare sulla riva per registrare filmati video. Possono analizzare le riprese video per comprendere le migrazioni delle specie e il modo in cui le popolazioni delle specie cambiano nel tempo.
Controllo del traffico. Classificare i veicoli in categorie (SUV, auto, camion, moto) e usare le informazioni per pianificare il controllo del traffico. I filmati video possono essere forniti da telecamere a circuito chiuso in luoghi pubblici. La maggior parte delle telecamere a circuito chiuso registra data e ora, che può essere facilmente recuperata tramite riconoscimento ottico dei caratteri (OCR).
Controllo di qualità. Monitorare e analizzare il controllo della qualità in un impianto di produzione. Installando le fotocamere nella linea di produzione, è possibile eseguire il training di un modello di visione artificiale per rilevare le anomalie.
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.
Affidabilità
L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'affidabilità.
Un carico di lavoro affidabile è sia resiliente che disponibile. La resilienza è la capacità di un sistema di recuperare in caso di errore e continuare a funzionare. L'obiettivo della resilienza consiste nel ripristinare uno stato completamente funzionale dell'applicazione dopo un errore. Disponibilità è la misura che indica se gli utenti possono accedere al carico di lavoro quando è necessario.
Per le garanzie di disponibilità di altri servizi di Azure in questa soluzione, consultare queste risorse:
- Contratto di servizio (SLA) per gli account di archiviazione
- SLA per Azure Machine Learning
- SLA per Servizi di Azure AI
- SLA per App per la logica
- SLA per Azure Synapse Analytics
- SLA per Power BI
Sicurezza
La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per la sicurezza.
Considerare le seguenti risorse:
- Gestione delle identità
- Proteggere l'infrastruttura
- Sicurezza delle applicazioni
- Crittografia e sovranità dati
- Risorse di sicurezza
Ottimizzazione dei costi
L'ottimizzazione dei costi riguarda la riduzione delle spese non necessarie e il miglioramento dell'efficienza operativa. Per altre informazioni, vedere Elenco di controllo per la revisione della progettazione per l'ottimizzazione dei costi.
Di seguito sono elencate alcune linee guida per l'ottimizzazione dei costi:
- Usare la strategia con pagamento in base al consumo per l'architettura e aumentare il numero di istanze in base alle esigenze anziché investire in risorse su larga scala all'inizio.
- Considerare i costi opportunità nell'architettura e l'equilibrio tra il vantaggio della prima mossa e la velocità con cui si segue un predecessore. Usare il calcolatore dei prezzi per prevedere e stimare i costi iniziali e quelli operativi.
- Stabilire criteri, budget e controlli che definiscano i limiti dei costi per la soluzione.
Eccellenza operativa
L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'eccellenza operativa.
Le distribuzioni devono essere affidabili e prevedibili. Ecco alcune linee guida:
- Automatizzare le distribuzioni per ridurre la probabilità di errori umani.
- Implementa un processo di distribuzione rapido e di routine per evitare di rallentare il rilascio di nuove funzionalità e correzioni di bug.
- Esegui rapidamente il rollback o il rollforward se un aggiornamento causa problemi.
Efficienza delle prestazioni
L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per maggiori informazioni, consultare la sezione Elenco di controllo per la revisione della progettazione per l'efficienza delle prestazioni.
L'uso appropriato della scalabilità e l'implementazione delle offerte PaaS con scalabilità integrata sono metodi appropriati per migliorare l'efficienza delle prestazioni.
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autore principale:
- Oscar Shimabukuro Kiyan | Senior Cloud Solutions Architect - Data & AI
- Han Wang | Cloud Solutions Architect - Intelligenza artificiale & dati
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.