使用 AutoML Vision Edge API 为图片添加标签

本快速入门将引导您完成以下过程:

  • 使用 AutoML Vision Object Detection 创建数据集、训练自定义 AutoML Vision Edge 模型,并进行预测。
  • 导出和使用 AutoML Vision Edge 模型。

在本快速入门中,您将使用界面 (UI) 与 AutoML Vision API 进行交互并导出 AutoML Vision Edge 模型。

准备工作

在使用 AutoML Vision Object Detection 之前,您必须先创建 Google Cloud 项目(尚未用于其他任何 AutoML 产品的项目),然后为该项目启用 AutoML Vision Object Detection。

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Cloud AutoML and Storage API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Cloud AutoML and Storage API。

    启用 API

Beta 版要求

  1. 此 Beta 版功能要求您使用 us-central1 作为指定区域。

准备数据集

在本快速入门中,您将使用通过 Open Images Dataset V4 创建的数据集。 此公开可用的沙拉数据集位于 gs://cloud-ml-data/img/openimage/csv/salads_ml_use.csv

CSV 格式如下:

TRAINING,gs://cloud-ml-data/img/openimage/3/2520/3916261642_0a504acd60_o.jpg,Salad,0.0,0.0954,,,0.977,0.957,,
VALIDATION,gs://cloud-ml-data/img/openimage/3/2520/3916261642_0a504acd60_o.jpg,Seafood,0.0154,0.1538,,,1.0,0.802,,
TEST,gs://cloud-ml-data/img/openimage/3/2520/3916261642_0a504acd60_o.jpg,Tomato,0.0,0.655,,,0.231,0.839,,
数据集图片示例
3916261642_0a504acd60_o.jpg

每行对应一个位于较大图片内的对象,每个对象专门指定为测试数据、训练数据或验证数据。此处包含的三行表示位于同一张图片 (gs://cloud-ml-data/img/openimage/3/2520/3916261642_0a504acd60_o.jpg) 内的三个不同对象。除了具有 Baked goodsCheese 标签的其他行以外,这三行中的每一行具有不同的标签:SaladSeafoodTomato

我们使用左上顶点和右下顶点为每张图片指定边界框:

  • (0,0) 对应于左上角最远处的顶点。
  • (1,1) 对应于右下角最远处的顶点。

对于上面显示的第一行,具有 Salad 标签的对象的左上顶点的 (x, y) 坐标为 (0.0,0.0954),其右下顶点的坐标为 (0.977,0.957)。

如需详细了解如何设置 CSV 文件格式以及创建有效数据集的最低要求,请参阅准备训练数据


创建数据集

  1. 打开 AutoML Vision Object Detection 界面,然后从标题栏的下拉列表中选择您的项目。

    首次打开 AutoML Vision Object Detection 界面时,您需要启用 AutoML API(如果尚未启用)。

  2. 看到提示时,在弹出式窗口中选择开始使用

    选择“开始”选项

  3. 您将转到数据集列表页面。通过选择新建数据集来创建新数据集。

    选择“新建数据集”

    为您的数据集输入一个独一无二的名称。

    为新创建的数据集选择名称

  4. 在随后出现的窗口中输入要导入的训练数据的位置。

    选择 Cloud Storage 上的 CSV 文件文本框中,输入示例 CSV 文件的路径(系统会自动添加 gs:// 前缀):

    cloud-ml-data/img/openimage/csv/salads_ml_use.csv

    您也可以选择浏览,然后导航至某个 Google Cloud Storage 存储桶中的 CSV 文件。

    此快速入门使用暂存在公共 Google Cloud Storage 存储桶中的示例数据。训练数据是您希望模型学习识别的带边界框注释和对象标签的示例 JPG 图片。要将训练数据导入数据集,请使用指向图片(JPEG、PNG、GIF、BMP 或 ICO)文件的 CSV 文件;请参阅准备训练数据以了解有关格式和图片规格的信息。

    创建数据集上传 CSV 图片
  5. 选择导入

    您的数据集会在图片导入期间显示 Running:importing images状态。此过程只需几分钟时间。

成功导入训练数据后,状态列会显示 Success:Creating dataset,界面会显示为数据集生成的 ID(在调用 AutoML API 时使用)以及所导入的项数。

列出数据集图片

如果在导入图片时出现问题,您会看到 Warning: Importing images 的状态。选择数据集名称和详细信息可查看导入特定图片时出现的错误。

导入错误图片

训练模型

  1. 创建数据集并完成相应处理后,选择训练标签页可开始训练模型。

    选择“训练”标签页

  2. 选择开始训练以继续。

    训练新模型选项

    此操作将打开包含训练选项的侧边窗口。

  3. 定义模型训练部分中,更改模型名称并选择 Edge 作为模型类型。选择训练 Edge 模型后,选择继续

    训练 Edge 模型单选按钮图片

  4. 在接下来的模型优化选项部分,选择默认的 最佳权衡 (Best trade-off) 选项。选择优化标准后,再选择继续

    "最佳权衡"单选按钮图片

  5. 在接下来的设置节点时预算部分,使用建议的节点时预算 (24)。

    设置节点预算部分

  6. 选择开始训练以开始训练模型。

    系统将针对您的模型开始训练,训练时间大约为一小时。 训练可能会在达到您选择的节点时之前停止。该服务将在训练完成后或发生任何错误时通过电子邮件通知您。

训练完成后,您可以参考评估指标以及测试和使用模型。

选择评估标签页可详细了解 F1、精确率和召回率分数。

选择过滤标签下的单个标签可详细了解真正例、假负例和假正例。

进行预测

训练完成后,您必须先手动部署模型,然后才能使用模型进行在线预测。

选择测试和使用标签页以部署(和取消部署)模型。 测试和使用页面还包含有关将图片发送到模型进行预测的说明。您还可以参考为图片添加注释中的相关示例。

导出和使用 Edge 模型

使用 AutoML Vision Edge 模型的最后一步是导出(优化和下载)和使用模型。

您可以通过多种方法导出和使用模型,以便在 Edge 设备上进行预测。

在本快速入门中,您将使用 TensorFlow Lite (TF Lite) 作为示例。 TF Lite 模型易于使用,并且适用于多种使用场景。

  1. 使用您的模型下,选择 TF Lite 选项。

    导出 TF Lite 模型

  2. 在打开的侧边窗口中,为导出的模型指定 Google Cloud Storage 位置。

    指定存储位置后,选择导出以将 TF Lite 软件包导出到 Cloud Storage 存储桶中。导出过程通常需要几分钟时间。

    关于为导出的模型选择存储位置的图片

  3. 导出完成后,选择在 Google Cloud Storage 中打开链接以转到 Google Cloud Platform Console 中的 Google Cloud Storage 目标文件夹。

在 Google Cloud Storage 目标位置,您将找到一个以时间戳和模型格式命名的文件夹,其中包含以下文件:

  • 一个 tflite 文件 (model.tflite)
  • 一个字典文件 (dict.txt)
  • 一个元数据文件 (tflite_metadata.json)

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

后续步骤

借助这些文件,您可以按照教程的说明在 Android 设备iOS 设备Raspiberry Pi 3 上使用模型。

使用模型的其他方式:

  • 您也可以将模型导出为 TensorFlow SavedModel,并在容器标签页中将其与 Docker 容器搭配使用。如需了解如何导出到容器,请参阅容器教程
  • 您可以在 Edge 设备标签页中导出模型,以便在 Edge TPU 上运行。 您可以按照此 Edge TPU 官方文档的说明来使用模型。