开始使用 Amazon Lookout for Vision - Amazon Lookout for Vision

终止支持通知:2025年10月31日, AWS 将停止对亚马逊 Lookout for Vision 的支持。2025 年 10 月 31 日之后,你将无法再访问 Lookout for Vision 主机或 Lookout for Vision 资源。如需更多信息,请访问此博客文章

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

开始使用 Amazon Lookout for Vision

在开始介绍这些开始使用 说明之前,我们建议您先阅读了解 Amazon Lookout for Vision

这些“开始使用”说明将向您展示如何创建示例图像分割模型。如果要创建示例图像分类模型,请参阅图像分类数据集

如果要快速试用示例模型,我们提供了示例训练图像和掩码图像。我们还提供了用于创建图像分割清单文件的 Python 脚本。您可以使用清单文件为自己的项目创建数据集,无需标注数据集中的图像。当使用自己的图像创建模型时,您必须标注数据集中的图像。有关更多信息,请参阅 创建您的数据集

我们提供的图像是正常饼干图像和异常饼干图像。异常饼干的饼干形状上有裂纹。您使用图像训练的模型会预测一种分类(正常或异常),还会找到异常饼干中的裂纹区域(掩码),如以下示例所示。

Chocolate chip cookie with a visible crack across its surface on a green background.

步骤 1:创建清单文件并上传图像

在此过程中,您会将 Amazon Lookout for Vision 文档存储库克隆到您的计算机上。然后,您可以使用 Python(版本 3.7 或更高)脚本创建清单文件,并将训练图像和掩码图像上传到您指定的 Amazon S3 位置。您可以使用清单文件创建自己的模型。随后,您可以使用本地存储库中的测试图像来试用模型。

