Modelos e esquemas compatíveis

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:

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-Type compatível de BMP, GIF, ICO, JPEG, PNG, TIFF ou WEBP.

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_UNSPECIFIED
  • LEFT_EYE
  • RIGHT_EYE
  • LEFT_OF_LEFT_EYEBROW
  • RIGHT_OF_LEFT_EYEBROW
  • LEFT_OF_RIGHT_EYEBROW
  • RIGHT_OF_RIGHT_EYEBROW
  • MIDPOINT_BETWEEN_EYES
  • NOSE_TIP
  • UPPER_LIP
  • LOWER_LIP
  • MOUTH_LEFT
  • MOUTH_RIGHT
  • MOUTH_CENTER
  • NOSE_BOTTOM_RIGHT
  • NOSE_BOTTOM_LEFT
  • NOSE_BOTTOM_CENTER
  • LEFT_EYE_TOP_BOUNDARY
  • LEFT_EYE_RIGHT_CORNER
  • LEFT_EYE_BOTTOM_BOUNDARY
  • LEFT_EYE_LEFT_CORNER
  • RIGHT_EYE_TOP_BOUNDARY
  • RIGHT_EYE_RIGHT_CORNER
  • RIGHT_EYE_BOTTOM_BOUNDARY
  • RIGHT_EYE_LEFT_CORNER
  • LEFT_EYEBROW_UPPER_MIDPOINT
  • RIGHT_EYEBROW_UPPER_MIDPOINT
  • LEFT_EAR_TRAGION
  • RIGHT_EAR_TRAGION
  • LEFT_EYE_PUPIL
  • RIGHT_EYE_PUPIL
  • FOREHEAD_GLABELLA
  • CHIN_GNATHION
  • CHIN_LEFT_GONION
  • CHIN_RIGHT_GONION
  • LEFT_CHEEK_CENTER
  • RIGHT_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-Type compatível de BMP, GIF, ICO, JPEG, PNG, TIFF ou WEBP.

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-Type compatível de BMP, GIF, ICO, JPEG, PNG, TIFF ou WEBP.

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-Type compatível de BMP, GIF, ICO, JPEG, PNG, TIFF ou WEBP.

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-Type de application/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 & Government ou /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