本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
图像分类
本教程介绍如何为可对图像中找到的物体、场景和概念进行分类的模型创建项目和数据集。模型对整个图像进行分类。例如,通过遵循本教程,您可以训练模型来识别客厅或厨房等家庭位置。本教程还介绍了如何使用模型来分析图像。
在开始本教程之前,建议您先阅读了解 Amazon Rekognition Custom Labels。
在本教程中,您将通过从本地计算机上传图像来创建训练和测试数据集。稍后,您将为训练和测试数据集中的图像分配图像级标签。
您创建的模型会将图像归类为属于您分配给训练数据集图像的图像级标签集。例如,如果训练数据集中的图像级标签集为 kitchen
、living_room
、patio
和 backyard
,则模型有可能在单张图像中找到所有这些图像级标签。
注意
您可以为不同的目的创建模型,例如在图像上查找物体的位置。有关更多信息,请参阅 确定您的模型类型。
步骤 1:收集图像
您需要两组图像。一组添加到您的训练数据集中。另一组添加到您的测试数据集中。这些图像应代表您希望模型分类的物体、场景和概念。这些图像必须是 PNG 或 JPEG 格式。有关更多信息,请参阅 准备图像。
训练数据集应至少有 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
是您使用 Amazon Rekognition Custom Labels 控制台的 AWS 区域。numbers
是控制台为存储桶名称分配的值。Version number
是示例项目的版本号,从 1 开始。
以下过程会将 Rooms 项目中的图像存储到计算机上名为 training
和 test
的本地文件夹中。
下载 Rooms 示例项目图像文件
创建 Rooms 项目。有关更多信息,请参阅 步骤 1:选择一个示例项目。
打开命令提示符,输入以下命令以下载训练图像。
aws s3 cp s3://custom-labels-console-
region
-numbers
/assets/rooms_version number
_training_dataset/ training --recursive在命令提示符下,输入以下命令以下载测试图像。
aws s3 cp s3://custom-labels-console-
region
-numbers
/assets/rooms_version number
_test_dataset/ test --recursive将 training 文件夹中的两张图像移动到您选择的单独文件夹中。您将在步骤 9:使用模型分析图像中使用这些图像来试用训练后的模型。
步骤 2:决定类别
列出您希望模型查找的类别。例如,如果要训练模型来识别房子中的房间,则可以将以下图像分类为 living_room
。
![舒适惬意的客厅,有壁炉、毛绒沙发和扶手椅,可俯瞰户外。](images/image-classification.jpg)
每个类别都映射到一个图像级标签。稍后,您将为训练和测试数据集中的图像分配图像级标签。
如果您使用的是 Rooms 示例项目中的图像,则图像级标签为 backyard、bathroom、bedroom、closet、entry_way、floor_plan、front_yard、kitchen、living_space 和 patio。
步骤 3:创建项目
要管理您的数据集和模型,您需要创建一个项目。每个项目都应对应一个使用场景,例如识别房子中的房间。
创建项目(控制台)
设置 Amazon Rekognition Custom Labels 控制台(如果尚未如此)。有关更多信息,请参阅 设置 Amazon Rekognition Custom Labels。
通过以下网址登录 AWS Management Console 并打开 Amazon Rekognition 控制台:https://console.aws.amazon.com/rekognition/
。 在左侧窗格中,选择使用自定义标签。随后将显示 Amazon Rekognition Custom Labels 登录页面。
在 Amazon Rekognition Custom Labels 登录页面上,选择开始。
在左侧导航窗格中,选择项目。
在项目页面上,选择创建项目。
在项目名称中输入项目名称。
选择创建项目,创建您的项目。
步骤 4:创建训练和测试数据集
在本步骤中,您将通过从本地计算机上传图像来创建训练和测试数据集。一次最多可以上传 30 张图像。如果您要上传的图像很多,可以考虑通过从 Amazon S3 存储桶导入图像来创建数据集。有关更多信息,请参阅 从 Amazon S3 存储桶导入图像。
有关数据集的更多信息,请参阅管理数据集。
使用本地计算机上的图像创建数据集(控制台)
-
在项目详细信息页面上,选择创建数据集。
-
在开始配置部分,选择从一个训练数据集和一个测试数据集开始。
在训练数据集详细信息部分中,选择从您的计算机上传图像。
-
在测试数据集详细信息部分中,选择从您的计算机上传图像。
选择创建数据集。
此时会显示一个数据集页面,其中包含训练选项卡和测试选项卡,分别对应于相应的数据集。
在数据集页面上,选择训练选项卡。
选择操作,然后选择将图像添加到训练数据集。
在将图像添加到训练数据集对话框中,选择选择文件。
选择要上传到数据集的图像。一次最多可以上传 30 张图像。
选择上传图像。Amazon Rekognition Custom Labels 可能需要几秒钟才能将图像添加到数据集。
如果您有更多图像要添加到训练数据集中,请重复步骤 9-12。
选择测试选项卡。
-
重复步骤 8-12,将图像添加到测试数据集。在步骤 8 中,选择操作,然后选择将图像添加到测试数据集。
步骤 5:向项目中添加标签
在此步骤中,您将为在步骤步骤 2:决定类别中确定的每一个类别向项目中添加一个标签。
添加新标签(控制台)
在数据集库页面中,选择开始标注进入标注模式。
在数据集库的标签部分,选择管理标签,打开管理标签对话框。
在编辑框中,输入新标签名称。
选择添加标签。
重复步骤 3 和 4,直到创建完所需的所有标签。
选择保存,保存您添加的标签。
步骤 6:为训练和测试数据集分配图像级标签
在此步骤中,您将为训练和测试数据集中的每张图像分配一个图像级标签。图像级标签是每张图像所代表的类别。
为图像分配图像级标签(控制台)
在数据集页面上,选择训练选项卡。
选择开始标注,进入标注模式。
选择要添加标签的一张或多张图像。一次只能选择一个页面上的图像。要在一个页面上选择连续范围的图像,请执行以下操作:
选择第一张图像。
按住 Shift 键。
选择第二张图像。这样便可将第一张和第二张图像之间的图像全部选中。
松开 Shift 键。
选择分配图像级标签。
在向选定图像分配图像级标签对话框中,选择要分配给该等图像的标签。
选择分配,将标签分配给图像。
重复标注,直到每张图像都用所需的标签进行注释。
选择测试选项卡。
重复上述步骤为测试数据集中的图像分配图像级标签。
步骤 7:训练模型
按照以下步骤训练您的模型。有关更多信息,请参阅 训练 Amazon Rekognition Custom Labels 模型。
训练模型(控制台)
在数据集页面上,选择训练模型。
在训练模型页面上,选择训练模型。项目的 Amazon 资源名称 (ARN) 位于选择项目编辑框中。
在是否要训练您的模型?对话框中,选择训练模型。
在项目页面的模型部分,您可以看到训练正在进行。可以通过查看模型版本的
Model Status
列,查看当前状态。训练模型需要一些时间才能完成。训练完成后,选择模型名称。当模型状态为 TRAINING_COMPLETED 时,训练即告完成。
选择评估按钮,以查看评估结果。有关评估模型的信息,请参阅改进经过训练的 Amazon Rekognition Custom Labels 模型。
选择查看测试结果,以查看单个测试图像的结果。有关更多信息,请参阅 评估模型的指标。
查看测试结果后,选择模型名称返回模型页面。
步骤 8:启动模型
在此步骤中,您将启动您的模型。模型启动后,您可以用它来分析图像。
您将根据模型运行时间付费。如果您不需要分析图像,请停止模型。您可以稍后重新启动模型。有关更多信息,请参阅 运行经过训练的 Amazon Rekognition Custom Labels 模型。
启动模型
在模型页面上选择使用模型选项卡。
在启动或停止模型部分中,执行以下操作:
选择启动。
在启动模型对话框中,选择启动。
等到模型开始运行。当启动或停止模型部分中的状态为正在运行时,即表示模型正在运行。
步骤 9:使用模型分析图像
您可以通过调用 DetectCustomLabels API 来分析图像。在此步骤中,您将使用 detect-custom-labels
AWS Command Line Interface (AWS CLI) 命令分析示例图像。您可以从 Amazon Rekognition Custom Labels 控制台获取 AWS CLI 命令。控制台将 AWS CLI 命令配置为使用您的模型。您只需要提供存储在 Amazon S3 存储桶中的图像即可。
注意
控制台还提供了调用 Python 示例代码。
detect-custom-labels
的输出包括在图像中找到的标签列表、边界框(如果模型会查找物体位置)以及模型对预测准确性的置信度。
有关更多信息,请参阅 使用经过训练的模型分析图像。
分析图像(控制台)
-
设置 AWS CLI(如果尚未如此)。有关说明,请参阅 步骤 4:设置 AWS CLI 和 AWS SDKs。
-
选择使用模型选项卡,然后选择 API 代码。
选择 AWS CLI 命令。
-
在分析图像部分中,复制调用
detect-custom-labels
的 AWS CLI 命令。 -
将图像上传到 Amazon S3 存储桶。有关说明,请参阅《Amazon Simple Storage Service 用户指南》中的将对象上传到 Amazon S3。如果您使用的是 Rooms 项目中的图像,请使用在步骤 1:收集图像中移动到单独文件夹中的图像之一。
-
在命令提示符处,输入您在上一步中复制的 AWS CLI 命令。它应该类似于以下示例。
--project-version-arn
的值应为模型的 Amazon 资源名称 (ARN)。--region
的值应为您在其中创建模型的 AWS 区域。将
MY_BUCKET
和PATH_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
"}}' \ --regionus-east-1
\ --profile custom-labels-accessAWS CLI 命令的 JSON 输出应类似于以下内容。
Name
是模型找到的图像级标签的名称。Confidence
(0-100) 是模型对预测准确性的置信度。{ "CustomLabels": [ { "Name": "living_space", "Confidence": 83.41299819946289 } ] }
-
继续使用该模型分析其他图像。如果不再使用该模型,请停止模型。
步骤 10:停止模型
在此步骤中,您将停止运行您的模型。您需要按照模型运行的时间付费。如果您已使用完模型,应将其停止。
停止模型
-
在启动或停止模型部分中,选择停止。
-
在停止模型对话框中,输入 stop 以确认要停止模型。
-
选择停止以停止模型。当启动或停止模型部分中的状态为已停止时,即表示模型已停止。