Crea una soluzione di analisi della visione artificiale ML con Dataflow e l'API Cloud Vision

Last reviewed 2024-05-23 UTC

In questa architettura di riferimento, scoprirai i casi d'uso, le alternative di progettazione e le considerazioni sulla progettazione quando esegui il deployment di una pipeline di Dataflow per elaborare i file immagine con Cloud Vision e per archiviare i risultati elaborati in BigQuery. Puoi utilizzare i risultati archiviati per l'analisi dei dati su larga scala e per addestrare modelli predefiniti di BigQuery ML.

Questo documento sull'architettura di riferimento è destinato a data engineer e data scientist.

Architettura

Il seguente diagramma illustra il flusso di sistema per questa architettura di riferimento.

Un'architettura che mostra il flusso di informazioni per i processi di importazione, attivazione, elaborazione, archiviazione e analisi.

Come illustrato nel diagramma precedente, le informazioni si muovono nel seguente modo:

  1. Importazione e trigger: questa è la prima fase del flusso di sistema in cui le immagini entrano per la prima volta nel sistema. Durante questa fase, si verificano le seguenti azioni:

    1. I client caricano i file immagine in un bucket Cloud Storage.
    2. Per ogni caricamento di file, Cloud Storage invia automaticamente una notifica di input pubblicando un messaggio in Pub/Sub.
  2. Processo: questa fase segue immediatamente quella di importazione e attivazione. Per ogni nuova notifica di input, si verificano le seguenti azioni:

    1. La pipeline Dataflow rimane in ascolto di queste notifiche di input dei file, estrae i metadati dei file dal messaggio Pub/Sub e invia il riferimento del file all'API Vision per l'elaborazione.
    2. L'API Vision legge l'immagine e crea annotazioni.
    3. La pipeline Dataflow archivia le annotazioni prodotte dall'API Vision in tabelle BigQuery.
  3. Archiviazione e analisi: questa è la fase finale del flusso. A questo punto, con i risultati salvati puoi eseguire le seguenti operazioni:

    1. Eseguire query sulle tabelle BigQuery e analizzare le annotazioni archiviate.
    2. Usa BigQuery ML o Vertex AI per creare modelli ed eseguire previsioni in base alle annotazioni archiviate.
    3. Esegui un'analisi aggiuntiva nella pipeline Dataflow (non mostrata in questo diagramma).

Prodotti utilizzati

Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud:

Casi d'uso

L'API Vision supporta più funzionalità di elaborazione, tra cui etichettatura delle immagini, rilevamento di volti e punti di riferimento, riconoscimento ottico dei caratteri, tagging dei contenuti espliciti e altro ancora. Ognuna di queste funzionalità consente diversi casi d'uso applicabili a settori diversi. Questo documento contiene alcuni semplici esempi di ciò che si può ottenere utilizzando l'API Vision, ma lo spettro delle possibili applicazioni è molto ampio.

L'API Vision offre anche modelli avanzati di machine learning preaddestrati tramite API REST e RPC. Puoi assegnare etichette alle immagini e classificarle in milioni di categorie predefinite. Consente di rilevare oggetti, leggere testo stampato e scritto a mano e integrare preziosi metadati nel tuo catalogo immagini.

Questa architettura non richiede alcun addestramento del modello prima di poter essere utilizzata. Se ti serve un modello personalizzato addestrato su dati specifici, Vertex AI ti consente di addestrare un modello AutoML o un modello personalizzato per obiettivi della visione artificiale come la classificazione delle immagini e il rilevamento di oggetti. In alternativa, puoi utilizzare Vertex AI Vision per un ambiente di sviluppo di applicazioni end-to-end che ti consente di creare, eseguire il deployment e gestire applicazioni di visione artificiale.

Progettare alternative

Anziché archiviare le immagini in un bucket Google Cloud Storage, il processo che le produce può pubblicarle direttamente in un sistema di messaggistica, ad esempio Pub/Sub, e la pipeline Dataflow può inviare le immagini direttamente all'API Vision.

