Analizzare il contenuto video con Visione artificiale e Azure Machine Learning

Azure Machine Learning
Servizi di intelligenza artificiale di Azure
App per la logica di Azure
Azure Synapse Analytics
Azure Data Lake Storage

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.

I logo FFmpeg e Jupyter Notebook sono marchi delle rispettive società. Nessuna verifica dell'autenticità è implicita nell'uso di questi marchi.

Architettura

Diagramma che mostra un'architettura per l'analisi del contenuto video.

Scaricare un file PowerPoint di questa architettura.

Workflow

  1. 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".
  2. 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.
  3. 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.
  4. Il cluster di inferenza invia le immagini ad Azure Data Lake Archiviazione.
  5. Un'app per la logica preconfigurata che monitora Data Lake Archiviazione rileva che vengono caricate nuove immagini. Avvia un flusso di lavoro.
  6. 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.
  7. 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.
  8. Power BI offre 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 Archiviazione offre un'archiviazione cloud a prestazioni elevate scalabile e ottimizzata e conveniente per carichi di lavoro di analisi ad alte prestazioni.
  • Visione artificiale fa parte dei servizi di intelligenza artificiale di Azure. 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 ambienti. Offre un modo per accedere ed elaborare i dati in tempo reale.
  • Azure Synapse Analytics è un servizio di analisi illimitato che riunisce l'integrazione dei dati, il data warehousing aziendale e l'analisi dei Big Data.
  • Il pool SQL dedicato (in precedenza SQL Data Warehouse) è una raccolta di risorse di analisi di cui viene effettuato il provisioning quando si usa Azure Synapse SQL.
  • Power BI è una raccolta di servizi software, app e connettori che interagiscono per fornire visualizzazioni dei dati.

Alternative

  • Azure Video Indexer è un servizio di analisi video che usa l'intelligenza artificiale per estrarre informazioni dettagliate interattive dai video archiviati. È possibile usarlo senza alcuna esperienza in Machine Learning.
  • Azure Data Factory è un servizio di integrazione dei dati serverless completamente gestito che consente di creare processi di estrazione, trasformazione e caricamento (ETL) e di estrazione, caricamento e trasformazione (ELT).
  • Funzioni di Azure è una piattaforma distribuita come servizio (PaaS) serverless che esegue codice a singola attività senza richiedere una nuova infrastruttura.
  • Azure Cosmos DB è un database NoSQL completamente gestito per lo sviluppo di app moderne.

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 Machine Learning Operations (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. Ecco alcuni casi d'uso di esempio:

  • 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, 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.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per altre informazioni, vedere Panoramica del pilastro dell'affidabilità.

Un carico di lavoro affidabile è un carico di lavoro resiliente e 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. La disponibilità è una misura che indica se gli utenti possono accedere al carico di lavoro quando necessario.

Per le garanzie di disponibilità dei servizi di Azure in questa soluzione, vedere queste risorse:

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.

Considerare le risorse seguenti:

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.

Ecco 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.
  • Prendere in considerazione i costi delle opportunità nell'architettura e l'equilibrio tra vantaggio first-mover e fast follow. Usare il calcolatore prezzi per stimare i costi iniziali e i costi operativi.
  • Stabilire criteri, budget e controlli che impostano limiti di costo 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 altre informazioni, vedere Panoramica del pilastro dell'eccellenza operativa.

Le distribuzioni devono essere affidabili e prevedibili. Ecco alcune linee guida:

  • Automatizzare le distribuzioni per ridurre la probabilità di errori umani.
  • Implementare un processo di distribuzione veloce e di routine per evitare di rallentare il rilascio di nuove funzionalità e correzioni di bug.
  • Eseguire rapidamente il rollback o il roll forward se un aggiornamento causa problemi.

Efficienza prestazionale

L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica dell'efficienza delle prestazioni.

L'uso appropriato del ridimensionamento e l'implementazione di offerte PaaS con scalabilità predefinita sono i modi principali per ottenere l'efficienza delle prestazioni.

Collaboratori

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

Autore principale:

Altri contributori:

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

Passaggi successivi