Anforderungen an Bilddaten - Amazon SageMaker

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. Die drei Dimensionen umfassen Höhe, Breite und RGB Werte der einzelnen Pixel.

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

image/jpeg

JPG, JPEG

PNG

image/png

PNG

NPY

application/x-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]]}