Modelos y esquemas compatibles

Cuando configuras los enriquecimientos de objetos, eliges qué modelos de aprendizaje automático analizan los objetos almacenados. Cada modelo evalúa las imágenes o los documentos PDF aptos y adjunta metadatos estructurados directamente a tus objetos de Cloud Storage.

En esta página, se describe cada modelo compatible, sus requisitos de elegibilidad y su esquema de salida para ayudarte a analizar y consultar los metadatos de enriquecimiento en BigQuery o a través de una API.

Relación entre los modelos y los enriquecimientos de objetos

Para activar los modelos, crea una configuración de atributos (FeatureConfig) que especifique qué buckets se deben analizar y qué modelos se deben ejecutar. Durante el procesamiento asíncrono, Cloud Storage evalúa los objetos aptos con los modelos que elegiste y genera metadatos JSON estructurados llamados enriquecimientos de objetos.

Cada modelo produce una carga útil JSON dedicada que Cloud Storage adjunta directamente al objeto como un contexto de objeto administrado por Google en la propiedad contexts.custom. Una clave de contexto única con el prefijo google:annotation: identifica cada carga útil.

Según tu flujo de trabajo, puedes consumir estos metadatos de dos maneras:

Detección de rostro

Usa el modelo face-detector para detectar rostros humanos en imágenes almacenadas. El modelo detecta polígonos de límite para cabezas completas y rostros individuales, y ubica 36 puntos de referencia faciales, como ojos, nariz y boca. También calcula los ángulos de orientación de la cabeza, como el balanceo, el paneo y la inclinación, y evalúa las probabilidades de expresión emocional.

Detalles del modelo

  • Nombre del modelo: face-detector
  • Clave de contexto: google:annotation:face-detector-v1
  • Objetos aptos: Objetos de imagen de 20 MiB o menos con un Content-Type admitido de BMP, GIF, ICO, JPEG, PNG, TIFF o WEBP.

Esquema de salida

El resultado del modelo genera un objeto JSON que contiene modelName, modelVersion y un faceAnnotationGroup con un array de faceAnnotations. Si falla la ejecución del modelo, el objeto JSON contiene un objeto error en lugar de faceAnnotationGroup.

Campo Tipo Rango Descripción
modelName string N/A Es el nombre del modelo de aprendizaje automático que generó este enriquecimiento.
modelVersion string N/A Es la versión del modelo de aprendizaje automático que generó este enriquecimiento.
faceAnnotationGroup object N/A Es el objeto contenedor de nivel superior para los enriquecimientos de detección de rostros. Está presente cuando la ejecución del modelo se realiza correctamente.
faceAnnotationGroup.faceAnnotations[] array N/A Es una lista de los rostros detectados en la imagen.
faceAnnotationGroup.faceAnnotations[].boundingPoly object N/A El BoundingPoly que encierra toda la cabeza y el rostro, ajustado a las dimensiones de la imagen original.
faceAnnotationGroup.faceAnnotations[].faceDetectionBoundingPoly object N/A El BoundingPoly para la detección de rostros. Más ajustado que boundingPoly, ya que solo incluye la piel y los rasgos faciales visibles.
faceAnnotationGroup.faceAnnotations[].landmarks[] array N/A Es una lista de objetos FaceLandmark detectados que representan rasgos faciales específicos.
faceAnnotationGroup.faceAnnotations[].rollAngle number De -180 a 180 Es la rotación del rostro en el sentido de las manecillas del reloj o en el sentido contrario a las manecillas del reloj, en grados.
faceAnnotationGroup.faceAnnotations[].panAngle number De -180 a 180 Ángulo horizontal hacia el que apunta el rostro, en grados.
faceAnnotationGroup.faceAnnotations[].tiltAngle number De -180 a 180 Es el ángulo de inclinación vertical en el que el rostro apunta hacia arriba o hacia abajo, en grados.
faceAnnotationGroup.faceAnnotations[].detectionConfidence number 0 a 1 (0% a 100%) Es la puntuación de confianza para la detección general de rostros.
faceAnnotationGroup.faceAnnotations[].landmarkingConfidence number De 0 a 1 (del 0% al 100%) Es la puntuación de confianza para el posicionamiento de los puntos de referencia faciales.
faceAnnotationGroup.faceAnnotations[].joyProbability number De 0 a 1 (del 0% al 100%) Es la probabilidad de que el rostro exprese alegría.
faceAnnotationGroup.faceAnnotations[].sorrowProbability number De 0 a 1 (del 0% al 100%) Es la probabilidad de que el rostro exprese tristeza.
faceAnnotationGroup.faceAnnotations[].angerProbability number De 0 a 1 (del 0% al 100%) Es la probabilidad de que el rostro exprese enojo.
faceAnnotationGroup.faceAnnotations[].surpriseProbability number De 0 a 1 (del 0% al 100%) Es la probabilidad de que el rostro exprese sorpresa.
faceAnnotationGroup.faceAnnotations[].underExposedProbability number 0 a 1 (0% a 100%) Es la probabilidad de que el rostro de la imagen esté subexpuesto.
faceAnnotationGroup.faceAnnotations[].blurredProbability number 0 a 1 (0% a 100%) Es la probabilidad de que el rostro de la imagen esté desenfocado.
faceAnnotationGroup.faceAnnotations[].headwearProbability number 0 a 1 (0% a 100%) Es la probabilidad de que la persona use un accesorio para la cabeza, como un sombrero o una gorra.
error object N/A Es un objeto google.rpc.Status que contiene code y message. Se propaga solo cuando falla la ejecución del modelo.

