Videoobjekte über die Befehlszeile verfolgen
In dieser Kurzanleitung werden folgende Verfahren erläutert:
- Videos in Cloud Storage kopieren
- CSV-Dateien zum Auflisten von Videos und den dazugehörigen Labels erstellen
- AutoML Video-Objekt-Tracking verwenden, um ein Dataset zum Trainieren und Verwenden Ihres Modells zu erstellen.
Hinweise
Projekt einrichten
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
- Installieren Sie die Google Cloud CLI.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
-
Google Cloud-Projekt erstellen oder auswählen.
-
Erstellen Sie ein Google Cloud-Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch einen Namen für das Google Cloud-Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud-Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch den Namen Ihres Google Cloud-Projekts.
-
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Aktivieren Sie die AutoML and Cloud Storage APIs:
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Installieren Sie die Google Cloud CLI.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
-
Google Cloud-Projekt erstellen oder auswählen.
-
Erstellen Sie ein Google Cloud-Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch einen Namen für das Google Cloud-Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud-Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch den Namen Ihres Google Cloud-Projekts.
-
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Aktivieren Sie die AutoML and Cloud Storage APIs:
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Legen Sie für die Umgebungsvariable
PROJECT_ID
Ihre Projekt-ID fest.export PROJECT_ID=PROJECT_ID
Die AutoML API-Aufrufe und Ressourcennamen enthalten Ihre Projekt-ID. Die UmgebungsvariablePROJECT_ID
bietet eine bequeme Möglichkeit, die ID anzugeben.
Dataset erstellen und Trainingsdaten importieren
Dataset erstellen
Legen Sie einen Namen für das Dataset fest und erstellen Sie mit den folgenden curl
- oder PowerShell-Befehlen ein neues Dataset mit diesem Namen.
REST
Im Folgenden wird gezeigt, wie Sie eine POST-Anfrage senden. In diesem Beispiel wird die Google Cloud CLI verwendet, um ein Zugriffstoken zu erstellen. Eine Anleitung zur Installation der gcloud CLI finden Sie unter AutoML Video Intelligence Object Tracking Kurzanleitung.Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- dataset-name: Der Name des Ziel-Datasets.
Beispiel:my_dataset_01
- Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
JSON-Text der Anfrage:
{ "displayName": "dataset-name", "videoObjectTrackingDatasetMetadata": { } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets" | Select-Object -Expand Content
VOT12345....
Trainingsdaten importieren
REST
Verwenden Sie zum Importieren Ihrer Trainingsdaten die MethodeimportData
. Bei dieser Methode müssen Sie zwei Parameter angeben:
- Pfad zur CSV-Datei, in der die Pfade zum Training enthalten sind.
- die CSV-Dateien der Testdaten. Hinweis: Diese Dateien werden im Bucket "automl-video-demo-data" in Cloud Storage zur Verfügung gestellt.
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- dataset-id: die ID Ihres Datasets. Die ID ist das letzte Element des Datasetnamens. Beispiel:
- Dataset-Name:
projects/project-number/locations/location-id/datasets/3104518874390609379
- Dataset-ID:
3104518874390609379
- Dataset-Name:
- bucket-name: Ersetzen Sie diesen Wert durch den Namen des Cloud Storage-Buckets, in dem Sie die CSV-Datei mit der Liste der Modelltrainingsdateien gespeichert haben.
- csv-file-name: Ersetzen Sie diesen Wert durch die CSV-Datei mit der Liste der Modelltrainingsdateien.
- Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData
JSON-Text der Anfrage:
{ "inputConfig": { "gcsSource": { "inputUris": ["gs://bucket-name/csv-file-name.csv"] } } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData" | Select-Object -Expand Content
VOT7506374678919774208
enthält.
Status des Importvorgangs abrufen
Sie können den Status des Importvorgangs mit den folgenden curl
- oder PowerShell-Befehlen abfragen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- operation-id: Die ID des lang andauernden Vorgangs, der für die Anfrage erstellt und in der Antwort beim Start des Vorgangs angegeben wurde, z. B.
VOT12345....
- Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
done: true
- operation-name: Der Name des Vorgangs, der von der AutoML Video Intelligence Object Tracking API zurückgegeben wird. Der Vorgangsname hat das Format
projects/project-number/locations/location-id/operations/operation-id
.
Alle Datasets auflisten
Verwenden Sie die folgenden curl
- oder PowerShell-Befehle, um eine Liste Ihrer Datasets und die Anzahl der in das Dataset importierten Beispielvideos abzurufen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets "
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets " | Select-Object -Expand Content
VOT3940649673949184000
die Vorgangs-ID des lange laufenden Vorgangs, der für die Anfrage erstellt und in der Antwort beim Start des Vorgangs angegeben wurde.
Modell trainieren
Modelltraining starten
Nachdem Sie Ihr Dataset erstellt und Ihre Trainingsdaten in Ihr Dataset importiert haben, können Sie Ihr benutzerdefiniertes Modell trainieren. Trainieren Sie Ihr Modell mit den folgenden curl
- oder PowerShell-Befehlen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- dataset-id: Der Name des Ziel-Datasets.
Beispiel: Anzeigename
my_dataset_01
. - model-name: Ersetzen Sie diesen Wert durch einen Namen, den Sie für Ihr Modell auswählen.
- Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
JSON-Text der Anfrage:
{ "datasetId": "dataset-id", "displayName": "model-name", "videoObjectTrackingModelMetadata": {}, }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models" | Select-Object -Expand Content
VOT1741767155885539328
enthält.
Status des Modelltrainings abrufen
Sie können den Status Ihres Modelltrainings mit den folgenden curl
- oder PowerShell-Befehlen abfragen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- operation-name: der Name des Vorgangs, der von der AutoML Video Intelligence Object Tracking API zurückgegeben wird. Der Vorgangsname hat das Format
projects/project-number/locations/location-id/operations/operation-id
. - Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1beta1/operation-name
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/operation-name"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/operation-name" | Select-Object -Expand Content
done: true
angezeigt und keine Fehler aufgelistet.
Modellverfügbarkeit prüfen
Nach erfolgreichem Abschluss des Modelltrainings können Sie prüfen, ob Ihr Modell verfügbar ist. Verwenden Sie dazu den folgenden Befehl, um die Modelle für Ihr Projekt aufzulisten.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Vorhersagen treffen
Mit der Methode batchPredict können Sie Annotationen (Vorhersagen) für Videos anfragen. Für die Methode batchPredict
sind zwei Eingaben erforderlich:
- Eine CSV-Datei, die in Ihrem Cloud Storage-Bucket gespeichert ist und die Pfade zu den Videos enthält, die annotiert werden sollen,
- die Start- und Endzeit, die das zu annotierende Videosegment angibt.
Verwenden Sie für diese Kurzanleitung die CSV-Datei traffic_video_batch_predict.csv
.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- model-id: Durch die Kennung für Ihr Modell ersetzen
- input-uri: Ein Cloud Storage-Bucket, der die Datei enthält, die Sie annotieren möchten, einschließlich des Dateinamens. Muss mit
gs://
beginnen.
Beispiel:"inputUris": ["gs://automl-video-demo-data/traffic_videos/traffic_video_batch_predict.csv"],
- output-bucket: Ersetzen Sie diesen Wert durch einen Cloud Storage-Bucket, in dem die Ergebnisse Ihrer Vorhersage gespeichert werden.
- object-id: Ersetzen Sie den Eintrag durch einen Objektnamen, der angibt, wo die Ausgabe Ihrer Vorhersageanfrage in Ihrem Cloud Storage-Bucket gespeichert werden soll. Hinweis: Sie benötigen Schreibberechtigungen für den Cloud Storage-Bucket.
- Hinweis:
- project-number: Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation erfolgen soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict
JSON-Text der Anfrage:
{ "inputConfig": { "gcsSource": { "inputUris": ["input-uri"] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://output-bucket/object-id" } } "params": { "score_threshold": "0.0" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
Status des Vorhersagevorgangs abfragen
Sie können den Status Ihres Batchvorhersagevorgangs mit den folgenden curl
- oder PowerShell-Befehlen abfragen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt. - operation-id: Die ID des lang andauernden Vorgangs, der für die Anfrage erstellt und in der Antwort beim Start des Vorgangs angegeben wurde, z. B.
VOT12345....
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
projects/project-number/locations/location-id/operations/operation-id
Wenn die Batchvorhersage abgeschlossen ist, wird die Ausgabe der Vorhersage in dem Cloud Storage-Speicherort gespeichert, den Sie in Ihrem Befehl angegeben haben. Für jedes Videosegment gibt es eine JSON-Datei. Die JSON-Dateien haben ein ähnliches Format wie my-video-01.avi.json, wobei die Dateiendung der Erweiterung .json an den ursprünglichen Dateinamen angehängt wird.
{ "inputUris": ["automl-video-demo-data/sample_video.avi"], "object_annotations": [ { "annotation_spec": { "display_name": "Cat", "description": "Cat" }, "confidence": 0.43253016 "frames": [ { "frame": { "time_offset": { "seconds": 4, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.1, "y_min": 0.1, "x_max": 0.8, "y_max": 0.8 } } }, { "frame": { "time_offset": { "seconds": 5, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.2, "y_min": 0.2, "x_max": 0.9, "y_max": 0.9 } } } ], "segment": { "start_time_offset": { "seconds": 4, "nanos": 960000000 }, "end_time_offset": { "seconds": 5, "nanos": 960000000 } } } ], "error": { "details": [ ] } }
Bereinigen
Wenn Sie Ihr benutzerdefiniertes Modell und das zugehörige Dataset nicht mehr benötigen, können Sie sie löschen.
Modell löschen
Sie können ein Modell mit den folgenden curl
- oder PowerShell-Befehlen löschen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt. - Ersetzen Sie model-id durch die ID für Ihr Modell.
HTTP-Methode und URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort erhalten.
Dataset löschen
Sie können ein Dataset mit den folgenden curl
- oder PowerShell-Befehlen löschen.
REST
Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:
- project-number: Die Nummer Ihres Projekts
- location-id: Die Cloud-Region, in der die Annotation stattfinden soll. Unterstützte Cloud-Regionen sind:
us-east1
,us-west1
,europe-west1
,asia-east1
. Wenn keine Region angegeben ist, wird eine Region basierend auf dem Speicherort der Videodatei festgelegt. - datase-id: Ersetzen Sie diesen Wert durch die ID Ihrer Dataset-ID.
HTTP-Methode und URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort erhalten.