Lorsque vous configurez des enrichissements d'objets, vous choisissez les modèles de machine learning qui analysent vos objets stockés. Chaque modèle évalue les images ou les documents PDF éligibles et associe des métadonnées structurées directement à vos objets Cloud Storage.
Cette page décrit chaque modèle compatible, ses critères d'éligibilité et son schéma de sortie pour vous aider à analyser et à interroger les métadonnées d'enrichissement dans BigQuery ou via une API.
Relation entre les modèles et les enrichissements d'objets
Pour activer des modèles, vous devez créer une configuration de fonctionnalité
(FeatureConfig) qui spécifie les buckets à
analyser et les modèles à exécuter. Lors du traitement asynchrone, Cloud Storage évalue les objets éligibles à l'aide des modèles que vous avez choisis et génère des métadonnées JSON structurées appelées "enrichissements d'objets".
Chaque modèle produit une charge utile JSON dédiée que Cloud Storage associe directement à l'objet en tant que contexte d'objet géré par Google sous la propriété contexts.custom. Une clé de contexte unique précédée de google:annotation: identifie chaque charge utile.
Selon votre workflow, vous pouvez utiliser ces métadonnées de deux manières :
- Inspecter des objets individuels : récupérez les enrichissements d'un objet spécifique à l'aide des API d'objet, telles que la méthode
viewFullContext(preview). - Analyser à grande échelle : interrogez les métadonnées enrichies de tous les objets d'un bucket à l'aide des ensembles de données Storage Insights et du langage SQL standard dans BigQuery.
Détection de visages
Utilisez le modèle face-detector pour détecter des visages humains dans des images stockées. Le modèle détecte les polygones de délimitation pour les têtes entières et les visages individuels, et localise 36 points de repère faciaux, tels que les yeux, le nez et la bouche. Il calcule également les angles d'orientation de la tête, tels que le roulis, le panoramique et l'inclinaison, et évalue la probabilité d'expression émotionnelle.
Informations sur le modèle
- Nom du modèle :
face-detector - Clé de contexte :
google:annotation:face-detector-v1 - Objets éligibles : objets d'image d'une taille maximale de 20 Mio avec un
Content-Typecompatible deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Schéma de sortie
Le modèle génère un objet JSON contenant modelName, modelVersion et un faceAnnotationGroup avec un tableau de faceAnnotations. Si l'exécution du modèle échoue, l'objet JSON contient un objet error au lieu de faceAnnotationGroup.
| Champ | Type | Plage | Description |
|---|---|---|---|
modelName |
string |
N/A | Nom du modèle de machine learning qui a généré cet enrichissement. |
modelVersion |
string |
N/A | Version du modèle de machine learning qui a généré cet enrichissement. |
faceAnnotationGroup |
object |
N/A | Objet conteneur de premier niveau pour les enrichissements de détection de visages. Présent lorsque l'exécution du modèle réussit. |
faceAnnotationGroup.faceAnnotations[] |
array |
N/A | Liste des visages détectés dans l'image. |
faceAnnotationGroup.faceAnnotations[].boundingPoly |
object |
N/A | BoundingPoly : cadre englobant la tête et le visage entiers, mis à l'échelle des dimensions de l'image d'origine. |
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly |
object |
N/A | BoundingPoly pour la détection de visages. Plus précis que boundingPoly, ne contenant que la peau et les traits visibles du visage. |
faceAnnotationGroup.faceAnnotations[].landmarks[] |
array |
N/A | Liste des objets FaceLandmark détectés représentant des caractéristiques faciales spécifiques. |
faceAnnotationGroup.faceAnnotations[].rollAngle |
number |
-180 à 180 |
Rotation du visage dans le sens des aiguilles d'une montre ou dans le sens inverse des aiguilles d'une montre, en degrés. |
faceAnnotationGroup.faceAnnotations[].panAngle |
number |
-180 à 180 |
Angle horizontal vers la gauche ou la droite vers lequel pointe le visage, en degrés. |
faceAnnotationGroup.faceAnnotations[].tiltAngle |
number |
-180 à 180 |
Angle d'inclinaison vertical du visage vers le haut ou vers le bas, en degrés. |
faceAnnotationGroup.faceAnnotations[].detectionConfidence |
number |
0 à 1 (0% à 100%) |
Score de confiance pour la détection globale des visages. |
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence |
number |
0 à 1 (de 0% à 100%) |
Score de confiance pour le positionnement des points de repère du visage. |
faceAnnotationGroup.faceAnnotations[].joyProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que le visage exprime la joie. |
faceAnnotationGroup.faceAnnotations[].sorrowProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que le visage exprime de la tristesse. |
faceAnnotationGroup.faceAnnotations[].angerProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que le visage exprime la colère. |
faceAnnotationGroup.faceAnnotations[].surpriseProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que le visage exprime la surprise. |
faceAnnotationGroup.faceAnnotations[].underExposedProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que le visage sur l'image soit sous-exposé. |
faceAnnotationGroup.faceAnnotations[].blurredProbability |
number |
0 à 1 (de 0% à 100%) |
Probabilité que le visage sur l'image soit flouté. |
faceAnnotationGroup.faceAnnotations[].headwearProbability |
number |
0 à 1 (0% à 100%) |
Probabilité que la personne porte un couvre-chef, comme un chapeau ou une casquette. |
error |
object |
N/A | Un objet google.rpc.Status contenant code et message. Renseigné uniquement en cas d'échec de l'exécution du modèle. |
BoundingPoly
L'objet BoundingPoly représente un polygone de délimitation entourant un élément d'image détecté.
| Champ | Type | Plage | Description |
|---|---|---|---|
vertices[] |
array |
N/A | Coordonnées du polygone de délimitation à l'aide d'objets Vertex en pixels absolus. |
normalizedVertices[] |
array |
N/A | Coordonnées du polygone englobant à l'aide d'objets NormalizedVertex relatifs, mis à l'échelle de 0 à 1. |
Vertex
L'objet Vertex représente un point de coordonnées 2D mis à l'échelle selon les dimensions de l'image d'origine.
| Champ | Type | Plage | Description |
|---|---|---|---|
x |
integer |
0 ou plus |
Coordonnée X horizontale, en pixels à partir du bord gauche. |
y |
integer |
0 ou plus |
Coordonnée Y verticale, en pixels à partir du bord supérieur. |
NormalizedVertex
L'objet NormalizedVertex représente un point de coordonnées 2D exprimé sous la forme d'un ratio par rapport aux dimensions de l'image d'origine.
| Champ | Type | Plage | Description |
|---|---|---|---|
x |
number |
0 à 1 |
Coordonnée X horizontale par rapport à la largeur de l'image, où 0.0 correspond au bord gauche et 1.0 au bord droit. |
y |
number |
0 à 1 |
Coordonnée Y verticale par rapport à la hauteur de l'image, où 0.0 correspond au bord supérieur et 1.0 au bord inférieur. |
FaceLandmark
L'objet FaceLandmark représente un point de repère facial spécifique détecté sur un visage.
| Champ | Type | Plage | Description |
|---|---|---|---|
type |
enum |
Consultez Type de point de repère. | Point de repère spécifique détecté sur le visage. |
position |
object |
N/A | Position 3D du point de repère. |
Type de repère
Le modèle reconnaît 36 points de repère spécifiques sur le visage :
TYPE_UNSPECIFIEDLEFT_EYERIGHT_EYELEFT_OF_LEFT_EYEBROWRIGHT_OF_LEFT_EYEBROWLEFT_OF_RIGHT_EYEBROWRIGHT_OF_RIGHT_EYEBROWMIDPOINT_BETWEEN_EYESNOSE_TIPUPPER_LIPLOWER_LIPMOUTH_LEFTMOUTH_RIGHTMOUTH_CENTERNOSE_BOTTOM_RIGHTNOSE_BOTTOM_LEFTNOSE_BOTTOM_CENTERLEFT_EYE_TOP_BOUNDARYLEFT_EYE_RIGHT_CORNERLEFT_EYE_BOTTOM_BOUNDARYLEFT_EYE_LEFT_CORNERRIGHT_EYE_TOP_BOUNDARYRIGHT_EYE_RIGHT_CORNERRIGHT_EYE_BOTTOM_BOUNDARYRIGHT_EYE_LEFT_CORNERLEFT_EYEBROW_UPPER_MIDPOINTRIGHT_EYEBROW_UPPER_MIDPOINTLEFT_EAR_TRAGIONRIGHT_EAR_TRAGIONLEFT_EYE_PUPILRIGHT_EYE_PUPILFOREHEAD_GLABELLACHIN_GNATHIONCHIN_LEFT_GONIONCHIN_RIGHT_GONIONLEFT_CHEEK_CENTERRIGHT_CHEEK_CENTER
Position
L'objet Position représente les coordonnées 3D d'un point de repère facial.
| Champ | Type | Plage | Description |
|---|---|---|---|
x |
number |
N/A | Coordonnée X horizontale. |
y |
number |
N/A | Coordonnée Y verticale. |
z |
number |
N/A | Coordonnée de profondeur par rapport au plan du visage, où les valeurs les plus petites sont les plus proches de la caméra. |
Exemple de sortie
{
"modelName": "face-detector",
"modelVersion": "v1",
"faceAnnotationGroup": {
"faceAnnotations": [
{
"boundingPoly": {
"vertices": [
{ "x": 1079, "y": 148 },
{ "x": 2152, "y": 148 },
{ "x": 2152, "y": 1396 },
{ "x": 1079, "y": 1396 }
],
"normalizedVertices": [
{ "x": 0.35, "y": 0.12 },
{ "x": 0.70, "y": 0.12 },
{ "x": 0.70, "y": 0.95 },
{ "x": 0.35, "y": 0.95 }
]
},
"faceDetectionBoundingPoly": {
"vertices": [
{ "x": 1190, "y": 427 },
{ "x": 2037, "y": 427 },
{ "x": 2037, "y": 1285 },
{ "x": 1190, "y": 1285 }
]
},
"landmarks": [
{
"type": "LEFT_EYE",
"position": { "x": 1368.8, "y": 737.6, "z": 0.0016 }
},
{
"type": "RIGHT_EYE",
"position": { "x": 1659.2, "y": 755.1, "z": -116.4 }
}
],
"rollAngle": 1.959,
"panAngle": -21.954,
"tiltAngle": -2.267,
"detectionConfidence": 0.98,
"landmarkingConfidence": 0.61,
"joyProbability": 0.18,
"headwearProbability": 0.80
}
]
}
}
Détection d'objets
Utilisez le modèle object-detector pour détecter et suivre plusieurs objets distincts dans une image. Pour chaque objet identifié, le modèle fournit un nom d'entité, un ID d'entité Knowledge Graph (knowledgeGraphId), un score de confiance et des coordonnées de délimitation.
Informations sur le modèle
- Nom du modèle :
object-detector - Clé de contexte :
google:annotation:object-detector-v1 - Objets éligibles : objets d'image d'une taille maximale de 20 Mio avec un
Content-Typecompatible deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Schéma de sortie
Le modèle génère un objet JSON contenant modelName, modelVersion et un objectAnnotationGroup avec un tableau de objectAnnotations. Si l'exécution du modèle échoue, l'objet JSON contient un objet error au lieu de objectAnnotationGroup.
| Champ | Type | Plage | Description |
|---|---|---|---|
modelName |
string |
N/A | Nom du modèle de machine learning qui a généré cet enrichissement. |
modelVersion |
string |
N/A | Version du modèle de machine learning qui a généré cet enrichissement. |
objectAnnotationGroup |
object |
N/A | Objet conteneur de premier niveau pour les enrichissements de détection d'objets. Présent lorsque l'exécution du modèle réussit. |
objectAnnotationGroup.objectAnnotations[] |
array |
N/A | Liste des objets détectés dans l'image. |
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId |
string |
N/A | ID d'entité Google Knowledge Graph pour l'objet détecté. |
objectAnnotationGroup.objectAnnotations[].name |
string |
N/A | Nom ou étiquette de l'objet détecté, par exemple "Person" ou "Chair". |
objectAnnotationGroup.objectAnnotations[].score |
number |
0 à 1 (de 0% à 100%) |
Score de confiance pour la détection d'objets. |
objectAnnotationGroup.objectAnnotations[].boundingPoly |
object |
N/A | Le BoundingPoly autour de l'objet, contenant les coordonnées en pixels (vertices) et les coordonnées normalisées (normalizedVertices). |
error |
object |
N/A | Objet google.rpc.Status contenant code et message. Renseigné uniquement en cas d'échec de l'exécution du modèle. |
Exemple de sortie
{
"modelName": "object-detector",
"modelVersion": "v1",
"objectAnnotationGroup": {
"objectAnnotations": [
{
"knowledgeGraphId": "/m/01g317",
"name": "Person",
"score": 0.89,
"boundingPoly": {
"normalizedVertices": [
{ "x": 0.1, "y": 0.15 },
{ "x": 0.2, "y": 0.15 },
{ "x": 0.2, "y": 0.3 },
{ "x": 0.1, "y": 0.3 }
]
}
}
]
}
}
Ajout de libellés à des images générales
Utilisez le modèle label-detector pour générer des étiquettes descriptives, des mots clés et des catégories sémantiques générales pour les images. Le modèle identifie les entités générales, les paysages, les activités et les lieux, tels que Landscape, Urban ou Night, ce qui permet de rechercher et de cataloguer vos ressources visuelles.
Informations sur le modèle
- Nom du modèle :
label-detector - Clé de contexte :
google:annotation:label-detector-v1 - Objets éligibles : objets d'image d'une taille maximale de 20 Mio avec un
Content-Typecompatible deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Schéma de sortie
Le modèle génère un objet JSON contenant modelName, modelVersion et un labelAnnotationGroup avec un tableau de labelAnnotations. Si l'exécution du modèle échoue, l'objet JSON contient un objet error au lieu de labelAnnotationGroup.
| Champ | Type | Plage | Description |
|---|---|---|---|
modelName |
string |
N/A | Nom du modèle de machine learning qui a généré cet enrichissement. |
modelVersion |
string |
N/A | Version du modèle de machine learning qui a généré cet enrichissement. |
labelAnnotationGroup |
object |
N/A | Objet conteneur de premier niveau pour les enrichissements d'étiquettes d'image. Présent lorsque l'exécution du modèle réussit. |
labelAnnotationGroup.labelAnnotations[] |
array |
N/A | Liste des étiquettes et catégories détectées. |
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId |
string |
N/A | ID d'entité Google Knowledge Graph pour l'étiquette. |
labelAnnotationGroup.labelAnnotations[].description |
string |
N/A | Description textuelle ou nom du libellé de l'entité détectée. |
labelAnnotationGroup.labelAnnotations[].score |
number |
0 à 1 (0% à 100%) |
Score de confiance de l'étiquette. |
labelAnnotationGroup.labelAnnotations[].topicality |
number |
0 à 1 (0% à 100%) |
Pertinence du libellé par rapport au sujet principal de l'image. Plus le score est élevé, plus la pertinence est grande. |
error |
object |
N/A | Objet google.rpc.Status contenant code et message. Renseigné uniquement en cas d'échec de l'exécution du modèle. |
Exemple de sortie
{
"modelName": "label-detector",
"modelVersion": "v1",
"labelAnnotationGroup": {
"labelAnnotations": [
{
"knowledgeGraphId": "/m/01d74z",
"description": "Night",
"score": 0.92,
"topicality": 0.19
}
]
}
}
Détection de contenu explicite
Utilisez le modèle content-safety pour analyser les images importées afin de détecter les contenus sensibles, explicites ou inappropriés. Le modèle évalue les images par rapport aux règles de sécurité de Google. Elle évalue la probabilité de présence de contenus réservés aux adultes, violents ou sensibles pour vous aider à automatiser les workflows de modération de contenu.
Informations sur le modèle
- Nom du modèle :
content-safety - Clé de contexte :
google:annotation:content-safety-v1 - Objets éligibles : objets d'image d'une taille maximale de 20 Mio avec un
Content-Typecompatible deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Schéma de sortie
Le modèle génère un objet JSON contenant modelName, modelVersion et un objet contentSafetyAnnotation avec des évaluations de probabilité. Si l'exécution du modèle échoue, l'objet JSON contient un objet error au lieu de contentSafetyAnnotation.
| Champ | Type | Valeurs / Plage | Description |
|---|---|---|---|
modelName |
string |
N/A | Nom du modèle de machine learning qui a généré cet enrichissement. |
modelVersion |
string |
N/A | Version du modèle de machine learning qui a généré cet enrichissement. |
contentSafetyAnnotation |
object |
N/A | Objet conteneur de premier niveau pour les résultats de l'analyse de contenu. Présent lorsque l'exécution du modèle réussit. |
contentSafetyAnnotation.adultContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY et VERY_LIKELY |
Probabilité que l'image comporte du contenu réservé aux adultes. |
contentSafetyAnnotation.violentContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY et VERY_LIKELY |
Probabilité que l'image représente de la violence. |
error |
object |
N/A | Objet google.rpc.Status contenant code et message. Renseigné uniquement en cas d'échec de l'exécution du modèle. |
Exemple de sortie
{
"modelName": "content-safety",
"modelVersion": "v1",
"contentSafetyAnnotation": {
"adultContentLikelihood": "VERY_UNLIKELY",
"violentContentLikelihood": "UNLIKELY"
}
}
Classification de PDF
Utilisez le modèle pdf-classification pour catégoriser automatiquement les documents PDF en fonction de leur structure textuelle et visuelle. Le modèle attribue des catégories hiérarchiques standardisées pour les entreprises, les secteurs et les thèmes. Ces catégories vous aident à organiser de grandes collections de documents, à ancrer la récupération de l'IA générative et à acheminer les documents vers des workflows en aval.
Informations sur le modèle
- Nom du modèle :
pdf-classification - Clé de contexte :
google:annotation:pdf-classification-v1 - Objets éligibles : objets de document PDF de 20 Mio ou moins avec un
Content-Typedeapplication/pdf.
Schéma de sortie
Le modèle génère un objet JSON contenant modelName, modelVersion et un pdfClassificationCategoryList avec un tableau de categories classés. Si l'exécution du modèle échoue, l'objet JSON contient un objet error au lieu de pdfClassificationCategoryList.
| Champ | Type | Plage | Description |
|---|---|---|---|
modelName |
string |
N/A | Nom du modèle de machine learning qui a généré cet enrichissement. |
modelVersion |
string |
N/A | Version du modèle de machine learning qui a généré cet enrichissement. |
pdfClassificationCategoryList |
object |
N/A | Objet conteneur de premier niveau pour les résultats de classification des PDF. Présent lorsque l'exécution du modèle réussit. |
pdfClassificationCategoryList.categories[] |
array |
N/A | Liste des catégories de classification détectées. |
pdfClassificationCategoryList.categories[].label |
string |
Consultez Catégories de classification de PDF. | Chemin de la catégorie hiérarchique, par exemple "/Finance/Accounting & Auditing/Tax Preparation & Planning". |
pdfClassificationCategoryList.categories[].score |
number |
0 à 1 (de 0% à 100%) |
Score de confiance pour la catégorie attribuée. |
error |
object |
N/A | Un objet google.rpc.Status contenant code et message. Renseigné uniquement en cas d'échec de l'exécution du modèle. |
Catégories acceptées
Le modèle pdf-classification attribue des catégories de contenu hiérarchiques standardisées aux documents PDF.
Les catégories sont structurées de manière hiérarchique, avec des barres obliques (/) pour séparer les niveaux de profondeur. Ils commencent par un secteur d'activité général de premier niveau et se limitent à des sous-catégories spécifiques :
- Secteurs de premier niveau : domaines de sujets généraux, tels que
/Finance,/Law & Governmentou/Computers & Electronics. - Sous-catégories : sujets spécifiques d'un secteur, comme
/Finance/Accounting & Auditing/Tax Preparation & Planning. - Sous-catégories
/Other: catégories de contenus qui correspondent à la catégorie parente, mais qui n'entrent dans aucune sous-catégorie enfant spécifique.
Si un document traite de plusieurs sujets distincts, le modèle peut attribuer plusieurs catégories à un seul objet PDF avec un niveau de confiance élevé.
Catégories de premier niveau
Le modèle classe les documents PDF dans 27 catégories de premier niveau :
/Adult/Arts & Entertainment/Autos & Vehicles/Beauty & Fitness/Books & Literature/Business & Industrial/Computers & Electronics/Finance/Food & Drink/Games/Health/Hobbies & Leisure/Home & Garden/Internet & Telecom/Jobs & Education/Law & Government/News/Online Communities/People & Society/Pets & Animals/Real Estate/Reference/Science/Sensitive Subjects/Shopping/Sports/Travel & Transportation
Les sous-catégories suivent le chemin hiérarchique /Top-Level-Vertical/Subcategory, avec des niveaux plus profonds facultatifs, sous ces catégories de premier niveau. Pour obtenir la liste complète de tous les chemins de catégorie acceptés, consultez Catégories de classification PDF.
Exemple de sortie
{
"modelName": "pdf-classification",
"modelVersion": "v1",
"pdfClassificationCategoryList": {
"categories": [
{
"label": "/Finance/Accounting & Auditing/Tax Preparation & Planning",
"score": 0.85
},
{
"label": "/Business & Industrial/Printing & Publishing/Document & Printing Services",
"score": 0.25
}
]
}
}
Étapes suivantes
- En savoir plus sur les enrichissements d'objets
- Configurez les enrichissements d'objets.
- Gérez les enrichissements d'objets.
- Analyser les enrichissements d'objets dans BigQuery
- Consultez la ressource de l'API JSON
featureConfigs. - Résoudre les problèmes liés aux enrichissements d'objets