App zur Personenzählung mit Remote-Streaming-Eingabe erstellen

Vertex AI Vision ist eine KI-gestützte Plattform, mit der Sie Videodaten aufnehmen, analysieren und speichern können. Mit Vertex AI Vision können Sie KI-Anwendungen erstellen und bereitstellen. Sie können End-to-End-Lösungen für Vertex AI Vision erstellen, indem Sie die Integration von Vertex AI Vision in andere Produktkomponenten nutzen.

Bevor Sie mit der Implementierung von Lösungen mit der Vertex AI Vision-Plattform beginnen, sollten Sie sich mit den folgenden Konzepten und Komponenten von Vertex AI Vision vertraut machen:

  • Streams: Stellen eine Videostreaming-Ebene Ihrer Lösung dar. Die Streamquelle kann ein Live-Video (z. B. eine IP-Kamera) oder eine Videodatei (z. B. eine MP4-Datei) sein.

  • Anwendungen: Ermöglichen die Verbindung zwischen einem Stream und einem KI-Prozessor, um einen Vorgang für maschinelles Lernen auf das Video anzuwenden. Sie können beispielsweise einen Kamerastream mit einem KI-Modell verbinden, das Personen zählt, die daran vorbeigehen.

  • Media Warehouses: Hier werden die von Streams aufgenommenen Videos inGoogle Cloud gespeichert. Wenn Sie Daten in diesem Ziel speichern, können Sie Analyseergebnisse und Metadaten der KI-Prozessoren abfragen, die für Daten aus den aufgenommenen Streams verwendet werden.

Anwendung zur Ermittlung der Belegung erstellen

Nachdem Sie Ihre Umgebung eingerichtet haben, müssen Sie zuerst die App erstellen, mit der Ihre Daten verarbeitet werden. Eine App kann als automatisierte Pipeline betrachtet werden, die Folgendes verbindet:

  • Datenaufnahme: Ein Videofeed wird in einen Stream aufgenommen.
  • Datenanalyse: Nach der Aufnahme kann ein KI-Modell hinzugefügt werden. Alle Computer-Vision-Vorgänge können für die aufgenommenen Videoinformationen ausgeführt werden.
  • Datenspeicher: Die beiden Versionen des Videofeeds (der Originalstream und der vom KI-Modell verarbeitete Stream) können in einem Media-Warehouse gespeichert werden.

In der Google Cloud Console wird eine App als Diagramm dargestellt. Außerdem muss ein App-Diagramm in Vertex AI Vision mindestens zwei Knoten haben: einen Videobronnenknoten (Stream) und mindestens einen weiteren Knoten (ein Verarbeitungsmodell oder ein Ausgabeziel).

Leere Anwendung erstellen

Bevor Sie den App-Graphen mit Daten füllen können, müssen Sie zuerst eine leere App erstellen.

Console

Erstellen Sie eine App in der Google Cloud Console.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Klicken Sie auf die Schaltfläche Erstellen.

  3. Geben Sie occupancy-count-app als App-Namen ein und wählen Sie Ihre Region aus.

  4. Klicken Sie auf Erstellen.

Knoten für Anwendungskomponenten hinzufügen

Nachdem Sie die leere Anwendung erstellt haben, können Sie dem App-Diagramm die drei Knoten hinzufügen:

  1. Aufnahmeknoten: Die Streamressource, die Daten aufnimmt, die von einer von Ihnen erstellten Compute Engine-VM-Instanz gesendet werden.
  2. Verarbeitungsknoten: Das Modell für die Analyse der Belegung, das auf erfasste Daten angewendet wird.
  3. Speicherknoten: Das Media Warehouse, in dem verarbeitete Videos gespeichert werden und das auch als Metadatenspeicher dient. Im Data Warehouse können Analysedaten zu aufgenommenen Videodaten generiert und Informationen gespeichert werden, die KI-Modelle aus den Daten ableiten.

Console

Fügen Sie Ihrer App in der Konsole Knoten für Komponenten hinzu.

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Zeile occupancy-count-app die Option Diagramm ansehen aus. Sie gelangen dann zur grafischen Darstellung der Verarbeitungspipeline.

