Dopo aver creato (addestrato) un modello, puoi effettuare una richiesta di previsione asincrona per 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. Trascorso questo periodo, devi creare e addestrare un nuovo modello per continuare ad annotare i contenuti.
Previsioni in batch
Puoi richiedere annotazioni (previsioni) per le immagini utilizzando il
comando batchPredict
. Il comando batchPredict
utilizza come input un file CSV
archiviato nella posizione di Google Cloud Storage che contiene i percorsi delle
immagini da annotare. Ogni riga specifica un percorso separato di 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 batch può richiedere del tempo. Anche su un numero ridotto di immagini la 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 località 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 modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome modello:
- input-storage-path: il percorso di un file CSV archiviato su Google Cloud Storage. L'utente richiedente deve disporre almeno dell'autorizzazione di lettura per il bucket.
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
curl
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
(in questo caso IOD926615623331479552
) per ottenere lo stato dell'attività. Per un esempio, vedi Utilizzo di operazioni a lunga esecuzione.
Al termine dell'operazione, state
viene visualizzato come DONE
e i risultati vengono scritti nel file 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 esempio di file di output.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e poi visita la documentazione di riferimento sul rilevamento di oggetti AutoML Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento sul rilevamento di oggetti AutoML Vision 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 per il rilevamento di oggetti per Ruby.
File JSONL di output
Una volta completata l'attività di previsione batch, l'output della previsione viene archiviato nel percorso di Google Cloud Storage specificato nel comando.
Nella posizione di archiviazione di output (con il prefisso oggetto 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 le relative annotazioni non verranno mai suddivise tra i file.
Ogni file JSONL conterrà, per riga, una rappresentazione JSON di un protocollo che avvolge l'"ID" dell'immagine: "<id_value>", seguito da un elenco di zero o più proto AnnotationPayload
(detti annotazioni), per i quali sono stati compilati i dettagli di imageObjectDetection
.
Esempio di file JSONL (un singolo file .jsonl con 2 righe/annotazioni di 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:
curl
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 la lingua in questione nella pagina Librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione per la lingua in questione nella pagina Librerie client.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client e poi visita la documentazione di riferimento sul rilevamento di oggetti AutoML Vision per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento sul rilevamento di oggetti AutoML Vision 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 per il rilevamento di oggetti per Ruby.