データセットには分類するコンテンツ タイプの代表的なサンプルが含まれ、サンプルにはカスタムモデルで使用するカテゴリラベルが付けられています。このデータセットを入力値として利用し、モデルをトレーニングします。
データセットの主な作成手順は次のとおりです。
- データセットを作成し、各項目に複数のラベルを付けるかどうかを指定します。
- データセットにデータ項目をインポートします。
- 項目にラベルを付けます。
すでにラベルが割り当てられている項目をインポートする場合は、ステップ 2 と 3 を組み合わせます。
データセットの作成
カスタムモデルを作成するには、まず空のデータセットを作成します。作成したデータセットには、最終的にそのモデルのトレーニング データが格納されます。データセットを作成する際に、カスタムモデルで行う分類のタイプを指定します。
- MULTICLASS は、分類された画像ごとに 1 つのラベルを割り当てます。
- MULTILABEL を使用すると、1 つの画像に複数のラベルを割り当てることができます。
v1 バージョンの AutoML API では、このリクエストは長時間実行オペレーションの ID を返します。
長時間実行オペレーションが完了すると、画像をインポートできます。新しく作成したデータセットには、画像をインポートするまでデータは含まれません。
コマンドのレスポンスから得た新しいデータセットのデータセット ID を保存して、データセットへの画像のインポートやモデルのトレーニングなどの操作に使用します。
ウェブ UI
Vision Dashboard を開きます。
左側のナビゲーション メニュー項目 [人工知能] > [Vision] を使用してコンソールからこのページにアクセスすることもできます。これで、統合された Vision ダッシュボードが表示されます。AutoML Vision カードを選択します。
左側のナビゲーション メニューから [データセット] を選択します。
上部にある [新しいデータセット] ボタンを選択し、データセット名を更新して(任意)、保有するデータに基づき
単一ラベルまたはマルチラベル分類を選択します。分類タイプを指定したら、[データセットを作成] を選択します。
[データセットを作成] ページで、Google Cloud Storage から CSV ファイルを選択するか、データセットにインポートするローカル画像ファイルを選択します。
[続行] を選択して、データセットへの画像のインポートを開始します。インポート中、データセットには画像インポート実行のステータスが表示されます。
インポートが完了するとメールが届きます。
REST
次の例では、アイテムごとに 1 つのラベルをサポートするデータセットを作成します(MULTICLASS を参照)。
新しく作成されたデータセットには、項目をインポートするまでデータは含まれません。
コマンドのレスポンスから新しいデータセットの "name"
をメモしておきます。これはデータセットへの項目のインポートやモデルのトレーニングなどの操作で使用します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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(この場合は ICN3819960680614725486
)を使用して取得できます。例については、長時間実行オペレーションによる作業をご覧ください。
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "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/ICN3819960680614725486", "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/ICN5496445433112696489" } }
Go
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision リファレンス ドキュメントをご覧ください。
データセットへの項目のインポート
データセットを作成したら、Google Cloud Storage バケットに保存されている CSV ファイルから項目の URI とラベルをインポートできます。データの準備とインポート用の CSV ファイルの作成の詳細については、トレーニング データの準備をご覧ください。
空のデータセットに項目をインポートすることも、既存のデータセットに追加項目をインポートすることもできます。
ウェブ UI
AutoML Vision UI を使用すると、新しいデータセットの作成とデータセットへの項目のインポートを同じページで行うことができます。詳細はデータセットの作成をご覧ください。以下の手順では、既存のデータセットに項目をインポートします。
Vision Dashboardを開き、[データセット] ページでデータセットを選択します。
[Images] ページで、タイトルバーの [Add items] をクリックし、プルダウン リストからインポート方式を選択します。
次を行えます。
トレーニング画像と関連するカテゴリラベルを含む .csv ファイルをローカル PC または Google Cloud Storage からアップロードします。
トレーニング画像を含む .txt または .zip ファイルをローカル PC からアップロードします。
インポートするファイルを選択します。
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(この場合は ICN3819960680614725486
)を使用して取得できます。例については、長時間実行オペレーションによる作業をご覧ください。
{ "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
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
トレーニング項目のラベル付け
モデルのトレーニングで役立つように、データセット内の各項目には少なくとも 1 つのカテゴリラベルが割り当てられている必要があります。AutoML Vision は、カテゴリラベルのない項目を無視します。トレーニング項目には、次の 3 つの方法でラベルを付けることができます。
- .csv ファイルにラベルを含める
- .csv ファイルで項目にラベルを付ける方法の詳細については、トレーニング データの準備をご覧ください。
- AutoML Vision UI で項目にラベルを付ける
- Google の AI Platform Data Labeling Service など、人間によるラベル付けサービスをリクエストする。
UI でのラベル付け
ウェブ UI
AutoML Vision UI で項目にラベルを付けるには、データセットの一覧ページからデータセットを選択してデータセットの詳細を表示します。
サイドバーには、ラベル付き項目数とラベルなし項目数の要約が表示されます。ここでは、項目の一覧をラベル別にフィルタリングしたり、[新しいラベルを追加] を選択して新しいラベルを作成したりできます。
この画面では、画像のラベルを追加または変更することもできます。
ラベルを追加または変更する画像を選択します。
ラベル付けをリクエストする
Google の AI Platform Data Labeling Service を活用して、画像にラベルを付けることができます。詳しくはプロダクト ドキュメントをご覧ください。
長時間実行オペレーションによる作業
長時間実行オペレーションのステータスを取得するには、次のコードサンプルを使用します。
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 リファレンス ドキュメントをご覧ください。