BoundingPoly

El objeto BoundingPoly representa un polígono delimitador que encierra un atributo de imagen detectado.

Campo Tipo Rango Descripción
vertices[] array N/A Coordenadas de polígono de límite con objetos Vertex de píxeles absolutos.
normalizedVertices[] array N/A Coordenadas del polígono delimitador que usan objetos NormalizedVertex relativos, ajustados de 0 a 1.

Vertex

El objeto Vertex representa un punto de coordenadas 2D ajustado a las dimensiones de la imagen original.

Campo Tipo Rango Descripción
x integer 0 o más Coordenada X horizontal, en píxeles desde el borde izquierdo.
y integer 0 o superior Coordenada Y vertical, en píxeles desde el borde superior.

NormalizedVertex

El objeto NormalizedVertex representa un punto de coordenadas 2D expresado como una proporción relativa a las dimensiones originales de la imagen.

Campo Tipo Rango Descripción
x number De 0 a 1 Coordenada X horizontal relativa al ancho de la imagen, donde 0.0 es el borde izquierdo y 1.0 es el borde derecho.
y number De 0 a 1 Es la coordenada Y vertical relativa a la altura de la imagen, en la que 0.0 es el borde superior y 1.0 es el borde inferior.

FaceLandmark

El objeto FaceLandmark representa un punto de referencia facial específico detectado en un rostro.

Campo Tipo Rango Descripción
type enum Consulta Tipo de punto de referencia. Es el punto de referencia facial específico que se detectó.
position object N/A El Position en 3D del punto de referencia.

Tipo de punto de referencia

El modelo reconoce 36 puntos faciales 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

Posición

El objeto Position representa las coordenadas 3D de un punto de referencia facial.

Campo Tipo Rango Descripción
x number N/A Es la coordenada X horizontal.
y number N/A Es la coordenada Y vertical.
z number N/A Coordenada de profundidad relativa al plano de la cara, en la que los valores más pequeños están más cerca de la cámara.

Ejemplo de resultado

{
  "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
      }
    ]
  }
}

Detección de objetos

Usa el modelo object-detector para detectar varios objetos distintos y hacerles un seguimiento en una imagen. Para cada objeto identificado, el modelo proporciona un nombre de entidad, un ID de entidad del Gráfico de conocimiento (knowledgeGraphId), una puntuación de confianza y coordenadas de límite.

Detalles del modelo

  • Nombre del modelo: object-detector
  • Clave de contexto: google:annotation:object-detector-v1
  • Objetos aptos: Objetos de imagen de 20 MiB o menos con un Content-Type admitido de BMP, GIF, ICO, JPEG, PNG, TIFF o WEBP.

Esquema de salida

El resultado del modelo genera un objeto JSON que contiene modelName, modelVersion y un objectAnnotationGroup con un array de objectAnnotations. Si la ejecución del modelo falla, el objeto JSON contiene un objeto error en lugar de objectAnnotationGroup.

