Guide de l'outil de reconnaissance de produits

Le modèle de reconnaissance de produits vous aide à identifier et à comprendre les produits figurant sur l'image fournie ou sur l'étagère.

Ce modèle peut servir de principal composant d'IA pour analyser et interpréter les données d'images de produits dans les magasins. Par exemple, vous pouvez utiliser ce modèle sur des images d'étagères capturées par des caméras locales ou des appareils mobiles.

Cas d'utilisation de l'outil de reconnaissance de tags et de l'outil de reconnaissance de produits

Le modèle de reconnaissance des produits et les modèles de reconnaissance des tags peuvent servir de principaux composants d'IA pour analyser et interpréter les données d'image sur les produits et les tags trouvés dans les magasins, comme les images de balayage des étagères capturées par les caméras installées ou les appareils / plates-formes mobiles.

Les modèles de reconnaissance des produits et des tags intègrent plusieurs fonctionnalités de modélisation et de données de base de l'IA de Google pour aider les marchands et/ou les partenaires techniques à résoudre les principaux problèmes de compréhension des rayons de vente, y compris les suivants:

  • Détecter, reconnaître et comprendre les produits présents dans l'image ou sur l'étagère.
  • Détection, reconnaissance et analyse des balises (étiquette de prix, par exemple, ou toute autre balise d'étiquette de texte) selon le schéma d'extraction d'entités de paires clé-valeur défini par l'utilisateur.

Plus précisément, plusieurs modèles d'IA Google différenciants sont inclus dans la solution de vérification des rayons pour faciliter la résolution des problèmes liés à ces cas d'utilisation, par exemple :

  • Modèles de détection de produits (pré-entraînés par Google, mais que vous pouvez toujours personnaliser).
  • Modèle d'embedding visuel de miniatures de produits, qui transforme une image de miniature de produit en représentation numérique de l'espace des caractéristiques.
  • Modèle OCR de Google, qui extrait tous les textes visibles dans l'image.
  • Modèle d'extraction d'entités Google (que vous pouvez personnaliser), qui transforme les textes bruts en entités nommées de paires clé-valeur définies par l'utilisateur.

En plus de ces modèles d'IA Google, la solution de vérification des rayons exploite également la grande base de données d'informations produit de Google. Les données produit de cette base de données incluent l'identité GTIN / UPC du produit, sa marque, son titre et ses descriptions multilingues, son logo et des images avec différentes variantes d'emballage. La base de données de produits avec le modèle d'encapsulation visuelle de vignettes de produits mentionné précédemment permet au modèle de reconnaissance de produits de reconnaître de nombreux produits immédiatement.

Par exemple, étant donné une image d'étagère capturée comme suit, la solution de vérification des étagères vise à:

  1. Détectez et localisez tous les cartons d'articles (visibles, pas trop masqués) dans l'image, et reconnaissez l'identité de chaque carton d'article au niveau du code GTIN / UPC.
  2. Détectez et localisez toutes les zones de tag (visibles) dans l'image, reconnaissez toutes les chaînes de texte dans la balise, puis essayez d'analyser le texte dans le schéma d'extraction d'entités de paires clé-valeur défini par l'utilisateur, comme la description de l'article, la valeur du prix.

Les deux principales fonctionnalités d'IA qui permettent de mettre en œuvre ces solutions sont le modèle de reconnaissance des produits et le modèle de reconnaissance des tags, que nous décrirons plus en détail dans les sections suivantes. Pour chacune de ces deux API qui fournissent principalement les services d'inférence d'images, vous pouvez personnaliser un ou plusieurs composants. Nous allons d'abord décrire le chemin d'inférence de l'utilisation de l'API, puis fournir une brève description de la façon dont vous pouvez personnaliser les composants impliqués, soit via une configuration utilisateur, soit via un entraînement de modèle que vous effectuez.

Fonctionnalité de reconnaissance de produits

Ce modèle reconnaît l'identité individuelle des produits au niveau du code article international (GTIN) ou du code produit universel (UPC). Plusieurs modèles d'IA Google distinctifs sont inclus dans le système de reconnaissance des produits pour faciliter la résolution des problèmes liés à ces cas d'utilisation, par exemple:

  • Modèle d'embedding visuel des produits, qui transforme une image de produit en représentation de l'espace des caractéristiques numériques.
  • La technologie de reconnaissance optique des caractères de Google, qui extrait tous les textes visibles dans l'image.
  • La base de données de produits Google utilisée en combinaison avec le modèle d'intégration visuelle des miniatures de produits permet au modèle de reconnaissance de produits de reconnaître de nombreux produits immédiatement.

Exemple d'objet JSON de sortie

{
  "imageUri": "gs://test_bucket/test_image.jpg",
  "productRecognitionAnnotations": [
    {
      "detectedText": "Bolthouse Farms Perfectly Protein Tea & Soy Beverage",
      "recognitionResults": [
        {
          "confidence": 0.9420832,
          "productMetadata": {
            "brand": "Bolthouse Farms",
            "gtins": [
              "00071464260804"
              ],
            "locale": "en-US",
            "title": "Bolthouse Farms Perfectly Protein Tea & Soy Beverage, Vanilla Chai Tea - 52 fl oz"
          },
        }
      ]
    }
  ]
}

Concepts de l'API

Six ressources d'API sont proposées pour vous aider à créer un catalogue de produits, à gérer des ensembles de données de produits, à créer des index et à déployer le service de reconnaissance des produits. Ils sont décrits comme suit:

Diagramme des concepts de l'API

Catalogue: ressource racine qui représente le conteneur de tous les produits proposés par le marchand.

Produit: représente un produit proposé par un marchand. Product est une ressource enfant de Catalog.

ProductImage: image représentant une vue d'un produit. ProductImage est une ressource enfant de Product.

ProductSet: conteneur à granularité plus fine permettant d'organiser et de regrouper des produits dans le même Catalog. Un ProductSet peut contenir un ou plusieurs Product, mais il ne "possède" pas les Product qu'il contient, mais entretient un "lien" avec eux.

ProductRecognitionIndex: contient une liste d'embeddings d'images utilisés pour les algorithmes de reconnaissance de produits. ProductRecognitionIndex peut être créé à partir de l'ensemble de Catalog ou d'un ProductSet (un sous-ensemble des Product de Catalog).

Point de terminaison: emplacement qui contient toutes les configurations requises pour effectuer une inférence de reconnaissance de produit ou de balise. Pour la reconnaissance de produits, vous devez spécifier le modèle de détection de produits et déployer un ProductRecognitionIndex. Pour la reconnaissance des balises, vous devez spécifier à la fois des modèles de détection de balises et d'analyse d'entités de balises.

Cofiguration de l'environnement

Cette section explique comment interagir avec l'API RESTful Store Vision AI.

API_ENDPOINT=visionai.googleapis.com
PROJECT_ID=your project ID

Toutes les méthodes create nécessitent de spécifier explicitement le nom/l'ID de la ressource à créer. Vous pouvez utiliser un identifiant de chaîne significatif, par exemple "product-ABC", ou un identifiant généré de manière aléatoire, par exemple un UUID.

Pour accorder à un rôle de personne l'accès d'éditeur à l'API Store Vision, veuillez exécuter la commande de liaison IAM suivante:

gcloud projects add-iam-policy-binding PROJECT_ID --member='user:USER_ACCOUNT' --role='roles/visionai.editor'

Pour accorder à un compte de service l'accès éditeur, veuillez utiliser la commande ci-dessous:

gcloud projects add-iam-policy-binding PROJECT_ID --member='serviceAccount:SERVICE_ACCOUNT' --role='roles/visionai.editor'

En savoir plus sur l'association IAM

Parcours utilisateur de la reconnaissance de produits

  1. Créez un catalogue.
  2. Importez les produits et (facultatif) ProductImages dans le fichier Catalog.
  3. Affiche et modifie les Product et ProductImages, et crée éventuellement un ProductSet pour organiser la liste des produits de manière plus précise.
  4. Créez un Index, soit à partir de l'ensemble du Catalog, soit à partir d'un ProductSet.
  5. Créez un Endpoint avec la configuration de reconnaissance des produits souhaitée et y déployez un Index.
  6. Effectuez BatchAnalyze avec la fonctionnalité ProductRecognition. Dans le backend, le système identifie les produits de chaque image d'entrée et récupère les K meilleurs produits similaires de l'index spécifié à l'aide de signaux visuels et de texte OCR.

Gestion des ressources d'API (catalogue et ensemble d'index)

