Crea un'app di sfocatura dei volti con l'archiviazione del magazzino

Vertex AI Vision è una piattaforma basata sull'AI che puoi utilizzare per importare, analizzare e archiviare dati video . Vertex AI Vision ti consente di creare ed eseguire il deployment di applicazioni di AI. Puoi creare soluzioni Vertex AI Vision end-to-end sfruttando l'integrazione di Vertex AI Vision con altri componenti del prodotto.

Per iniziare a implementare soluzioni utilizzando la piattaforma Vertex AI Vision, esamina i seguenti concetti e componenti di Vertex AI Vision:

  • Stream: rappresentano un livello di streaming video della tua soluzione. La sorgente dello stream può essere un video in diretta (ad esempio, una videocamera IP) o un file video (ad esempio, un file MP4).

  • Applicazioni: consente la connessione tra uno stream e un processore AI per eseguire un'operazione di machine learning sul video. Ad esempio, puoi collegare uno stream della videocamera a un modello di AI che conta le persone che passano davanti.

  • Warehouse multimediali: archiviano il video importato dai flussi in Google Cloud storage. L'archiviazione dei dati in questa destinazione ti consente di interrogare l'analisi output e i metadati dei processori di AI utilizzati sui dati dei flussi importati.

Obiettivi

Questo tutorial mostra gli aspetti seguenti:

  • Crea una risorsa di stream di input dei dati.
  • Inizia a trasmettere in streaming i dati video in questa risorsa di stream.
  • Crea un'applicazione vuota.
  • Aggiungi nodi all'applicazione per trasmettere, modificare e archiviare i dati.
  • Esegui il deployment dell'app per utilizzarla.
  • Visualizza l'output dei dati elaborati nella console Google Cloud .

Prima di iniziare questo tutorial, devi disporre di una risorsa video in streaming per inviare dati alla tua app Vertex AI Vision. Questa risorsa può essere un video locale o un feed RTSP. Questi dati video devono contenere volti umani che l'app di esempio può poi sfocare.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Vertex AI Vision (Streams - Data ingested, Streams - Data consumed, Models - Person / face blur, Warehouse - Video storage)

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

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.

Prima di iniziare

  1. Recupera la posizione dell'origine del video in streaming, localmente (ad esempio, ./sample_video.mp4) o l'indirizzo IP del feed RTSP live (ad esempio, rtsp://192.168.1.180:540). Ti servono queste informazioni per iniziare a inserire i dati in uno stream dopo aver creato la risorsa stream.
  2. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Vision AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Vision AI > Vision AI Editor role to the service account.

      To grant the role, find the Select a role list, then select Vision AI > Vision AI Editor.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  7. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  8. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

  9. Installa Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  12. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Vision AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  15. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Vision AI > Vision AI Editor role to the service account.

      To grant the role, find the Select a role list, then select Vision AI > Vision AI Editor.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  16. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  17. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

  18. Installa Google Cloud CLI.

  19. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  20. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  21. Installazione dello strumento vaictl per l'importazione dei dati in uno stream (sistema operativo: Debian GNU/Linux, architettura della CPU: x86_64):
    1. Scarica il pacchetto richiesto:
      wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    2. Dopo aver scaricato il pacchetto, esegui questo comando nella directory in cui hai scaricato il file:
      sudo apt install ./visionai_0.0-5_amd64.deb
    3. Verifica l'installazione:
      vaictl --help

Crea uno stream

Per creare un'app di analisi dei video in streaming, devi prima creare e registrare una risorsa di stream. In qualità di risorsa che riceve i dati video dagli utenti, lo stream è necessario in qualsiasi scenario che crei utilizzando Vertex AI Vision.

Console

Per creare un nuovo stream nella console Google Cloud , segui questi passaggi.

  1. Apri la scheda Stream della dashboard di Vertex AI Vision.

    Vai alla scheda Stream

  2. Fai clic su Registrati.

  3. Inserisci input-stream come nome del flusso e seleziona la regione in cui vuoi creare il flusso.

  4. Fai clic su Registra per creare uno o più flussi.

    Opzioni di registrazione dei flussi nell'interfaccia utente

Importare video nello stream

Dopo aver creato una risorsa di stream, puoi utilizzare lo strumento a riga di comando vaictl per inviare i dati video allo stream.

Videocamera IP

Se esegui il test utilizzando una videocamera IP live, devi ottenere l'indirizzo IP della videocamera. Devi fornire queste informazioni con la richiesta, insieme ad altre sostituzioni di variabili:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION_ID: il tuo ID località. Ad esempio, us-central1. Per maggiori informazioni, consulta la pagina Località cloud.
  • RTSP_ADDRESS: L'indirizzo del tuo feed Real Time Streaming Protocol (RTSP). Ad esempio, rtsp://192.168.1.180:540.

Questo comando invia un feed RTSP nello stream. Devi eseguire questo comando nella rete che ha accesso diretto al feed RTSP.

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send rtsp to streams input-stream --rtsp-uri RTSP_ADDRESS
      

Se il comando viene eseguito correttamente, viene visualizzato il seguente output:

[...]
Waiting for long running operation projects/your-project/locations/us-central1/operations/operation-1651364156981-5dde82db7e4a9-dfb17ca5-1051eb20 ⠙
I20220430 21:16:28.024988 211449 gstvaisink.cc:417] cluster-id=application-cluster-0
I20220430 21:16:28.025032 211449 gstvaisink.cc:418] cluster-endpoint=c8khq35ftg78mn61ef50.us-central1.visionai.goog
I20220430 21:16:28.025040 211449 gstvaisink.cc:419] event-id=ev-1651364114183255223
I20220430 21:16:28.025048 211449 gstvaisink.cc:420] stream-id=input-stream
I20220430 21:16:28.025053 211449 gstvaisink.cc:421] series-id=ev-1651364114183255223--input-stream
I20220430 21:16:28.025060 211449 gstvaisink.cc:422] Sending data

