Un entrepôt Vision (corpus
) connecté dans une application déployée qui ingère des données contient un ou plusieurs objets multimédias assets
. Vous pouvez fournir plus d'informations sur ces objets multimédias assets
avec dataSchema
et les ressources annotation
fournies par l'utilisateur.
Les ressources de schéma de données doivent être créées avant de pouvoir créer une ressource annotation
avec cette clé de schéma de données. Une fois que vous avez créé un schéma de données (ressources dataSchema
) pour indiquer à l'API Vertex AI Vision comment interpréter les annotations multimédias, vous pouvez créer des ressources annotation
pour les contenus multimédias dans un entrepôt.
Créer un schéma de données (API)
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID du corpus cible.
- DATASCHEMA_KEY: cette clé doit correspondre à celle d'une annotation spécifiée par l'utilisateur et être unique dans un
corpus
. Par exemple,data-key
. - ANNOTATION_DATA_TYPE: type de données de l'annotation. Valeurs disponibles :
DATA_TYPE_UNSPECIFIED
INTEGER
FLOAT
STRING
DATETIME
GEO_COORDINATE
PROTO_ANY
BOOLEAN
Pour en savoir plus, consultez la documentation de référence sur les API.
- ANNOTATION_GRANULARITY: précision des annotations sous ce
dataSchema
. Valeurs disponibles :GRANULARITY_UNSPECIFIED
: précision non spécifiée.GRANULARITY_ASSET_LEVEL
: granularité au niveau de l'asset (les annotations ne doivent pas contenir d'informations de partitionnement temporel pour l'asset multimédia).GRANULARITY_PARTITION_LEVEL
: précision au niveau de la partition (les annotations doivent contenir des informations de partitionnement temporel pour le composant multimédia).
- SEARCH_STRATEGY: l'une des valeurs d'énumération disponibles. Types de stratégies de recherche à appliquer à la clé d'annotation. Valeurs disponibles :
NO_SEARCH
EXACT_SEARCH
SMART_SEARCH
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
Corps JSON de la requête :
{ "key": "DATASCHEMA_KEY", "schema_details": { "type": "ANNOTATION_DATA_TYPE", "granularity": "ANNOTATION_GRANULARITY", "search_strategy": { "search_strategy_type": "SEARCH_STRATEGY" } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "data-key", "schemaDetails": { "type": "BOOLEAN", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "search_strategy_type": "EXACT_SEARCH" } } }
Mettre à jour le schéma de données (API)
API REST et ligne de commande
Le code suivant met à jour un dataSchema
à l'aide de la méthode projects.locations.corpora.dataSchemas.patch
.
Cet exemple utilise ?updateMask=schemaDetails.type,schemaDetails.granularity
dans l'URL de la requête et inclut de nouvelles valeurs schemaDetails.type
et schemaDetails.granularity
dans le corps de la requête pour mettre à jour le schéma de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- DATASCHEMA_ID: ID de votre schéma de données cible.
?updateMask=fieldToUpdate
: l'un des champs disponibles auxquels vous pouvez appliquer unupdateMask
. Spécifiez la nouvelle valeur de champ correspondante dans le corps de la requête. Cette nouvelle valeur remplace la valeur du champ existant. Champs disponibles :- Clé :
?updateMask=key
- Type de schéma:
?updateMask=schemaDetails.type
- Précision du schéma:
?updateMask=schemaDetails.granularity
- Type de stratégie de recherche de schéma:
?updateMask=schemaDetails.searchStrategy.searchStrategyType
- Mettre à jour tous les champs:
?updateMask=*
- Clé :
Méthode HTTP et URL :
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity
Corps JSON de la requête :
{ "key": "original-data-key", "schemaDetails": { "type":"INTEGER", "granularity":"GRANULARITY_PARTITION_LEVEL" "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "original-data-key", "schemaDetails": { "type": "INTEGER", "granularity": "GRANULARITY_PARTITION_LEVEL", "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
Ajouter un schéma de données struct personnalisé
La struct personnalisée permet aux utilisateurs de définir des conteneurs plus complexes pour contenir des valeurs et fournir une fonctionnalité de recherche. Pour utiliser cette fonctionnalité, vous devez définir le schéma de données, par exemple:
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID du corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
Corps JSON de la requête :
{ "key": "person", "schema_details" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "person", "schemaDetails" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
Nous pouvons ensuite insérer des annotations.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- ASSET_ID: ID de votre composant cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Corps JSON de la requête :
{ "user_specified_annotation" : { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID", "userSpecifiedAnnotation": { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
Une fois l'annotation indexée, vous pouvez envoyer une requête de recherche comme suit:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID du corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "page_size": 10, "criteria": { "field": "person.name", "text_array": { "txt_values": "John" }, }, }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Modifier les détails du schéma de l'entrepôt (console)
Les champs de schéma sont générés à partir des modèles via les applications. Vous pouvez également ajouter des champs personnalisés.
Une fois que vous avez modifié les champs de la table de visages, vous pouvez les utiliser pour rechercher dans votre entrepôt.
Console
Ouvrez l'onglet Entrepôts du tableau de bord Vertex AI Vision.
Recherchez l'entrepôt de votre choix, puis sélectionnez son nom. La page Détails de l'entrepôt s'affiche.
Sélectionnez les champs que vous souhaitez activer pour la recherche.