タグ認識ツール モデルは、ユーザー定義の Key-Value ペア エンティティ抽出スキーマに従ってタグ(値札やその他のラベルタグなど)を認識して解析することで、小売店の棚を理解するうえで重要な問題を解決するのに役立ちます。
このモデルは、小売店の商品の画像データを分析して解釈するための主要な AI 構成要素として機能します。たとえば、ローカル カメラやモバイル デバイスで撮影した商品棚の画像にこのモデルを使用できます。
タグ認識ツールと商品認識ツールのユースケース
商品認識モデルとタグ認識モデルは、小売店からキャプチャした商品とタグの画像データに関する画像データを分析して解釈するための主要な AI 構成要素として機能します。
商品認識モデルとタグ認識モデルには、小売業者や技術パートナーが商品と値札の画像データを理解するうえで重要な問題を解決できるよう、Google の AI モデリングとデータ機能が組み込まれています。たとえば、次のような問題です。
- 認識(画像内の商品が何かを理解する)。
- ユーザー定義の Key-Value ペア エンティティ抽出スキーマに従って、タグ(価格タグやその他のテキスト ラベルタグなど)を認識して解析します。
特に、次のようなユースケースの問題解決をサポートするために、いくつかの差別化された Google AI モデルが含まれています。
- 商品のサムネイル画像を数値特徴空間表現に変換する、商品のサムネイルのビジュアル エンベディング モデル。
- Google OCR モデル。画像に表示されているすべてのテキストを抽出します。
- Google エンティティ抽出モデル(カスタマイズ可能)。未加工のテキストを、ユーザー定義の Key-Value ペアの名前付きエンティティに変換します。
商品認識ツールは、これらの Google AI モデルに加えて、Google の大規模な商品情報データベースも活用しています。この商品データベースの商品データには、商品の GTIN / UPC ID、商品のブランド、商品名、言語横断的な説明、商品のロゴ、さまざまなパッケージのバリエーションを捉えた画像などが含まれます。前述の商品サムネイル ビジュアル エンベディング モデルを含む商品データベースにより、商品認識モデルは多くの商品をすぐに認識できます。
主な AI 機能は、商品認識モデルとタグ認識モデルです。
タグ認識ツールの機能
このモデルは、タグ内のすべてのテキスト文字列を認識し、テキストをユーザー定義の Key-Value ペア エンティティ抽出スキーマ(商品アイテムの説明や価格など)に解析しようとします。これには、次のような Google の差別化された AI モデルが含まれます。
- Google の OCR テクノロジー。画像内のすべてのテキストを抽出します。
Google エンティティ抽出モデル。未加工のテキストをユーザー定義の Key-Value ペアの名前付きエンティティに変換します。 Vertex AI を使用してこのモデルをカスタマイズします。たとえば、商品アイテムの説明、商品価格の値、セール価格のみを重視する場合は、次のようにタグ解析スキーマを定義できます。
key: item_description value: string key: regular_price value: number key: sale_price value: number
タグ解析スキーマ
カスタマイズされたエンティティ抽出モデルのトレーニングにより、検出されたタグ アイテム ボックスは、ユーザー定義のスキーマに従って認識され、解析されます。たとえば、次のようになります。
item_description: COLLECTION 18PC GFT BX
regular_price: 1099
sale_price: 999
出力 JSON オブジェクトの例
{
"imageUri": "gs://test_bucket/test_image.jpg",
"tagRecognitionAnnotations": [
{
"entities": [
{
"confidence": 0.99646133,
"mentionText": "NISSIN TOP RAMEN\n\nBOW CHICKEN\n\n",
"region": {
"xMax": 0.4618055,
"xMin": 0.042725038,
"yMax": 0.45387268,
"yMin": 0.18415153
},
"type":"description"
},
{
"confidence": 0.95828205,
"mentionText": "$3.90\n",
"region": {
"xMax": 0.24819264,
"xMin": 0.04185935,
"yMax": 0.96134734,
"yMin": 0.80382305
},
"type":"unit_price"
},
{
"confidence": 0.60659707,
"mentionText": "$14.99\n",
"region": {
"xMax": 0.9754113,
"xMin": 0.3654699,
"yMax": 0.92825794,
"yMin": 0.40368474
},
"type":"price"
}
]
}
]
}環境のセットアップ
このセクションでは、Store Vision AI RESTful API を操作する方法について説明します。
API_ENDPOINT=visionai.googleapis.com
PROJECT_ID=your project ID
すべての create メソッドでは、作成するリソース名/ID を明示的に指定する必要があります。意味のある文字列識別子(「product-ABC」など)を使用することも、ランダムに生成された識別子(UUID など)を使用することもできます。
Store Vision API を使用する編集者権限をユーザーに付与するには、次の IAM バインディング コマンドを実行します。
gcloud projects add-iam-policy-binding PROJECT_ID --member='user:USER_ACCOUNT' --role='roles/visionai.editor'
サービス アカウントに編集者のアクセス権を付与するには、次のコマンドを使用します。
gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:SERVICE_ACCOUNT' --role='roles/visionai.editor'
IAM バインディングの詳細を確認する。
タグ認識ツールのユーザー ジャーニー
- Vertex AI / AutoML Vision Object Detection 機能を使用して、タグ検出モデルのカスタマイズされたトレーニングを実行します。
- カスタマイズされた OCR エンジンで Vertex AI / AutoML Vision Object Detection 機能を使用して、タグ エンティティ解析モデルのトレーニングを行います。
- 目的のタグ認識構成でエンドポイントを作成します。
- TagRecognition 機能を使用して BatchAnalyze を実行します。バックエンドでは、システムは各入力画像からタグを識別し、検出された各タグのテキストを分析して、構造化された解析出力を生成します。T ## タグ検出とエンティティ解析モデルのトレーニング
カスタマイズされたタグ検出モデルは、既存の Vertex AI / AutoML Vision プロダクトの画像オブジェクト検出モデルのトレーニング機能を使用してトレーニングできます。Vertex AI / AutoML Vision オブジェクト検出モデルのトレーニング機能はフルマネージドのモデル トレーニング エクスペリエンスを提供しますが、モデル トレーニング コンソールにフィードするトレーニング データセットとして、完全にラベル付けされたオブジェクトの境界ボックス アノテーションを含む、適切にサンプリングされた画像データセットを準備するのはユーザーの責任です。 Google Cloud は、データ ラベリング タスクを作成できる Vertex AI データ ラベリング サービスを提供します。詳細については、次の Vertex AI データ ラベリング ジョブのリンクをご覧ください: /vertex-ai/docs/datasets/data-labeling-job。トレーニング データセットの準備として、画像内のタグ検出境界ボックスにラベルを付ける方法を人間による評価者が理解できるように、明確なデータ ラベリング手順を提供します。
タグ エンティティ解析モデルをトレーニングするには、画像とそれに関連付けられたアノテーションを含むトレーニング データのコレクションを準備する必要があります。
- 画像はすでに切り抜かれたタグ画像です。
- 各画像で、検出、認識、解析するキー エンティティ フィールド(商品名、価格、単価など)と、その切り抜き画像ビュー内の関連する画像バウンディング ボックスの座標位置を定義して指定する必要があります。
- 正しい認識 / 解析をサポートするため、各フィールドを特徴付ける正規表現の構文も指定する必要があります。これは、タグ解析アルゴリズムのトレーニングと推論ルーチンを支援するために必要です。