File video locale

Puoi anche inviare i dati dei file video a uno stream anziché a un feed video in diretta. Questa opzione può essere utile se non hai accesso a una videocamera IP.

L'unica differenza in questa opzione sono i parametri del comando vaictl. Anziché trasmettere le informazioni della videocamera IP, trasmetti il percorso del file video locale. Effettua le seguenti sostituzioni delle variabili:

  • PROJECT_ID: l'ID progetto Google Cloud .
  • LOCATION_ID: il tuo ID località. Ad esempio, us-central1. Ulteriori informazioni.
  • LOCAL_FILE.EXT: il nome di un file video locale. Ad esempio, my-video.mp4.
  • Flag --loop: facoltativo. Esegue il loop dei dati dei file per simulare lo streaming.

Questo comando trasmette in streaming un file video a uno stream. Se utilizzi il flag --loop, il video viene riprodotto in loop nello stream finché non interrompi il comando:

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send video-file to streams 'input-stream' --file-path LOCAL_FILE.EXT --loop

Potrebbero essere necessari circa 100 secondi tra l'avvio dell'operazione di importazione di vaictl e la visualizzazione del video nella dashboard.

Una volta disponibile l'importazione dello stream, puoi visualizzare il feed video nella scheda Stream della dashboard di Vertex AI Vision selezionando lo stream input-stream.

Vai alla scheda Stream

Visualizzazione del video in diretta in streaming nell'interfaccia utente
Visione in diretta del video in fase di importazione nello stream nella console Google Cloud . Crediti video: Tima Miroshnichenko su Pexels (pixelizzazione aggiunta).

Creare un'applicazione di sfocatura dei volti

Dopo aver creato uno stream e importato i dati, è il momento di creare un'app Vertex AI Vision per elaborare i dati. Un'app può essere considerata una pipeline automatizzata che collega:

  • Importazione dei dati: un feed video viene importato in uno stream.
  • Analisi dei dati: dopo l'importazione è possibile aggiungere un modello di AI. Qualsiasi operazione di computer vision può essere eseguita sulle informazioni video inserite.
  • Archiviazione dei dati: le due versioni del feed video (lo stream originale e lo stream elaborato dal modello di AI) possono essere archiviate in un media warehouse.

Nella console Google Cloud , un'app è rappresentata come un grafico. Inoltre, in Vertex AI Vision un grafico dell'app deve avere almeno due nodi: un nodo di origine video (stream) e almeno un altro nodo (un modello di elaborazione o una destinazione di output).

Crea un'applicazione vuota

Prima di poter compilare il grafico dell'app, devi prima creare un'app vuota.

Console

Crea un'app nella console Google Cloud .

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Fai clic sul pulsante Crea.

  3. Inserisci person-blur-app come nome dell'app e scegli la tua regione.

  4. Fai clic su Crea.

    Finestra di dialogo Crea una nuova app nella UI

Aggiungi nodi dei componenti dell'app

