Vertex AI Vision Queue Detection App

1. Ziele

Übersicht

In diesem Codelab wird eine End-to-End-Anwendung für Vertex AI Vision erstellt, um die Warteschlangengröße anhand von Einzelhandelsvideos zu überwachen. Wir verwenden die integrierten Funktionen des vortrainierten spezialisierten Modells Occupancy analytics (Belegungsanalyse), um Folgendes zu erfassen:

  • Zähle die Anzahl der Personen, die in der Schlange stehen.
  • Zählen Sie die Anzahl der Personen, die am Schalter bedient werden.

Lerninhalte

  • Anwendung in Vertex AI Vision erstellen und bereitstellen
  • So richten Sie einen RTSP-Stream mit einer Videodatei ein und nehmen den Stream mit vaictl aus einem Jupyter-Notebook in Vertex AI Vision auf.
  • Verwendung des Modells für die Analyse der Belegung und seiner verschiedenen Funktionen.
  • So suchen Sie nach Videos in Ihrem Media Warehouse von Vertex AI Vision.
  • So verbinden Sie die Ausgabe mit BigQuery, schreiben eine SQL-Abfrage, um Statistiken aus der JSON-Ausgabe des Modells zu extrahieren, und verwenden die Ausgabe, um das Originalvideo zu kennzeichnen und mit Anmerkungen zu versehen.

Kosten:

Die Gesamtkosten für die Ausführung dieses Labs in Google Cloud betragen etwa 2 $.

2. Vorbereitung

Projekt erstellen und APIs aktivieren:

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines. Hinweis: Wenn Sie die Ressourcen, die Sie in diesem Verfahren erstellen, nicht behalten möchten, erstellen Sie ein Projekt, anstatt ein vorhandenes Projekt auszuwählen. Wenn Sie fertig sind, können Sie das Projekt löschen und dadurch alle mit dem Projekt verknüpften Ressourcen entfernen. Zur Projektauswahl
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
  3. Aktivieren Sie die Compute Engine API, die Vertex API, die Notebook API und die Vision AI API. APIs aktivieren

Dienstkonto erstellen:

  1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen. Zur Seite „Dienstkonto erstellen“
  2. Wählen Sie Ihr Projekt aus.
  3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus. Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: „Dienstkonto für die Kurzanleitung“.
  4. Klicken Sie auf Erstellen und fortfahren.
  5. Um Zugriff auf Ihr Projekt zu gewähren, weisen Sie Ihrem Dienstkonto die folgenden Rollen zu:
  • Vision AI > Vision AI-Bearbeiter
  • Compute Engine > Compute Instance Admin (Beta)
  • BigQuery > BigQuery-Administrator.

Wählen Sie in der Liste Rolle auswählen eine Rolle aus. Klicken Sie auf Weitere Rolle hinzufügen, um weitere Rollen hinzuzufügen.

  1. Klicken Sie auf Weiter.
  2. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen. Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

3. Jupyter Notebook einrichten

Bevor Sie eine App in Occupancy Analytics erstellen, müssen Sie einen Stream registrieren, der später von der App verwendet werden kann.

In dieser Anleitung erstellen Sie eine Jupyter-Notebook-Instanz, auf der ein Video gehostet wird, und senden die Streamingvideodaten aus dem Notebook. Wir verwenden Jupyter Notebook, da es uns die Flexibilität bietet, Shell-Befehle auszuführen und benutzerdefinierten Vor- und Nachbearbeitungscode an einem einzigen Ort auszuführen, was sich sehr gut für schnelle Tests eignet. In diesem Notebook werden wir:

  1. rtsp-Server als Hintergrundprozess ausführen
  2. vaictl-Befehl als Hintergrundprozess ausführen
  3. Abfragen und Verarbeitungscode ausführen, um die Ausgabe der Belegungsanalyse zu analysieren

Jupyter-Notebook erstellen

Der erste Schritt beim Senden von Videos über eine Jupyter-Notebook-Instanz besteht darin, das Notebook mit dem Dienstkonto zu erstellen, das im vorherigen Schritt erstellt wurde.

  1. Rufen Sie in der Console die Seite „Vertex AI“ auf. Zu Vertex AI Workbench
  2. Klicken Sie auf „Nutzerverwaltete Notebooks“.

