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

Last reviewed 2024-05-23 UTC

In questa architettura di riferimento, scoprirai i casi d'uso, progettare alternative e considerazioni sulla progettazione quando si esegue il deployment Dataflow pipeline per elaborare i file immagine Cloud Vision e 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 engineer gli scienziati.

Architettura

Il seguente diagramma illustra il flusso di sistema per questo riferimento dell'architettura.

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

Come mostrato nel diagramma precedente, il flusso di informazioni è il seguente:

  1. Importa e attiva: questa è la prima fase del flusso di sistema in cui le immagini vengono inserite nel sistema. Durante questa fase, le seguenti azioni avvengono nel seguente modo:

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

    1. La pipeline Dataflow rimane in ascolto di questo file di input, estrae i metadati dei file messaggio Pub/Sub e invia il riferimento al file a 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. In questa fase, puoi procedere come segue con i risultati salvati:

    1. Eseguire query sulle tabelle BigQuery e analizzare le annotazioni archiviate.
    2. Utilizzare BigQuery ML o Vertex AI per creare modelli e eseguire previsioni basate sulle annotazioni archiviate.
    3. Eseguire analisi aggiuntive nella pipeline Dataflow (non come mostrato in questo diagramma).

Prodotti utilizzati

Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud:

Casi d'uso

L'API Vision supporta diverse funzionalità di elaborazione, tra cui etichettatura delle immagini, rilevamento di volti e punti di riferimento, rilevamento dei caratteri riconoscimento, tagging dei contenuti espliciti e altro. Ognuna di queste funzionalità abilita diversi casi d'uso applicabili a settori diversi. Questo documento contiene alcuni semplici esempi di cosa è possibile fare utilizzando Vision API, ma lo spettro delle possibili applicazioni è molto ampio.

L'API Vision offre inoltre modelli avanzati di machine learning preaddestrati tramite le API REST e RPC. Puoi assegnare etichette alle immagini e classificarle in milioni di categorie predefinite. Ti aiuta a rilevare oggetti, leggere testo stampato e scritto a mano e integrare preziosi metadati nella tua immagine catalogo.

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

Alternative di progettazione

Invece di archiviare immagini in un bucket Google Cloud Storage, che produce le immagini, può pubblicarle direttamente in un messaggio come Pub/Sub, ad esempio Pub/Sub, e la pipeline Dataflow può e 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 devi analizzare immagini relative piccole dimensioni. Pub/Sub limita la dimensione massima del messaggio a 10 MB

Se devi elaborare un numero elevato di immagini in batch, puoi utilizzare un progettata appositamente asyncBatchAnnotate tramite Google Cloud CLI o tramite l'API Compute Engine.

Note sul layout

In questa sezione vengono descritte le considerazioni sulla progettazione per questo riferimento dell'architettura:

Sicurezza, privacy e conformità

Le immagini ricevute da fonti non attendibili possono contenere malware. Poiché L'API Vision non esegue nulla in base alle immagini che analizza, il malware basato su immagini non influirà sull'API. Se devi scansionare le immagini, modifica la pipeline Dataflow per aggiungere un passaggio di scansione. Per ottenere lo stesso puoi anche usare una sottoscrizione separata al prompt Pub/Sub analizza le immagini in un processo separato.

Per ulteriori informazioni, vedi Automatizza la scansione di malware per i file caricati su Cloud Storage.

Utilizzo dell'API Vision Identity and Access Management (IAM) per l'autenticazione. Per accedere all'API Vision, è necessario l'entità di sicurezza necessita di Cloud Storage > Visualizzatore oggetti Storage (roles/storage.objectViewer) accesso al bucket che contiene i file che che vuoi analizzare.

Ottimizzazione dei costi

Rispetto alle altre opzioni discusse, come l'elaborazione a bassa latenza e un'elaborazione batch asincrona, questa architettura di riferimento utilizza una per elaborare le immagini nelle pipeline di flusso raggruppando le richieste API in batch. Lo streaming diretto delle immagini a latenza più bassa menzionato nei Alternative di progettazione potrebbe essere più costosa a causa dell'aggiunta di Pub/Sub costi di Dataflow. Per l'elaborazione delle immagini che non è necessaria in pochi secondi o minuti, puoi eseguire la pipeline Dataflow modalità batch. L'esecuzione della pipeline in modalità batch può offrire alcuni risparmi quando rispetto al costo di esecuzione della pipeline in modalità flusso.

L'API Vision supporta la modalità offline batch asincrono dell'immagine per tutte le caratteristiche. La richiesta asincrona supporta fino a 2000 di immagini per batch. In risposta, l'API Vision restituisce file JSON che in un bucket Cloud Storage.

L'API Vision fornisce anche una serie di funzionalità per l'analisi delle immagini. I prezzi sono calcolate per immagine per caratteristica. Per ridurre i costi, richiedi solo le funzionalità specifiche di cui hai bisogno per la tua soluzione.

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza Calcolatore prezzi.

Ottimizzazione delle prestazioni

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

La pipeline Dataflow ha diversi parametri che possono influenzare e la latenza di elaborazione. Per ulteriori informazioni su questi parametri, consulta Esegui il deployment di una soluzione di analisi della visione artificiale ML con Dataflow e l'API Vision.

Deployment

Per eseguire il deployment di questa architettura, Esegui il deployment di una soluzione di analisi della visione artificiale ML con Dataflow e l'API Vision.

Passaggi successivi

Collaboratori

Autori:

Altri collaboratori: