Creare un'app di conteggio del numero di persone con input di streaming remoto

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 live (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 un flusso 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 . 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.

Creare un'applicazione di conteggio dell'occupazione

Dopo aver configurato l'ambiente, il primo passaggio consiste nel creare l'app che elabora 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 warehouse multimediale.

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'app vuota

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

Console

Crea un'app nella Google Cloud console.

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

    Vai alla scheda Applicazioni

  2. Fai clic sul pulsante Crea.

  3. Inserisci occupancy-count-app come nome dell'app e scegli la tua regione.

  4. Fai clic su Crea.

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 di flusso che importa i dati inviati da un'istanza VM di Compute Engine che crei.
  2. Nodo di elaborazione: il modello di analisi dell'occupazione 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é di archiviare le informazioni che i modelli di AI deducono dai dati.

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 occupancy-count-app, seleziona Visualizza grafico. Viene visualizzata la visualizzazione del grafico della pipeline di elaborazione.

Aggiungere un nodo di importazione dati

  1. Per aggiungere un nodo di 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 flussi, scegli Registra nuovi flussi e aggiungi occupancy-count-stream come nome del flusso.

  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 conteggio dell'occupazione, seleziona l'opzione Analisi dell'occupazione nella sezione Modelli specializzati del menu laterale.

  2. Lascia selezionate le opzioni predefinite Persone e Veicoli.

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 occupancy-count-warehouse e lascia la durata TTL a 14 giorni.

  4. Fai clic sul pulsante Crea per aggiungere il warehouse.

Esegui il deployment dell'app per utilizzarla

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 occupancy-count-app nell'elenco.

  3. Nella pagina del builder del grafico delle applicazioni, fai clic sul pulsante Deploy (Implementa).

  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

Configurare una macchina remota per lo streaming video

Ora che hai un'app per il conteggio dell'occupazione di cui è stato eseguito il deployment pronta a ricevere, elaborare e archiviare i dati in streaming, devi effettivamente trasmettere i dati video nell'app.

In questo tutorial creerai un'istanza VM di Compute Engine che ospita un video e invierai i dati di streaming video dalla VM.

Crea una VM Linux

Il primo passaggio per inviare video da un'istanza VM di Compute Engine è creare l'istanza VM.

Console

  1. Nella console, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea istanza.

  4. Specifica un Nome per la VM. Per ulteriori informazioni, consulta le convenzioni per la denominazione delle risorse.

  5. (Facoltativo) Modifica la zona per questa VM. Compute Engine randomizza l'elenco delle zone all'interno di ogni regione per incoraggiare l'utilizzo in più zone.

  6. Accetta le opzioni predefinite rimanenti. Per saperne di più su queste opzioni, consulta Crea e avvia una VM.

  7. Per creare e avviare la VM, fai clic su Crea.

Configura l'ambiente VM

Dopo l'avvio della VM, puoi utilizzare la console per stabilire una connessione SSH nel browser. Dopo aver stabilito questa connessione, puoi scaricare lo strumento a riga di comando vaictl per importare video nella tua app.

Console

Stabilisci una connessione SSH alla VM

  1. Nella console, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella sezione Connetti della riga dell'istanza che hai creato, fai clic su SSH. Viene aperta una connessione SSH in una nuova finestra del browser.

    L'opzione SSH nell'interfaccia utente

Scaricare lo strumento a riga di comando vaictl

  1. Nella finestra SSH nel browser, scarica lo strumento a riga di comando Vertex AI Vision (vaictl) utilizzando il seguente comando:

    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    
  2. Installa lo strumento a riga di comando eseguendo il seguente comando:

    sudo apt install ./visionai_0.0-5_amd64.deb
    
  3. Puoi testare l'installazione eseguendo questo comando:

    vaictl --help
    

Importare un file video nell'app

Dopo aver configurato l'ambiente VM, puoi copiare un file video di esempio e poi utilizzare vaictl per trasmettere in streaming i dati video all'app di conteggio dell'occupazione.

SSH nel browser

Copia un video di esempio nella VM

  1. Nella finestra SSH nel browser per la tua VM, copia un video di esempio con il seguente comando gcloud storage cp. Sostituisci la seguente variabile:
    • SOURCE: la posizione di un file video da utilizzare. Puoi utilizzare la tua origine file video (ad esempio, gs://BUCKET_NAME/FILENAME.mp4) o uno dei video di esempio:
      • gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 (video con persone e veicoli, fonte)
      • gs://cloud-samples-data/vertex-ai-vision/highway_vehicles.mp4 (video con solo veicoli, fonte)
    gcloud storage cp SOURCE .

Trasmettere in streaming video dalla VM e importare i dati nell'app

  1. Per inviare questo file video locale al flusso di input dell'app, utilizza il comando seguente. Devi effettuare le seguenti sostituzioni di variabili:
    • PROJECT_ID: il tuo ID progetto Google Cloud .
    • LOCATION_ID: il tuo ID sede. Ad esempio, us-central1. Per maggiori informazioni, consulta la pagina Località cloud.
    • LOCAL_FILE.EXT: il nome file 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 'occupancy-count-stream' --file-path LOCAL_FILE.EXT --loop

Potrebbero essere necessari circa 100 secondi tra l'avvio dell'operazione di caricamento 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 occupancy-count-stream.

Vai alla scheda Stream

Visualizzazione del video in diretta in streaming nell'interfaccia utente
Visualizzazione in tempo reale del video in fase di caricamento nello stream nella console Google Cloud . Crediti video: Elizabeth Mavor su Pixabay (pixelizzazione aggiunta).

Cercare contenuti video nel warehouse di archiviazione

Dopo aver importato i dati video nell'app di elaborazione, puoi visualizzare i dati video analizzati e cercarli in base alle informazioni di analisi dell'occupazione.

Console

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

    Vai alla scheda Magazzini

  2. Trova il magazzino occupancy-count-warehouse nell'elenco e fai clic su Visualizza asset.

  3. Nella sezione Conteggio persone o Conteggio veicoli, imposta il valore Min su 1 e il valore Max su 5.

  4. Per filtrare i dati video elaborati archiviati in Media Warehouse di Vertex AI Vision, fai clic su Cerca.

    Visualizzazione dei dati archiviati sfaccettati nell'interfaccia utente
    Una visualizzazione dei dati video archiviati che corrispondono ai criteri di ricerca nella console Google Cloud . Crediti video: Elizabeth Mavor su Pixabay (criteri di ricerca applicati).