タグ エンティティ解析トレーニングの例
たとえば、前のタグエンティティ解析のトレーニング例では、トレーニング データ アノテーション CSV ファイルに次のように 1 行のアノテーション情報を指定できます。
"image_filepath", "product_title", "(x0, y0, x1, y1)", "", "price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}", "unit_price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}"
前の例では、次のようになります。
- 「product_title」フィールドには、対応するボックス画像座標「(x0, y0, x1, y1)」があり、このフィールドの正規表現制約は「」です。
- 「price」フィールドには、対応するボックス画像座標「(x0, y0, x1, y1)」があり、このフィールドの正規表現制約は「\$\d+\.\d{2}」です。これは、テキスト入力の先頭に $ 記号があり、小数点「.」の前にいくつかの数字があり、小数点「.」の後に 2 桁の数字があるこのフィールドを認識して解析することを意味します。
- 「unit_price」フィールドのアノテーション構文は「price」フィールドと同じです。たとえば、ボックス画像の座標「(x0, y0, x1, y1)」と、このフィールドの正規表現制約「\$\d+\.\d{2}」は、テキスト入力の先頭に $ 記号があり、その後に「.」の前にいくつかの数字、その後に「.」の後に 2 つの数字が続くこのフィールドを認識して解析することを意味します。
したがって、適切な価格タグ解析 / エンティティ検出モデルのトレーニング データには、価格タグ画像のコレクションが含まれ、アノテーションは CSV ファイルに格納されます。各 CSV 行エントリは、前の例のエントリと同じ形式になります。
"image_filepath", "product_title", "(x0, y0, x1, y1)", "", "price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}", "unit_price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}"
"image_filepath", "product_title", "(x0, y0, x1, y1)", "", "price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}", "unit_price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}"
"image_filepath", "product_title", "(x0, y0, x1, y1)", "", "price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}", "unit_price", "(x0, y0, x1, y1)", "\\$\\d+\\.\\d{2}"
[...]
カスタマイズされたタグ エンティティ解析モデルは、既存の Vertex AI /AutoML Vision プロダクトの画像オブジェクト検出モデルのトレーニング機能と、Google OCR エンジンのカスタマイズを使用してトレーニングできます。
ただし、2022 年 7 月の時点で、カスタマイズされたタグ検出モデルとタグ エンティティ解析モデルのトレーニングと Store Vision AI の BatchAnalyze API へのデプロイは、統合コンソール エクスペリエンスとして完全にはサポートされていません。それでも、いくつかの手動セルフサービスの手順を行うことで、このカスタマイズされたタグ検出モデルとタグ エンティティ解析モデルのトレーニング(Vertex AI Vision のオブジェクト検出機能を使用)と、Store Vision AI の BatchAnalyze API でのサービングを利用できます。
API の使用状況 - バッチ分析の推論
エンドポイントの作成
- ENDPOINT_ID: エンドポイント ID
- TAG_DETECTOR=タグ検出モデルの名前
- TAG_PARSER=タグ解析モデル名
curl -sS -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints?retail_endpoint_id=ENDPOINT_ID \
-d '{
"tagRecognitionConfig": {
"tag_detection_model": "TAG_DETECTOR_NAME",
"tag_parsing_model": "TAG_PARSER_NAME"
}
}'
- INPUT_FILE_URI=入力ファイルの Cloud Storage URI。入力ファイルの各行は、処理する画像の Cloud Storage URI(例: gs://my-bucket/my-image.jpg)です。
- OUTPUT_URI_PREFIX=出力結果ファイルの Cloud Storage URI プレフィックス(例: gs://my-bucket/my-output-dir)
curl -sS -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailEndpoints/ENDPOINT_ID:batchAnalyze
-d '{
"gcsSource": {
"uris": ["INPUT_FILE_URI"]
},
"features": [
{
"type": "TYPE_TAG_RECOGNITION",
}
],
"outputGcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
}'
"features": [
{
"type": "TYPE_TAG_RECOGNITION",
"tagRecognitionConfig": {
"tag_detection_model": "'TAG_DETECTOR_NAME'",
"tag_parsing_model": "TAG_PARSER_NAME"
}
}
],
tagRecognitionConfig(RetailTagRecognitionConfig オブジェクト)で設定および構成できるフィールドも他にもあります。詳細については、API リファレンスのリソースの説明をご覧ください。
API リファレンス
リソース: projects.locations.retailCatalogs
JSON 表現
{
"name": string,
"displayName": string,
"createTime": string,
"updateTime": string,
"resourceState": enum(RetailResourceState),
"labels": {
string: string,
...
}
}
フィールド
名前 |
文字列 |
出力専用。RetailCatalog のリソース名 |
|---|---|---|
displayName |
文字列 |
省略可。RetailCatalog の表示名。 |
createTime |
string(Timestamp 形式) |
出力専用。この RetailCatalog が作成されたときのタイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力専用。更新タイムスタンプ。 |
resourceState |
enum |
出力専用。RetailCatalog の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailCatalog を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
メソッド: projects.locations.retailCatalogs.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/us-central1}/retailCatalogs
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailCatalog のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailCatalog のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}
パスパラメータ
| name | 文字列 | 必須。RetailCatalog 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailCatalog のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/us-central1}/retailCatalogs
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には次の構造のデータが含まれます。 JSON 表現
{
"retailCatalogs": [
{
object (RetailCatalog)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailCatalogs.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}
パスパラメータ
| name | 文字列 | 必須。RetailCatalog 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.importRetailProducts
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}:importRetailProducts
パスパラメータ
| name | 文字列 | 必須。RetailCatalog リソースの名前。 |
リクエストの本文
JSON 表現
{
"gcsSource": { object(GcsSource) },
"format": enum(Format)
}
フィールド
| gcsSource | オブジェクト | 必須。入力コンテンツの Cloud Storage のロケーション。複数の入力位置を指定できます。すべての入力場所の内容が 1 つのバッチでインポートされます。サポートされているファイル拡張子: 1.
JSONL ファイル。各行は RetailProductIoFormat の JSON 形式です。 2. TXT ファイル。各行は、インポートする商品の gtin です。 |
| 形式 | enum | 必須。インポート ファイルの形式。 |
ENUM 値の形式
| FORMAT_UNSPECIFIED | これは使用しないでください。 |
|---|---|
| FORMAT_TXT | TXT 形式。 |
| FORMAT_JSONL | JSONL 形式。 |
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
リソース: projects.locations.retailProducts
JSON 表現
{
"name": string,
"gtins": [string],
"normalizedGtins": [string],
"thirdPartyIds": [ { object(ThirdPartyId) }],
"locale": string,
"brand": string,
"title": string,
"productUri": string,
"resourceState": enum(RetailResourceState),
"labels": {
string: string,
...
}
"createTime": string,
"updateTime": string
}
フィールド
名前 |
文字列 |
出力専用。RetailProductImage のリソース名 |
|---|---|---|
displayName |
文字列 |
省略可。RetailProductImage の表示名。 |
sourceType |
enum |
省略可。ソースタイプ |
gcsUri |
文字列 |
省略可。RetailProductImage の Cloud Storage のロケーション。画像が Google によって提供される場合(ソースタイプが SOURCE_TYPE_GOOGLE の場合など)を除き、設定する必要があります。 |
resourceState |
enum |
出力専用。RetailProductImage の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailProductImage を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
createTime |
string(Timestamp 形式) |
出力のみ。作成タイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力のみ。更新タイムスタンプ。 |
RetailThirdPartyId JSON 表現
{
"id": string,
"owner": string
}
フィールド
| id | 文字列 | 小売業者またはメーカーが使用するサードパーティ ID(SKU や MPN など)。 |
| オーナー | 文字列 | サードパーティ ID を「所有」するエンティティ(この商品を販売するメーカーや小売店など)。 |
メソッド: projects.locations.retailCatalogs.retailProducts.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProducts
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailProduct のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailProduct のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProducts.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*
パスパラメータ
| name | 文字列 | 必須。RetailProduct 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailProduct のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProducts.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProducts
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には次の構造のデータが含まれます。 JSON 表現
{
"retailProducts": [
{
object (RetailProducts)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailCatalogs.retailProducts.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*
パスパラメータ
| name | 文字列 | 必須。RetailProduct 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文は空になります。
リソース: projects.locations.retailProductImages
JSON 表現
{
"name": string,
"displayName": string,
"sourceType": enum(SourceType),
"gcsUri": string,
"resourceState": enum(RetailResourceState),
"labels": {
string: string,
...
}
"createTime": string,
"updateTime": string
}
フィールド
名前 |
文字列 |
出力専用。RetailProductImage のリソース名 |
|---|---|---|
displayName |
文字列 |
省略可。RetailProductImage の表示名。 |
sourceType |
enum |
省略可。ソースタイプ |
gcsUri |
文字列 |
省略可。RetailProductImage の Cloud Storage のロケーション。画像が Google によって提供される場合(ソースタイプが SOURCE_TYPE_GOOGLE の場合など)を除き、設定する必要があります。 |
resourceState |
enum |
出力専用。RetailProductImage の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailProductImage を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
createTime |
string(Timestamp 形式) |
出力専用。作成タイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力専用。更新タイムスタンプ。 |
SourceType 列挙型の値
| SOURCE_TYPE_UNSPECIFIED | 不明なデータソース。これは使用しないでください。 |
|---|---|
| SOURCE_TYPE_FIXED_CAMERA | 固定カメラで画像が撮影されます。 |
| SOURCE_TYPE_HAND_HELD_CAMERA | 手持ちのカメラで撮影された画像。 |
| SOURCE_TYPE_CRAWLED | 画像はウェブからクロールされます。 |
| SOURCE_TYPE_SYSTEM_GENERATED | 画像は、人間がラベル付けした元の画像から切り抜かれています。 |
メソッド: projects.locations.retailCatalogs.retailProducts.retailProductImages.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*/retailProducts/*}/retailProductImages
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailProductImage のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailProductImage のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProducts.retailProductImages.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*
パスパラメータ
| name | 文字列 | 必須。RetailProductImage 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailProductImage のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProducts.retailProductImages.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*/retailProducts/*}/retailProductImages
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文に次の構造のデータが含まれます。
JSON 表現
{
"retailProductImages": [
{
object (RetailProductImages)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailCatalogs.retailProducts.retailProductImages.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*
パスパラメータ
| name | 文字列 | 必須。RetailProductImage 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文は空になります。
リソース: projects.locations.retailCatalogs.retailProductSets
JSON 表現
{
"name": string,
"displayName": string,
"retailProductIds": [string],
"resourceState": enum(RetailResourceState),
"labels": {
string: string,
...
}
"createTime": string,
"updateTime": string
}
フィールド
名前 |
文字列 |
出力専用。RetailProductSet のリソース名 |
|---|---|---|
displayName |
文字列 |
省略可。RetailProductSet の表示名。 |
retailProductIds [] |
文字列 |
出力専用。この RetailProductSet に属する商品のリソース ID。RetailProductSet 内のプロダクトは同じカタログに属している必要があります。 |
resourceState |
enum |
出力専用。RetailProductSet の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailProductSet を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
createTime |
string(Timestamp 形式) |
出力のみ。作成タイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力のみ。更新タイムスタンプ。 |
メソッド: projects.locations.retailCatalogs.retailProductSets.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductSets
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailProductSet のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailProductSet のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProductSets.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*
パスパラメータ
| name | 文字列 | 必須。RetailProductSet の識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailProductSet のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProductSets.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductSets
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文に次の構造のデータが含まれます。
JSON 表現
{
"retailProductSets": [
{
object (RetailProductSets)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailCatalogs.retailProductSets.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*
パスパラメータ
| name | 文字列 | 必須。RetailProductSet の識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文は空になります。
メソッド: projects.locations.retailCatalogs.retailProductSets.add
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:remove
パスパラメータ
| name | 文字列 | 必須。RetailProductSet リソース名。 |
リクエストの本文
JSON 表現
{
"productIds": [string],
"productFilter": string
}
フィールド
productIds[ ] |
文字列 |
追加する RetailProducts のリソース ID。これらはすべて、指定された宛先 RetailProductSet と同じ RetailCatalog に属している必要があります。1 つのリクエストで最大 200 個の RetailProducts ID を指定できます。productFilter と併用することはできません。 |
|---|---|---|
productFilter |
文字列 |
親 RetailCatalog のすべての RetailProduct に適用される標準フィルタ。フィルタ条件を満たすアイテムを選択し、それらを RetailProductSet に追加します。product_ids と一緒に使用することはできません。サポートされているフィルタ: https://google.aip.dev/160 |
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProductSets.remove
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:add
パスパラメータ
| name | 文字列 | 必須。RetailProductSet リソース名。 |
リクエストの本文
JSON 表現
{
"productIds": [string],
"productFilter": string
}
フィールド
productIds[ ] |
文字列 |
削除する RetailProduct のリソース ID。指定された RetailProduct がこの RetailProductSet に属していない場合、無視されます。1 つのリクエストで最大 200 個の RetailProducts ID を指定できます。products_filter と併用することはできません。 |
|---|---|---|
productFilter |
文字列 |
指定された RetailProductSet 内のすべての RetailProduct に適用される標準フィルタ。フィルタ条件を満たすアイテムを選択し、RetailProductSet から削除します。product_ids と一緒に使用することはできません。サポートされているフィルタ:https://google.aip.dev/160 |
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
リソース: projects.locations.retailCatalogs.retailProductRecognitionIndexes
JSON 表現
{
"name": string,
"displayName": string,
"description": string,
"retailProductSet": [string],
"resourceState": enum(RetailResourceState),
"labels": {
string: string,
...
}
"createTime": string,
"updateTime": string
}
フィールド
名前 |
文字列 |
出力専用。RetailProductRecognitionIndex リソースのリソース名。 |
|---|---|---|
displayName |
文字列 |
省略可。RetailProductRecognitionIndex の表示名。 |
説明 |
文字列 |
省略可。RetailProductRecognitionIndex の説明。 |
retailProductSet[] |
文字列 |
省略可。このリソースの作成に使用する RetailProductSet のリソース名。設定されている場合、RetailProductRecognitionIndex には指定された RetailProductSet の商品のみが含まれます。設定しない場合、親カタログ内のすべての商品が使用されます。 |
resourceState |
enum |
出力専用。RetailProductRecognitionIndex の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailProductRecognitionIndex を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
createTime |
string(Timestamp 形式) |
出力専用。作成タイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力専用。更新タイムスタンプ。 |
メソッド: projects.locations.retailCatalogs.retailProductRecognitionIndexes.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductRecognitionIndexes
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailProductRecognitionIndex のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailProductRecognitionIndex のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProductRecognitionIndexes.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*
パスパラメータ
| name | 文字列 | 必須。RetailProductRecognitionIndex 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailProductRecognitionIndex のインスタンスが含まれます。
メソッド: projects.locations.retailCatalogs.retailProductRecognitionIndexes.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductRecognitionIndexes
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文に次の構造のデータが含まれます。
JSON 表現
{
"retailProductRecognitionIndexes": [
{
object (RetailProductRecognitionIndex)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailCatalogs.retailProductRecognitionIndexes.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*
パスパラメータ
| name | 文字列 | 必須。ProductRecognitionIndex 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
リソース: projects.locations.retailEndpoints
JSON 表現
{
"name": string,
"displayName": string,
"description": string,
"deployedProductRecognitionIndex": string,
"resourceState": enum(RetailResourceState),
"productRecognitionConfig": { object(RetailProductRecognitionConfig) },
"tagRecognitionConfig": { object(RetailTagRecognitionConfig) },
"labels": {
string: string,
...
}
"createTime": string,
"updateTime": string
}
フィールド
名前 |
文字列 |
出力専用。RetailEndpoint リソースのリソース名。 |
|---|---|---|
displayName |
文字列 |
省略可。RetailEndpoint の表示名。 |
説明 |
文字列 |
省略可。RetailEndpoint の説明。 |
deployedProductRecognitionIndex |
文字列 |
出力専用。この RetailEndpoint にデプロイされた ProductRecognitionIndex のリソース名。 |
productRecognitionConfig |
オブジェクト |
省略可。商品認識の構成。 |
tagRecognitionConfig |
オブジェクト |
省略可。タグ認識の構成。 |
resourceState |
enum |
出力専用。RetailProductRecognitionIndex の状態。 |
個のラベル |
map(キー: 文字列、値: 文字列) |
RetailProductRecognitionIndex を整理するためのユーザー定義のメタデータを含むラベル。 ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。 ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。 "key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
createTime |
string(Timestamp 形式) |
出力専用。作成タイムスタンプ。 |
updateTime |
string(Timestamp 形式) |
出力専用。更新タイムスタンプ。 |
RetailProductRecognitionConfig
JSON 表現
{
"productDetectionModel": string,
"detectionConfidenceThreshold": float,
"recognitionConfidenceThreshold": float,
"additionalConfig": { object }
}
フィールド
|
| productDetectionModel | 文字列 | 必須。入力画像内の商品を検出するために使用するモデル。サポートされている値: builtin/stable(デフォルト)または Vertex AI モデルのリソース名。 |
|---|---|---|
| detectionConfidenceThreshold | float | 省略可。検出結果をフィルタする信頼度しきい値。設定されていない場合は、システムのデフォルト値が使用されます。 |
| recognitionConfidenceThreshold | float | 省略可。認識結果をフィルタリングするための信頼度のしきい値。設定されていない場合は、システムのデフォルト値が使用されます。 |
| additionalConfig | object (Struct format) | 省略可。商品認識の追加構成。 |
RetailTagRecognitionConfig
JSON 表現
{
"tagDetectionModel": string,
"tagParsingModel": string,
"detectionConfidenceThreshold": float,
"parsingConfidenceThreshold": float,
"additionalConfig": { object }
}
フィールド
| tagDetectionModel | 文字列 | 必須。入力画像内のタグを検出するために使用するモデル。サポートされている値: Vertex AI モデルリソース。 |
|---|---|---|
| tagParsingModel | 文字列 | 必須。検出されたタグのテキストを解析するモデル。サポートされている値: Vertex AI モデルリソース。 |
| detectionConfidenceThreshold | float | 省略可。検出結果をフィルタする信頼度しきい値。設定されていない場合は、システムのデフォルト値が使用されます。 |
| parsingConfidenceThreshold | float | 省略可。テキスト解析結果をフィルタする信頼度のしきい値。設定されていない場合は、システムのデフォルト値が使用されます。 |
| additionalConfig | object (Struct format) | 省略可。タグ認識の追加設定。 |
メソッド: projects.locations.retailEndpoints.create
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*}/retailEndpoints
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
リクエストの本文
リクエストの本文には RetailEndpoint のインスタンスが含まれます。
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された RetailEndpoint のインスタンスが含まれます。
メソッド: projects.locations.retailEndpoints.get
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*}
パスパラメータ
| name | 文字列 | 必須。RetailEndpoint 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には RetailEndpoint のインスタンスが含まれます。
メソッド: projects.locations.retailEndpoints.list
HTTP リクエスト
GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*}/retailEndpoints
パスパラメータ
| 親 | 文字列 | 必須。親 ID。 |
クエリ パラメータ
| filter | 文字列 | 省略可。リクエストの結果をフィルタリングする式。 |
|---|---|---|
| pageToken | 文字列 | 省略可。サーバーが返す必要がある結果のページを特定するトークンです。 |
| pageSize | 整数 | 省略可。リクエストされたページサイズ。サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。 |
| orderBy | 文字列 | 省略可。昇順で並べ替えるフィールドのカンマ区切りリスト。降順にするには、フィールド名の後に「desc」を使用します。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文に次の構造のデータが含まれます。
JSON 表現
{
"retailEndpoints": [
{
object (RetailEndpoint)
}
],
"nextPageToken": string
}
メソッド: projects.locations.retailEndpoints.delete
HTTP リクエスト
DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*
パスパラメータ
| name | 文字列 | 必須。RetailEndpoint 識別子。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功すると、レスポンスの本文は空になります。
メソッド: projects.locations.retailEndpoints.deployRetailProductRecognitionIndex
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:deployRetailProductRecognitionIndex
パスパラメータ
| retailEndpoint | 文字列 | 必須。RetailProductRecognitionIndex がデプロイされる RetailEndpoint リソースのリソース名。 |
リクエストの本文
JSON 表現
{
"retailProductRecognitionIndex": string,
}
フィールド
| retailProductRecognitionIndex | 文字列 | 必須。デプロイする RetailProductRecognitionIndex のリソース名。 |
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
メソッド: projects.locations.retailEndpoints.undeployRetailProductRecognitionIndex
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:undeployRetailProductRecognitionIndex
パスパラメータ
| retailEndpoint | 文字列 | 必須。デプロイ解除の対象となる RetailEndpoint リソースのリソース名。 |
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
メソッド: projects.locations.retailEndpoints.batchAnalyze
HTTP リクエスト
POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:batchAnalyze
パスパラメータ
| retailEndpoint | 文字列 | 必須。推論リクエストを処理する RetailEndpoint のリソース名。 |
リクエストの本文
JSON 表現
{
"gcsSource": string,
"features": { object(Feature) },
// Union field output can be only one of the following:
"outputGcsDestination": string,
"corpus": string,
// End of list of possible types for union field output.
"bigqueryTable": string
}
フィールド
| gcsSource | 文字列 | 必須。入力コンテンツが保存されている Cloud Storage 上の場所。複数の入力位置を指定できます。すべての入力ロケーションの内容は 1 つのバッチで処理されます。サポートされているコンテンツ: TXT ファイル。各行は画像のフルパスです。1 つのリクエストで最大 5 万枚の画像をサポートできます。 |
|---|---|---|
| outputGcsDestination | 文字列 | 省略可。出力の書き込み先となるディレクトリの Cloud Storage の場所。 |
| corpus | 文字列 | 省略可。画像ウェアハウス コーパスのリソース名。現時点ではサポートされていません。 |
| bigqueryTable | 文字列 | 省略可。アノテーション エクスポート用の BigQuery テーブルのリソース名。「projects/*/datasets/*/tables/*」の形式。設定すると、ML 推論から生成されたアノテーションも指定された BigQuery テーブルにエクスポートされます。現時点ではサポートされていません。 |
| features[] | オブジェクト | 必須。実行する ML 推論のタイプ。 |
機能
JSON 表現
{
"type": enum(Type),
"productRecognitionConfig": object(RetailProductRecognitionConfig),
"tagRecognitionConfig": object(RetailTagRecognitionConfig)
}
フィールド
| type | enum | 必須。特徴のタイプ。 |
|---|---|---|
| productRecognitionConfig | オブジェクト <0x0 | 省略可。商品認識機能のリクエストごとのオーバーライド。タイプが TYPE_PRODUCT_RECOGNITION に設定されている場合にのみ有効です。 |
| tagRecognitionConfig | オブジェクト <0x0 | 省略可。タグ認識機能のリクエストごとのオーバーライド。タイプが TYPE_TAG_RECOGNITION に設定されている場合にのみ有効です。 |
レスポンスの本文
成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。
型
GcsSource
JSON 表現
{
"uris": [string]
}
フィールド
| uris[] | 文字列 | 必須。Cloud Storage パスへの参照。 |
タイプ
ENUM 値
| TYPE_UNSPECIFIED | デフォルト値。これは使用しないでください。 |
|---|---|
| TYPE_PRODUCT_RECOGNITION | 商品認識。デプロイされた RetailProductRecognitionIndex を含む RetailEndpoint で使用する必要があります。 |
| TYPE_TAG_RECOGNITION | タグの検出と解析。RetailTagRecognitionConfig を使用する RetailEndpoint で使用する必要があります。 |
RetailProductIoFormat
JSON 表現
{
"retailProduct": { object(RetailProduct) },
"retailProductImages": [ { object(RetailProductImage) }]
}
フィールド
| retailProduct | オブジェクト | 必須。RetailProduct をインポート |
|---|---|---|
| retailProductImages[ ] | オブジェクト | 省略可。インポートする指定された RetailProduct の RetailProductImage。 |
RetailResourceState
ENUM 値
| RETAIL_RESOURCE_STATE_UNSPECIFIED | デフォルト値。使用しないでください。 |
|---|---|
| RETAIL_RESOURCE_STATE_CREATING | 状態の作成中。 |
| RETAIL_RESOURCE_STATE_CREATED | 状態が作成されました。 |
| RETAIL_RESOURCE_STATE_UPDATING | 状態を更新しています。 |
| RETAIL_RESOURCE_STATE_DELETED | 状態が削除済み。 |
| RETAIL_RESOURCE_STATE_ERROR | 状態エラー。 |