Campo Tipo Rango Descripción
modelName string N/A Es el nombre del modelo de aprendizaje automático que generó este enriquecimiento.
modelVersion string N/A Es la versión del modelo de aprendizaje automático que generó este enriquecimiento.
objectAnnotationGroup object N/A Es el objeto contenedor de nivel superior para los enriquecimientos de detección de objetos. Está presente cuando la ejecución del modelo se realiza correctamente.
objectAnnotationGroup.objectAnnotations[] array N/A Es una lista de los objetos detectados en la imagen.
objectAnnotationGroup.objectAnnotations[].knowledgeGraphId string N/A Es el ID de entidad del Gráfico de conocimiento de Google para el objeto detectado.
objectAnnotationGroup.objectAnnotations[].name string N/A Es el nombre o la etiqueta del objeto detectado, como "Person" o "Chair".
objectAnnotationGroup.objectAnnotations[].score number 0 a 1 (0% a 100%) Es la puntuación de confianza para la detección de objetos.
objectAnnotationGroup.objectAnnotations[].boundingPoly object N/A El BoundingPoly alrededor del objeto, que contiene coordenadas de píxeles (vertices) y coordenadas normalizadas (normalizedVertices).
error object N/A Es un objeto google.rpc.Status que contiene code y message. Se propaga solo cuando falla la ejecución del modelo.

Resultado de ejemplo

{
  "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 }
          ]
        }
      }
    ]
  }
}

Etiquetado de imágenes general

Usa el modelo label-detector para generar etiquetas descriptivas, palabras clave y categorías semánticas amplias para las imágenes. El modelo identifica entidades, paisajes, actividades y ubicaciones generales, como Landscape, Urban o Night, lo que permite que tus recursos visuales se puedan buscar y catalogar.

Detalles del modelo

  • Nombre del modelo: label-detector
  • Clave de contexto: google:annotation:label-detector-v1
  • Objetos aptos: Objetos de imagen de 20 MiB o menos con un Content-Type admitido de BMP, GIF, ICO, JPEG, PNG, TIFF o WEBP.

Esquema de salida

El resultado del modelo genera un objeto JSON que contiene modelName, modelVersion y un labelAnnotationGroup con un array de labelAnnotations. Si la ejecución del modelo falla, el objeto JSON contiene un objeto error en lugar de labelAnnotationGroup.

Campo Tipo Rango Descripción
modelName string N/A Es el nombre del modelo de aprendizaje automático que generó este enriquecimiento.
modelVersion string N/A Es la versión del modelo de aprendizaje automático que generó este enriquecimiento.
labelAnnotationGroup object N/A Es el objeto contenedor de nivel superior para los enriquecimientos de etiquetas de imagen. Está presente cuando la ejecución del modelo se realiza correctamente.
labelAnnotationGroup.labelAnnotations[] array N/A Es una lista de las etiquetas y categorías detectadas.
labelAnnotationGroup.labelAnnotations[].knowledgeGraphId string N/A Es el ID de entidad del Gráfico de conocimiento de Google para la etiqueta.
labelAnnotationGroup.labelAnnotations[].description string N/A Es la descripción textual o el nombre de la etiqueta de la entidad detectada.
labelAnnotationGroup.labelAnnotations[].score number De 0 a 1 (del 0% al 100%) Es la puntuación de confianza de la etiqueta.
labelAnnotationGroup.labelAnnotations[].topicality number De 0 a 1 (del 0% al 100%) Es la relevancia de la etiqueta para el tema principal de la imagen, en la que las puntuaciones más altas indican una mayor importancia.
error object N/A Es un objeto google.rpc.Status que contiene code y message. Se propaga solo cuando falla la ejecución del modelo.

Ejemplo de resultado

{
  "modelName": "label-detector",
  "modelVersion": "v1",
  "labelAnnotationGroup": {
    "labelAnnotations": [
      {
        "knowledgeGraphId": "/m/01d74z",
        "description": "Night",
        "score": 0.92,
        "topicality": 0.19
      }
    ]
  }
}

Detección de contenido explícito

Usa el modelo content-safety para analizar las imágenes subidas en busca de contenido sensible, explícito o inapropiado. El modelo evalúa las imágenes en función de las políticas de seguridad de Google. Evalúa la probabilidad de que haya material para adultos, violento o de otro tipo sensible para ayudarte a automatizar los flujos de trabajo de moderación de contenido.

Detalles del modelo

  • Nombre del modelo: content-safety
  • Clave de contexto: google:annotation:content-safety-v1
  • Objetos aptos: Objetos de imagen de 20 MiB o menos con un Content-Type admitido de BMP, GIF, ICO, JPEG, PNG, TIFF o WEBP.

Esquema de salida

El resultado del modelo genera un objeto JSON que contiene modelName, modelVersion y un objeto contentSafetyAnnotation con calificaciones de probabilidad. Si la ejecución del modelo falla, el objeto JSON contiene un objeto error en lugar de contentSafetyAnnotation.

