Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anforderungen an Bilddaten
Ein SageMaker Clarif-Verarbeitungsjob bietet Unterstützung bei der Erklärung von Bildern. In diesem Thema werden die Anforderungen an das Datenformat für Bilddaten beschrieben. Hinweise zur Verarbeitung der Bilddaten finden Sie untercomputer vision.
Ein Bilddatensatz enthält eine oder mehrere Bilddateien. Um einen Eingabedatensatz für den SageMaker Clarifesty-Verarbeitungsjob zu identifizieren, setzen Sie entweder einen ProcessingInputbenannten dataset_uri
Parameter dataset
oder den Analyse-Konfigurationsparameter auf ein Amazon S3 URI S3-Präfix Ihrer Bilddateien.
Die unterstützten Bilddateiformate und Dateierweiterungen sind in der folgenden Tabelle aufgeführt.
Bildformat | Dateierweiterung |
---|---|
JPEG |
JPG, JPEG |
PNG |
PNG |
Setzen Sie den dataset_type
Konfigurationsparameter für die Analyse auf application/x-image
. Da es sich bei dem Typ nicht um ein bestimmtes Bilddateiformat handelt, content_type
wird er verwendet, um das Bilddateiformat und die Erweiterung zu bestimmen.
Der SageMaker Clarify-Verarbeitungsauftrag lädt jede Bilddatei zur weiteren Verarbeitung in ein dreidimensionales NumPyArray
Der SageMaker Clarify-Verarbeitungsjob konvertiert die RGB Rohdaten eines Bilds in ein kompatibles Bildformat, z. JPEG B. Dies geschieht, bevor die Daten zur Vorhersage an den Endpunkt gesendet werden. Die unterstützten Bildformate lauten wie folgt.
Datenformat | MIMETyp | Dateierweiterung |
---|---|---|
JPEG |
|
JPG, JPEG |
PNG |
|
PNG |
NPY |
|
All above |
Geben Sie das Datenformat der Anforderungs-Payload mithilfe des Analyse-Konfigurationsparameters content_type
an. Wenn content_type
nicht angegeben wird, ist das Datenformat standardmäßig auf image/jpeg
eingestellt.
Beim Empfang der Antwort auf einen Aufruf eines Inferenzendpunkts deserialisiert der SageMaker Clarify-Verarbeitungsjob die Antwort-Nutzlast und extrahiert dann die Vorhersagen daraus.
Problem mit der Bildklassifizierung
Das Datenformat der Antwortnutzlast sollte durch den Analysekonfigurationsparameter accept_type angegeben werden. Wenn accept_type
nicht angegeben, ist das Datenformat standardmäßig application/json
. Die unterstützten Formate entsprechen denen, die in der Endpunktantwort für Tabellendaten im Abschnitt Tabellendaten beschrieben sind.
Ein Beispiel Inferenz mit dem Bildklassifizierungsalgorithmus für einen SageMaker integrierten Algorithmus zur Bildklassifizierung, der ein einzelnes Bild akzeptiert und dann eine Reihe von Wahrscheinlichkeitswerten (Scores) zurückgibt, jeweils für eine Klasse.
Wie in der folgenden Tabelle dargestellt, handelt es sich bei der Antwort um ein JSON Objektapplication/jsonlines
, wenn der content_type
Parameter auf eingestellt ist.
Nutzlast der Endpunktanforderung | Nutzlast der Endpunktantwort (Zeichenkettendarstellung) |
---|---|
Einzelnes Bild |
'{"Vorhersage“: [0.1,0.6,0.3]}' |
Stellen Sie im vorherigen Beispiel den probability
Parameter auf den JMESPath Ausdruck „Prediction“ ein, um die Ergebnisse zu extrahieren.
Wenn der auf gesetzt content_type
istapplication/json
, handelt es sich bei der Antwort um ein JSON Objekt, wie in der folgenden Tabelle dargestellt.
Nutzlast der Endpunktanforderung | Nutzlast der Endpunktantwort (Zeichenkettendarstellung) |
---|---|
Einzelnes Bild |
'[0.1,0.6,0.3]' |
Stellen Sie im vorherigen Beispiel probability
den JMESPath Ausdruck „[*]“ ein, um alle Elemente des Arrays zu extrahieren. Im vorherigen Beispiel [0.1, 0.6, 0.3]
wird extrahiert. Wenn Sie alternativ die Einstellung des probability
Konfigurationsparameters überspringen, werden auch alle Elemente des Arrays extrahiert. Das liegt daran, dass die gesamte Nutzlast wie bei den Vorhersagen deserialisiert wird.
Problem bei der Objekterkennung
Die Analysekonfiguration ist accept_type
standardmäßig auf das Object Detection Inference Format eingestellt application/json
und das einzige unterstützte Format ist. Weitere Informationen zu Antwortformaten finden Sie unter. Antwortformate
Die folgende Tabelle ist eine Beispielantwort von einem Endpunkts, der ein Array ausgibt. Jedes Element des Arrays ist ein Array von Werten, das den Klassenindex, den Konfidenzwert und die Bounding-Box-Koordinaten des erkannten Objekts enthält.
Nutzlast der Endpunktanforderung | Nutzlast der Endpunktantwort (Zeichenkettendarstellung) |
---|---|
Einzelbild (ein Objekt) |
'[4.0, 0.86419455409049988, 0.3088374733924866, 0,07030484080314636, 0.7110607028007507, 0.9345266819000244]]' |
Einzelbild (zwei Objekte) |
'[4,0, 0,86419455409049988, 0,3088374733924866, 0,07030484080314636, 0,7110607028007507, 0,9345266819000244], [0,0, 0,73376623392105103, 0,5714187026023865, 0,40427327156066895, 0,827027023865 75183391571, 0,9712159633636475]]' |
Die folgende Tabelle enthält ein Beispiel für eine Antwort von einem Endpunkt, die ein JSON Objekt mit einem Schlüssel ausgibt, der auf das Array verweist. Stellen Sie die Analysekonfiguration probability
auf den Schlüssel „Prognose“ ein, um die Werte zu extrahieren.
Nutzlast der Endpunktanforderung | Nutzlast der Endpunktantwort (Zeichenkettendarstellung) |
---|---|
Einzelbild (ein Objekt) |
'{"Vorhersage“: [[4.0, 0.86419455409049988, 0.3088374733924866, 0,07030484080314636, 0.7110607028007507, 0.9345266819000244]]}' |
Einzelbild (zwei Objekte) |
'{"Prognose“: [4,0, 0,86419455409049988, 0,3088374733924866, 0,07030484080314636, 0,7110607028007507, 0,9345266819000244], [0,0, 0,73376623392105103, 0,5714187026023865, 0,4042732715606686895, 0,827075183391571, 0,9712159633636475]]}' |
Überprüfen Sie die Endpunktanfrage und -antwort für Bilddaten vorab
Wir empfehlen, dass Sie Ihr Modell auf einem SageMaker Echtzeit-Inferenzendpunkt bereitstellen und Anfragen an den Endpunkt senden. Untersuchen Sie die Anfragen und Antworten manuell. Stellen Sie sicher, dass beide den Anforderungen im Abschnitt Endpunktanforderung für Bilddaten und Endpunktantwort für Bilddaten entsprechen.
Im Folgenden finden Sie zwei Codebeispiele, die zeigen, wie Anfragen gesendet und die Antworten auf Probleme mit der Bildklassifizierung und Objekterkennung untersucht werden.
Problem mit der Bildklassifizierung
Der folgende Beispielcode weist einen Endpunkt an, eine PNG Datei zu lesen, und klassifiziert sie dann.
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
Aus dem vorherigen Codebeispiel folgt die Antwortausgabe.
[0.1,0.6,0.3]
Problem bei der Objekterkennung
Der folgende Beispielcode weist einen Endpunkt an, eine JPEG Datei zu lesen, und erkennt dann die darin enthaltenen Objekte.
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
Aus dem vorherigen Codebeispiel folgt die Antwortausgabe.
{"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]]}