Nachdem Sie ein Modell erstellt (trainiert) haben, können Sie mit der Methode batchPredict
eine asynchrone Vorhersageanfrage für eine Reihe von Bildern stellen. Die Methode batchPredict
wendet auf Bilder Annotationen an, die auf den von Ihrem Modell identifizierten Objekten basieren.
Ein benutzerdefiniertes Modell hat eine Lebensdauer von höchstens 18 Monaten. Sie müssen ein neues Modell erstellen und trainieren, um nach diesem Zeitpunkt weiterhin Inhalte mit Annotationen versehen zu können.
Batchvorhersage
Mit dem Befehl batchPredict
können Sie Annotationen (Vorhersagen) für Bilder anfordern. Der Befehl batchPredict
verwendet als Eingabe eine CSV-Datei, die in Ihrem Google Cloud Storage-Speicherort gespeichert ist und die Pfade zu den Bildern enthält, die annotiert werden sollen. Jede Zeile gibt einen separaten Pfad zu einem Bild in Google Cloud Storage an. Beispiel:
batch_prediction.csv
:
gs://my-cloud-storage-bucket/prediction_files/image1.jpg gs://my-cloud-storage-bucket/prediction_files/image2.jpg gs://my-cloud-storage-bucket/prediction_files/image3.jpg gs://my-cloud-storage-bucket/prediction_files/image4.jpg gs://my-cloud-storage-bucket/prediction_files/image5.jpg gs://my-cloud-storage-bucket/prediction_files/image6.png
Abhängig von der Anzahl der Bilder, die Sie in der CSV-Datei angegeben haben, kann die Batchvorhersage einige Zeit in Anspruch nehmen. Selbst bei einer geringen Anzahl von Bildern dauert die Batchvorhersage mindestens 30 Minuten.
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- location-id: Eine gültige Standort-ID. Aktuell müssen Sie den folgenden Wert verwenden:
us-central1
- model-id: Die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens.
Beispiel:
- Modellname:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- model id:
IOD4412217016962778756
- Modellname:
- input-storage-path: Der Pfad zu einer in Google Cloud Storage gespeicherten CSV-Datei. Der anfragende Nutzer muss mindestens die Leseberechtigung für den Bucket haben.
- output-storage-bucket: Ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben:
gs://bucket/directory/
. Der anfragende Nutzer muss Schreibberechtigung für den Bucket haben.
Feldspezifische Hinweise:
params.score_threshold
: Ein Wert zwischen 0,0 und 1,0. Es werden nur Ergebnisse mit Bewertungen zurückgegeben, die größer oder gleich diesem Wert sind.
HTTP-Methode und URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict
JSON-Text der Anfrage:
{ "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET" } }, "params": { "score_threshold": "0.0" } }
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-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict"
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-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict" | Select-Object -Expand Content
Die Ausgabe sollte in etwa so aussehen:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/IOD926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:28:35.302067Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } } } } }
Sie können den Status der Aufgabe anhand der Vorgangs-ID abrufen (in diesem Fall IOD926615623331479552
). Ein Beispiel finden Sie unter Mit Vorgängen mit langer Ausführungszeit arbeiten.
Sobald der Vorgang abgeschlossen ist, wird der state
als DONE
angezeigt und Ihre Ergebnisse werden in die von Ihnen angegebene Google Cloud Storage-Datei geschrieben:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/IOD926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:57:18.310033Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputInfo": { "gcsOutputDirectory": "gs://STORAGE_BUCKET_VCM/SUBDIRECTORY/prediction-8370559933346329705-YYYY-MM-DDThh:mm:ss.sssZ" } } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.BatchPredictResult" } }
Eine Beispielausgabedatei finden Sie unten im Abschnitt Ausgabe von JSONL-Dateien.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für Ruby auf.
Ausgabe von JSONL-Dateien
Wenn die Batchvorhersage abgeschlossen ist, wird die Ausgabe der Vorhersage in dem Google Cloud Storage-Speicherort gespeichert, den Sie in Ihrem Befehl angegeben haben.
In Ihrem Ausgabespeicherort werden die Dateien image_object_detection_1.jsonl
, image_object_detection_2.jsonl
, ... , image_object_detection_N.jsonl
erstellt. N hängt von der Gesamtanzahl der erfolgreich vorhergesagten Bilder und Annotationen ab und kann auch 1 sein.
Jedes Bild wird nur einmal mit allen zugehörigen Annotationen aufgelistet, die nie auf verschiedene Dateien aufgeteilt werden.
JSONL-Dateien enthalten in jeder Zeile eine JSON-Darstellung einer Proto-Datei, die das "ID" : "<id_value>" des Bildes umschließt, gefolgt von einer Liste mit null oder mehr AnnotationPayload
-Proto-Dateien (Annotationen) mit eingetragener imageObjectDetection
-Angabe.
Beispiel für eine JSONL-Datei (eine einzelne .jsonl-Datei mit zwei Zeilen/Dateiannotationen):
image_object_detection_0.jsonl
Mit lang andauernden Vorgängen arbeiten
REST
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- project-id: die ID Ihres GCP-Projekts.
- operation-id: ID des Vorgangs. Die ID ist das letzte Element des Vorgangsnamens. Beispiel:
- Name des Vorgangs:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- Vorgangs-ID:
IOD5281059901324392598
- Name des Vorgangs:
HTTP-Methode und URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Die Ausgabe für einen abgeschlossenen -Vorgang zum Erstellen eines Modells sollte in etwa so aussehen:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision Object Detection-Referenzdokumentation für Ruby auf.