タグ認識ツールのガイド

タグ認識モデルは、小売店の棚を理解する際の主要な問題、つまり、ユーザー定義の Key-Value ペア エンティティ抽出スキーマに従ってタグ(値札やその他のラベルタグなど)を認識して解析する問題を解決するのに役立ちます。

このモデルは、小売店での商品画像データを分析して解釈するための主要な AI 構成要素として使用できます。たとえば、ローカル カメラやモバイル デバイスで撮影した商品棚の画像にこのモデルを使用できます。

タグ認識ツールと商品認識ツールのユースケース

商品認識モデルタグ認識モデルは、小売店で見つかった商品やタグに関する画像データ(設置されたカメラやモバイル デバイス / プラットフォームでキャプチャされた棚スキャン画像など)を分析して解釈するための主な AI 構成要素として使用できます。

商品認識モデルとタグ認識モデルには、小売業者や技術パートナーが小売店の棚を理解する際に直面する主な問題を解決するために、Google AI の主要なモデリング機能とデータ機能が組み込まれています。たとえば、次のような問題です。

  • 画像内または陳列棚にある商品を検出して認識し、理解する。
  • ユーザー定義の Key-Value ペア エンティティ抽出スキーマに従って、タグ(価格タグやその他のテキストラベルタグなど)を検出して認識し、解析する。

特に、これらのユースケースの問題解決をサポートするために、棚卸ソリューションには、次のような差別化された Google AI モデルがいくつか含まれています。

  • 商品検出モデル(Google によって事前トレーニングされていますが、カスタマイズも可能です)。
  • 商品サムネイルの視覚エンベディング モデル。商品サムネイル画像を数値特徴空間表現に変換します。
  • Google の OCR モデル。画像に表示されているすべてのテキストを抽出します。
  • Google エンティティ抽出モデル(カスタマイズ可能)。元のテキストをユーザー定義の Key-Value ペアのエンティティ名に変換します。

陳列棚確認ソリューションは、これらの Google AI モデルに加えて、Google の膨大な商品情報データベースも活用します。この商品データベースの商品データには、商品の GTIN / UPC ID、商品ブランド、商品名、言語横断的な説明、商品ロゴ、さまざまなパッケージのバリエーションを捉えた画像が含まれます。前述の商品のサムネイルのビジュアル エンベディング モデルを含む商品データベースにより、商品認識モデルは多くの商品をすぐに認識できます。

たとえば、次のように撮影されたセクションの画像を取得した場合、セクションのチェック ソリューションは次の目的を達成します。

  1. 画像内のすべての商品アイテム ボックス(可視で、大きく遮蔽されていないもの)を検出してローカライズし、個々の商品アイテム ボックスの商品 ID を GTIN / UPC レベルで認識します。
  2. 画像内のすべてのタグボックス(可視)を検出してローカライズし、タグ内のすべてのテキスト文字列を認識してから、テキストを解析して、商品アイテムの説明、価格値などのユーザー定義の Key-Value ペア エンティティ抽出スキーマに変換します。

これらのソリューションを実現する 2 つの主要な AI 機能は、商品認識モデルとタグ認識モデルです。これらの機能について、次のセクションで詳しく説明します。主に画像推論サービスを提供するこれらの 2 つの API には、それぞれ 1 つ以上のカスタマイズ可能なコンポーネントがあります。まず、API 使用の推論パスについて説明します。次に、ユーザー構成または実行するモデル トレーニングを通じて、関連するコンポーネントをカスタマイズする方法について簡単に説明します。

タグ認識ツールの機能

このモデルは、タグ内のすべてのテキスト文字列を認識し、テキストを解析して、商品アイテムの説明や価格値などのユーザー定義の Key-Value ペア エンティティ抽出スキーマに変換しようとします。これには、次の Google AI モデルが含まれています。

  • Google の OCR 技術: 画像に表示されているすべてのテキストを抽出します。
  • 未加工のテキストをユーザー定義の Key-Value ペアのエンティティ名に変換する Google エンティティ抽出モデル。このモデルは 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 Data Labeling Service を提供します。詳細については、Vertex AI Data Labeling ジョブのリンク(/vertex-ai/docs/datasets/data-labeling-job)をご覧ください。トレーニング データセットの準備として、画像のタグ検出境界ボックスにラベルを付ける方法をレーティング担当者に明確に指示します。

タグ エンティティ解析モデルをトレーニングするには、画像とそれに関連付けられたアノテーションを含むトレーニング データのコレクションを準備する必要があります。

  • 画像は、すでに切り抜かれたタグ画像です。
  • 各画像で、検出、認識、解析するキーエンティティ フィールド(product_title、price、unit_price フィールドなど)と、この切り抜き画像ビューで関連付けられた画像の境界ボックス座標の位置を定義して指定する必要があります。
  • 正しい認識と解析をサポートするため、各フィールドを特徴付ける正規表現の構文も指定する必要があります。これは、タグ解析アルゴリズムのトレーニングと推論ルーチンを支援するために必要です。

認識されたタグ画像

タグ エンティティ解析トレーニングの例

