Requisiti dei dati delle immagini - Amazon SageMaker AI

Requisiti dei dati delle immagini

Un processo di elaborazione SageMaker Clarify fornisce supporto per spiegare le immagini. Questo argomento fornisce i requisiti di formato dei dati per i dati di immagini. Per informazioni sull’elaborazione dei dati delle immagini, consulta computer vision.

Un set di dati di immagini contiene uno o più file di immagine. Per identificare un set di dati di input per il processo di elaborazione SageMaker Clarify, imposta un ProcessingInput denominato dataset o il parametro dataset_uri di configurazione dell'analisi su un prefisso URI Amazon S3 dei tuoi file di immagine.

Nella seguente tabella sono elencati i formati di immagine e le estensioni di file supportati.

Formato di immagine Estensione di file

JPEG

jpg, jpeg

PNG

png

Imposta il parametro dataset_type di configurazione dell'analisi su application/x-image. Poiché il tipo non è un formato di file di immagine specifico, content_type verrà utilizzato per decidere il formato e l'estensione del file di immagine.

Il processo di elaborazione SageMaker Clarify carica ogni file di immagine su una matrice NumPy tridimensionale per un'ulteriore elaborazione. Le tre dimensioni includono altezza, larghezza e i valori RGB di ogni pixel.

Il processo di elaborazione SageMaker Clarify converte i dati RGB raw di un'immagine in un formato di immagine compatibile, come JPEG. Lo fa prima di inviare i dati all'endpoint per le previsioni. I formati di immagine supportati sono i seguenti:

Formato dei dati Tipo MIME Estensione di file

JPEG

image/jpeg

jpg, jpeg

PNG

image/png

png

NPY

application/x-npy

Tutti i formati sopra elencati

Specifica il formato dei dati di payload della richiesta, utilizzando il parametro content_type. Se content_type non viene fornito, il formato dei dati predefinito è image/jpeg.

Dopo aver ricevuto la risposta di un richiamo a un endpoint di inferenza, il processo di elaborazione SageMaker Clarify deserializza il payload di risposta e quindi ne estrae le previsioni.

Problema di classificazione delle immagini

Il formato dei dati di payload della risposta deve essere specificato dal parametro accept_type di configurazione dell'analisi. Se accept_type non viene fornito, il formato dei dati predefinito è application/json. I formati supportati sono gli stessi descritti nella sezione dei dati tabulari in Risposta dell'endpoint per i dati tabulari.

Consulta Inferenza con l'algoritmo di classificazione delle immagini per un esempio di algoritmo di classificazione delle immagini integrato in SageMaker AI che accetta una singola immagine e quindi restituisce un array di valori di probabilità (punteggi), uno per ogni classe.

Come mostrato nella tabella seguente, quando il parametro content_type è impostato su application/jsonlines, la risposta è un oggetto JSON.

Payload di richiesta dell'endpoint Payload di risposta dell'endpoint (rappresentazione di stringhe)

Immagine singola

'{"prediction":[0.1,0.6,0.3]}'

Nell'esempio precedente, imposta il parametro probability sull'espressione JMESPath "prediction" per estrarre i punteggi.

Quando il parametro content_type è impostato su application/json, la risposta è un oggetto JSON, come mostrato nella seguente tabella.

Payload di richiesta dell'endpoint Payload di risposta dell'endpoint (rappresentazione di stringhe)

Immagine singola

'[0.1,0.6,0.3]'

Nell'esempio precedente, imposta probability sull'espressione JMESPath "[*]" per estrarre tutti gli elementi della matrice. Nell'esempio precedente, [0.1, 0.6, 0.3] viene estratto. In alternativa, se ignori l'impostazione del parametro probability di configurazione, vengono estratti anche tutti gli elementi della matrice. Questo perché l'intero payload viene deserializzato come le previsioni.

Problema di rilevamento di oggetti

La configurazione dell’analisi accept_type viene impostata sul valore predefinito application/json e l’unico formato supportato è Object Detection Inference Format. Per ulteriori informazioni sui formati della risposta, consulta Formati della risposta.

La seguente tabella è un esempio di risposta da parte di un endpoint che restituisce una matrice. Ogni elemento della matrice è una matrice di valori contenente l'indice di classe, il punteggio di attendibilità e le coordinate dei riquadri di delimitazione dell'oggetto rilevato.

Payload di richiesta dell'endpoint Payload di risposta dell'endpoint (rappresentazione di stringhe)

Immagine singola (un oggetto)

'[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]'

Immagine singola (due oggetti)

'[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244],[0.0, 0.73376623392105103, 0.5714187026023865, 0.40427327156066895, 0.827075183391571, 0.9712159633636475]]'

La seguente tabella è un esempio di risposta da un endpoint che genera un oggetto JSON con una chiave che fa riferimento alla matrice. Imposta la configurazione di analisi probability sulla chiave "prediction" per estrarre i valori.

Payload di richiesta dell'endpoint Payload di risposta dell'endpoint (rappresentazione di stringhe)

Immagine singola (un oggetto)

'{"prediction":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]}'

Immagine singola (due oggetti)

'{"prediction":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244],[0.0, 0.73376623392105103, 0.5714187026023865, 0.40427327156066895, 0.827075183391571, 0.9712159633636475]]}'

Verifica preventivamente la richiesta e la risposta dell'endpoint per i dati di immagini

Ti consigliamo di implementare il modello su un endpoint di inferenza in tempo reale SageMaker AI e di inviare richieste all’endpoint. Esamina manualmente le richieste e le risposte. Assicurati che entrambe siano conformi ai requisiti nella sezione Richiesta dell'endpoint per dati di immagini e Risposta dell'endpoint per dati di immagini.

Di seguito sono riportati due esempi di codice che mostrano come inviare richieste ed esaminare le risposte ai problemi di classificazione delle immagini e di rilevamento degli oggetti.

Problema di classificazione delle immagini

L'esempio di codice seguente indica a un endpoint di leggere un file PNG e quindi lo classifica.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-image-classification \ --content-type "image/png" \ --accept "application/json" \ --body fileb://./test.png \ /dev/stderr 1>/dev/null

Nell'esempio di codice precedente, segue l'output della risposta.

[0.1,0.6,0.3]

Problema di rilevamento di oggetti

L'esempio di codice seguente indica a un endpoint di leggere un file JPEG e quindi rileva gli oggetti in esso contenuti.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-object-detection \ --content-type "image/jpg" \ --accept "application/json" \ --body fileb://./test.jpg \ /dev/stderr 1>/dev/null

Nell'esempio di codice precedente, segue l'output della risposta.

{"prediction":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244],[0.0, 0.73376623392105103, 0.5714187026023865, 0.40427327156066895, 0.827075183391571, 0.9712159633636475],[4.0, 0.32643985450267792, 0.3677481412887573, 0.034883320331573486, 0.6318609714508057, 0.5967587828636169],[8.0, 0.22552496790885925, 0.6152569651603699, 0.5722782611846924, 0.882301390171051, 0.8985623121261597],[3.0, 0.42260299175977707, 0.019305512309074402, 0.08386176824569702, 0.39093565940856934, 0.9574796557426453]]}