タグ認識ツールのガイド

タグ認識ツール モデルは、ユーザー定義の 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 バインディングの詳細を確認する。

タグ認識ツールのユーザー ジャーニー

  1. Vertex AI / AutoML Vision Object Detection 機能を使用して、タグ検出モデルのカスタマイズされたトレーニングを実行します。
  2. カスタマイズされた OCR エンジンで Vertex AI / AutoML Vision Object Detection 機能を使用して、タグ エンティティ解析モデルのトレーニングを行います。
  3. 目的のタグ認識構成でエンドポイントを作成します。
  4. 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"
      }
    }
  ],

tagRecognitionConfigRetailTagRecognitionConfig オブジェクト)で設定および構成できるフィールドも他にもあります。詳細については、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[ ] オブジェクト 省略可。インポートする指定された RetailProductRetailProductImage

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 状態エラー。