Questa alternativa di progettazione può essere una buona soluzione per i casi d'uso sensibili alla latenza in cui è necessario analizzare immagini di dimensioni relativamente piccole. Pub/Sub limita la dimensione massima del messaggio a 10 Mb.

Se devi elaborare in batch un numero elevato di immagini, puoi utilizzare un'API asyncBatchAnnotate progettata appositamente.

Note sul layout

In questa sezione vengono descritte le considerazioni di progettazione per questa architettura di riferimento:

Sicurezza, privacy e conformità

Le immagini ricevute da fonti non attendibili potrebbero contenere malware. Poiché l'API Vision non esegue nulla in base alle immagini analizzate, il malware basato sulle immagini non influirà sull'API. Se devi scansionare le immagini, modifica la pipeline Dataflow per aggiungere un passaggio di scansione. Per ottenere lo stesso risultato, puoi anche utilizzare una sottoscrizione separata per l'argomento Pub/Sub ed eseguire la scansione delle immagini in un processo separato.

Per maggiori informazioni, consulta Automatizzare l'analisi del malware per i file caricati su Cloud Storage.

L'API Vision utilizza Identity and Access Management (IAM) per l'autenticazione. Per accedere all'API Vision, l'entità di sicurezza richiede l'accesso Cloud Storage > Visualizzatore oggetti Storage (roles/storage.objectViewer) al bucket che contiene i file da analizzare.

Ottimizzazione dei costi

Rispetto alle altre opzioni discusse, come l'elaborazione a bassa latenza e l'elaborazione batch asincrona, questa architettura di riferimento utilizza un modo conveniente per elaborare le immagini in pipeline in modalità flusso mediante il batch delle richieste API. Il flusso di immagini diretto a latenza inferiore menzionato nella sezione Alternative di progettazione potrebbe essere più costoso a causa dei costi aggiuntivi di Pub/Sub e Dataflow. Per l'elaborazione delle immagini che non deve avvenire entro pochi secondi o minuti, puoi eseguire la pipeline Dataflow in modalità batch. L'esecuzione della pipeline in modalità batch può offrire alcuni risparmi rispetto al costo di esecuzione della pipeline in modalità flusso.

L'API Vision supporta l'annotazione delle immagini batch asincrona offline per tutte le funzionalità. La richiesta asincrona supporta fino a 2000 immagini per batch. In risposta, l'API Vision restituisce file JSON archiviati in un bucket Cloud Storage.

L'API Vision fornisce inoltre un insieme di funzionalità per l'analisi delle immagini. I prezzi si intendono per immagine e per funzionalità. Per ridurre i costi, richiedi solo le funzionalità specifiche di cui hai bisogno per la soluzione.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

Ottimizzazione delle prestazioni

L'API Vision è un'API che utilizza molte risorse. Per questo motivo, l'elaborazione delle immagini su larga scala richiede un'attenta orchestrazione delle chiamate API. La pipeline Dataflow si occupa di raggruppare le richieste API, gestire con attenzione le eccezioni relative al raggiungimento delle quote e produrre metriche personalizzate per l'utilizzo dell'API. Queste metriche possono aiutarti a decidere se un aumento della quota API è giustificato o se i parametri della pipeline Dataflow devono essere regolati per ridurre la frequenza delle richieste. Per ulteriori informazioni sull'aumento delle richieste di quota per l'API Vision, consulta Quote e limiti.

La pipeline Dataflow ha diversi parametri che possono influire sulle latenze di elaborazione. Per ulteriori informazioni su questi parametri, consulta Eseguire il deployment di una soluzione di analisi della visione ML con Dataflow e API Vision.

Deployment

Per eseguire il deployment di questa architettura, consulta Eseguire il deployment di una soluzione di analisi della visione ML con Dataflow e API Vision.

Passaggi successivi

Collaboratori

Autori:

Altri collaboratori:

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