Catalogue

Créer un catalogue
  • CATALOG_ID=votre ID de catalogue.
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{}' https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs?retail_catalog_id=CATALOG_ID

Exemple de résultat :

{
  "name": "projects/cloud-store-vision-test/locations/us-central1/operations/operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714",
  "done": false
}
Opération de récupération jusqu'à la fin
  • OPERATION_ID=Votre opération de sortie, par exemple, operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID

Exemple de résultat :

{
  "name": "projects/cloud-store-vision-test/locations/us-central1/operations/operation-1655157982362-5e15b7f95fa6f-d30364c6-dc3a3714",
  "done": true
}
ImportProduct

Deux formats d'importation sont acceptés:

  • TXT: chaque ligne correspond au code GTIN d'un produit à importer
  • JSONL : chaque ligne est au format JSON de RetailProductIoFormat, par exemple :
{"retailProduct":{"name":"00040094314034","gtins":["00040094314034"]},"retailProductImages":[{"name":"1","gcsUri":"gs://shelfchecking-integration-test-data/products-data/00040094314034/1.jpg"}]}
{"retailProduct": {"name":"00123", "thirdPartyIds": {"id": "test-id", "owner": "test-owner"}}}

Pour en savoir plus sur RetailProductIoFormat, consultez la documentation de référence de l'API. Actuellement,vous pouvez importer un maximum de 10 000 produits par opération ImportProduct.

