数据集包含您想要分类的内容类型的代表性样本,这些样本使用标签和边界框进行注释。数据集用作训练模型的输入。
构建数据集的主要步骤如下:
创建数据集
如需使用 AutoML API 创建自定义模型,首先需要创建一个空数据集,该数据集最终将保存模型的训练数据。
在 AutoML Vision Object Detection 正式版 (GA) 发布后,此请求会返回长时间运行的操作的 ID。
长时间运行的操作完成后,您可以将图片导入到该数据集中。 在您将图片导入到新创建的数据集之前,该数据集不包含任何数据。
保存响应中新数据集的 ID 以用于其他操作,例如,将图片导入到数据集中并训练模型。
网页界面
在 AutoML Vision Object Detection 界面中,您可以创建新数据集并在同一页面将图片导入其中。打开 AutoML Vision Object Detection 界面。
数据集页面会显示之前为当前项目创建的数据集的状态。
如需为其他项目添加数据集,请从标题栏右上角的下拉列表中选择项目。
点击标题栏中的新建数据集按钮。
在新建数据集弹出式窗口中,输入数据集的名称,然后选择“创建数据集”选项。
创建空数据集后,您将进入数据集详情页面中的导入标签页。然后,您可以指定 .csv 文件的 Google Cloud Storage 位置,该文件列出了要包含在数据集中的训练图片。这些训练图片本身必须同样存储在 Google Cloud Storage 存储分区中。
如需创建数据集,您必须从 Google Cloud Storage 中上传包含训练图片及其关联边界框和标签的 .csv 文件。
导入完成后,您可以在界面中添加、移除或修改任何注释。
选择导入。
此时您将返回到数据集页面;您的数据集会在图片导入期间显示一个进行中动画。此过程所需的时间大约为每 1000 个样本 10 分钟,但有可能更长或更短。
REST
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- display-name:您选择的字符串显示名。
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets
请求 JSON 正文:
{ "displayName": "DISPLAY_NAME", "imageObjectDetectionDatasetMetadata": { } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。可以使用操作 ID(本例中为 IOD3819960680614725486
)来获取任务的状态。如需查看示例,请参阅处理长时间运行的操作:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
长时间运行的操作完成后,您可以使用同样的操作状态请求来获取数据集的 ID。响应应类似如下所示:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/IOD5496445433112696489" } }
Go
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Java
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Node.js
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Python
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Vision Object Detection 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Vision Object Detection 参考文档。
Ruby 版: 请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Vision Object Detection 参考文档。
将图片导入数据集
创建数据集后,您可以从存储在 Google Cloud Storage 存储分区的 CSV 文件中导入各图片的 URI 和带标签的边界框。
如需详细了解如何准备数据并创建 CSV 文件以供导入,请参阅准备训练数据。 如需详细了解如何在导入图片后修改图片注释,请参阅为导入的训练图片添加注释。
您可以将图片导入到空数据集中或已包含训练图片的数据集中。
网页界面
在 AutoML Vision Object Detection 界面中,数据集创建步骤和图片导入步骤会按连续步骤组合执行。
将图片导入到空数据集中:
对于后续的数据集创建过程,系统会在创建空数据集后提示您直接导入图片,但此时不需要执行这一导入步骤。
如需将图片导入到空数据集中,请完成以下步骤:
在数据集页面中,选择空数据集。
在导入页面上,添加 .csv 文件的 Google Cloud Storage 位置。指明 .csv 文件在 Google Cloud Storage 中的位置后,选择导入以开始文件导入过程。
将图片导入到非空数据集中:
您可以选择向已包含训练图片的数据集中添加更多训练图片。
如需将训练图片添加到非空数据集中,请完成以下步骤:
在数据集页面中,选择非空数据集。
选择非空数据集,即可进入数据集详情 (Dataset details) 页面。
在数据集详情页面上,选择导入标签页。
选择导入标签页即可进入创建数据集页面。 然后,您可以指定 .csv 文件的 Google Cloud Storage 位置,并选择导入以开始图片导入过程。
REST
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- dataset-id:您的数据集的 ID。此 ID 是数据集名称的最后一个元素。例如:
- 数据集名称:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 数据集 ID:
3104518874390609379
- 数据集名称:
- input-storage-path:存储在 Google Cloud Storage 中的 CSV 文件的路径。 发出请求的用户必须至少具有相应存储分区的读取权限。
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
请求 JSON 正文:
{ "inputConfig": { "gcsSource": { "inputUris": ["INPUT_STORAGE_PATH"] } } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData" | Select-Object -Expand Content
您应该会看到类似如下所示的输出。可以使用操作 ID 来获取任务的状态。如需查看示例,请参阅处理长时间运行的操作。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T15:56:29.176485Z", "importDataDetails": {} } }
Go
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Java
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Node.js
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
Python
在试用此示例之前,请按照客户端库页面中与此编程语言对应的设置说明执行操作。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Vision Object Detection 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Vision Object Detection 参考文档。
Ruby 版: 请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Vision Object Detection 参考文档。
为导入的训练图片添加注释主题介绍了如何在界面中手动为图片添加边界框和标签,以及如何列出标签统计信息。
管理数据集主题包含有关如何使用数据集资源的详细信息,例如如何列出、获取、导出或删除数据集。
处理长时间运行的操作
REST
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 GCP 项目 ID。
- operation-id:您的操作的 ID。此 ID 是操作名称的最后一个元素。例如:
- 操作名称:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- 操作 ID:
IOD5281059901324392598
- 操作名称:
HTTP 方法和网址:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
完成创建模型操作后,您应会看到如下输出:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Java
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Node.js
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
Python
在试用此示例之前,请按照 API 与参考文档 > 客户端库页面上与此编程语言对应的设置说明进行操作。
其他语言
C#: 请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Vision 参考文档。
PHP: 请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Vision 参考文档。
Ruby 版: 请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Vision 参考文档。