对图像进行分类 - Rekognition

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

对图像进行分类

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

在开始本教程之前,建议您先阅读了解 Amazon Rekognition Custom Labels

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

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

注意

您可以为不同的目的创建模型,例如在图像上查找物体的位置。有关更多信息,请参阅 确定您的模型类型

步骤 1:收集图像

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

训练数据集应至少有 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 项目中的图像存储到计算机上名为 trainingtest 的本地文件夹中。

下载 Rooms 示例项目图像文件
  1. 创建 Rooms 项目。有关更多信息,请参阅 步骤 1:选择一个示例项目

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

    aws s3 cp s3://custom-labels-console-region-numbers/assets/rooms_version number_training_dataset/ training --recursive
  3. 在命令提示符下,输入以下命令以下载测试图像。

    aws s3 cp s3://custom-labels-console-region-numbers/assets/rooms_version number_test_dataset/ test --recursive
  4. 将 training 文件夹中的两张图像移动到您选择的单独文件夹中。您将在步骤 9:使用模型分析图像中使用这些图像来试用训练后的模型。

步骤 2:决定类别

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

舒适的起居室配有壁炉、毛绒沙发、扶手椅,可俯瞰户外。

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

如果您使用的是 Rooms 示例项目中的图像,则图像级标签为 backyardbathroombedroomclosetentry_wayfloor_planfront_yardkitchenliving_spacepatio

步骤 3:创建项目

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

创建项目(控制台)
  1. 设置 Amazon Rekognition Custom Labels 控制台(如果尚未如此)。有关更多信息,请参阅 设置 Amazon Rekognition Custom Labels

  2. 登录 AWS Management Console 并打开亚马逊 Rekognition 控制台,网址为。https://console.aws.amazon.com/rekognition/

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

  4. 在 Amazon Rekognition Custom Labels 登录页面上,选择开始

  5. 在左侧导航窗格中,选择项目

  6. 在项目页面上,选择创建项目

  7. 项目名称中输入项目名称。

  8. 选择创建项目,创建您的项目。

    用户界面表单用于创建名为 “My-Project” 的新项目,其中包含用于输入项目名称以及取消或创建项目按钮的字段。

步骤 4:创建训练和测试数据集

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

有关数据集的更多信息,请参阅管理数据集

使用本地计算机上的图像创建数据集(控制台)
  1. 在项目详细信息页面上,选择创建数据集

    训练模型工作流程中的创建数据集步骤:创建数据集按钮,用于将图像和标签上传到训练模型。
  2. 开始配置部分,选择从一个训练数据集和一个测试数据集开始

  3. 训练数据集详细信息部分中,选择从您的计算机上传图像

  4. 测试数据集详细信息部分中,选择从您的计算机上传图像

  5. 选择创建数据集

    用于创建训练和测试数据集的用户界面。创建数据集和底部的 “取消” 按钮。
  6. 此时会显示一个数据集页面,其中包含训练选项卡和测试选项卡,分别对应于相应的数据集。

  7. 在数据集页面上,选择训练选项卡。

  8. 选择操作,然后选择将图像添加到训练数据集

    数据集视图显示了在 “操作” 菜单下向训练和测试数据集添加图像的选项。
  9. 将图像添加到训练数据集对话框中,选择选择文件

    用于上传用于训练数据集的图像文件的按钮。
  10. 选择要上传到数据集的图像。一次最多可以上传 30 张图像。

  11. 选择上传图像。Amazon Rekognition Custom Labels 可能需要几秒钟才能将图像添加到数据集。

    网格显示了 11 张准备上传到训练数据集的图像缩略图。
  12. 如果您有更多图像要添加到训练数据集中,请重复步骤 9-12。

  13. 选择测试选项卡。

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

步骤 5:向项目中添加标签

在此步骤中,您将为在步骤步骤 2:决定类别中确定的每一个类别向项目中添加一个标签。

添加新标签(控制台)
  1. 在数据集库页面中,选择开始标注进入标注模式。

    数据集库界面显示了为图像添加标签的步骤:查看、添加标签、使用边界框标记对象位置以及训练模型。“开始标注” 按钮突出显示。
  2. 在数据集库的标签部分,选择管理标签,打开管理标签对话框。

  3. 在编辑框中,输入新标签名称。

  4. 选择添加标签

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

  6. 选择保存,保存您添加的标签。

步骤 6:为训练和测试数据集分配图像级标签

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

为图像分配图像级标签(控制台)
  1. 数据集页面上,选择训练选项卡。

  2. 选择开始标注,进入标注模式。

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

    1. 选择第一张图像。

    2. 按住 Shift 键。

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

    4. 松开 Shift 键。

  4. 选择分配图像级标签

    界面显示了住宅后院的三张图像,带有 “分配图像级别标签” 按钮。
  5. 向选定图像分配图像级标签对话框中,选择要分配给该等图像的标签。

  6. 选择分配,将标签分配给图像。

    对话框显示如何使用 “分配” 按钮为选定图像分配图像级标签 “后院”。
  7. 重复标注,直到每张图像都用所需的标签进行注释。

  8. 选择测试选项卡。

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