Notez également que le nom des "retailProductImages" ne doit être unique que dans le champ d'application de la ressource parente "retailProduct". Autrement dit, il peut y avoir deux "retailProductImages" avec le même nom tant qu'ils appartiennent à des ressources "retailProduct" différentes.

  • IMPORT_FILE_URI=URI Cloud Storage de votre fichier d'importation (par exemple, gs://mybucket/my_import_file.jsonl)
  • IMPORT_FORMAT=format de votre fichier d'importation, FORMAT_JSONL ou FORMAT_TXT
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/retailCatalogs/CATALOG_ID:importRetailProducts \
  -d '{
    "gcs_source": {
      "uris": "IMPORT_FILE_URI"
    },
    "format": "IMPORT_FORMAT"
  }'
Catalogue de listes
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs
GetCatalog
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID
DeleteCatalog
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID

Produit

CreateProduct avec code GTIN

Nous acceptons les formats GTIN-8, GTIN-13, GTIN-14 et UPC(également appelé GTIN-12). Pour en savoir plus sur le format GTIN, cliquez ici.

  • PRODUCT_ID=Votre ID produit
  • GTIN=code GTIN de votre produit, par exemple : 50735854797459, 00040094314034
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/retailCatalogs/CATALOG_ID/retailProducts?retail_product_id=PRODUCT_ID \
  -d '{"gtins": "GTIN"}'
CreateProduct avec un ID tiers
  • PRODUCT_ID=Votre ID produit
  • THIRD_PARTY_ID=ID tiers
  • OWNER=entité propriétaire de l'identifiant tiers
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/retailCatalogs/CATALOG_ID/retailProducts?retail_product_id=PRODUCT_ID \
-d '
  {
    "third_party_ids": {
      "id": "THIRD_PARTY_ID",
      "owner": "OWNER",
    }
  }'
ListProducts
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts
GetProducts
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID
DeleteProduct
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID

ProductImage

CreateProductImage
  • PRODUCT_IMAGE_ID=ID de votre image produit
  • IMAGE_GCS_URI=URI Cloud Storage de votre image (par exemple, gs://mybucket/my_img.jpg)
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/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages?retail_product_image_id=PRODUCT_IMAGE_ID \
  -d '{
    "source_type": "SOURCE_TYPE_HAND_HELD_CAMERA",
    "gcs_uri": "IMAGE_GCS_URI"
  }'
ListProductImages
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages
GetProductImages
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages/PRODUCT_IMAGE_ID
DeleteProductImage
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProducts/PRODUCT_ID/retailProductImages/PRODUCT_IMAGE_ID

ProductSet

CreateProductSet
  • PRODUCT_SET_ID=ID de votre ensemble de produits
curl -sS -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d '{}' https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets?retail_product_set_id=PRODUCT_SET_ID
ListProductSet
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets
GetProductSet
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID
AddProductsToProductSet
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/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID:add \
  -d '{"product_ids": "PRODUCT_ID"}'
RemoveProductsFromProductSet
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/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID:remove \
  -d '{"product_ids": "PRODUCT_ID"}'
DeleteProductSet
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductSets/PRODUCT_SET_ID

ProductRecognitionIndex

Créer ProductRecognitionIndex

Vous pouvez créer un ProductRecognitionIndex de deux manières : à partir d'un catalogue qui utilisera tout ce qui est contenu dans ce catalogue, ou à partir d'un ensemble de produits qui n'utilisera que les produits et les images associés.

  • INDEX_ID=votre ID d'index
  • COVERAGE_CSV_OUTPUT_DIRECTORY=<emplacement Cloud Storage du répertoire dans lequel le fichier de couverture de l'index sera écrit