Knoten für die Datenaufnahme hinzufügen

  1. Wenn Sie einen Knoten für den Eingabestream hinzufügen möchten, wählen Sie im seitlichen Menü im Abschnitt Connectors die Option Streams aus.

  2. Wählen Sie im Abschnitt Quelle des sich öffnenden Menüs Stream die Option Streams hinzufügen aus.

  3. Wählen Sie im Menü Streams hinzufügen die Option Neue Streams registrieren aus und fügen Sie occupancy-count-stream als Streamname hinzu.

  4. Klicken Sie auf Streams hinzufügen, um den Stream dem App-Diagramm hinzuzufügen.

Knoten zur Datenverarbeitung hinzufügen

  1. Wenn Sie den Knoten für das Modell zur Berechnung der Belegung hinzufügen möchten, wählen Sie im seitlichen Menü im Abschnitt Spezialisierte Modelle die Option occupancy analytics aus.

  2. Lassen Sie die Standardauswahl Personen und Fahrzeuge unverändert.

Datenspeicherknoten hinzufügen

  1. Wählen Sie im Abschnitt Connectors des seitlichen Menüs die Option Media Warehouse von Vertex AI Vision aus, um den Knoten für den Ausgabespeicherort (Speicher) hinzuzufügen.

  2. Klicken Sie im Menü Media Warehouse von Vertex AI Vision auf Warehouse verbinden.

  3. Wählen Sie im Menü Warehouse verbinden die Option Neues Warehouse erstellen aus. Geben Sie dem Warehouse den Namen occupancy-count-warehouse und belassen Sie die TTL-Dauer bei 14 Tagen.

  4. Klicken Sie auf die Schaltfläche Erstellen, um das Warehouse hinzuzufügen.

Anwendung zur Verwendung bereitstellen

Nachdem Sie Ihre End-to-End-App mit allen erforderlichen Komponenten erstellt haben, müssen Sie sie nur noch bereitstellen, um sie verwenden zu können.

Console

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Zum Tab „Anwendungen“

  2. Wählen Sie in der Liste neben der occupancy-count-app App Grafik ansehen aus.

  3. Klicken Sie auf der Seite „Application Graph Builder“ (Tool zum Erstellen von Anwendungsdiagrammen) auf die Schaltfläche Deploy (Bereitstellen).

  4. Wählen Sie im Bestätigungsdialogfeld Bereitstellen aus.

    Die Bereitstellung kann mehrere Minuten dauern. Nach Abschluss der Bereitstellung werden neben den Knoten grüne Häkchen angezeigt.

    Bereitgestellte App in der Benutzeroberfläche

Remote-Computer für das Streamen von Videos einrichten

Nachdem Sie eine bereitgestellte App zum Zählen der Belegung haben, die Streamingdaten empfangen, verarbeiten und speichern kann, müssen Sie Videodaten in die App streamen.

In diesem Tutorial erstellen Sie eine Compute Engine-VM-Instanz, auf der ein Video gehostet wird, und senden die Streamingvideodaten von der VM.

Linux-VM erstellen

Der erste Schritt beim Senden von Video von einer Compute Engine-VM-Instanz ist das Erstellen der VM-Instanz.

Console

  1. Rufen Sie in der Console die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Wählen Sie Ihr Projekt aus und klicken Sie auf Weiter.

  3. Klicken Sie auf Instanz erstellen.

  4. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.

  5. Ändern Sie optional die Zone für diese VM. In Compute Engine wird die Liste der Zonen in jeder Region zufällig angeordnet, um die Verwendung in mehreren Zonen zu fördern.

  6. Übernehmen Sie die verbleibenden Standardoptionen. Weitere Informationen zu diesen Optionen finden Sie unter VM erstellen und starten.

  7. Klicken Sie zum Erstellen und Starten der VM auf Erstellen.

VM-Umgebung einrichten

Nachdem die VM gestartet wurde, können Sie über die Console eine SSH-Verbindung in Ihrem Browser herstellen. Nachdem Sie diese Verbindung hergestellt haben, können Sie das vaictl-Befehlszeilentool herunterladen, um Videos in Ihre App aufzunehmen.

Console

SSH-Verbindung zur VM herstellen

  1. Rufen Sie in der Console die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie im Abschnitt Verbinden der von Ihnen erstellten Instanzzeile auf SSH. Dadurch wird in einem neuen Browserfenster eine SSH-Verbindung geöffnet.

    Die SSH-Option in der Benutzeroberfläche