步骤 7:训练模型

按照以下步骤训练您的模型。有关更多信息,请参阅 训练 Amazon Rekognition Custom Labels 模型

训练模型(控制台)
  1. 数据集页面上,选择训练模型

    训练模型按钮,用于在当前项目中的数据集上训练机器学习模型。
  2. 训练模型页面上,选择训练模型。您的项目的 Amazon 资源名称 (ARN) 位于选择项目编辑框中。

    显示项目ARN输入字段、空标签部分和训练模型按钮的列车模型配置页面。
  3. 是否要训练您的模型?对话框中,选择训练模型

    询问 “您想训练模型吗?” 的对话框 使用 “取消” 和 “训练模型” 按钮。
  4. 在项目页面的模型部分,您可以看到训练正在进行。可以通过查看模型版本的 Model Status 列,查看当前状态。训练模型需要一些时间才能完成。

    模型状态显示 “TRAINING_IN_PROGRESS”,表示模型当前正在训练中。
  5. 训练完成后,选择模型名称。当模型状态为 TRAINING_ 时,训练结束COMPLETED。

    房间 19 个模型信息显示状态 TRAINING _ COMPLETED 表示模型已准备就绪。
  6. 选择评估按钮,以查看评估结果。有关评估模型的信息,请参阅改进经过训练的 Amazon Rekognition Custom Labels 模型

  7. 选择查看测试结果,以查看单个测试图像的结果。有关更多信息,请参阅 评估模型的指标

    模型评估结果显示 10 个图像标签的 F1 分数、平均精度和总体召回率,每个标签都有每个标签的性能指标。
  8. 查看测试结果后,选择模型名称返回模型页面。

    界面在后院和前院图像数据集上显示训练模型的测试结果,并显示预测的标签和置信度分数。

步骤 8:启动模型

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

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

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

  2. 启动或停止模型部分中,执行以下操作:

    1. 选择启动

      显示启动模型按钮的用户界面以及用于启动或停止机器学习模型以检测自定义标签的选项。选择推理单元的数量以增加吞吐量。
    2. 启动模型对话框中,选择启动

      使用 “开始” 按钮启动模型对话框。
  3. 等到模型开始运行。当启动或停止模型部分中的状态为正在运行时,即表示模型正在运行。

    带有绿色圆圈的运行状态指示器,表示模型当前正在运行,以及用于停止模型或更改推理单元数量的选项。

步骤 9:使用模型分析图像

您可以通过调用来分析图像DetectCustomLabelsAPI。在此步骤中,您将使用 detect-custom-labels AWS Command Line Interface (AWS CLI) 命令分析示例图像。你可以从 Amazon Rekognition 自定义标签控制台获得 AWS CLI 命令。控制台将 AWS CLI 命令配置为使用您的模型。您只需要提供存储在 Amazon S3 存储桶中的图像即可。

注意

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

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

有关更多信息,请参阅 使用经过训练的模型分析图像

分析图像(控制台)
  1. 如果您还没有,请设置 AWS CLI. 有关说明,请参阅 步骤 4:设置 AWS CLI 和 AWS 软件开发工具包

  2. 选择 “使用模型” 选项卡,然后选择API代码

    界面显示模型详情,可选择显示 Amazon 资源名称 (ARN) 和使用模型的API代码。
  3. 选择AWSCLI命令

  4. 分析图像部分中,复制调用的 AWS CLI 命令detect-custom-labels

    AWSCLI命令使用自定义模型分析图像,显示要替换的项目ARN和存储桶名称占位符。
  5. 将图像上传到 Amazon S3 存储桶。有关说明,请参阅《Amazon Simple Storage Service 用户指南》中的将对象上传到 Amazon S3如果您使用的是 Rooms 项目中的图像,请使用在步骤 1:收集图像中移动到单独文件夹中的图像之一。

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

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

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

    如果您使用custom-labels-access配置文件获取证书,请添加--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 } ] }
  7. 继续使用该模型分析其他图像。如果不再使用该模型,请停止模型。

步骤 10:停止模型

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

停止模型
  1. 启动或停止模型部分中,选择停止

    停止按钮用于停止当前正在运行的模型并禁用推理单元。
  2. 停止模型对话框中,输入 stop 以确认要停止模型。

    输入栏中已输入 “停止”,并输入停止按钮以确认停止模型。
  3. 选择停止以停止模型。当启动或停止模型部分中的状态为已停止时,即表示模型已停止。

    已停止状态指示器,说明模型未运行,需要使用 “开始” 按钮或代码示例启动。