Dopo aver creato (addestrato) un modello, puoi effettuare una richiesta di previsione asincrona di un batch di immagini utilizzando il metodo batchPredict
. Il metodo batchPredict
applica annotazioni all'immagine in base
agli oggetti identificati dal modello.
La durata massima di un modello personalizzato è 18 mesi. Devi creare e addestrare un nuovo modello per continuare ad annotare contenuti dopo questo periodo di tempo.
Previsione batch
Puoi richiedere annotazioni (previsioni) per le immagini utilizzando il
comando batchPredict
. Il comando batchPredict
prende come input un file CSV
archiviato nel percorso di Google Cloud Storage contenente i percorsi delle
immagini da annotare. Ogni riga specifica un percorso separato per un'immagine in Google Cloud Storage. Ad esempio:
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
A seconda del numero di immagini specificato nel file CSV, il completamento dell'attività di previsione in batch può richiedere del tempo. Anche con un numero limitato di immagini, il completamento della previsione batch richiederà almeno 30 minuti.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID del tuo progetto Google Cloud.
- location-id: un identificatore di posizione valido. Al momento
devi utilizzare il seguente valore:
us-central1
- model-id: l'ID del modello, dalla
risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello.
Ad esempio:
- nome del modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome del modello:
- input-storage-path: il percorso di un file CSV archiviato in Google Cloud Storage. L'utente richiedente deve disporre almeno dell'autorizzazione di lettura per il bucket.
- output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve avere l'autorizzazione di scrittura per il bucket.
Considerazioni specifiche sul campo:
params.score_threshold
: un valore compreso tra 0,0 e 1,0. Verranno restituiti solo i risultati con punteggi maggiori o uguali a questo valore.
Metodo HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict
Corpo JSON della richiesta:
{ "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET" } }, "params": { "score_threshold": "0.0" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
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
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$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
Dovresti vedere un output simile al seguente:
{ "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" ] } } } } }
Puoi utilizzare l'ID operazione (IOD926615623331479552
, in questo caso) per ottenere lo stato dell'attività. Per un esempio, vedi Operazioni con operazioni a lunga esecuzione.
Al termine dell'operazione, state
verrà visualizzato come DONE
e
i risultati verranno scritti nel file di Google Cloud Storage specificato:
{ "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" } }
Consulta la sezione File JSONL di output di seguito per un file di output di esempio.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.
PHP: segui le istruzioni per la configurazione dei file PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Vision Object Detection per Ruby.
File JSONL di output
Quando l'attività di previsione batch è completata, l'output della previsione viene archiviato nel percorso di Google Cloud Storage specificato nel comando.
Nella posizione di archiviazione dell'output (con il prefisso dell'oggetto che hai scelto) verranno creati i file image_object_detection_1.jsonl
, image_object_detection_2.jsonl
,...,image_object_detection_N.jsonl
, dove N può essere 1 e dipende dal numero totale di immagini e annotazioni previste correttamente.
Una singola immagine verrà elencata una sola volta con tutte le relative annotazioni e non verranno mai suddivise tra i file.
Ogni file JSONL conterrà,
per riga, una rappresentazione JSON di un protocollo che aggrega il valore "ID " dell'immagine:
"<id_value>" seguito da un elenco di zero o più proto AnnotationPayload
(chiamati annotazioni), con dettagli imageObjectDetection
completati.
File JSONL di esempio (un singolo file .jsonl con annotazioni di 2 righe/file):
image_object_detection_0.jsonl
Utilizzo delle operazioni a lunga esecuzione
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID del tuo progetto Google Cloud.
- operation-id: l'ID dell'operazione. L'ID è l'ultimo elemento del nome
dell'operazione. Ad esempio:
- nome operazione:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID operazione:
IOD5281059901324392598
- nome operazione:
Metodo HTTP e URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Esegui questo comando:
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
Esegui questo comando:
$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" } }
Dovresti vedere un output simile al seguente per un'operazione di creazione del modello completata:
{ "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
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.
PHP: segui le istruzioni per la configurazione dei file PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di AutoML Vision Object Detection per Ruby.