# Create from Catalog
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/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes?retail_product_recognition_index_id=INDEX_ID
# Create from Catalog and output index coverage CSV file to a Cloud Storage directory.
# This API method is especially useful when you want to understand the
# actual number of images used to construct the index per imported GTIN, and
# the image can be sourced from the Google Product database, your own importing,
# and other means (such as with the Google Data Labeling service.
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/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes?retail_product_recognition_index_id=INDEX_ID&coverage_output.output_uri_prefix=COVERAGE_CSV_OUTPUT_DIRECTORY"
# Create from ProductSet, by adding the following to the previous Curl command
-d '{"retail_product_set": "projects/PROJECT_ID/locations/us-central1/retailCatalogs/'CATALOG_ID'/retailProductSets/PRODUCT_SET_ID"}'
Obtenir ProductRecognitionIndex
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID
List ProductRecognitionIndex
curl -sS -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes
Supprimer ProductRecognitionIndex
curl -sS -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/us-central1/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID

Point de terminaison

Créer un point de terminaison
  • ENDPOINT_ID=Votre ID de point de terminaison
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 '{
  "productRecognitionConfig": {
    "recognitionConfidenceThreshold": 0.4
  }
}'
DeployProductRecognitionIndex

Un point de terminaison ne peut être déployé qu'avec un seul ProductRecognitionIndex, mais un ProductRecognitionIndex peut être déployé sur plusieurs points de terminaison.

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:deployRetailProductRecognitionIndex \
  -d '{
    "retail_product_recognition_index": "projects/PROJECT_ID/locations/us-central1/retailCatalogs/'CATALOG_ID'/retailProductRecognitionIndexes/INDEX_ID"
  }'
GetEndpoint
curl -sS -X GET -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
ListEndpoints
curl -sS -X GET -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
UndeployProductRecognitionIndex

Le désengagement ne supprime que le ProductRecognitionIndex déployé du point de terminaison appelant actuel et n'affecte pas les autres points de terminaison si ce ProductRecognitionIndex est également déployé sur d'autres.

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:undeployRetailProductRecognitionIndex
DeleteEndpoint
curl -sS -X DELETE -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

Analyser les inférences par lot (reconnaissance de produits)

Exemple de fichier d'entrée dans gs://my-bucket/input-file.csv:

gs://my-bucket/my-image1.jpg
gs://my-bucket/my-image2.jpg
gs://my-bucket/my-image3.jpg
  • INPUT_FILE_URI=URI Cloud Storage de votre fichier d'entrée> chaque ligne du fichier d'entrée n'est qu'un URI Cloud Storage de l'image à traiter, par exemple, gs://mon-bucket/mon-image.jpg
  • OUTPUT_URI_PREFIX=préfixe d'URI Cloud Storage pour le fichier de résultats de sortie (par exemple, 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_PRODUCT_RECOGNITION",
     }
  ],
  "outputGcsDestination": {
    "outputUriPrefix": "OUTPUT_URI_PREFIX"
  }
}'
"features": [
    {
      "type": "TYPE_PRODUCT_RECOGNITION",
      "productRecognitionConfig": {
        "recognitionConfidenceThreshold": 0.4
      }
    }
  ],

Vous pouvez également définir et configurer d'autres champs dans productRecognitionConfig, qui est un objet RetailProductRecognitionConfig. Pour en savoir plus, consultez la description de la ressource dans la documentation de référence de l'API.

Documentation de référence de l'API

Ressource: projects.locations.retailCatalogs

Représentation JSON

{
  "name": string,
  "displayName": string,
  "createTime": string,
  "updateTime": string,
  "resourceState": enum(RetailResourceState),
  "labels": {
    string: string,
    ...
  }
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource du RetailCatalog

displayName

Chaîne

Facultatif. Nom à afficher du RetailCatalog.

createTime

Chaîne (format Code temporel)

Uniquement en sortie. Code temporel de création de ce RetailCatalog.

updateTime

Chaîne (format Code temporel)

Uniquement en sortie. Code temporel de la mise à jour.

resourceState

enum

Uniquement en sortie. État du RetailCatalog.

 libellés

map (clé: chaîne, valeur: chaîne)

Les libellés avec des métadonnées définies par l'utilisateur pour organiser votre RetailCatalog.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

Méthode: projects.locations.retailCatalogs.create

Requête HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/us-central1}/retailCatalogs

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailCatalog.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailCatalog.

Méthode: projects.locations.retailCatalogs.get

Requête HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailCatalog.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailCatalog.

Méthode: projects.locations.retailCatalogs.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante : représentation JSON

