データセットには、分類したいコンテンツの種類の代表サンプルが含まれ、ラベルと境界ボックスでアノテーションが付けられています。このデータセットを入力として利用してモデルをトレーニングします。
データセットの主な作成手順は次のとおりです。
- データセットを作成し、覚えやすい名前をつけます。
- データセットにデータの例をインポートします。
- 画像の境界ボックスやラベルを追加、削除、変更するには、インポートした画像のアノテーションを変更します。
データセットの作成
AutoML API を使用してカスタムモデルを作成する最初のステップは、最終的にモデルのトレーニング用データを保持するための空のデータセットを作成することです。
AutoML Vision Object Detection の一般提供(GA)リリース以降では、このリクエストは長時間実行オペレーションの ID を返します。
長時間実行オペレーションが完了すると、画像をインポートできます。新しく作成したデータセットには、画像をインポートするまでデータは含まれません。
コマンドのレスポンスから得た新しいデータセットのデータセット ID を保存して、データセットへの画像のインポートやモデルのトレーニングなどの操作に使用します。
ウェブ UI
AutoML Vision Object Detection UI を使用すると、新しいデータセットの作成とデータセットへの画像のインポートを同じページで行えます。AutoML Vision Object Detection UI を開きます。
[データセット] ページに、現在のプロジェクトにこれまでに作成されたデータセットのステータスが表示されます。
別のプロジェクトのデータセットを追加するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
タイトルバーの [新しいデータセット] ボタンをクリックします。
[データセットを作成] ポップアップ ウィンドウで、データセットの名前を入力し、「データセットを作成」オプションを選択します。
空のデータセットを作成したら、データセットの詳細ページの [インポート] タブに移動します。データセットに含めるトレーニング用画像のリストを含む .csv ファイルの Google Cloud Storage の場所を指定できます。これらのトレーニング用画像は、同様に Google Cloud Storage バケットに保存する必要があります。
データセットを作成するには、トレーニング用画像を含む .csv ファイルと、関連付けられた境界ボックスと Google Cloud Storage のラベルをアップロードする必要があります。
インポートが完了すると、UI でアノテーションを追加、削除、変更できるようになります。
[インポート] を選択します。
[データセット] ページに戻ります。画像のインポート中は、データセットに進行中アニメーションが表示されます。このプロセスにかかる時間は画像 1,000 枚あたり約 10 分ですが、前後する場合もあります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- display-name: 選択した文字列の表示名。
HTTP メソッドと URL:
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 リファレンス ドキュメントをご覧ください。
画像をデータセットにインポートする
データセットを作成したら、画像の URI とラベル付き境界ボックスを Google Cloud Storage バケットに格納された CSV ファイルからインポートできます。
データの準備とインポート用の CSV ファイルの作成の詳細については、トレーニング データの準備をご覧ください。画像のインポート後に画像のアノテーションを変更する方法については、インポートされたトレーニング用画像にアノテーションを追加するをご覧ください。
画像を空のデータセットやトレーニング用画像が含まれているデータセットにインポートできます。
ウェブ UI
AutoML Vision Object Detection の場合、データセットの作成と画像のインポートは UI で連続したステップで行われます。
空のデータセットへの画像のインポート
その後のデータセットの作成では、空のデータセットの作成後に画像を直接インポートするよう求められますので、このインポートは不要です。
空のデータセットに画像をインポートするには、次の手順を実行します。
[データセット] ページから空のデータセットを選択します。
[インポート] ページで、.csv ファイルの Google Cloud Storage の場所を追加します。Google Cloud Storage で.csv ファイルの場所を指定したら、[インポート] を選択してファイルのインポート処理を開始します。
空ではないデータセットへの画像のインポート
トレーニング用画像がすでに含まれているデータセットにトレーニング用画像を追加することもできます。
トレーニング用画像を空ではないデータセットに追加するには:
[データセット] ページから空でないデータセットを選択します。
空でないデータセットを選択すると、データセットの詳細ページが表示されます。
[データセットの詳細] ページで、[インポート] タブを選択します。
[インポート] タブを選択すると、[データセットの作成] ページが表示されます。次に、.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 メソッドと URL:
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 リファレンス ドキュメントをご覧ください。
インポートしたトレーニング用画像にアノテーションを追加するでは、UI の画像に境界ボックスやラベルを手動で追加する方法、ラベルの統計情報を表示する方法について説明します。
データセットのリスト、取得、エクスポート、削除などのデータセット リソースの使用に関する詳細情報は、データセットの管理を参照してください。
長時間実行オペレーションによる作業
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- operation-id: オペレーションの IDこの ID は、オペレーションの名前の最後の要素です。例:
- オペレーション名:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- オペレーション ID:
IOD5281059901324392598
- オペレーション名:
HTTP メソッドと URL:
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 リファレンス ドキュメントをご覧ください。