

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 映像数据要求
<a name="clarify-processing-job-data-format-image"></a>

 SageMaker 澄清处理作业为解释图像提供支持。本主题提供对图像数据的数据格式要求。有关处理映像数据的信息，请参阅 [分析图像数据以实现计算机视觉可解释性](clarify-processing-job-run.md#clarify-processing-job-run-cv)。

图像数据集包含一个或多个图像文件。要识别 Clarify SageMaker 处理任务的输入数据集，请将[ProcessingInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html#sagemaker-CreateProcessingJob-request-ProcessingInputs)命名`dataset`或分析配置`dataset_uri`参数设置为图像文件的 Amazon S3 URI 前缀。

下表列出了支持的图像文件格式和文件扩展名。


| 图像格式 | 文件扩展名 | 
| --- | --- | 
| JPEG | jpg、jpeg | 
| PNG | png | 

将分析配置 `dataset_type` 参数设置为 **application/x-image**。由于该类型不是特定的图像文件格式，因此将使用 `content_type` 来决定图像文件的格式和扩展名。

Cl SageMaker arify 处理任务将每个图像文件加载到三维[NumPy数组](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html)中以进行进一步处理。这三个维度包括每个像素的高度、宽度和 RGB 值。

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

Cl SageMaker arify 处理任务将图像的原始 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>

收到推理端点调用的响应后，Clarify 处理任务会 SageMaker 反序列化响应有效负载，然后从中提取预测。

### 图像分类问题
<a name="clarify-processing-job-data-format-image-response-class"></a>

响应负载的数据格式应由分析配置参数 accept\_type 指定。如果未提供 `accept_type`，则数据格式默认为 `application/json`。支持的格式与表格数据部分中**表格数据的端点响应**中描述的格式相同。

[使用图像分类算法进行推理](image-classification.md#IC-inference)有关 SageMaker 人工智能内置图像分类算法的示例，该算法接受单个图像，然后返回一个概率值（分数）数组，每个概率值对应一个类别。

如下表所示，当 `content_type` 参数设置为 `application/jsonlines` 时，响应将是一个 JSON 对象。


| 端点请求负载 | 端点响应负载（字符串表示形式） | 
| --- | --- | 
| 单个图像 | '{"prediction":[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" 以提取值。


| 端点请求负载 | 端点响应负载（字符串表示形式） | 
| --- | --- | 
| 单个图像（一个对象） | '{"prediction":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]}' | 
| 单个图像（两个对象） | '{"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]]}' | 

## Pre-check 图像数据的端点请求和响应
<a name="clarify-processing-job-data-format-object-precheck"></a>

我们建议您将模型部署到 A SageMaker I 实时推理终端节点，然后向该终端节点发送请求。手动检查请求和响应。确保两者都符合**图像数据的端点请求**部分和**图像数据的端点响应**部分中的要求。

以下两个代码示例说明了如何发送请求并检查图像分类问题和对象检测问题的响应。

### 图像分类问题
<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]]}
```