65b7112822858dce.png

  1. Klicken Sie auf Neues Notebook > Tensorflow Enterprise 2.6 (mit LTS) > Ohne GPUs.

dc156f20b14651d7.png

  1. Geben Sie einen Namen für das Jupyter-Notebook ein. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.

b4dbc5fddc37e8d9.png

  1. Klicken Sie auf ERWEITERTE OPTIONEN.
  2. Scrollen Sie nach unten zu Berechtigungsabschnitte.
  3. Entfernen Sie das Häkchen aus dem Kästchen Compute Engine-Standarddienstkonto verwenden.
  4. Fügen Sie die E-Mail-Adresse des Dienstkontos hinzu, die Sie im vorherigen Schritt erstellt haben. Klicken Sie auf Erstellen.

ec0b9ef00f0ef470.png

  1. Klicken Sie nach dem Erstellen der Instanz auf JUPYTERLAB ÖFFNEN.

4. Notebook zum Streamen von Videos einrichten

Bevor Sie eine App in Occupancy Analytics erstellen, müssen Sie einen Stream registrieren, der später von der App verwendet werden kann.

In dieser Anleitung verwenden wir unsere Jupyter-Notebook-Instanz zum Hosten eines Videos und Sie senden die Streaming-Videodaten vom Notebook-Terminal aus.

vaictl-Befehlszeilentool herunterladen

  1. Öffnen Sie in der geöffneten JupyterLab-Instanz über den Launcher ein Notebook.

a6d182923ae4ada3.png

  1. Laden Sie das Befehlszeilentool für Vertex AI Vision (vaictl), das Befehlszeilentool für den RTSP-Server und das OpenCV-Tool mit dem folgenden Befehl in der Notebook-Zelle herunter:
!wget -q https://github.com/aler9/rtsp-simple-server/releases/download/v0.20.4/rtsp-simple-server_v0.20.4_linux_amd64.tar.gz
!wget -q https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
!tar -xf rtsp-simple-server_v0.20.4_linux_amd64.tar.gz
!pip install opencv-python --quiet
!sudo apt-get -qq remove -y visionai
!sudo apt-get -qq install -y ./visionai_0.0-4_amd64.deb
!sudo apt-get -qq install -y ffmpeg

5. Videodatei für Streaming aufnehmen

Nachdem Sie Ihre Notebookumgebung mit den erforderlichen Befehlszeilentools eingerichtet haben, können Sie eine Beispielvideodatei kopieren und dann „vaictl“ verwenden, um die Videodaten an Ihre App für die Analyse der Belegung zu streamen.

Neuen Stream registrieren

  1. Klicken Sie im linken Bereich von Vertex AI Vision auf den Tab „Streams“.
  2. Klicken Sie oben auf die Schaltfläche „Registrieren“ eba418e723916514.png.
  3. Geben Sie als Streamname queue-stream ein.
  4. Wählen Sie für die Region dieselbe Region aus, die Sie im vorherigen Schritt beim Erstellen des Notebooks ausgewählt haben.
  5. Klicken Sie auf Registrieren.

Beispielvideo auf Ihre VM kopieren

  1. Kopieren Sie in Ihrem Notebook ein Beispielvideo mit dem folgenden wget-Befehl.
!wget -q https://github.com/vagrantism/interesting-datasets/raw/main/video/collective_activity/seq25_h264.mp4

Video von VM streamen und Daten in Ihren Stream aufnehmen

  1. Verwenden Sie den folgenden Befehl in Ihrer Notebook-Zelle, um diese lokale Videodatei an den Eingabestream der App zu senden. Sie müssen die folgenden Variablen ersetzen:
  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • LOCATION: Ihre Standort-ID. Beispiel: us-central1. Weitere Informationen finden Sie unter Cloud-Standorte.
  • LOCAL_FILE: Der Dateiname einer lokalen Videodatei. Beispiel: seq25_h264.mp4.
PROJECT_ID='<Your Google Cloud project ID>'
LOCATION='<Your stream location>'