Campo Tipo Valores / rango Descripción
modelName string N/A Es el nombre del modelo de aprendizaje automático que generó este enriquecimiento.
modelVersion string N/A Es la versión del modelo de aprendizaje automático que generó este enriquecimiento.
contentSafetyAnnotation object N/A Es el objeto contenedor de nivel superior para los resultados del análisis de contenido. Se presenta cuando la ejecución del modelo se realiza correctamente.
contentSafetyAnnotation.adultContentLikelihood string VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY Es la probabilidad de que la imagen incluya contenido para adultos.
contentSafetyAnnotation.violentContentLikelihood string VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, VERY_LIKELY Es la probabilidad de que la imagen represente violencia.
error object N/A Es un objeto google.rpc.Status que contiene code y message. Se propaga solo cuando falla la ejecución del modelo.

Ejemplo de resultado

{
  "modelName": "content-safety",
  "modelVersion": "v1",
  "contentSafetyAnnotation": {
    "adultContentLikelihood": "VERY_UNLIKELY",
    "violentContentLikelihood": "UNLIKELY"
  }
}

Clasificación de PDFs

Usa el modelo pdf-classification para categorizar automáticamente documentos PDF según su estructura visual y textual. El modelo asigna categorías jerárquicas estandarizadas para empresas, industrias y temas. Estas categorías te ayudan a organizar grandes colecciones de documentos, fundamentar la recuperación de la IA generativa y enrutar documentos a flujos de trabajo posteriores.

Detalles del modelo

  • Nombre del modelo: pdf-classification
  • Clave de contexto: google:annotation:pdf-classification-v1
  • Objetos aptos: Objetos de documentos PDF de 20 MiB o menos con un Content-Type de application/pdf.

Esquema de salida

El resultado del modelo genera un objeto JSON que contiene modelName, modelVersion y un pdfClassificationCategoryList con un array de categories clasificados. Si la ejecución del modelo falla, el objeto JSON contiene un objeto error en lugar de pdfClassificationCategoryList.

Campo Tipo Rango Descripción
modelName string N/A Es el nombre del modelo de aprendizaje automático que generó este enriquecimiento.
modelVersion string N/A Es la versión del modelo de aprendizaje automático que generó este enriquecimiento.
pdfClassificationCategoryList object N/A Es el objeto contenedor de nivel superior para los resultados de la clasificación de PDF. Está presente cuando la ejecución del modelo se realiza correctamente.
pdfClassificationCategoryList.categories[] array N/A Es una lista de categorías de clasificación detectadas.
pdfClassificationCategoryList.categories[].label string Consulta las categorías de clasificación de PDF Es la ruta de categoría jerárquica, como "/Finance/Accounting & Auditing/Tax Preparation & Planning".
pdfClassificationCategoryList.categories[].score number De 0 a 1 (del 0% al 100%) Es la puntuación de confianza de la categoría asignada.
error object N/A Es un objeto google.rpc.Status que contiene code y message. Se propaga solo cuando falla la ejecución del modelo.

Categorías admitidas

El modelo pdf-classification asigna categorías de contenido jerárquicas estandarizadas a los documentos PDF.

Las categorías se estructuran de forma jerárquica con barras diagonales (/) que separan la profundidad de la categoría. Comienzan con una vertical amplia de nivel superior y se reducen a subcategorías específicas:

  • Verticales de nivel superior: Son dominios de temas amplios, como /Finance, /Law & Government o /Computers & Electronics.
  • Subcategorías: Son temas específicos dentro de una vertical, como /Finance/Accounting & Auditing/Tax Preparation & Planning.
  • Subcategorías /Other: Son categorías para el contenido que se alinea con la categoría superior, pero que no se ajusta a ninguna subcategoría secundaria específica.

Si un documento abarca varios temas distintos, el modelo puede asignar varias categorías de alta confianza a un solo objeto PDF.

Categorías de nivel superior

El modelo clasifica los documentos PDF en 27 categorías de nivel 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

Las subcategorías siguen la ruta jerárquica /Top-Level-Vertical/Subcategory, con niveles más profundos opcionales, en estas categorías de nivel superior. Para obtener la lista completa de todas las rutas de categorías admitidas, consulta Categorías de clasificación de PDF.

Resultado de ejemplo

{
  "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
      }
    ]
  }
}

¿Qué sigue?