Classificazione di immagini in Azure

Archiviazione BLOB di Azure
Visione artificiale di Azure
Azure Cosmos DB
Griglia di eventi di Azure
Funzioni di Azure

Usando i servizi di Azure, ad esempio l'API Visione artificiale e Funzioni di Azure, le aziende possono eliminare la necessità di gestire singoli server, riducendo al contempo i costi e usando le competenze già sviluppate da Microsoft con i servizi di intelligenza artificiale di Azure. Questo scenario di esempio riguarda specificamente un caso d'uso di elaborazione di immagini. Se si hanno esigenze di intelligenza artificiale diverse, prendere in considerazione la suite completa di servizi di intelligenza artificiale di Azure.

Architettura

Architettura per la classificazione delle immagini

Scaricare un file di Visio di questa architettura.

Workflow

Questo scenario include i componenti back-end di un'applicazione Web o per dispositivi mobili. Il flusso dei dati nello scenario avviene come segue:

  1. L'aggiunta di nuovi file (caricamenti di immagini) nell'archivio BLOB attiva un evento in Griglia di eventi di Azure. Il processo di caricamento può essere orchestrato tramite il Web o un'applicazione per dispositivi mobili. In alternativa, le immagini possono essere caricate separatamente nell'archivio BLOB di Azure.
  2. Griglia di eventi invia una notifica che attiva le funzioni di Azure.
  3. Funzioni di Azure chiama l'API Visione artificiale di Azure per analizzare l'immagine appena caricata. Visione artificiale accede all'immagine tramite l'URL del BLOB analizzato da Funzioni di Azure.
  4. Funzioni di Azure rende persistente la risposta dell'API Visione artificiale in Azure Cosmos DB. Questa risposta include i risultati dell'analisi, insieme ai metadati dell'immagine.
  5. I risultati possono essere utilizzati e riflessi sul Web o sul front-end mobile. Si noti che questo approccio recupera i risultati della classificazione, ma non l'immagine caricata.

Componenti

  • Visione artificiale'API fa parte della suite di servizi di intelligenza artificiale di Azure e viene usata per recuperare informazioni su ogni immagine.
  • Funzioni di Azure fornisce l'API back-end per l'applicazione Web. Questa piattaforma fornisce anche l'elaborazione degli eventi per le immagini caricate.
  • Griglia di eventi di Azure attiva un evento quando viene caricata una nuova immagine nell'archivio BLOB. L'immagine viene quindi elaborata con Funzioni di Azure.
  • Archiviazione BLOB di Azure archivia tutti i file di immagine caricati nell'applicazione Web, nonché tutti i file statici utilizzati dall'applicazione Web.
  • Azure Cosmos DB archivia i metadati relativi a ogni immagine caricata, inclusi i risultati dell'elaborazione da Visione artificiale API.

Alternative

  • Servizio visione artificiale personalizzato. L'API Visione artificiale restituisce un set di categorie basate sulla tassonomia. Se è necessario elaborare informazioni non restituite dall'API Visione artificiale, prendere in considerazione il Servizio visione artificiale personalizzato, che consente di creare classificatori di immagini personalizzati.
  • Ricerca cognitiva (in precedenza Ricerca di Azure). Se il caso d'uso include l'esecuzione di query sui metadati per trovare le immagini che soddisfano criteri specifici, è consigliabile usare Ricerca cognitiva. La funzionalità di ricerca cognitiva, attualmente in anteprima, integra perfettamente questo flusso di lavoro.
  • App per la logica. Se non è necessario reagire in tempo reale all'aggiunta di file in un BLOB, è consigliabile usare App per la logica. Un'app per la logica che può controllare se è stato aggiunto un file può essere avviata dal trigger di ricorrenza o dal trigger di finestre temporali scorrevoli.

Dettagli dello scenario

Questo scenario è pertinente per le aziende che devono elaborare immagini.

Le potenziali applicazioni includono la classificazione di immagini per un sito Web di abbigliamento, l'analisi di testo e immagini per richieste di indennizzo assicurativo e la comprensione di dati di telemetria provenienti da screenshot di giochi. Generalmente le aziende devono sviluppare competenze nei modelli di apprendimento automatico, eseguire il training dei modelli e infine eseguire un processo personalizzato sulle immagini per ricavarne dati.

Potenziali casi d'uso

