

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 影像資料要求
<a name="clarify-processing-job-data-format-image"></a>

SageMaker Clarify 處理任務提供解釋映像的支援。本主題提供映像資料的資料格式需求。如需影像資料的詳細資訊，請參閱[分析影像資料，確保電腦視覺可解釋性](clarify-processing-job-run.md#clarify-processing-job-run-cv)。

映像資料集包含一或多個映像檔案。若要識別 SageMaker Clarify 處理任務的輸入資料集，請將名為 `dataset` 的 [ProcessingInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html#sagemaker-CreateProcessingJob-request-ProcessingInputs) 或分析組態 `dataset_uri` 參數設定為您映像檔案的 Amazon S3 URI 字首。

支援的映像檔案格式和副檔名列於下表中。


| 映像格式 | 副檔名 | 
| --- | --- | 
| JPEG | jpg、jpeg | 
| PNG | png | 

將分析組態 `dataset_type` 參數設定為 **application/x-image**。由於該類型不是特定的映像檔案格式，因此 `content_type` 將用於決定映像檔案格式和副檔名。

SageMaker Clarify 處理任務會將每個映像檔載入至三維 [NumPy 陣列](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html)，以便進一步處理。這三個維度包含每個像素的高度、寬度和 RGB 值。

## 端點請求格式
<a name="clarify-processing-job-data-format-image-request"></a>

SageMaker Clarify 處理任務會將映像的原始 RGB 資料轉換為相容的映像格式，例如 JPEG。它在將資料發送到端點進行預測之前執行此操作。支援的映像格式如下。


| 資料格式 | MIME 類型 | 副檔名 | 
| --- | --- | --- | 
| JPEG | `image/jpeg` | jpg、jpeg | 
| PNG | `image/png` | png | 
| NPY | `application/x-npy` | 以上全部 | 

使用分析組態參數 `content_type` 指定請求有效負載的資料格式。如果 `content_type` 未提供，資料格式預設為 `image/jpeg`。

## 端點回應格式
<a name="clarify-processing-job-data-format-image-response"></a>

在收到推論端點調用的回應後，SageMaker Clarify 處理任務還原序列化回應有效負載，然後從中擷取預測。

### 映像分類問題
<a name="clarify-processing-job-data-format-image-response-class"></a>

回應有效負載的資料格式應由分析組態參數 accept\_type 指定。如果 `accept_type` 未提供，資料格式預設為 `application/json`。支援的格式與表格式資料區段中**表格式資料的端點回應**中所述的格式相同。

如需 SageMaker AI 內建影像分類演算法的範例，請參閱 [使用影像分類演算法進行推論](image-classification.md#IC-inference)，該演算法會接受單一影像，然後傳回一系列機率值 (分數)，每個機率值代表一個類別。

如下表所示，當 `content_type` 參數設定為 `application/jsonlines` 時，回應作為 JSON 格式匯出物件。


| 端點請求有效負載 | 端點回應有效負載 (字串表示) | 
| --- | --- | 
| 單張映像 | '{"預測":[0.1,0.6,0.3]}' | 

在先前的範例中，將 `probability` 參數設定為 JMESPath 表達式 “prediction” 以擷取分數。

當 `content_type` 設定為 `application/json` 時，回應為 JSON 物件，如下表所示。


| 端點請求有效負載 | 端點回應有效負載 (字串表示) | 
| --- | --- | 
| 單張映像 | '[0.1,0.6,0.3]' | 

在先前的範例中，設定 `probability` 為 JMESPath 表達式 “[\*]”，以擷取數組的所有元素。在先前的範例中，[`0.1, 0.6, 0.3]` 被擷取。或者，如果您略過設定 `probability` 組態參數，則也會擷取陣列的所有元素。這是因為整個有效負載被反序列化為預測。

### 物件偵測問題
<a name="clarify-processing-job-data-format-object-response-class"></a>

分析組態 `accept_type` 預設為 `application/json`，且唯一支援的格式是物件偵測推論格式。如需回應格式的詳細資訊，請參閱[回應格式](object-detection-in-formats.md#object-detection-recordio)。

下表是來自輸出陣列之端點的範例回應。陣列的每個元素都是值陣列，其中包含類別索引、可信度分數，以及偵測到物件的邊界框座標。


| 端點請求有效負載 | 端點回應有效負載 (字串表示) | 
| --- | --- | 
| 單一映像 (一個物件) | '[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]' | 
| 單一映像 (兩個物件) | '[[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” 以擷取值。


| 端點請求有效負載 | 端點回應有效負載 (字串表示) | 
| --- | --- | 
| 單一映像 (一個物件) | '{"預測":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]}' | 
| 單一映像 (兩個物件) | '{"預測":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244],[0.0, 0.73376623392105103, 0.5714187026023865, 0.40427327156066895, 0.827075183391571, 0.9712159633636475]]}' | 

## 預先檢查端點請求和回應映像資料
<a name="clarify-processing-job-data-format-object-precheck"></a>

我們建議您將模型部署到 SageMaker AI 即時推論端點，然後將請求傳送到端點。手動檢查請求和回應。請確定兩者都符合**端點映像資料請求**區段和**映像資料的端點回應**區段中的需求。

以下是兩個程式碼範例，示範如何傳送請求，以及如何檢查映像分類和物件偵測問題的回應。

### 映像分類問題
<a name="clarify-processing-job-data-format-object-precheck-class"></a>

下列範例程式碼會指示端點讀取 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]
```

### 物件偵測問題
<a name="clarify-processing-job-data-format-object-precheck-object"></a>

下列範例程式碼會指示端點讀取 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]]}
```