Dopo aver creato l'applicazione vuota, puoi aggiungere i tre nodi al grafico dell'app:

  1. Nodo di importazione: la risorsa stream che sta già importando dati.
  2. Nodo di elaborazione: il modello di sfocatura delle persone che agisce sui dati importati.
  3. Nodo di archiviazione: il warehouse multimediale che archivia i video elaborati e funge anche da archivio dei metadati. Il warehouse consente di generare informazioni di analisi sui dati video inseriti, nonché informazioni sui negozi dedotte dai modelli di AI.

Console

Aggiungi nodi dei componenti all'app nella console.

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Nella riga person-blur-app, seleziona Visualizza grafico. Viene visualizzata la visualizzazione del grafico della pipeline di elaborazione.

Aggiungere un nodo di importazione dati

  1. Per aggiungere il nodo del flusso di input, seleziona l'opzione Flussi nella sezione Connettori del menu laterale.

  2. Nella sezione Origine del menu Stream che si apre, seleziona Aggiungi stream.

  3. Nel menu Aggiungi stream, scegli Seleziona da stream esistenti e seleziona person-blur-app dall'elenco delle risorse di stream.

    Aggiungere il menu degli stream nell'interfaccia utente

  4. Per aggiungere lo stream al grafico dell'app, fai clic su Aggiungi stream.

Aggiungere un nodo di elaborazione dei dati

  1. Per aggiungere il nodo del modello di sfocatura delle persone, seleziona l'opzione Sfocatura delle persone nella sezione Processori generali del menu laterale.

  2. Nel menu delle opzioni "Offuscamento persone" che si apre, lascia selezionata l'opzione Occlusione completa e attiva l'opzione Offusca solo i volti.

    Aggiungere il modello di sfocatura del volto nell'interfaccia utente

Aggiungere un nodo di archiviazione dei dati

  1. Per aggiungere il nodo di destinazione di output (spazio di archiviazione), seleziona l'opzione Media Warehouse di Vertex AI Vision nella sezione Connettori del menu laterale.

  2. Nel menu Warehouse multimediale di Vertex AI Vision, fai clic su Connetti warehouse.

  3. Nel menu Connetti warehouse, seleziona Crea nuovo warehouse. Assegna al warehouse il nome person-blur-app e lascia la durata TTL a 14 giorni.

  4. Per aggiungere il warehouse, fai clic su Crea.

    Aggiungi il nodo del magazzino nella UI

Esegui il deployment dell'applicazione

Dopo aver creato l'app end-to-end con tutti i componenti necessari, l'ultimo passaggio per utilizzarla è il deployment.

Console

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Seleziona Visualizza grafico accanto all'app person-blur-app nell'elenco.

  3. Nella pagina del generatore di grafici delle applicazioni, fai clic sul pulsante Esegui il deployment.

  4. Nella finestra di dialogo di conferma successiva, seleziona Esegui il deployment.

    Il completamento dell'operazione di deployment potrebbe richiedere diversi minuti. Al termine del deployment, accanto ai nodi vengono visualizzati segni di spunta verdi.

    App di cui è stato eseguito il deployment nell'interfaccia utente

Visualizzare i dati di output elaborati

Console

  1. Apri la scheda Magazzini della dashboard di Vertex AI Vision.

    Vai alla scheda Magazzini

  2. Trova il magazzino person-blur-output-storage nell'elenco e fai clic su Visualizza asset.

    Visualizzare l'output dell'app nella UI

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

  1. Nella console Google Cloud , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina singole risorse

Eliminare un magazzino

  1. Nella console Google Cloud , vai alla pagina Warehouse.

    Vai alla scheda Magazzini

  2. Individua il tuo magazzino person-blur-output-storage.
  3. Per eliminare il magazzino, fai clic su Azioni, fai clic su Elimina magazzino, quindi segui le istruzioni.

Eliminazione di un flusso

  1. Nella console Google Cloud , vai alla pagina Stream.

    Vai alla scheda Stream

  2. Individua il tuo stream input-stream.
  3. Per eliminare lo stream, fai clic su Azioni, fai clic su Elimina stream, quindi segui le istruzioni.

Eliminare un'app

  1. Nella console Google Cloud , vai alla pagina Applicazioni.

    Vai alla scheda Applicazioni

  2. Individua l'app person-blur-app.
  3. Per eliminare l'app, fai clic su Azioni, fai clic su Elimina applicazione, quindi segui le istruzioni.

Passaggi successivi