Questa soluzione è ideale per i settori retail, game, finance e insurance. Gli altri casi d'uso pertinenti includono:

  • Classificazione delle immagini in un sito Web di abbigliamento. La classificazione delle immagini può essere usata dai venditori durante il caricamento di immagini di prodotti nella piattaforma per la vendita. Possono quindi automatizzare il conseguente assegnazione di tag manuali coinvolti. I clienti possono anche cercare l'impressione visiva dei prodotti.

  • Classificazione dei dati di telemetria provenienti da screenshot di giochi. La classificazione dei videogiochi dagli screenshot si sta evolvendo in un problema rilevante nei social media, insieme alla visione artificiale. Ad esempio, quando gli streamer Twitch giocano diversi giochi in successione, potrebbero ignorare l'aggiornamento manuale delle informazioni sul flusso. L'impossibilità di aggiornare le informazioni sul flusso potrebbe comportare la classificazione errata dei flussi nelle ricerche degli utenti e potrebbe causare la perdita di potenziali visualizzazioni sia per i creatori di contenuti che per le piattaforme di streaming. Durante l'introduzione di nuovi giochi, una route modello personalizzata potrebbe essere utile per introdurre la capacità di rilevare nuove immagini da tali giochi.

  • Classificazione di immagini per richieste di indennizzo assicurativo. La classificazione delle immagini consente di ridurre il tempo e il costo dell'elaborazione e della scrittura delle attestazioni. Potrebbe aiutare ad analizzare danni naturali di emergenza, danni ai veicoli e identificare le proprietà residenziali e commerciali.

Considerazioni

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

Quando si implementa questa soluzione, tenere presente quanto segue:

Scalabilità

La maggior parte dei componenti di questo scenario è costituita da servizi gestiti con scalabilità automatica. Esistono un paio di eccezioni significative: Funzioni di Azure prevede un limite massimo di 200 istanze. Se è necessaria una scalabilità superiore, prendere in considerazione più aree o piani app.

È possibile effettuare il provisioning di Azure Cosmos DB per la scalabilità automatica solo in Azure Cosmos DB per NoSQL. Se si prevede di usare altre API, vedere indicazioni sulla stima dei requisiti in Unità richiesta. Per sfruttare appieno il ridimensionamento in Azure Cosmos DB, comprendere il funzionamento delle chiavi di partizione in Azure Cosmos DB.

I database NoSQL spesso privilegiano la disponibilità, la scalabilità e la partizione rispetto alla coerenza (nel senso del teorema CAP). In questo scenario di esempio viene usato un modello di dati chiave-valore e la coerenza delle transazione è raramente necessaria perché le operazioni sono per la maggior parte atomiche per definizione. Materiale sussidiario per scegliere l'archivio dati corretto sono disponibili in Centro architetture di Azure. Se l'implementazione richiede coerenza elevata, è possibile scegliere il livello di coerenza in Azure Cosmos DB.

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.

Le identità gestite per le risorse di Azure vengono usate per fornire l'accesso ad altre risorse interne all'account e quindi assegnate alle funzioni di Azure. In tali identità consentire l'accesso solo alle risorse necessarie in modo da non esporre nient'altro alle funzioni e potenzialmente ai clienti.

Per indicazioni generali sulla progettazione di soluzioni sicure, vedere la documentazione sulla sicurezza di Azure.

Resilienza

Tutti i componenti di questo scenario sono gestiti e quindi automaticamente resilienti a livello di area.

Per indicazioni generali sulla progettazione di soluzioni resilienti, vedere Progettazione di applicazioni resilienti per Azure.

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.

Per esaminare il costo di esecuzione dello scenario, nel calcolatore dei costi sono preconfigurati tutti i servizi. Per verificare la variazione dei prezzi per un determinato caso d'uso, modificare le variabili appropriate in base

Sono stati forniti tre profili di costo di esempio in base alla quantità di traffico (si presuppone che tutte le immagini abbiano dimensioni pari a 100 KB):

  • Small: questo esempio di prezzi è correlato all'elaborazione di < 5000 immagini al mese.
  • Medium: questo esempio di prezzi è correlato all'elaborazione di 500.000 immagini al mese.
  • Large: questo esempio di prezzi è correlato all'elaborazione di 50 milioni di immagini al mese.

Collaboratori

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

Autori principali:

Passaggi successivi

Documentazione del prodotto

Per un percorso di apprendimento guidato, vedere:

Prima di distribuire questo scenario di esempio in un ambiente di produzione, esaminare le procedure consigliate per l'ottimizzazione delle prestazioni e dell'affidabilità di Funzioni di Azure.

Arricchimento tramite intelligenza artificiale con elaborazione di immagini e linguaggio naturale in Ricerca cognitiva di Azure