Crear una aplicación

En esta página, se muestra cómo crear una app y combinar componentes, como flujos de entrada, modelos de análisis y almacenes de datos, para usarlos en la plataforma de apps de Vertex AI Vision.

Para compilar una app, debes considerar tus fuentes de datos, el análisis que deseas realizar y cómo deseas almacenar los resultados. Una app de extremo a extremo puede tener diferentes formas según tu caso de uso. Por lo tanto, la forma en que compilas una app dependerá de tu objetivo.

Antes de comenzar, evalúa tu caso de uso y objetivo desde una perspectiva de IA responsable y considera el impacto que tus modelos y aplicaciones podrían tener en tus usuarios finales cuando algo salga mal. Obtén más información sobre los primeros pasos para evaluar tu caso de uso en cuanto a la equidad. Además, asegúrate de que el uso de Vertex AI Vision cumpla con las Condiciones del Servicio de Google Cloudo una variante sin conexión, y con las Condiciones de la URL incorporadas, como la Política de Uso Aceptable de Google Cloud.

Cuando crees tu aplicación, ten en cuenta que las tecnologías de visión de IA tienen el potencial de reforzar o introducir sesgos injustos y afectar los derechos humanos fundamentales. El desarrollo de tu aplicación debe incluir una reflexión ética basada en los valores de tu empresa y una diligencia debida legal para tu caso de uso en particular, incluidos los casos de alto riesgo. Al igual que con todas las tecnologías, debes tener en cuenta todas las leyes y reglamentaciones aplicables que rigen el uso de las tecnologías de IA/AA en la región en la que implementas la tecnología. Los clientes son responsables de la diligencia debida necesaria para implementar casos de uso que se consideren de alto riesgo en una región en particular.

Crear una nueva aplicación

Antes de poder agregar componentes como una transmisión o modelos a una app, debes crear la app. Para que se implementen, todas las apps deben contener lo siguiente:

  • Un nodo de entrada de flujo (fuente de datos).
  • Al menos otro nodo de componente, como un modelo o un almacén

Crea una nueva aplicación personalizada

Console

Crea una app en la consola de Google Cloud.

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Haz clic en el botón Crear.

  3. Ingresa un nombre de app y elige tu región. Regiones admitidas.

  4. Haz clic en Crear.

Crea una aplicación con una plantilla

Console

Crea una app en la consola de Google Cloud.

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Haz clic en el botón Crear.

  3. Ingresa un nombre de app y elige tu región. Regiones admitidas.

  4. Haz clic en Crear.

  5. En la página del compilador de aplicaciones, haz clic en el nodo Plantilla de aplicación.

  6. En el panel de configuración lateral, haz clic en el botón Seleccionar modelo.

  7. Selecciona un modelo en el menú desplegable.

Cómo agregar una entrada de transmisión

Una aplicación debe contener un nodo de transmisión de video. No podrás implementar la aplicación si no agregas un nodo de flujos.

Si no se implementa la aplicación, la actualización de la entrada de flujo se aplicará automáticamente a la aplicación. Si tu app ya se implementó, debes desimplementarla y actualizarla para que se apliquen los cambios. Consulta la sección para actualizar una app y obtener más información.

Console

Agrega una transmisión a una app en la consola de Google Cloud.

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Haz clic en Ver app para tu app.

  3. En la lista lateral de componentes, elige Video streams en la lista de Conectores. El nodo de transmisión se agrega al gráfico de la app y se abre un menú lateral de transmisiones de video.

  4. Selecciona Agregar transmisiones de video por Internet.

  5. Si eliges Seleccionar de transmisiones existentes, selecciona la transmisión existente y, luego, Agregar transmisiones.

    Si eliges Registrar transmisiones nuevas, agrega un nombre para la transmisión nueva y selecciona Agregar transmisiones.

REST

Para agregar un flujo a una app, envía una solicitud POST con el método projects.locations.applications.addStreamInput.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT: Tu Google Cloud ID o número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • APPLICATION_ID: Es el ID de la aplicación de destino.
  • STREAM_ID: Es el ID del flujo de destino.

Método HTTP y URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Cuerpo JSON de la solicitud:

{
  "applicationStreamInputs": [
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     },
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     }
   ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

Cómo agregar una entrada de flujo con anotaciones de nodos

Cuando creas un flujo de entrada de la aplicación, puedes agregar anotaciones al flujo con la API de Vertex AI Vision. También puedes agregar anotaciones a un nodo en la consola de Google Cloud.

Console

En el siguiente ejemplo, se agregan anotaciones disponibles (STREAM_ANNOTATION_TYPE_ACTIVE_ZONE y STREAM_ANNOTATION_TYPE_CROSSING_LINE) a un modelo de recuento de ocupación.

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. En la página del compilador de aplicaciones, selecciona el modelo con la entrada de flujo al que deseas agregar anotaciones.

  4. En el panel de configuración del modelo lateral, expande la sección "Configuración avanzada". Después de expandir la sección, haz clic en el botón Crear zonas o líneas activas.

  5. En la vista de galería de flujos, selecciona un flujo de entrada para dibujar zonas o líneas activas.

  6. En la vista del editor, elige agregar líneas de varios puntos o agregar un polígono simple para agregar anotaciones. Usa el panel lateral para cambiar el nombre de la zona o la línea, borrar zonas o líneas existentes, o cambiar la dirección de la línea.

LÍNEA DE REST Y CMD

El siguiente código agrega anotaciones de flujo.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT: Tu Google Cloud ID o número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • APPLICATION_ID: Es el ID de la aplicación de destino.
  • STREAM_ID: Es el ID del flujo de destino.
  • NODE_NAME: Es el nombre del nodo de destino del gráfico de la app. Por ejemplo:builtin-occupancy-count
  • ANNOTATION_ID: Es el ID de la anotación de destino.
  • ANNOTATION_DISPLAYNAME: Es el nombre visible especificado por el usuario de tu anotación de destino.
  • ANNOTATION_TYPE: Uno de los valores de enumeración disponibles. Este tipo debe coincidir con el objeto annotation_payload, ya sea activeZone o crossingLine. Los valores disponibles son los siguientes:
    • STREAM_ANNOTATION_TYPE_UNSPECIFIED
    • STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
    • STREAM_ANNOTATION_TYPE_CROSSING_LINE
  • normalizedVertices: Cada vértice se especifica mediante valores de coordenadas x, y. Las coordenadas son valores de punto flotante normalizados [0,1] en relación con la imagen original; 0.0 es X_MIN o Y_MIN, 1.0 es X_MAX o Y_MAX.

Método HTTP y URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Cuerpo JSON de la solicitud:

