Nachdem Sie ein Modell erstelltbatchPredict
(trainiert) haben, können Sie mit der Methode eine asynchrone Vorhersageanfrage für eine Reihe von Bildern stellen. Die Methode batchPredict
wendet auf Ihr Bild Labels an, die auf dem Hauptobjekt des Bildes basieren, für das das Modell Vorhersagen trifft.
Die maximale Lebensdauer eines benutzerdefinierten Modells beträgt 18 Monate ab dem GA-Release (General Availability, allgemeine Verfügbarkeit). Sie müssen ein neues Modell erstellen und trainieren, um nach diesem Zeitpunkt weiterhin Inhalte mit Anmerkungen versehen zu können.
Batchvorhersage
Mit dem Befehl batchPredict
können Sie Anmerkungen (Vorhersagen) für Bilder anfordern. Der Befehl batchPredict
nimmt als Eingabe eine CSV-Datei an, die in Ihrem Google Cloud Storage-Bucket gespeichert ist und die Pfade zu den Bildern enthält, denen Sie Anmerkungen hinzufügen möchten. Jede Zeile gibt einen separaten Pfad zu einem Bild in Google Cloud Storage an.
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/ICN926615623331479552", "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 ICN926615623331479552
). 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/ICN926615623331479552", "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-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-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-Referenzdokumentation für Ruby auf.
Ausgabe von JSONL-Dateien
Wenn die Batchvorhersage abgeschlossen ist, wird die Ausgabe der Vorhersage in dem Google Cloud Storage-Bucket gespeichert, den Sie in Ihrem Befehl angegeben haben.
In Ihrem Ausgabe-Bucket (falls zutreffend: im angegebenen Verzeichnis) werden die Dateien image_classification_1.jsonl
, image_classification_2.jsonl
,..., image_classification_N.jsonl
erstellt, wobei N 1 sein kann und von der Gesamtanzahl der erfolgreich vorhergesagten Bilder und Anmerkungen abhängt.
Jedes Bild wird nur einmal mit allen seinen Anmerkungen aufgelistet, die nie auf verschiedene Dateien aufgeteilt werden.
Jede JSONL-Datei enthält in jeder Zeile eine JSON-Darstellung einer Proto-Datei, die die "ID" des Bildes umschließt ("<id_value>"), gefolgt von einer Liste mit null oder mehr AnnotationPayload-Proto-Dateien (Anmerkungen), deren Klassifizierungsdetail ausgefüllt ist.
Beispiel für eine JSONL-Datei:
image_image_classification_0.jsonl
: Eine einzelne .jsonl-Datei mit 4 Zeilen, wobei jede Zeile einer JSON-Bilddateianmerkungs-Annotation entspricht.
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 APIs und Referenz > Clientbibliotheken.
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für diese Sprache auf der Seite APIs und Referenz > Clientbibliotheken.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite der Clientbibliotheken und rufen Sie dann die AutoML Vision-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-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-Referenzdokumentation für Ruby auf.