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.

Lernziele

In dieser Anleitung wird Folgendes beschrieben:

  • App zur Ermittlung der Belegung erstellen
  • Stellen Sie Ihre Anwendung zur Verwendung bereit.
  • Remote-Computer für das Streamen von Videos einrichten
  • Nehmen Sie das Streamingvideo in einen Streamknoten in Ihrer App auf.
  • Suchen Sie nach Videos in Ihrem Speicher in Media Warehouse von Vertex AI Vision.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Neuen Google Cloud Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine and Vision AI APIs.

    Enable the APIs

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

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

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

  6. 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.
  7. Install the Google Cloud CLI.

  8. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  9. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Compute Engine and Vision AI APIs.

    Enable the APIs

  13. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

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

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

  14. 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.
  15. Install the Google Cloud CLI.

  16. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  17. To initialize the gcloud CLI, run the following command:

    gcloud init
  18.  Rolle ist nur erforderlich, wenn Sie eine Beispielvideodatei aus einem Cloud Storage-Bucket kopieren.

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 -Konsole 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 erstellen können, müssen Sie zuerst eine leere App erstellen.

Console

Erstellen Sie eine App in der Google Cloud -Konsole.

  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 aufgenommene 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 werden. Außerdem werden dort Informationen gespeichert, 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.

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 Videos 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. Damit 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 im 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 Erfassung der Belegung zu streamen.

SSH im Browser

Beispielvideo auf Ihre VM kopieren

  1. Kopieren Sie im SSH-in-Browser-Fenster für Ihre VM ein Beispielvideo mit dem folgenden gcloud storage cp-Befehl. 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 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 nach dem Starten des vaictl-Aufnahmevorgangs im Dashboard angezeigt wird.

Nachdem die Streamaufnahme verfügbar ist, können Sie den Videofeed auf dem Tab Streams des Vertex AI Vision-Dashboards aufrufen, 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 Lager occupancy-count-warehouse und klicken Sie auf Assets ansehen.

  3. Legen Sie im Abschnitt Anzahl der Personen oder Anzahl der Fahrzeuge 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, in der Google Cloud Konsole. Videoquelle: Elizabeth Mavor auf Pixabay (angewendete Suchkriterien).

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Einzelne Ressourcen löschen

Compute Engine-VM-Instanz löschen

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Warehouse löschen

  1. In the Google Cloud console, go to the Warehouses page.

    Go to the Warehouses tab

  2. Locate your occupancy-count-warehouse warehouse.
  3. To delete the warehouse, click Actions, click Delete warehouse, and then follow the instructions.

Stream löschen

  1. In the Google Cloud console, go to the Streams page.

    Go to the Streams tab

  2. Locate your occupancy-count-stream stream.
  3. To delete the stream, click Actions, click Delete stream, and then follow the instructions.

Apps löschen

  1. In the Google Cloud console, go to the Applications page.

    Go to the Applications tab

  2. Locate your occupancy-count-app app.
  3. To delete the app, click Actions, click Delete application, and then follow the instructions.

Nächste Schritte