

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

# 图像分类
<a name="tutorial-classification"></a>

本教程介绍如何为可对图像中找到的物体、场景和概念进行分类的模型创建项目和数据集。模型对整个图像进行分类。例如，通过遵循本教程，您可以训练模型来识别客厅或厨房等家庭位置。本教程还介绍了如何使用模型来分析图像。

在开始本教程之前，建议您先阅读[了解 Amazon Rekognition Custom Labels](understanding-custom-labels.md)。

在本教程中，您将通过从本地计算机上传图像来创建训练和测试数据集。稍后，您将为训练和测试数据集中的图像分配图像级标签。

您创建的模型会将图像归类为属于您分配给训练数据集图像的图像级标签集。例如，如果训练数据集中的图像级标签集为 `kitchen`、`living_room`、`patio` 和 `backyard`，则模型有可能在单张图像中找到所有这些图像级标签。

**注意**  
您可以为不同的目的创建模型，例如在图像上查找物体的位置。有关更多信息，请参阅 [确定您的模型类型](understanding-custom-labels.md#tm-intro-model-type)。

## 步骤 1：收集图像
<a name="tutorial-classify-images-collect-images"></a>

您需要两组图像。一组添加到您的训练数据集中。另一组添加到您的测试数据集中。这些图像应代表您希望模型分类的物体、场景和概念。这些图像必须是 PNG 或 JPEG 格式。有关更多信息，请参阅 [准备图像](md-prepare-images.md)。

训练数据集应至少有 10 张图像，测试数据集应至少有 10 张图像。

如果您还没有图像，请使用 *Rooms* 示例分类项目中的图像。创建项目后，训练和测试图像将位于以下 Amazon S3 存储桶位置：
+ 训练图像：`s3://custom-labels-console-{{region}}-{{numbers}}/assets/rooms_{{version number}}_test_dataset/`
+ 测试图像：`s3://custom-labels-console-{{region}}-{{numbers}}/assets/rooms_{{version number}}_test_dataset/`

`region`是您使用亚马逊 Rekognition 自定义标签控制台 AWS 的地区。 `numbers`是控制台为存储桶名称分配的值。 `Version number`是示例项目的版本号，从 1 开始。

以下过程会将 Rooms 项目中的图像存储到计算机上名为 `training` 和 `test` 的本地文件夹中。

**下载 Rooms 示例项目图像文件**

1. 创建 Rooms 项目。有关更多信息，请参阅 [步骤 1：选择一个示例项目](gs-step-choose-example-project.md)。

1. 打开命令提示符，输入以下命令以下载训练图像。

   ```
   aws s3 cp s3://custom-labels-console-{{region}}-{{numbers}}/assets/rooms_{{version number}}_training_dataset/ training --recursive
   ```

1. 在命令提示符下，输入以下命令以下载测试图像。

   ```
   aws s3 cp s3://custom-labels-console-{{region}}-{{numbers}}/assets/rooms_{{version number}}_test_dataset/ test --recursive
   ```

1. 将 training 文件夹中的两张图像移动到您选择的单独文件夹中。您将在[步骤 9：使用模型分析图像](#tutorial-step-get-a-prediction)中使用这些图像来试用训练后的模型。

## 步骤 2：决定类别
<a name="tutorial-classify-images-decide-categories"></a>

列出您希望模型查找的类别。例如，如果要训练模型来识别房子中的房间，则可以将以下图像分类为 `living_room`。

![舒适惬意的客厅，有壁炉、毛绒沙发和扶手椅，可俯瞰户外。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/image-classification.jpg)


每个类别都映射到一个图像级标签。稍后，您将为训练和测试数据集中的图像分配图像级标签。

如果您使用的是 Rooms 示例项目中的图像，则图像级标签为 *backyard*、*bathroom*、*bedroom*、*closet*、*entry\_way*、*floor\_plan*、*front\_yard*、*kitchen*、*living\_space* 和 *patio*。

## 步骤 3：创建项目
<a name="tutorial-classify-images-create-project"></a>

要管理您的数据集和模型，您需要创建一个项目。每个项目都应对应一个使用场景，例如识别房子中的房间。

**创建项目（控制台）**

1. 设置 Amazon Rekognition Custom Labels 控制台（如果尚未如此）。有关更多信息，请参阅 [设置 Amazon Rekognition Custom Labels](setting-up.md)。

1. 登录 AWS 管理控制台 并打开亚马逊 Rekognition 控制台，网址为。[https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)

1. 在左侧窗格中，选择**使用自定义标签**。随后将显示 Amazon Rekognition Custom Labels 登录页面。

1. 在 Amazon Rekognition Custom Labels 登录页面上，选择**开始**。

1. 在左侧导航窗格中，选择**项目**。

1. 在项目页面上，选择**创建项目**。

1. 在**项目名称**中输入项目名称。

1. 选择**创建项目**，创建您的项目。  
![UI 窗体用于创建名为“My-Project”的新项目，其中包含一个用于输入项目名称的字段以及“取消”或“创建项目”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-create-project.jpg)

## 步骤 4：创建训练和测试数据集
<a name="tutorial-classify-images-create-datasets"></a>

在本步骤中，您将通过从本地计算机上传图像来创建训练和测试数据集。一次最多可以上传 30 张图像。如果您要上传的图像很多，可以考虑通过从 Amazon S3 存储桶导入图像来创建数据集。有关更多信息，请参阅 [从 Amazon S3 存储桶导入图像](md-create-dataset-s3.md)。

有关数据集的更多信息，请参阅[管理数据集](managing-dataset.md)。

**使用本地计算机上的图像创建数据集（控制台）**

1. 在项目详细信息页面上，选择**创建数据集**。  
![训练模型工作流中的创建数据集步骤：“创建数据集”按钮用于上传图像和标签以训练模型。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-create-dataset.jpg)

1. 在**开始配置**部分，选择**从一个训练数据集和一个测试数据集开始**。

1. 在**训练数据集详细信息**部分中，选择**从您的计算机上传图像**。

1. 在**测试数据集详细信息**部分中，选择**从您的计算机上传图像**。

1. 选择**创建数据集**。  
![用户界面用于创建训练和测试数据集。底部的“创建数据集”和“取消”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-project-details-create-dataset.jpg)

1. 此时会显示一个数据集页面，其中包含**训练**选项卡和**测试**选项卡，分别对应于相应的数据集。

1. 在数据集页面上，选择**训练**选项卡。

1.  选择**操作**，然后选择**将图像添加到训练数据集**。  
![数据集视图的“操作”菜单下显示将图像添加到训练和测试数据集的选项。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-action-add-images.jpg)

1. 在**将图像添加到训练数据集**对话框中，选择**选择文件**。  
![按钮用于上传图像文件以训练数据集。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-dialog-choose-files.jpg)

1. 选择要上传到数据集的图像。一次最多可以上传 30 张图像。

1. 选择**上传图像**。Amazon Rekognition Custom Labels 可能需要几秒钟才能将图像添加到数据集。  
![网格显示 11 张准备上传到训练数据集的图像缩略图。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-dialog-upload-images.jpg)

1. 如果您有更多图像要添加到训练数据集中，请重复步骤 9-12。

1. 选择**测试**选项卡。

1. 重复步骤 8-12，将图像添加到测试数据集。在步骤 8 中，选择**操作**，然后选择**将图像添加到测试数据集**。

## 步骤 5：向项目中添加标签
<a name="tutorial-classify-images-add-labels"></a>

在此步骤中，您将为在步骤[步骤 2：决定类别](#tutorial-classify-images-decide-categories)中确定的每一个类别向项目中添加一个标签。

**添加新标签（控制台）**

1. 在数据集库页面中，选择**开始标注**进入标注模式。  
![数据集库界面显示标注图像的步骤：查看图像，添加标签，使用边界框标注对象位置，然后训练模型。“开始标注”按钮突出显示。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-start-labeling.jpg)

1. 在数据集库的**标签**部分，选择**管理标签**，打开**管理标签**对话框。

1. 在编辑框中，输入新标签名称。

1. 选择**添加标签**。

1. 重复步骤 3 和 4，直到创建完所需的所有标签。

1. 选择**保存**，保存您添加的标签。

## 步骤 6：为训练和测试数据集分配图像级标签
<a name="tutorial-classify-images-assign-image-level-labels"></a>

在此步骤中，您将为训练和测试数据集中的每张图像分配一个图像级标签。图像级标签是每张图像所代表的类别。

**为图像分配图像级标签（控制台）**

1. 在**数据集**页面上，选择**训练**选项卡。

1. 选择**开始标注**，进入标注模式。

1. 选择要添加标签的一张或多张图像。一次只能选择一个页面上的图像。要在一个页面上选择连续范围的图像，请执行以下操作：

   1. 选择第一张图像。

   1. 按住 Shift 键。

   1. 选择第二张图像。这样便可将第一张和第二张图像之间的图像全部选中。

   1. 松开 Shift 键。

1. 选择**分配图像级标签**。  
![界面显示三张住宅后院的图像，带有“分配图像级标签”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-assign-image-level-labels.jpg)

1. 在**向选定图像分配图像级标签**对话框中，选择要分配给该等图像的标签。

1. 选择**分配**，将标签分配给图像。  
![对话框显示如何使用“分配”按钮为选定图像分配图像级标签“backyard”。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-dialog-assign-image-level-label.jpg)

1. 重复标注，直到每张图像都用所需的标签进行注释。

1. 选择**测试**选项卡。

1. 重复上述步骤为测试数据集中的图像分配图像级标签。

## 步骤 7：训练模型
<a name="tutorial-classify-images-step-4"></a>

按照以下步骤训练您的模型。有关更多信息，请参阅 [训练 Amazon Rekognition Custom Labels 模型](training-model.md)。

**训练模型（控制台）**

1. 在**数据集**页面上，选择**训练模型**。  
![“训练模型”按钮用于在当前项目中的数据集上训练机器学习模型。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-train-model.jpg)

1. 在**训练模型**页面上，选择**训练模型**。项目的 Amazon 资源名称 (ARN) 位于**选择项目**编辑框中。  
![训练模型配置页面显示“项目 ARN”输入字段、空“标签”部分和“训练模型”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-train-model-page-train-model.jpg)

1. 在**是否要训练您的模型？**对话框中，选择**训练模型**。  
![对话框询问“是否要训练您的模型？” 带有“取消”和“训练模型”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-dialog-train-model.jpg)

1. 在项目页面的**模型**部分，您可以看到训练正在进行。可以通过查看模型版本的 `Model Status` 列，查看当前状态。训练模型需要一些时间才能完成。  
![模型状态显示“TRAINING_IN_PROGRESS”，表示当前正在训练该模型。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-training-progress.jpg)

1. 训练完成后，选择模型名称。当模型状态为 **TRAINING\_COMPLETED** 时，训练即告完成。  
![房间 19 模型信息显示状态 TRAINING_COMPLETED，表示模型已准备就绪。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-choose-model.jpg)

1. 选择**评估**按钮，以查看评估结果。有关评估模型的信息，请参阅[改进经过训练的 Amazon Rekognition Custom Labels 模型](improving-model.md)。

1. 选择**查看测试结果**，以查看单个测试图像的结果。有关更多信息，请参阅 [评估模型的指标](im-metrics-use.md)。  
![模型评测结果显示 10 个图像标签的 F1 分数、平均精度和总体召回率，以及每个标签的性能指标。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-training-results.jpg)

1. 查看测试结果后，选择模型名称返回模型页面。  
![界面显示后院和前院图像数据集上经过训练的模型的测试结果，并显示预测的标签和置信度分数。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-image-test-results.jpg)

## 步骤 8：启动模型
<a name="tutorial-step-start-model"></a>

在此步骤中，您将启动您的模型。模型启动后，您可以用它来分析图像。

您将根据模型运行时间付费。如果您不需要分析图像，请停止模型。您可以稍后重新启动模型。有关更多信息，请参阅 [运行经过训练的 Amazon Rekognition Custom Labels 模型](running-model.md)。

**启动模型**

1. 在模型页面上选择**使用模型**选项卡。

1. 在**启动或停止模型**部分中，执行以下操作：

   1. 选择**启动**。  
![用户界面显示“启动模型”按钮，并提供用于启动或停止机器学习模型以检测自定义标签的选项。选择推理单位的数量以提高吞吐量。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-start-model.jpg)

   1. 在**启动模型**对话框中，选择**启动**。  
![带有“启动”按钮的“启动模型”对话框。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/tutorial-start-model-dialog.jpg)

1. 等到模型开始运行。当**启动或停止模型**部分中的状态为**正在运行**时，即表示模型正在运行。  
![“正在运行”状态指示器带有绿色圆圈（表示模型当前正在运行），并提供用于停止模型或更改推理单位数量的选项。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-start-model-running.jpg)

## 步骤 9：使用模型分析图像
<a name="tutorial-step-get-a-prediction"></a>

您可以通过调用 [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels)API 来分析图像。在此步骤中，您将使用 `detect-custom-labels` AWS Command Line Interface (AWS CLI) 命令分析示例图像。你可以从 Amazon Rekognition 自定义标签控制台获得 AWS CLI 命令。控制台将 AWS CLI 命令配置为使用您的模型。您只需要提供存储在 Amazon S3 存储桶中的图像即可。

**注意**  
控制台还提供了调用 Python 示例代码。

`detect-custom-labels` 的输出包括在图像中找到的标签列表、边界框（如果模型会查找物体位置）以及模型对预测准确性的置信度。

有关更多信息，请参阅 [使用经过训练的模型分析图像](detecting-custom-labels.md)。

**分析图像（控制台）**

1. 如果您还没有，请设置 AWS CLI. 有关说明，请参阅[步骤 4：设置 AWS CLI 和 AWS SDKs](su-awscli-sdk.md)。

1. 选择**使用模型**选项卡，然后选择 **API 代码**。  
![界面显示模型详细信息，并提供用于显示 Amazon 资源名称（ARN）和 API 代码以使用模型的选项。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-use-model-api-code.png)

1. 选择 **AWS CLI 命令**。

1. 在**分析图像部分中**，复制调用的 AWS CLI 命令`detect-custom-labels`。  
![AWS CLI 命令可使用自定义模型分析图像，显示要替换的项目 ARN 和存储桶名称占位符。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-cli-code-analyze.png)

1. 将图像上传到 Amazon S3 存储桶。有关说明，请参阅《Amazon Simple Storage Service 用户指南》中的[将对象上传到 Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html)。**如果您使用的是 Rooms 项目中的图像，请使用在[步骤 1：收集图像](#tutorial-classify-images-collect-images)中移动到单独文件夹中的图像之一。

   

1. 在命令提示符处，输入您在上一步中复制的 AWS CLI 命令。它应该类似于以下示例。

   `--project-version-arn` 的值应为模型的 Amazon 资源名称 (ARN)。`--region` 的值应为您在其中创建模型的 AWS 区域。

   将 `MY_BUCKET` 和 `PATH_TO_MY_IMAGE` 更改为您在上一步中使用的 Amazon S3 存储桶和图像。

   如果您使用 [custom-labels-access](su-sdk-programmatic-access.md#su-sdk-programmatic-access-customlabels-examples) 配置文件来获取凭证，请添加 `--profile custom-labels-access` 参数。

   ```
   aws rekognition detect-custom-labels \
     --project-version-arn "{{model_arn}}" \
     --image '{"S3Object": {"Bucket": "{{MY_BUCKET}}","Name": "{{PATH_TO_MY_IMAGE}}"}}' \
     --region {{us-east-1}} \
     --profile custom-labels-access
   ```

    AWS CLI 命令的 JSON 输出应类似于以下内容。`Name` 是模型找到的图像级标签的名称。`Confidence` (0-100) 是模型对预测准确性的置信度。

   ```
   {
       "CustomLabels": [
           {
               "Name": "living_space",
               "Confidence": 83.41299819946289
           }
       ]
   }
   ```

1. 继续使用该模型分析其他图像。如果不再使用该模型，请停止模型。

## 步骤 10：停止模型
<a name="tutorial-step-stop-model"></a>

在此步骤中，您将停止运行您的模型。您需要按照模型运行的时间付费。如果您已使用完模型，应将其停止。

**停止模型**

1. 在**启动或停止模型**部分中，选择**停止**。  
![“停止”按钮用于停止当前正在运行的模型并禁用推理单位。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-stop-model.jpg)

1. 在**停止模型**对话框中，输入 **stop** 以确认要停止模型。  
![输入字段（已输入“stop”），以及用于确认停止模型的“停止”按钮。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-stop-model-dialog.jpg)

1. 选择**停止**以停止模型。当**启动或停止模型**部分中的状态为**已停止**时，即表示模型已停止。  
![“已停止”状态指示器说明模型未运行，需要使用“启动”按钮或代码示例启动模型。](http://docs.aws.amazon.com/zh_cn/rekognition/latest/customlabels-dg/images/get-started-stopped-model.jpg)