Ao configurar os enriquecimentos de objetos, você escolhe quais modelos de machine learning analisam os objetos armazenados. Cada modelo avalia imagens ou documentos PDF qualificados e anexa metadados estruturados diretamente aos objetos do Cloud Storage.
Nesta página, descrevemos cada modelo compatível, os requisitos de qualificação e o esquema de saída para ajudar você a analisar e consultar metadados de enriquecimento no BigQuery ou por uma API.
Relação entre modelos e enriquecimentos de objetos
Para ativar os modelos, crie uma configuração de recurso
(FeatureConfig) que especifica quais buckets serão
verificados e quais modelos serão executados. Durante o processamento assíncrono,
o Cloud Storage avalia os objetos qualificados usando os modelos escolhidos
e gera metadados JSON estruturados chamados de
enriquecimento de objetos.
Cada modelo produz um payload JSON dedicado que o Cloud Storage
anexa diretamente ao objeto como um contexto de objeto gerenciado pelo Google na
propriedade contexts.custom. Uma chave de contexto exclusiva com o prefixo
google:annotation: identifica cada payload.
Dependendo do seu fluxo de trabalho, é possível consumir esses metadados de duas maneiras:
- Inspecionar objetos individuais: recupere as melhorias de um objeto específico
usando APIs de objeto, como o método
viewFullContext(pré-lançamento). - Analisar em grande escala: consulte metadados enriquecidos em todos os objetos de um bucket usando conjuntos de dados do Storage Insights e SQL padrão no BigQuery.
Detecção facial
Use o modelo face-detector para detectar rostos humanos em imagens armazenadas. O modelo
detecta polígonos delimitadores para cabeças inteiras e rostos individuais e localiza 36
pontos de referência faciais, como olhos, nariz e boca. Ele também calcula ângulos de orientação da cabeça, como rotação, movimento horizontal e inclinação, e avalia as probabilidades de expressão emocional.
Detalhes do modelo
- Nome do modelo:
face-detector - Chave de contexto:
google:annotation:face-detector-v1 - Objetos qualificados: objetos de imagem de 20 MiB ou menores com um
Content-Typecompatível deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Esquema de saída
A saída do modelo gera um objeto JSON que contém modelName, modelVersion e um
faceAnnotationGroup com uma matriz de faceAnnotations. Se a execução do modelo falhar, o objeto JSON vai conter um objeto error em vez de faceAnnotationGroup.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
modelName |
string |
N/A | O nome do modelo de machine learning que gerou esse enriquecimento. |
modelVersion |
string |
N/A | A versão do modelo de machine learning que gerou esse enriquecimento. |
faceAnnotationGroup |
object |
N/A | Objeto de contêiner de nível superior para enriquecimentos de detecção facial. Presente quando a execução do modelo é bem-sucedida. |
faceAnnotationGroup.faceAnnotations[] |
array |
N/A | Uma lista de rostos detectados na imagem. |
faceAnnotationGroup.faceAnnotations[].boundingPoly |
object |
N/A | O BoundingPoly que envolve toda a cabeça e o rosto, dimensionado para as dimensões da imagem original. |
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly |
object |
N/A | O BoundingPoly para detecção facial. Mais restrito que boundingPoly, incluindo apenas a pele e as características faciais visíveis. |
faceAnnotationGroup.faceAnnotations[].landmarks[] |
array |
N/A | Uma lista de objetos FaceLandmark detectados que representam características faciais específicas. |
faceAnnotationGroup.faceAnnotations[].rollAngle |
number |
-180 a 180 |
Rotação do rosto em sentido horário ou anti-horário, em graus. |
faceAnnotationGroup.faceAnnotations[].panAngle |
number |
-180 a 180 |
O ângulo horizontal em que o rosto está apontando para a esquerda ou direita, em graus. |
faceAnnotationGroup.faceAnnotations[].tiltAngle |
number |
-180 a 180 |
Ângulo de inclinação vertical em que o rosto está apontando para cima ou para baixo, em graus. |
faceAnnotationGroup.faceAnnotations[].detectionConfidence |
number |
0 a 1 (0% a 100%) |
Pontuação de confiança para a detecção facial geral. |
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence |
number |
0 a 1 (0% a 100%) |
Pontuação de confiança para o posicionamento de pontos de referência faciais. |
faceAnnotationGroup.faceAnnotations[].joyProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de o rosto expressar alegria. |
faceAnnotationGroup.faceAnnotations[].sorrowProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de o rosto expressar tristeza. |
faceAnnotationGroup.faceAnnotations[].angerProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de o rosto expressar raiva. |
faceAnnotationGroup.faceAnnotations[].surpriseProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de o rosto expressar surpresa. |
faceAnnotationGroup.faceAnnotations[].underExposedProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de que o rosto na imagem esteja subexposto. |
faceAnnotationGroup.faceAnnotations[].blurredProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de o rosto na imagem estar desfocado. |
faceAnnotationGroup.faceAnnotations[].headwearProbability |
number |
0 a 1 (0% a 100%) |
Probabilidade de a pessoa estar usando um acessório na cabeça, como um chapéu ou boné. |
error |
object |
N/A | Um objeto google.rpc.Status que contém code e message. Preenchido apenas quando a execução do modelo falha. |
BoundingPoly
O objeto BoundingPoly representa um polígono delimitador que inclui um recurso de imagem detectado.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
vertices[] |
array |
N/A | Coordenadas de polígono delimitador usando objetos de pixel absoluto Vertex. |
normalizedVertices[] |
array |
N/A | Coordenadas do polígono delimitador usando objetos NormalizedVertex relativos, dimensionados de 0 a 1. |
Vertex
O objeto Vertex representa um ponto de coordenada 2D dimensionado para as dimensões originais da imagem.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
x |
integer |
0 ou mais recente |
Coordenada X horizontal, em pixels da borda esquerda. |
y |
integer |
0 ou mais recente |
Coordenada Y vertical, em pixels, a partir da borda superior. |
NormalizedVertex
O objeto NormalizedVertex representa um ponto de coordenada 2D expresso como uma proporção em relação às dimensões da imagem original.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
x |
number |
0 a 1 |
Coordenada X horizontal relativa à largura da imagem, em que 0.0 é a borda esquerda e 1.0 é a borda direita. |
y |
number |
0 a 1 |
Coordenada Y vertical relativa à altura da imagem, em que 0.0 é a borda superior e 1.0 é a borda inferior. |
FaceLandmark
O objeto FaceLandmark representa um ponto de referência facial específico detectado em um
rosto.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
type |
enum |
Consulte Tipo de ponto de referência. | O ponto de referência facial específico detectado. |
position |
object |
N/A | O Position em 3D do ponto de referência. |
Tipo de ponto de referência
O modelo reconhece 36 pontos de referência faciais específicos:
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
Posição
O objeto Position representa as coordenadas 3D de um ponto de referência facial.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
x |
number |
N/A | Coordenada X horizontal. |
y |
number |
N/A | Coordenada Y vertical. |
z |
number |
N/A | Coordenada de profundidade em relação ao plano do rosto, em que valores menores estão mais próximos da câmera. |
Exemplo de saída
{
"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
}
]
}
}
Detecção de objetos
Use o modelo object-detector para detectar e rastrear vários objetos distintos
em uma imagem. Para cada objeto identificado, o modelo fornece um nome de entidade, um
ID de entidade do Mapa de informações (knowledgeGraphId), uma pontuação de confiança e coordenadas
delimitadoras.
Detalhes do modelo
- Nome do modelo:
object-detector - Chave de contexto:
google:annotation:object-detector-v1 - Objetos qualificados: objetos de imagem de 20 MiB ou menores com um
Content-Typecompatível deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Esquema de saída
A saída do modelo é um objeto JSON que contém modelName, modelVersion e um objectAnnotationGroup com uma matriz de objectAnnotations. Se a execução do modelo falhar, o objeto JSON vai conter um objeto error em vez de objectAnnotationGroup.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
modelName |
string |
N/A | O nome do modelo de machine learning que gerou esse enriquecimento. |
modelVersion |
string |
N/A | A versão do modelo de machine learning que gerou esse enriquecimento. |
objectAnnotationGroup |
object |
N/A | Objeto de contêiner de nível superior para enriquecimentos de detecção de objetos. Presente quando a execução do modelo é bem-sucedida. |
objectAnnotationGroup.objectAnnotations[] |
array |
N/A | Uma lista de objetos detectados na imagem. |
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId |
string |
N/A | O ID da entidade do Mapa de informações do Google para o objeto detectado. |
objectAnnotationGroup.objectAnnotations[].name |
string |
N/A | O nome ou rótulo do objeto detectado, como "Person" ou "Chair". |
objectAnnotationGroup.objectAnnotations[].score |
number |
0 a 1 (0% a 100%) |
Pontuação de confiança para a detecção de objetos. |
objectAnnotationGroup.objectAnnotations[].boundingPoly |
object |
N/A | A BoundingPoly ao redor do objeto, contendo coordenadas de pixel (vertices) e coordenadas normalizadas (normalizedVertices). |
error |
object |
N/A | Um objeto google.rpc.Status que contém code e message. Preenchido apenas quando a execução do modelo falha. |
Exemplo de saída
{
"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 }
]
}
}
]
}
}
Rotulagem geral de imagens
Use o modelo label-detector para gerar rótulos descritivos, palavras-chave e categorias semânticas amplas para imagens. O modelo identifica entidades gerais,
cenários, atividades e locais, como Landscape, Urban ou Night,
tornando seus recursos visuais pesquisáveis e catalogáveis.
Detalhes do modelo
- Nome do modelo:
label-detector - Chave de contexto:
google:annotation:label-detector-v1 - Objetos qualificados: objetos de imagem de 20 MiB ou menores com um
Content-Typecompatível deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Esquema de saída
A saída do modelo gera um objeto JSON que contém modelName, modelVersion e um
labelAnnotationGroup com uma matriz de labelAnnotations. Se a execução do modelo falhar, o objeto JSON vai conter um objeto error em vez de labelAnnotationGroup.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
modelName |
string |
N/A | O nome do modelo de machine learning que gerou esse enriquecimento. |
modelVersion |
string |
N/A | A versão do modelo de machine learning que gerou esse enriquecimento. |
labelAnnotationGroup |
object |
N/A | Objeto contêiner de nível superior para enriquecimentos de rótulos de imagens. Presente quando a execução do modelo é bem-sucedida. |
labelAnnotationGroup.labelAnnotations[] |
array |
N/A | Uma lista de rótulos e categorias detectados. |
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId |
string |
N/A | O ID da entidade do Mapa de informações do Google para o rótulo. |
labelAnnotationGroup.labelAnnotations[].description |
string |
N/A | Descrição textual ou nome do rótulo da entidade detectada. |
labelAnnotationGroup.labelAnnotations[].score |
number |
0 a 1 (0% a 100%) |
Pontuação de confiança do rótulo. |
labelAnnotationGroup.labelAnnotations[].topicality |
number |
0 a 1 (0% a 100%) |
Relevância do rótulo para o assunto principal da imagem. Quanto maior a pontuação, maior a relevância. |
error |
object |
N/A | Um objeto google.rpc.Status que contém code e message. Preenchido apenas quando a execução do modelo falha. |
Exemplo de saída
{
"modelName": "label-detector",
"modelVersion": "v1",
"labelAnnotationGroup": {
"labelAnnotations": [
{
"knowledgeGraphId": "/m/01d74z",
"description": "Night",
"score": 0.92,
"topicality": 0.19
}
]
}
}
Detecção de conteúdo explícito
Use o modelo content-safety para verificar se as imagens enviadas têm conteúdo sensível,
explícito ou inadequado. O modelo avalia as imagens de acordo com as políticas de segurança do Google. Ela avalia a probabilidade de conteúdo adulto, violento e outros
materiais sensíveis para ajudar a automatizar os fluxos de trabalho de moderação de conteúdo.
Detalhes do modelo
- Nome do modelo:
content-safety - Chave de contexto:
google:annotation:content-safety-v1 - Objetos qualificados: objetos de imagem de até 20 MiB com um
Content-Typecompatível deBMP,GIF,ICO,JPEG,PNG,TIFFouWEBP.
Esquema de saída
O modelo gera um objeto JSON que contém modelName, modelVersion e um objeto contentSafetyAnnotation com classificações de probabilidade. Se a execução do modelo falhar, o objeto JSON vai conter um objeto error em vez de contentSafetyAnnotation.
| Campo | Tipo | Valores / intervalo | Descrição |
|---|---|---|---|
modelName |
string |
N/A | O nome do modelo de machine learning que gerou esse enriquecimento. |
modelVersion |
string |
N/A | A versão do modelo de machine learning que gerou esse enriquecimento. |
contentSafetyAnnotation |
object |
N/A | Objeto de contêiner de nível superior para resultados de análise de conteúdo. Presente quando a execução do modelo é bem-sucedida. |
contentSafetyAnnotation.adultContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY |
Probabilidade de a imagem ter conteúdo adulto. |
contentSafetyAnnotation.violentContentLikelihood |
string |
VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY |
Probabilidade de a imagem retratar violência. |
error |
object |
N/A | Um objeto google.rpc.Status que contém code e message. Preenchido apenas quando a execução do modelo falha. |
Exemplo de saída
{
"modelName": "content-safety",
"modelVersion": "v1",
"contentSafetyAnnotation": {
"adultContentLikelihood": "VERY_UNLIKELY",
"violentContentLikelihood": "UNLIKELY"
}
}
Classificação de PDF
Use o modelo pdf-classification para categorizar automaticamente documentos PDF
com base na estrutura textual e visual deles. O modelo atribui categorias hierárquicas padronizadas para negócios, setores e tópicos. Essas categorias
ajudam a organizar grandes coleções de documentos, fundamentar a recuperação de IA generativa
e encaminhar documentos para fluxos de trabalho downstream.
Detalhes do modelo
- Nome do modelo:
pdf-classification - Chave de contexto:
google:annotation:pdf-classification-v1 - Objetos qualificados: objetos de documento PDF de 20 MiB ou menos com um
Content-Typedeapplication/pdf.
Esquema de saída
A saída do modelo gera um objeto JSON que contém modelName, modelVersion e um
pdfClassificationCategoryList com uma matriz de categories classificados. Se
a execução do modelo falhar, o objeto JSON vai conter um objeto error em vez de
pdfClassificationCategoryList.
| Campo | Tipo | Intervalo | Descrição |
|---|---|---|---|
modelName |
string |
N/A | O nome do modelo de machine learning que gerou esse enriquecimento. |
modelVersion |
string |
N/A | A versão do modelo de machine learning que gerou esse enriquecimento. |
pdfClassificationCategoryList |
object |
N/A | Objeto de contêiner de nível superior para resultados de classificação de PDF. Presente quando a execução do modelo é bem-sucedida. |
pdfClassificationCategoryList.categories[] |
array |
N/A | Uma lista de categorias de classificação detectadas. |
pdfClassificationCategoryList.categories[].label |
string |
Consulte as categorias de classificação de PDF. | O caminho hierárquico da categoria, como "/Finance/Accounting & Auditing/Tax Preparation & Planning". |
pdfClassificationCategoryList.categories[].score |
number |
0 a 1 (0% a 100%) |
Pontuação de confiança da categoria atribuída. |
error |
object |
N/A | Um objeto google.rpc.Status que contém code e message. Preenchido apenas quando a execução do modelo falha. |
Categorias compatíveis
O modelo pdf-classification atribui categorias de conteúdo hierárquicas padronizadas
a documentos PDF.
As categorias são estruturadas hierarquicamente com barras (/) que separam
a profundidade da categoria. Eles começam com uma vertical ampla de nível superior e se restringem a
subcategorias específicas:
- Setores de nível superior: domínios de assuntos amplos, como
/Finance,/Law & Governmentou/Computers & Electronics. - Subcategorias: assuntos específicos em um setor, como
/Finance/Accounting & Auditing/Tax Preparation & Planning. - Subcategorias
/Other: categorias de conteúdo que se alinham à categoria mãe, mas não se encaixam em nenhuma subcategoria filha específica.
Se um documento abordar vários tópicos distintos, o modelo poderá atribuir várias categorias de alta confiança a um único objeto PDF.
Categorias de nível superior
O modelo classifica documentos PDF em 27 categorias de nível superior:
/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
As subcategorias seguem o caminho hierárquico /Top-Level-Vertical/Subcategory, com níveis mais profundos opcionais, nessas categorias de nível superior. Para conferir a lista completa de todos os caminhos de categoria compatíveis, consulte Categorias de classificação de PDF.
Exemplo de saída
{
"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
}
]
}
}
A seguir
- Leia sobre os enriquecimentos de objetos.
- Configurar o enriquecimento de objetos.
- Gerenciar enriquecimentos de objetos.
- Analisar enriquecimentos de objetos no BigQuery.
- Revise o recurso da API JSON
featureConfigs. - Resolver problemas de enriquecimento de objetos.