创建清单文件并上传图像
  1. 按照设置 Amazon Lookout for Vision 部分的说明,设置 Amazon Lookout for Vision。请务必安装适用于 Python 的 AWS SDK

  2. 在您要使用 Lookout for Vision 的 AWS 区域中,创建一个 S3 桶

  3. 在 Amazon S3 桶中,创建一个文件夹,名称为 getting-started

  4. 记下 Amazon S3 URI 和该文件夹的 Amazon 资源名称 (ARN)。您需要使用它们来设置权限和运行脚本。

  5. 确保调用脚本的用户有权调用 s3:PutObject 操作。您可以使用以下策略。若要分配权限,请参阅分配权限

    { "Version": "2012-10-17", "Statement": [{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3::: ARN for S3 folder in step 4/*" ] }] }
  6. 确保您具有名为 lookoutvision-access 的本地配置文件,并且该配置文件的用户具有上一步中的权限。有关更多信息,请参阅 在本地计算机上使用配置文件

  7. 下载压缩文件:getting-started.zip。压缩文件包含入门数据集和设置脚本。

  8. 解压缩 getting-started.zip 文件。

  9. 在命令提示符下,执行以下操作:

    1. 导航到 getting-started 文件夹。

    2. 运行以下命令以创建清单文件,并将训练图像和图像掩码上传到您在步骤 4 中记下的 Amazon S3 路径。

      python getting_started.py S3-URI-from-step-4
    3. 当脚本完成后,记下 train.manifest 文件的路径,该路径在脚本中显示在 Create dataset using manifest file: 之后。该路径应该类似于 s3://path to getting started folder/manifests/train.manifest

步骤 2:创建模型

在此过程中,您将使用之前上传到 Amazon S3 桶的图像和清单文件,创建项目和数据集。然后,您将创建模型并查看模型训练的评估结果。

由于您使用入门清单文件创建数据集,因此无需标注数据集的图像。当使用自己的图像创建数据集时,您确实需要标注图像。有关更多信息,请参阅 标注图像

重要

您需要为成功训练模型付费。

创建模型
  1. 打开 Amazon Lookout for Vision 控制台,网址为 https://console.aws.amazon.com/lookoutvision/

  2. 确保您所在的 AWS 区域与您在步骤 1:创建清单文件并上传图像中创建 Amazon S3 桶时相同。要更改区域,请在导航栏上选择当前所显示区域的名称。然后,选择要切换到的区域。

  3. 选择开始使用

    Amazon Lookout for Vision service description and Get started button highlighted.
  4. 项目部分,选择创建项目

    Dashboard overview with empty statistics and a "Create project" button highlighted.
  5. 创建项目页面上,执行以下操作:

    1. 项目名称中,输入 getting-started

    2. 请选择 Create project(创建项目)。

    Project creation interface for anomaly detection model with project name input field.
  6. 在项目页面上的工作原理部分,选择创建数据集

    Getting-started info page showing steps to prepare dataset and train model.
  7. 创建数据集页面上,执行以下操作:

    1. 选择创建单个数据集

    2. 图像源配置部分,选择导入由 SageMaker Ground Truth 标注的图像

    3. 对于 .manifest 文件位置,请输入您在步骤 1:创建清单文件并上传图像步骤 6.c 中记下的清单文件的 Amazon S3 位置。Amazon S3 位置应该类似于 s3://path to getting started folder/manifests/train.manifest

    4. 选择创建数据集

    Dataset configuration options with single dataset creation selected and image import methods.
  8. 在项目详细信息页面上的图像部分,查看数据集图像。您可以查看每个数据集图像的分类和图像分割信息(掩码和异常标签)。您还可以搜索图像,按标注状态(已标注/未标注)筛选图像,或者按分配给图像的异常标签筛选图像。

    Image labeling interface showing three chocolate chip cookies with cracks, labeled as anomalies.
  9. 在项目详细信息页面上,选择训练模型

    Getting-started page with instructions to prepare datasets and a Train model button.
  10. 训练模型详细信息页面上,选择训练模型

  11. 是否要训练您的模型?对话框中,选择训练模型

  12. 在项目模型页面中,您可以看到训练已经开始。通过查看模型版本的状态列,检查当前状态。完成模型训练至少需要 30 分钟。当状态更改为训练完成时,表示已成功完成训练。

  13. 训练结束后,在模型页面中选择模型 1

    Models page showing one model named Model 1 with Training complete status.
  14. 在模型的详细信息页面中,查看性能指标选项卡中的评估结果。有以下方面的指标:

    • 模型所做分类预测对应的整体模型性能指标(精度召回率F1 分数)。

      Model performance metrics showing 100% precision, recall, and F1 score for 20 test images.
    • 测试图像中发现的异常标签对应的性能指标(平均 IoU、F1 分数)

      Table showing performance metrics for "cracked" label with 10 test images, 86.1% F1 score, and 74.53% Average IoU.
    • 测试图像所做的预测(分类、分割掩码和异常标签)

      Three chocolate chip cookies on dark surfaces, two with green anomalies labeled as "cracked".

    由于模型训练为非确定性,因此您的评估结果可能与此页面上显示的结果有所不同。有关更多信息,请参阅 改进您的 Amazon Lookout for Vision 模型

步骤 3:启动模型

在此步骤中,您将开始托管模型,以便它可以立即用来分析图像。有关更多信息,请参阅 运行经过训练的 Amazon Lookout for Vision 模型

注意

您需要按照模型的运行时间量付费。您将在步骤 5:停止模型中停止模型。

启动模型
  1. 在模型的详细信息页面上,选择使用模型,然后选择将 API 集成到云

    Model 1 page with "Use model" button and dropdown option "Integrate API to the cloud".
  2. AWS CLI 命令部分,复制 start-model AWS CLI 命令。

    AWS CLI command to start a Lookout for Vision model with project and version details.
  3. 确保将 AWS CLI 配置为在您使用 Amazon Lookout for Vision 控制台的同一 AWS 区域内运行。要更改 AWS CLI 使用的 AWS 区域,请参阅安装 AWS SDKS

  4. 在命令提示符下,输入 start-model 命令以启动模型。如果您使用 lookoutvision 配置文件来获取凭证,请添加 --profile lookoutvision-access 参数。例如:

    aws lookoutvision start-model \ --project-name getting-started \ --model-version 1 \ --min-inference-units 1 \ --profile lookoutvision-access

    如果调用成功,将显示以下输出:

    { "Status": "STARTING_HOSTING" }
  5. 返回控制台,在导航窗格中选择模型

    AWSLookout for Vision console showing CLI commands to start model and detect anomalies.
  6. 等待状态列中模型(模型 1)的状态显示为已托管。如果您之前在项目中训练过模型,请等待最新的模型版本完成。

    Model 1 with Hosted status, 100% precision and recall, created on September 21st, 2022.

步骤 4:分析图像

在此步骤中,您将使用自己的模型来分析图像。我们提供了一些示例图像供您使用,它们位于您计算机上 Lookout for Vision 文档存储库中的开始使用 test-images 文件夹中。有关更多信息,请参阅 检测图像中的异常

分析图像
  1. 模型页面上,选择模型 1

    Models table showing Model 1 with Hosted status, creation date, and 100% precision and recall.
  2. 在模型的详细信息页面上,选择使用模型,然后选择将 API 集成到云

    Model 1 page with "Use model" button and dropdown option "Integrate API to the cloud".
  3. AWS CLI 命令部分,复制 detect-anomalies AWS CLI 命令。

    AWS CLI command for detect-anomalies with parameters for project, model version, and image file.
  4. 在命令提示符处,输入上一步中的 detect-anomalies 命令以分析异常图像。对于 --body 参数,请指定您计算机上开始使用 test-images 文件夹中的异常图像。如果您使用 lookoutvision 配置文件来获取凭证,请添加 --profile lookoutvision-access 参数。例如:

    aws lookoutvision detect-anomalies \ --project-name getting-started \ --model-version 1 \ --content-type image/jpeg \ --body /path/to/test-images/test-anomaly-1.jpg \ --profile lookoutvision-access

    该输出值应该类似于以下内容:

    { "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": true, "Confidence": 0.983975887298584, "Anomalies": [ { "Name": "background", "PixelAnomaly": { "TotalPercentageArea": 0.9818974137306213, "Color": "#FFFFFF" } }, { "Name": "cracked", "PixelAnomaly": { "TotalPercentageArea": 0.018102575093507767, "Color": "#23A436" } } ], "AnomalyMask": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAMACA......" } }
  5. 在输出中,请注意以下内容:

    • IsAnomalous 是所预测分类的布尔值。如果图像异常,则为 true,否则为 false

    • Confidence 是浮点值,表示 Amazon Lookout for Vision 对预测的置信度。0 表示最低置信度,1 表示最高置信度。

    • Anomalies 是在图像中发现的异常列表。Name 是异常标签。PixelAnomaly 包括异常区域总百分比 (TotalPercentageArea) 和异常标签的颜色 (Color)。列表中还包括“背景”异常,覆盖图像上发现的异常之外的区域。

    • AnomalyMask 是掩码图像,用于显示所分析图像上的异常位置。

    您可以使用响应中的信息,显示所分析图像和异常掩码的融合,如以下示例所示。有关示例代码,请参阅 显示分类和分割信息

    Chocolate chip cookie with green segmentation highlighting cracked areas, labeled as anomalous.
  6. 在命令提示符下,对开始使用 test-images 文件夹中的正常图像进行分析。如果您使用 lookoutvision 配置文件来获取凭证,请添加 --profile lookoutvision-access 参数。例如:

    aws lookoutvision detect-anomalies \ --project-name getting-started \ --model-version 1 \ --content-type image/jpeg \ --body /path/to/test-images/test-normal-1.jpg \ --profile lookoutvision-access

    该输出值应该类似于以下内容:

    { "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": false, "Confidence": 0.9916400909423828, "Anomalies": [ { "Name": "background", "PixelAnomaly": { "TotalPercentageArea": 1.0, "Color": "#FFFFFF" } } ], "AnomalyMask": "iVBORw0KGgoAAAANSUhEUgAAAkAAAA....." } }
  7. 在输出中,注意 IsAnomalous 的值为 false,表示将该图像分类为无异常。使用 Confidence 有助于确定您对分类的信心。此外,Anomalies 数组只有 background 异常标签。

步骤 5:停止模型

在此步骤中,您将停止模型。您需要按照模型的运行时间量付费。如果不使用模型,您应将其停止。您可以在下次需要时重新启动模型。有关更多信息,请参阅 启动您的 Amazon Lookout for Vision 模型

停止模型
  1. 在导航窗格中,选择模型

    AWSLookout for Vision console showing CLI commands to start model and detect anomalies.
  2. 模型页面中,选择模型 1

    Models table showing Model 1 with Hosted status, creation date, and 100% precision and recall.
  3. 在模型的详细信息页面上,选择使用模型,然后选择将 API 集成到云

    Model 1 page with "Use model" button and dropdown option "Integrate API to the cloud".
  4. AWS CLI 命令部分,复制 stop-model AWS CLI 命令。

    Copy button icon next to AWS CLI command for stopping a Lookout for Vision model.
  5. 在命令提示符下,输入上一步中的 stop-model AWS CLI 命令以停止模型。如果您使用 lookoutvision 配置文件来获取凭证,请添加 --profile lookoutvision-access 参数。例如:

    aws lookoutvision stop-model \ --project-name getting-started \ --model-version 1 \ --profile lookoutvision-access

    如果调用成功,将显示以下输出:

    { "Status": "STOPPING_HOSTING" }
  6. 返回控制台,在左侧导航页面中选择模型

  7. 状态列中的模型状态为训练完成时,表示模型已停止。

后续步骤

当您准备好使用自己的图像创建模型后,请先按照创建您的项目中的说明进行操作。这些说明中包括使用 Amazon Lookout for Vision 控制台和 AWS SDK 创建模型的步骤。

如果您想尝试其他示例数据集,请参阅示例代码和数据集