たとえば、前のタグ エンティティ解析トレーニング例では、トレーニング データ アノテーション 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

文字列(タイムスタンプ形式)

出力専用。この RetailCatalog が作成されたときのタイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

resourceState

列挙型

出力専用。RetailCatalog の状態。

ラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。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 string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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

列挙型

省略可。ソースタイプ

gcsUri

文字列

省略可。RetailProductImage の Cloud Storage ロケーション。ソースタイプが SOURCE_TYPE_GOOGLE など、画像が Google から提供されている場合を除き、設定する必要があります。

resourceState

列挙型

出力専用。RetailProductImage の状態。

ラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。RetailProductImage を整理するために使用します。

ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。

ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。

createTime

文字列(タイムスタンプ形式)

出力専用。作成タイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

RetailThirdPartyId JSON プレゼンテーション

{
  "id": string,
  "owner": string
}

フィールド

id string 小売業者またはメーカーが使用するサードパーティ ID(SKU や MPN など)。
オーナー string サードパーティ 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 string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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

列挙型

省略可。ソースタイプ

gcsUri

文字列

省略可。RetailProductImage の Cloud Storage ロケーション。ソースタイプが SOURCE_TYPE_GOOGLE など、画像が Google から提供されている場合を除き、設定する必要があります。

resourceState

列挙型

出力専用。RetailProductImage の状態。

個のラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。RetailProductImage を整理するために使用します。

ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。

ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。

createTime

文字列(タイムスタンプ形式)

出力専用。作成タイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

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 string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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

列挙型

出力専用。RetailProductSet の状態。

ラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。RetailProductSet を整理するために使用します。

ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。

ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。

createTime

文字列(タイムスタンプ形式)

出力専用。作成タイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

メソッド: 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 の ID。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には RetailProductSet のインスタンスが含まれます。

メソッド: projects.locations.retailCatalogs.retailProductSets.list

HTTP リクエスト

GET https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*}/retailProductSets

パスパラメータ

文字列 必須。親の ID。

クエリ パラメータ

filter string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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 の ID。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功すると、レスポンスの本文は空になります。

メソッド: 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 つのリクエストで指定できる RetailProducts ID は最大 200 個です。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。指定された RetailProducts がこの RetailProductSet に属していない場合、無視されます。1 つのリクエストで指定できる RetailProducts ID は最大 200 個です。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

列挙型

出力専用。RetailProductRecognitionIndex の状態。

個のラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。RetailProductRecognitionIndex を整理するために使用します。

ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。

ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。

createTime

文字列(タイムスタンプ形式)

出力専用。作成タイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

メソッド: 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 string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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

列挙型

出力専用。RetailProductRecognitionIndex の状態。

個のラベル

map(key: string, value: string)

ユーザー定義のメタデータを含むラベル。RetailProductRecognitionIndex を整理するために使用します。

ラベルのキーと値は 64 文字(Unicode コードポイント)以下にする必要があります。使用できるのは小文字、数字、アンダースコア、ダッシュのみです。国際文字も使用できます。

ラベルの詳細と例については、 https://goo.gl/xmQnxf をご覧ください。

"key": value ペアのリストが含まれるオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }。

createTime

文字列(タイムスタンプ形式)

出力専用。作成タイムスタンプ。

updateTime

文字列(タイムスタンプ形式)

出力専用。更新タイムスタンプ。

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 string 省略可。リクエストの結果をフィルタリングする式。
pageToken string 省略可。サーバーが返す必要がある結果のページを特定するトークンです。
pageSize 整数 省略可。リクエストされたページサイズです。 サーバーはリクエストされた数よりも少ない項目を返す場合があります。指定しない場合は、サーバーで適切なデフォルトが選択されます。
orderBy string 省略可。昇順で並べ替えるフィールドのカンマ区切りのリスト。降順の場合は、フィールド名の後に「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 string 必須。RetailProductRecognitionIndex がデプロイされる RetailEndpoint リソースのリソース名。

リクエストの本文

JSON 表現

{
  "retailProductRecognitionIndex": string,
}

フィールド

retailProductRecognitionIndex string 必須。デプロイする RetailProductRecognitionIndex のリソース名。

レスポンスの本文

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

メソッド: projects.locations.retailEndpoints.undeployRetailProductRecognitionIndex

HTTP リクエスト

POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:undeployRetailProductRecognitionIndex

パスパラメータ

retailEndpoint string 必須。デプロイ解除の対象となる RetailEndpoint リソースのリソース名。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

メソッド: projects.locations.retailEndpoints.batchAnalyze

HTTP リクエスト

POST https://visionai.googleapis.com/v1alpha1/{retailEndpoint=projects/*/locations/*/retailEndpoints/*}:batchAnalyze

パスパラメータ

retailEndpoint string 必須。推論リクエストを処理する 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 オブジェクト 省略可。商品認識機能のリクエストごとのオーバーライド。type が TYPE_PRODUCT_RECOGNITION に設定されている場合にのみ有効です。
tagRecognitionConfig オブジェクト 省略可。タグ認識機能のリクエストごとのオーバーライド。タイプが 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 状態エラー。