{
  "applicationStreamInputs": [
    {
      "streamWithAnnotation": {
        "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
        "nodeAnnotations": [
          {
            "node": "NODE_NAME",
            "annotations": [
              {
                "id": "ANNOTATION_ID",
                "displayName": "ANNOTATION_DISPLAYNAME",
                "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
                "type": ANNOTATION_TYPE,
                "activeZone": {
                  "normalizedVertices": {
                    "x": 0.07434944,
                    "y": 0.18061674
                  },
                  "normalizedVertices": {
                    "x": 0.64684016,
                    "y": 0.16079295
                  },
                  "normalizedVertices": {
                    "x": 0.6047088,
                    "y": 0.92070484
                  },
                  "normalizedVertices": {
                    "x": 0.1251549,
                    "y": 0.76651984
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

Cómo quitar la entrada de transmisión

REST

Para quitar una transmisión de una app, envía una solicitud POST con el método projects.locations.applications.removeStreamInput.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT: Tu Google Cloud ID o número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • APPLICATION_ID: Es el ID de la aplicación de destino.
  • STREAM_ID: Es el ID del flujo de destino.

Método HTTP y URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput

Cuerpo JSON de la solicitud:

{
  "targetStreamInputs": [
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     },
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     }
   ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content

Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.

Agrega un modelo de Vertex AI Vision previamente entrenado

Después de crear una app, puedes agregar un modelo y conectarlo a transmisiones, otros modelos o un almacén de contenido multimedia.

Existen dos tipos de modelos: modelos previamente entrenados o modelos entrenados por el usuario. Del mismo modo, los modelos entrenados por el usuario también pueden ser de dos tipos: AutoML o entrenamiento personalizado:

  • Los modelos previamente entrenados realizan un objetivo específico, se entrenan con datos generalizados y están listos para usar.
  • Los modelos de AutoML o personalizados entrenados por el usuario requieren que identifiques y proporciones datos de muestra y, luego, entrenes modelos que se adapten mejor a tu caso de uso único. Entrenas estos modelos con Vertex AI, un producto que ofrece dos opciones de entrenamiento: modelos entrenados con AutoML y modelos entrenados personalizados. Consulta Elige un método de entrenamiento para obtener más información.

Usa las siguientes instrucciones para agregar un modelo de Vertex AI Vision previamente entrenado a tu gráfico de app.

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. En la página del compilador de aplicaciones, selecciona el modelo que deseas agregar de la lista de modelos de IA. Cada modelo tiene parámetros de configuración individuales.

  4. Para conectar este modelo a un nodo de fuente de entrada, selecciona el nodo de fuente y Agregar salida.

  5. Selecciona el nodo del modelo de IA recién creado de la lista de Nodos disponibles.

Agrega un modelo de Vertex AI entrenado por el usuario

Después de crear una app, puedes agregar un modelo y conectarlo a transmisiones, otros modelos o un almacén de contenido multimedia.

Existen dos tipos de modelos: modelos previamente entrenados o modelos entrenados por el usuario. Del mismo modo, los modelos entrenados por el usuario también pueden ser de dos tipos: AutoML o entrenamiento personalizado:

  • Los modelos previamente entrenados realizan un objetivo específico, se entrenan con datos generalizados y están listos para usar.
  • Los modelos de AutoML o personalizados entrenados por el usuario requieren que identifiques y proporciones datos de muestra y, luego, entrenes modelos que se adapten mejor a tu caso de uso único. Entrenas estos modelos con Vertex AI, un producto que ofrece dos opciones de entrenamiento: modelos entrenados con AutoML y modelos entrenados personalizados. Consulta Elige un método de entrenamiento para obtener más información.

Agrega un modelo de transmisión de detección de objetos de AutoML de Vertex AI

Sigue estas instrucciones para agregar un modelo de transmisión de detección de objetos de AutoML de Vertex AI que entrenes a tu gráfico de app.

Antes de entrenar un modelo de AutoML de Vertex AI, debes preparar tus datos de detección de objetos y crear un conjunto de datos.

Entrena un modelo para usarlo en Vertex AI Vision

Después de crear un conjunto de datos con una colección representativa de datos en Vertex AI, puedes entrenar un modelo para usarlo en Vertex AI Vision.

Console

  1. En la consola de Google Cloud, en el panel de Vertex AI, ve a la página Conjuntos de datos.

    Ir a la página Conjuntos de datos

  2. Haz clic en el nombre del conjunto de datos que deseas usar para entrenar tu modelo a fin de abrir su página de detalles.

  3. Si tu tipo de datos usa conjuntos de anotaciones, selecciona el conjunto de anotaciones que deseas usar para este modelo.

  4. Haga clic en Entrenar un modelo nuevo.

  5. En la página Entrenar un modelo nuevo, completa los siguientes pasos para tu modelo de detección de objetos en imágenes de AutoML:

    1. En la sección Método de entrenamiento del modelo, elige AutoML.

    2. En la sección Elige dónde usar el modelo, selecciona Vertex AI Vision.

    3. Haz clic en Continuar.

    4. Completa los valores de las secciones Detalles del modelo, Opciones de entrenamiento y Procesamiento y precios. Consulta Entrena un modelo de AutoML (consola de Google Cloud) para obtener información más detallada.

    5. Haz clic en Comenzar entrenamiento.

      El entrenamiento de modelos puede tardar muchas horas, según el tamaño y la complejidad de tus datos y tu presupuesto de entrenamiento, si especificaste uno. Puedes cerrar esta pestaña y regresar a ella más tarde. Recibirás un correo electrónico cuando tu modelo haya finalizado el entrenamiento.

Agrega el modelo entrenado a tu app

Una vez que finalice el entrenamiento del modelo, podrás agregarlo a tu app de Vertex AI Vision.

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. En la página del compilador de aplicaciones, selecciona Agregar modelo de Vertex AI en la lista de componentes laterales. Si seleccionas esta opción, se abrirá un menú lateral.

  4. En el menú Add Vertex AI Model, deja seleccionada la opción Import a trained model from Vertex AI y, luego, elige el modelo de la lista de modelos existentes de AutoML de Vertex AI.

  5. Después de elegir el modelo que deseas importar, selecciona Agregar modelo.

    Después de hacer clic en el botón Agregar modelo, aparecerá un modelo pendiente en el costado de la página del compilador de gráficos. Después de unos segundos, el modelo estará listo para usarse.

Agrega un modelo personalizado de Vertex AI

También puedes importar modelos entrenados personalizados de Vertex AI a Vertex AI Vision para usarlos en el análisis de datos. Estos modelos entrenados de forma personalizada deben tener las siguientes propiedades:

  • El modelo debe ser sin estado, ya que la entrada del modelo son las imágenes que provienen de diferentes instancias de la aplicación (flujos) y pueden estar desordenadas. Si necesitas un procesamiento de transmisión con estado, es posible que debas mantener los estados dentro de tu propio contenedor.
  • El tamaño de entrada de tu modelo se limita a 1.5 MB. En consecuencia, Vertex AI Vision debe comprimir la imagen RGB original en un formato con pérdida, como JPG.

Usa las siguientes instrucciones para agregar un modelo de video personalizado de Vertex AI que hayas entrenado a tu grafo de apps.

Si deseas obtener información para crear un modelo entrenado de forma personalizada con Vertex AI y un contenedor personalizado, consulta Usa un contenedor personalizado para la predicción.

Especifica un archivo YAML de instancias

Cuando agregas un modelo entrenado personalizado de Vertex AI, debes especificar un archivo YAML de instancias (instances.yaml) almacenado en Cloud Storage. En este archivo, se especifica la entrada esperada para el contenedor de tu modelo.

Vertex AI envía la solicitud de predicción en el siguiente formato:

{
  "instances": [
    <value>|<simple/nested list>|<object>,
    ...
  ]
}

Aquí, instances.yaml define el esquema de la carga útil. Para obtener más información, consulta Obtén predicciones en línea de los modelos con entrenamiento personalizado.

Vertex AI Vision solo admite modelos personalizados con entrenamiento con exactamente una entrada de predicción denominada. Este tipo de entrada debe ser una cadena JPEG codificada. El esquema de la entrada de predicción se debe especificar con el archivo YAML del esquema de instancias. Este archivo YAML del esquema debe tener el formato de un objeto de esquema de OpenAPI.

Por ejemplo, el siguiente esquema recibirá la solicitud con la imagen codificada en un campo que llama a image_bytes:

properties:
  image_bytes:
    type: string

Tu modelo personalizado recibe entradas de predicción con el siguiente formato:

{
  "instances": [
    {
      "image_bytes" : {
        "b64": "BASE64_ENCODED_IMAGE_BYTES"
      }
    }
  ]
}

Antes de importar el modelo a Vertex AI Vision, verifica que funcione correctamente con esta entrada.

Especifica un archivo YAML de predicciones

Cuando agregas un modelo entrenado personalizado de Vertex AI, puedes especificar un archivo YAML de predicciones (predictions.yaml) almacenado en Cloud Storage. En este archivo, se especifica el resultado del contenedor de tu modelo.

Este archivo es opcional, pero se recomienda para informar a Vertex AI Vision la estructura de salida de tu modelo. Por ejemplo, el siguiente archivo classification_1.0.0.yaml describe la información de salida del modelo de clasificación de imágenes:

title: Classification
type: object
description: >
  The predicted AnnotationSpecs.
properties:
  ids:
    type: array
    description: >
      The resource IDs of the AnnotationSpecs that had been identified.
    items:
      type: integer
      format: int64
      enum: [0]  # As values of this enum all AnnotationSpec IDs the Model
      # was trained on will be populated.
  displayNames:
    type: array
    description: >
      The display names of the AnnotationSpecs that had been identified,
      order matches the IDs.
    items:
      type: string
      enum: [""]  # As values of this enum all AnnotationSpec display_names
      # the Model was trained on will be populated.
  confidences:
    type: array
    description: >
      The Model's confidences in correctness of the predicted IDs, higher
      value means higher confidence. Order matches the Ids.
    items:
      type: number
      format: float
      minimum: 0.0
      maximum: 1.0

Agrega el modelo entrenado de forma personalizada

Usa el siguiente ejemplo para agregar el modelo entrenado de forma personalizada de Vertex AI a tu app.

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. En la página del compilador de aplicaciones, selecciona Agregar modelo de Vertex AI en la lista de componentes laterales. Si seleccionas esta opción, se abrirá un menú lateral.

  4. En el menú Add Vertex AI Model, deja seleccionada la opción Import a trained model from Vertex AI y, luego, elige el modelo de la lista de modelos existentes de AutoML de Vertex AI.

  5. Proporciona un nombre para el modelo.

  6. Especifica el archivo YAML de instancias en Cloud Storage que define el formato de una única instancia que se usa en las solicitudes de predicción y explicación.

  7. Opcional: Especifica el archivo YAML del esquema de predicciones en Cloud Storage que define el formato de una sola predicción o explicación.

  8. Después de proporcionar el nombre del modelo, las instancias y la información de las predicciones, selecciona Agregar modelo.

  9. Después de hacer clic en el botón Agregar modelo, aparecerá un modelo pendiente en el costado de la página del compilador de gráficos. Después de unos segundos, el modelo estará listo para usarse.

Opcional. Adjunta metadatos de la aplicación

Además de los bytes de imagen, tienes la opción de configurar attach_application_metadata para pedirle a la plataforma de apps de Vertex AI Vision que incluya los metadatos de la aplicación que se enviarán junto con el contenedor personalizado.

Los metadatos tienen el siguiente esquema:

'appPlatformMetadata': {
     'application': STRING;
     'instanceId': STRING;
     'node': STRING;
     'processor': STRING;
   }

Opcional. Agrega un tema de Pub/Sub de configuración dinámica

Para controlar de forma dinámica la velocidad de fotogramas que el operador personalizado de Vertex envía a los contenedores personalizados de Vertex, puedes crear un tema de Pub/Sub. Agrega esta a la sección Dynamic Configuration de la configuración del nodo.

configuración dinámica

Si el tema de Pub/Sub está configurado, la velocidad de fotogramas inicial es 0. Durante el procesamiento de video, puedes enviar mensajes de Pub/Sub al tema de Pub/Sub en el siguiente formato en tiempo real para cambiar la velocidad de fotogramas:

{
  "stream_id": "input-stream-id",
  "fps": 5,
}

El campo stream_id debe coincidir con el ID del flujo de entrada de la aplicación.

Cuenta de servicio y permisos

La credencial de servicio predeterminada del contenedor personalizado se configuró en la cuenta de servicio de Google de la plataforma de apps de Vertex AI Vision. Para acceder a otros servicios de Google Cloud desde el contenedor, otorga el permiso adecuado a lo siguiente: service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Opcional. Cómo modelar notificaciones de eventos con funciones de Cloud Run y Pub/Sub

En Vertex AI Vision, los modelos reciben datos multimedia de dispositivos como cámaras, ejecutan predicciones de IA en los datos y producen anotaciones de forma continua. A menudo, envías esos datos procesados a un destino de datos ("sumidero de datos"), como un almacén de medios o BigQuery, para realizar más tareas de análisis. Sin embargo, es posible que tengas un caso en el que algunas anotaciones deban manejarse de manera diferente o que las necesidades de anotación sean urgentes. Las integraciones con las funciones de Cloud Run y Pub/Sub te ayudan a abordar estas necesidades.

Modelos compatibles

Los siguientes modelos ofrecen la generación de eventos de Cloud Run Functions y integraciones de notificaciones de eventos de Pub/Sub:

Configura funciones de Cloud Run para procesar el resultado del modelo

Para activar notificaciones basadas en eventos, primero debes configurar las funciones de Cloud Run para procesar el resultado del modelo y generar eventos.

Tu función de Cloud Run se conecta al modelo y escucha su salida como su acción de procesamiento posterior. La función de Cloud Run debe mostrar un AppPlatformCloudFunctionResponse. Los eventos (appplatformeventbody) se envían al tema de Pub/Sub que configures en el siguiente paso.

Para ver una función de Cloud Run de ejemplo, consulta Cómo habilitar la notificación de eventos de modelos con Cloud Functions y Pub/Sub.

Usa las siguientes instrucciones para enviar el flujo de salida del modelo a tu función de Cloud Run:

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. Haz clic en el modelo compatible para abrir el panel lateral de detalles del modelo.

  4. En la lista procesamiento posterior de la sección Notificación de eventos, selecciona tu función de Cloud Run existente o crea una nueva.

    Selecciona la imagen de Cloud Function de procesamiento posterior en la consola de Cloud

Habilita la notificación de eventos del modelo con Pub/Sub

Después de configurar las funciones de Cloud Run para procesar el resultado del modelo y generar eventos, puedes configurar la notificación de eventos con Pub/Sub. Para leer los mensajes de un tema, también debes elegir y crear una suscripción a Pub/Sub.

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. Haz clic en el modelo compatible para abrir el panel lateral de detalles del modelo.

  4. En la sección Notificación de eventos, selecciona Configurar la notificación de eventos.

  5. En la ventana de opciones Configurar Pub/Sub para las notificaciones de eventos que se abre, elige tu tema de Pub/Sub existente o crea uno nuevo.

  6. En el campo Frecuencia, establece un valor entero para el valor de frecuencia en segundos en el que se puede enviar una notificación para el mismo tipo de evento.

    Configura la imagen de notificación de eventos en la consola de Cloud

  7. Haz clic en Configurar.

Conecta el resultado del modelo con un nodo downstream

Después de crear un nodo de modelo, puedes conectar su salida a otro nodo.

Console

  1. Abre la pestaña Aplicaciones del panel de Vertex AI Vision.

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver app junto al nombre de tu aplicación en la lista.

  3. Haz clic en un nodo de modelo que genere datos en el compilador de gráficos de la aplicación (por ejemplo, el nodo de modelo Count of Occupancy).

  4. En el panel de configuración lateral, haz clic en el botón Agregar salida.

  5. Agrega una salida nueva y elige un nodo de salida nuevo para agregar, o bien selecciona un Nodo disponible existente al que enviar la salida.

Cómo conectar la salida a un destino de datos

Después de crear el flujo de transferencia de datos y agregar los nodos de procesamiento a tu app, debes elegir dónde enviar los datos procesados. Este destino de datos es el extremo del gráfico de tu app que acepta datos de transmisión sin producirlos. El destino que elijas dependerá de cómo uses los datos de salida de la app.

imagen de nodos de conector
En la consola de Google Cloud, los destinos de datos están disponibles en la sección Conectores de la página del gráfico de la app.

Puedes conectar los datos de salida de la app a los siguientes destinos de datos:

  1. Vision Warehouse: Almacena datos de video originales o analizados que puedes ver y consultar.

    Para obtener más información sobre cómo enviar datos de salida de la app a un almacén de Vision, consulta Cómo conectar y almacenar datos en un almacén.

  2. BigQuery: Almacena datos en BigQuery para usar sus capacidades de análisis sin conexión.

    Para obtener más información sobre cómo enviar datos de salida de la app a BigQuery, consulta Cómo conectar y almacenar datos en BigQuery.

  3. Datos de transmisiones en vivo: Si deseas un control más detallado para actuar en las estadísticas en tiempo real, puedes recibir el resultado en vivo de tu app.

    Para obtener más información sobre cómo transmitir directamente los datos de salida de la app, consulta Habilita la salida de transmisión en vivo.

Actualiza una app

Apps no implementadas

Realiza las modificaciones que desees en la app (como agregar o quitar nodos de componentes). Vertex AI Vision almacenará los cambios automáticamente.

¿Qué sigue?