vaictl-Befehlszeilentool herunterladen

  1. Laden Sie im Fenster SSH-in-Browser das Befehlszeilentool für Vertex AI Vision (vaictl) mit dem folgenden Befehl herunter:

    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    
  2. Installieren Sie das Befehlszeilentool mit dem folgenden Befehl:

    sudo apt install ./visionai_0.0-5_amd64.deb
    
  3. Sie können die Installation mit dem folgenden Befehl testen:

    vaictl --help
    

Videodatei in Ihre App aufnehmen

Nachdem Sie Ihre VM-Umgebung eingerichtet haben, können Sie eine Beispielvideodatei kopieren und dann vaictl verwenden, um die Videodaten in Ihre App zur Berechnung der Belegung zu streamen.

SSH im Browser

Beispielvideo auf Ihre VM kopieren

  1. Kopieren Sie im Fenster SSH im Browser für Ihre VM ein Beispielvideo mit dem folgenden Befehl gcloud storage cp. Ersetzen Sie die folgende Variable:
    • SOURCE: Der Speicherort einer Videodatei, die verwendet werden soll. Sie können Ihre eigene Videoquelldatei verwenden (z. B. gs://BUCKET_NAME/FILENAME.mp4) oder eines der Beispielvideos:
      • gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 (Video mit Personen und Fahrzeugen, Quelle)
      • gs://cloud-samples-data/vertex-ai-vision/highway_vehicles.mp4 (Video mit Fahrzeugen, Quelle)
    gcloud storage cp SOURCE .

Video von der VM streamen und Daten in Ihre App aufnehmen

  1. Verwenden Sie den folgenden Befehl, 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_ID: Ihre Standort-ID. Beispiel: us-central1. Weitere Informationen finden Sie unter Cloud-Standorte.
    • LOCAL_FILE.EXT: Der Dateiname einer lokalen Videodatei. Beispiel: my-video.mp4.
    • Flag --loop: Optional. Wiederholt Dateidaten, um Streaming zu simulieren.

    Mit diesem Befehl wird eine Videodatei in einen Stream übertragen. Wenn Sie das Flag --loop verwenden, wird das Video so lange in den Stream eingebunden, bis Sie den Befehl beenden:

    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

Es kann etwa 100 Sekunden dauern, bis das Video im Dashboard angezeigt wird, nachdem der vaictl-Aufnahmevorgang gestartet wurde.

Sobald die Streamaufnahme verfügbar ist, können Sie den Videofeed auf dem Tab Streams des Vertex AI Vision-Dashboards sehen, indem Sie den occupancy-count-stream-Stream auswählen.

Zum Tab „Streams“

Live-Videostream in der Benutzeroberfläche
Live-Ansicht des Videos, das in der Google Cloud -Konsole in den Stream aufgenommen wird. Videoquelle: Elizabeth Mavor auf Pixabay (Pixelierung hinzugefügt).

Videocontent im Speicher-Warehouse suchen

Nachdem Sie Videodaten in Ihre Verarbeitungs-App aufgenommen haben, können Sie die analysierten Videodaten ansehen und anhand von Informationen aus der Belegungsanalyse durchsuchen.

Console

  1. Öffnen Sie den Tab Warehouses (Speicherorte) des Vertex AI Vision-Dashboards.

    Zum Tab „Warehouses“ (Lager)

  2. Suchen Sie in der Liste nach dem occupancy-count-warehouse-Lager und klicken Sie auf Assets ansehen.

  3. Legen Sie im Abschnitt Personenzahl oder Fahrzeuganzahl den Wert Min. auf 1 und den Wert Max. auf 5 fest.

  4. Wenn Sie verarbeitete Videodaten filtern möchten, die im Media Warehouse von Vertex AI Vision gespeichert sind, klicken Sie auf Suchen.

    Ansicht von facettierten gespeicherten Daten in der Benutzeroberfläche
    Eine Ansicht der gespeicherten Videodaten, die den Suchkriterien entsprechen, Google Cloud in der Konsole. Videoquelle: Elizabeth Mavor auf Pixabay (angewendete Suchkriterien).