{
  "retailCatalogs": [
    {
      object (RetailCatalog)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailCatalogs.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailCatalog.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Méthode: projects.locations.retailCatalogs.importRetailProducts

Requête HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/us-central1/retailCatalogs/*}:importRetailProducts

Paramètres de chemin d'accès

nom chaîne Obligatoire. Nom de la ressource RetailCatalog.

Corps de la requête

Représentation JSON

{
  "gcsSource": { object(GcsSource) },
  "format": enum(Format)
}

Fields

gcsSource objet Obligatoire. Emplacement Cloud Storage du contenu d'entrée. Vous pouvez fournir plusieurs emplacements d'entrée. Le contenu de tous les emplacements d'entrée sera importé en un seul lot. Extensions de fichier compatibles: 1. Fichier JSONL Chaque ligne est au format JSON de RetailProductIoFormat.
2. Fichier TXT Chaque ligne correspond au code GTIN d'un produit à importer.
format énum Obligatoire. Format du fichier d'importation.

Mettre en forme les valeurs ENUM

FORMAT_UNSPECIFIED Ne doit pas être utilisé.
FORMAT_TXT Format TXT.
FORMAT_JSONL au format JSONL.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Ressource: projects.locations.retailProducts

Représentation 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
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource RetailProductImage

displayName

Chaîne

Facultatif. Nom à afficher de RetailProductImage.

sourceType

enum

Facultatif. Type de source

gcsUri
Chaîne

Facultatif. Emplacement Cloud Storage de RetailProductImage. Il doit être défini, sauf lorsque l'image est fournie par Google, par exemple lorsque le type de source est SOURCE_TYPE_GOOGLE.

resourceState

enum

Uniquement en sortie. État de RetailProductImage.

 libellés

map (clé: chaîne, valeur: chaîne)

Les libellés avec des métadonnées définies par l'utilisateur pour organiser votre RetailProductImage.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

createTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de création.

updateTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de la mise à jour.

RetailThirdPartyId Présentation JSON

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

Fields

id chaîne ID tiers utilisé par le marchand ou le fabricant (par exemple, SKU ou référence fabricant).
owner chaîne Entité qui "possède" l'identifiant tiers, par exemple le fabricant ou le marchand qui vend ce produit.

Méthode: projects.locations.retailCatalogs.retailProducts.create

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailProduct.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailProduct.

Méthode: projects.locations.retailCatalogs.retailProducts.get

Requête HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailProduct.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailProduct.

Méthode: projects.locations.retailCatalogs.retailProducts.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante : représentation JSON

{
  "retailProducts": [
    {
      object (RetailProducts)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailCatalogs.retailProducts.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailProduct.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse est vide.

Ressource: projects.locations.retailProductImages

Représentation JSON

{
  "name": string,
  "displayName": string,
  "sourceType": enum(SourceType),
  "gcsUri": string,
  "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource RetailProductImage

displayName

Chaîne

Facultatif. Nom à afficher de RetailProductImage.

sourceType

enum

Facultatif. Type de source

gcsUri

chaîne

Facultatif. Emplacement Cloud Storage de RetailProductImage. Il doit être défini, sauf lorsque l'image est fournie par Google, par exemple lorsque le type de source est SOURCE_TYPE_GOOGLE.

resourceState

enum

Sortie uniquement. État de RetailProductImage.

 libellés

map (clé: chaîne, valeur: chaîne)

Les libellés avec des métadonnées définies par l'utilisateur pour organiser votre RetailProductImage.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

createTime

Chaîne (format Code temporel)

Uniquement en sortie. Code temporel de création.

updateTime

Chaîne (format Code temporel)

Uniquement en sortie. Code temporel de la mise à jour.

Valeurs de l'énumération SourceType

SOURCE_TYPE_UNSPECIFIED Source de données inconnue. Ne doit pas être utilisé.
SOURCE_TYPE_FIXED_CAMERA L'image est capturée à partir d'une caméra fixe.
SOURCE_TYPE_HAND_HELD_CAMERA L'image est capturée à l'aide d'une caméra à main.
SOURCE_TYPE_CRAWLED L'image est explorée sur le Web.
SOURCE_TYPE_SYSTEM_GENERATED L'image est recadrée à partir d'une image d'origine avec un libellé manuel.

Méthode: projects.locations.retailCatalogs.retailProducts.retailProductImages.create

Requête HTTP

POST https://visionai.googleapis.com/v1alpha1/{parent=projects/*/locations/*/retailCatalogs/*/retailProducts/*}/retailProductImages

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailProductImage.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailProductImage.

Méthode: projects.locations.retailCatalogs.retailProducts.retailProductImages.get

Requête HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailProductImage.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailProductImage.

Méthode: projects.locations.retailCatalogs.retailProducts.retailProductImages.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données présentant la structure suivante :

Représentation JSON

{
  "retailProductImages": [
    {
      object (RetailProductImages)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailCatalogs.retailProducts.retailProductImages.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProducts/*/retailProductImages/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailProductImage.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse est vide.

Ressource: projects.locations.retailCatalogs.retailProductSets

Représentation JSON

{
  "name": string,
  "displayName": string,
  "retailProductIds": [string],
  "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource RetailProductSet

displayName

Chaîne

Facultatif. Nom à afficher du RetailProductSet.

retailProductIds []

Chaîne

Uniquement en sortie. ID de ressource des produits appartenant à cet ensemble de produits pour le commerce de détail. Les produits d'un RetailProductSet doivent appartenir au même catalogue.

resourceState

enum

Uniquement en sortie. État du RetailProductSet.

 libellés

map (clé: chaîne, valeur: chaîne)

Les libellés avec des métadonnées définies par l'utilisateur pour organiser votre RetailProductSet.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

createTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de création.

updateTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de la mise à jour.

Méthode: projects.locations.retailCatalogs.retailProductSets.create

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailProductSet.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailProductSet.

Méthode: projects.locations.retailCatalogs.retailProductSets.get

Requête HTTP

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

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant du RetailProductSet.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailProductSet.

Méthode: projects.locations.retailCatalogs.retailProductSets.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données présentant la structure suivante :

Représentation JSON

{
  "retailProductSets": [
    {
      object (RetailProductSets)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailCatalogs.retailProductSets.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant du RetailProductSet.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse est vide.

Méthode: projects.locations.retailCatalogs.retailProductSets.add

Requête HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:remove

Paramètres de chemin d'accès

nom chaîne Obligatoire. Nom de la ressource RetailProductSet.

Corps de la requête

Représentation JSON

{
  "productIds": [string],
  "productFilter": string
}

Fields


productIds[ ]
Chaîne

ID de ressource des produits vendus en magasin à ajouter. Ils doivent tous appartenir au même RetailCatalog que le RetailProductSet de destination spécifié. Vous pouvez spécifier jusqu'à 200 ID de produits Retail dans une même requête. Ne peut pas être utilisé avec productFilter.

productFilter

chaîne

Filtre standard qui sera appliqué à tous les RetailProducts du RetailCatalog parent, sélectionnera les articles qui répondent aux conditions du filtre et les ajoutera au RetailProductSet. Ne peut pas être utilisé avec product_ids. Filtres compatibles: https://google.aip.dev/160

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Méthode: projects.locations.retailCatalogs.retailProductSets.remove

Requête HTTP

POST https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductSets/*}:add

Paramètres de chemin d'accès

nom chaîne Obligatoire. Nom de la ressource RetailProductSet.

Corps de la requête

Représentation JSON

{
  "productIds": [string],
  "productFilter": string
}

Fields


productIds[ ]
Chaîne

ID de ressource des produits vendus en magasin à supprimer. Si les produits RetailProducts spécifiés n'appartiennent pas à ce RetailProductSet, ils seront ignorés. Vous pouvez spécifier jusqu'à 200 ID de produits Retail dans une même requête. Ne peut pas être utilisé avec products_filter.

productFilter
Chaîne

Filtre standard qui sera appliqué à tous les RetailProducts du RetailProductSet spécifié, sélectionnera les éléments qui répondent aux conditions du filtre et les supprimera du RetailProductSet. Ne peut pas être utilisé avec product_ids. Filtres compatibles:https://google.aip.dev/160

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Ressource: projects.locations.retailCatalogs.retailProductRecognitionIndexes

Représentation JSON

{
  "name": string,
  "displayName": string,
  "description": string,
  "retailProductSet": [string],
   "resourceState": enum(RetailResourceState),
   "labels": {
    string: string,
    ...
    }
   "createTime": string,
   "updateTime": string
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource RetailProductRecognitionIndex.

displayName

Chaîne

Facultatif. Nom à afficher de RetailProductRecognitionIndex.

description

Chaîne

Facultatif. Description de RetailProductRecognitionIndex.

retailProductSet[]

chaîne

Facultatif. Nom de la ressource RetailProductSet à utiliser pour créer cette ressource. Si ce champ est défini, RetailProductRecognitionIndex ne contiendra que les produits du RetailProductSet donné. Si ce paramètre n'est pas défini, tous les produits du catalogue parent sont utilisés.

resourceState

enum

Sortie uniquement. État de l'index RetailProductRecognitionIndex.

 libellés

map (clé: chaîne, valeur: chaîne)

Étiquettes avec des métadonnées définies par l'utilisateur pour organiser votre RetailProductRecognitionIndex.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

createTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de création.

updateTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de la mise à jour.

Méthode: projects.locations.retailCatalogs.retailProductRecognitionIndexes.create

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailProductRecognitionIndex.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailProductRecognitionIndex.

Méthode: projects.locations.retailCatalogs.retailProductRecognitionIndexes.get

Requête HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailProductRecognitionIndex.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailProductRecognitionIndex.

Méthode: projects.locations.retailCatalogs.retailProductRecognitionIndexes.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données présentant la structure suivante :

Représentation JSON

{
  "retailProductRecognitionIndexes": [
    {
      object (RetailProductRecognitionIndex)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailCatalogs.retailProductRecognitionIndexes.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant ProductRecognitionIndex.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Ressource: projects.locations.retailEndpoints

Représentation 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
}

Fields


nom

Chaîne

Uniquement en sortie. Nom de la ressource RetailEndpoint.

displayName

Chaîne

Facultatif. Nom à afficher du RetailEndpoint.

description

Chaîne

Facultatif. Description du RetailEndpoint.

deployedProductRecognitionIndex

Chaîne

Sortie uniquement. Nom de la ressource ProductRecognitionIndex déployée sur ce RetailEndpoint.

productRecognitionConfig
Objet

Facultatif. Configuration pour la reconnaissance de produits.

tagRecognitionConfig
Objet

Facultatif. Configuration pour la reconnaissance des balises.

resourceState

enum

Sortie uniquement. État de l'index RetailProductRecognitionIndex.

 libellés

map (clé: chaîne, valeur: chaîne)

Étiquettes avec des métadonnées définies par l'utilisateur pour organiser votre RetailProductRecognitionIndex.

Les clés et valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés.

Pour en savoir plus sur les libellés et obtenir des exemples, consultez la page https://goo.gl/xmQnxf.

Objet contenant une liste de paires "clé:valeur". Exemple : { "nom": "clé", "masse": "1,3 kg", "nombre": "3" }.

createTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de création.

updateTime

chaîne (format code temporel)

Sortie uniquement. Code temporel de la mise à jour.

RetailProductRecognitionConfig

Représentation JSON

{
  "productDetectionModel": string,
  "detectionConfidenceThreshold": float,
  "recognitionConfidenceThreshold": float,
  "additionalConfig": { object }
}

Fields

|

productDetectionModel chaîne Obligatoire. Modèle à utiliser pour détecter les produits dans les images d'entrée. Valeurs acceptées: "builtin/stable" (valeur par défaut) ou nom de la ressource de modèle Vertex AI.
detectionConfidenceThreshold float Facultatif. Seuil de confiance pour filtrer les résultats de détection. Si elle n'est pas définie, une valeur par défaut du système est utilisée.
recognitionConfidenceThreshold float Facultatif. Seuil de confiance pour filtrer les résultats de la reconnaissance. Si elle n'est pas définie, une valeur par défaut du système est utilisée.
additionalConfig object (format Struct) Facultatif. Configurations supplémentaires pour la reconnaissance des produits.

RetailTagRecognitionConfig

Représentation JSON

{
  "tagDetectionModel": string,
  "tagParsingModel": string,
  "detectionConfidenceThreshold": float,
  "parsingConfidenceThreshold": float,
  "additionalConfig": { object }
}

Fields

tagDetectionModel chaîne Obligatoire. Modèle à utiliser pour détecter les tags dans les images d'entrée. Valeurs acceptées: ressource de modèle Vertex AI.
tagParsingModel chaîne Obligatoire. Modèle permettant d'analyser le texte sur les balises détectées. Valeurs acceptées: ressource de modèle Vertex AI.
detectionConfidenceThreshold float Facultatif. Seuil de confiance pour filtrer les résultats de détection. Si elle n'est pas définie, une valeur par défaut du système est utilisée.
parsingConfidenceThreshold float Facultatif. Seuil de confiance pour filtrer les résultats d'analyse du texte. Si elle n'est pas définie, une valeur par défaut du système est utilisée.
additionalConfig object (format Struct) Facultatif. Configurations supplémentaires pour la reconnaissance des balises.

Méthode: projects.locations.retailEndpoints.create

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Corps de la requête

Le corps de la requête contient une instance de RetailEndpoint.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de RetailEndpoint.

Méthode: projects.locations.retailEndpoints.get

Requête HTTP

GET https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*}

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailEndpoint.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de RetailEndpoint.

Méthode: projects.locations.retailEndpoints.list

Requête HTTP

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

Paramètres de chemin d'accès

parent chaîne Obligatoire. Identifiant parent.

Paramètres de requête

filter chaîne Facultatif. Expression pour filtrer les résultats de la requête.
pageToken chaîne Facultatif. Jeton identifiant une page de résultats que le serveur doit renvoyer.
pageSize entier Facultatif. Taille de la page demandée. Le serveur peut renvoyer moins d'éléments que demandés. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée.
orderBy chaîne Facultatif. Liste de champs à trier dans l'ordre croissant, séparés par une virgule. Utilisez "desc" après le nom d'un champ pour l'ordre décroissant.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient des données présentant la structure suivante :

Représentation JSON

{
  "retailEndpoints": [
    {
      object (RetailEndpoint)
    }
  ],
  "nextPageToken": string
}

Méthode: projects.locations.retailEndpoints.delete

Requête HTTP

DELETE https://visionai.googleapis.com/v1alpha1/{name=projects/*/locations/*/retailEndpoints/*

Paramètres de chemin d'accès

nom chaîne Obligatoire. Identifiant RetailEndpoint.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse est vide.

Méthode: projects.locations.retailEndpoints.deployRetailProductRecognitionIndex

Requête HTTP

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

Paramètres de chemin d'accès

retailEndpoint chaîne Obligatoire. Nom de la ressource RetailEndpoint dans laquelle le RetailProductRecognitionIndex est déployé.

Corps de la requête

Représentation JSON

{
  "retailProductRecognitionIndex": string,
}

Fields

retailProductRecognitionIndex chaîne Obligatoire. Nom de la ressource RetailProductRecognitionIndex à déployer.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Méthode: projects.locations.retailEndpoints.undeployRetailProductRecognitionIndex

Requête HTTP

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

Paramètres de chemin d'accès

retailEndpoint chaîne Obligatoire. Nom de la ressource RetailEndpoint sur laquelle le dés déploiement agira.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Méthode: projects.locations.retailEndpoints.batchAnalyze

Requête HTTP

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

Paramètres de chemin d'accès

retailEndpoint chaîne Obligatoire. Nom de la ressource de l'RetailEndpoint pour diffuser la requête d'inférence.

Corps de la requête

Représentation 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
}

Fields

gcsSource chaîne Obligatoire. Emplacement Cloud Storage du contenu d'entrée. Vous pouvez fournir plusieurs emplacements d'entrée. Le contenu de tous les emplacements d'entrée sera traité en un seul lot. Contenu accepté: fichier TXT, chaque ligne correspondant au chemin d'accès complet d'une image. Vous ne pouvez pas envoyer plus de 50 000 images par requête.
outputGcsDestination chaîne Facultatif. Emplacement Cloud Storage du répertoire dans lequel la sortie doit être écrite.
corpus chaîne Facultatif. Nom de la ressource du corpus de l'entrepôt d'images. Pas encore compatible.
bigqueryTable chaîne Facultatif. Nom de la ressource de la table BigQuery pour les exportations d'annotations. au format "projects/*/datasets/*/tables/*". Si cette option est définie, les annotations générées à partir de l'inférence ML seront également exportées vers la table BigQuery donnée. Pas encore compatible.
features[] Objet Obligatoire. Type d'inférence ML à effectuer.

Fonctionnalité

Représentation JSON

{
  "type": enum(Type),
  "productRecognitionConfig": object(RetailProductRecognitionConfig),
  "tagRecognitionConfig": object(RetailTagRecognitionConfig)
}

Fields

type énum Obligatoire. Type de fonctionnalité.
productRecognitionConfig objet Facultatif. Forcer des valeurs par requête pour la fonctionnalité de reconnaissance de produits. Il n'est efficace que si le type est défini sur TYPE_PRODUCT_RECOGNITION.
tagRecognitionConfig objet Facultatif. Forcer des valeurs par requête pour la fonctionnalité de reconnaissance des balises. Il n'est efficace que si le type est défini sur TYPE_TAG_RECOGNITION.

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de Operation.

Types

GcsSource

Représentation JSON

{
  "uris": [string]
}

Fields

uris[] chaîne Obligatoire. Références à des chemins d'accès Cloud Storage.

Type

Valeurs ENUM

TYPE_UNSPECIFIED Valeur par défaut. Ne doit pas être utilisé.
TYPE_PRODUCT_RECOGNITION Reconnaissance de produits. Doit être utilisé sur un RetailEndpoint avec un RetailProductRecognitionIndex déployé.
TYPE_TAG_RECOGNITION Détection et analyse des balises Doit être utilisé sur un RetailEndpoint avec RetailTagRecognitionConfig.

RetailProductIoFormat

Représentation JSON

{
  "retailProduct": { object(RetailProduct) },
  "retailProductImages": [ { object(RetailProductImage) }]
}

Fields

retailProduct objet Obligatoire. RetailProduct à importer
retailProductImages[ ] objet Facultatif. RetailProductImages de l'RetailProduct donné à importer.

RetailResourceState

Valeurs ENUM

RETAIL_RESOURCE_STATE_UNSPECIFIED Valeur par défaut. Ne doit pas être utilisé.
RETAIL_RESOURCE_STATE_CREATING Création d'état.
RETAIL_RESOURCE_STATE_CREATED État créé.
RETAIL_RESOURCE_STATE_UPDATING État Modification.
RETAIL_RESOURCE_STATE_DELETED État "Supprimé".
RETAIL_RESOURCE_STATE_ERROR Erreur d'état.