이미지 데이터 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이미지 데이터

SageMaker Clarify 프로세싱 작업은 이미지 설명을 위한 지원을 제공합니다. 이 주제에는 이미지 데이터에 대한 데이터 형식 요구 사항이 나와 있습니다. 자세한 내용은 computer vision 단원을 참조하십시오.

이미지 데이터 세트의 전제 조건

이미지 데이터 세트에는 하나 이상의 이미지 파일이 포함되어 있습니다. Clarify 처리 작업에 대한 입력 데이터세트를 식별하려면 ProcessingInput명명된 구성 파라미터 dataset 또는 분석 구성 dataset_uri 파라미터를 이미지 파일의 Amazon S3 URI 접두사로 설정하십시오. SageMaker

지원되는 이미지 파일 형식과 파일 확장자는 다음 표에 나열되어 있습니다.

이미지 형식 파일 확장명

JPEG

jpg, jpeg

PNG

PNG

분석 구성의 dataset_type매개변수를 application/x-image로 설정하세요. 유형이 특정 이미지 파일 형식이 아니므로, 이미지 파일 형식과 확장자를 결정하기 위해 content_type이 사용됩니다.

SageMaker Clarify 프로세싱 작업은 추가 처리를 위해 각 이미지 파일을 3차원 NumPy배열로 로드합니다. 3차원에는 각 픽셀의 높이, 너비 및 RGB 값이 포함됩니다.

이미지 데이터에 대한 엔드포인트 요청

SageMaker Clarify 처리 작업은 이미지의 원시 RGB 데이터를 다음과 같은 JPEG 호환 가능한 이미지 형식으로 변환합니다. 이 작업은 예측을 위해 데이터를 엔드포인트로 보내기 전에 수행됩니다. 지원되는 이미지 형식은 다음과 같습니다.

데이터 형식 MIME유형 파일 확장명

JPEG

image/jpeg

jpg, jpeg

PNG

image/png

PNG

NPY

application/x-npy

모두 해당

분석 구성 매개변수 content_type을 사용하여 요청 페이로드의 데이터 형식을 지정합니다. content_type이 제공되지 않은 경우, 데이터 형식은 기본값인 image/jpeg가 됩니다.

이미지 데이터에 대한 엔드포인트 응답

추론 엔드포인트 호출의 응답을 받으면 Clarify 프로세싱 작업은 응답 페이로드를 역직렬화한 다음 이 페이로드에서 예측을 추출합니다. SageMaker

이미지 분류 문제

응답 페이로드의 데이터 형식은 분석 구성 매개변수 accept_type을 통해 지정되어야 합니다. accept_type이 제공되지 않은 경우, 데이터 형식은 기본값인 application/json가 됩니다. 지원되는 형식은 테이블 형식 데이터 섹션의 Endpoint response for tabular data에 나와 있는 형식과 동일합니다.

단일 이미지를 받아들인 다음 이미지 분류 알고리즘을 이용한 추론 클래스에 대해 각각 확률 값 (점수) 으로 구성된 배열을 반환하는 SageMaker 내장 이미지 분류 알고리즘의 예를 보려면 여기를 참조하십시오.

다음 표에서 볼 수 있듯이 content_type 파라미터가 로 application/jsonlines 설정된 경우 응답은 JSON 객체입니다.

엔드포인트 요청 페이로드 엔드포인트 응답 페이로드(문자열 표현식)

단일 이미지

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

이전 예제에서는 probability 매개변수를 “예측”이라는 JMESPath 표현식으로 설정하여 점수를 추출했습니다.

content_typeapplication/json 설정하면 응답은 다음 표와 같이 JSON 객체가 됩니다.

엔드포인트 요청 페이로드 엔드포인트 응답 페이로드(문자열 표현식)

단일 이미지

'[0.1,0.6,0.3]'

이전 예제에서는 배열의 모든 요소를 probability 추출하려면 JMESPath 표현식 “[*]”로 설정합니다. 이전 예제에서는 [0.1, 0.6, 0.3]이 추출되었습니다. 또는 사용자가 probability구성 매개변수 설정을 건너뛸 경우 해당 배열의 모든 요소도 함께 추출되게 됩니다. 이는 전체 페이로드 자체가 예측으로서 역직렬화되기 때문입니다.

객체 감지 문제

분석 구성의 accept_type 기본값은 application/json 이며 지원되는 유일한 형식은 객체 감지 추론 형식입니다. 응답 형식에 대한 자세한 내용은 을 참조하십시오. 응답 형식

다음 표는 배열을 출력하는 엔드포인트에서 받은 응답의 예제입니다. 이 배열을 이루는 각 요소는 클래스 인덱스, 신뢰도 점수, 그리고 검출된 객체의 경계 상자 좌표를 포함하고 있는 값의 배열입니다.

엔드포인트 요청 페이로드 엔드포인트 응답 페이로드(문자열 표현식)

단일 이미지(객체 1개)

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

단일 이미지(객체 2개)

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

다음 표는 배열을 참조하는 키가 있는 JSON 객체를 출력하는 엔드포인트의 예제 응답입니다. 분석 구성의 probability를 “prediction” 키로 설정하여 값을 추출합니다.

엔드포인트 요청 페이로드 엔드포인트 응답 페이로드(문자열 표현식)

단일 이미지(객체 1개)

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

단일 이미지(객체 2개)

'{"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]]}'

이미지 데이터에 대한 엔드포인트 요청 및 응답의 사전 확인

모델을 SageMaker 실시간 추론 엔드포인트에 배포하고 엔드포인트에 요청을 보내는 것이 좋습니다. 요청 및 응답을 수동으로 검토합니다. 둘 다 이미지 데이터에 대한 엔드포인트 요청 섹션과 이미지 데이터에 대한 엔드포인트 응답 섹션의 요구 사항을 준수하고 있는지 확인하세요.

다음은 요청을 보내고 이미지 분류 및 객체 감지 문제에 대한 응답을 검사하는 방법을 보여주는 두 가지 코드 예제입니다.

이미지 분류 문제

다음 예제 코드는 엔드포인트에 PNG 파일을 읽도록 지시한 다음 분류합니다.

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

이전 코드 예제에서의 응답 출력은 다음과 같습니다.

[0.1,0.6,0.3]

객체 감지 문제

다음 예제 코드는 엔드포인트에 JPEG 파일을 읽도록 지시한 다음 그 안에 있는 객체를 탐지합니다.

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

이전 코드 예제에서의 응답 출력은 다음과 같습니다.

{"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]]}