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 tener en cuenta tus fuentes de datos, el análisis que deseas realizar y cómo quieres almacenar los resultados. Una app integral puede tener diferentes formas según tu caso de uso. Por lo tanto, la forma en que compiles una app dependerá de tu objetivo.

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

A medida que creas tu aplicación, ten en cuenta que las tecnologías de visión por IA pueden 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 particular, incluidos los casos de uso 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 consideran de alto riesgo en una región en particular.

Crear una nueva aplicación

Antes de agregar componentes, como un flujo o modelos, a una app, debes crear la app. Todas las apps deben contener lo siguiente para poder implementarse:

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

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.

    Ir a la pestaña Aplicaciones

  2. Haz clic en el botón Crear.

  3. Ingresa el nombre de una 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.

    Ir a la pestaña Aplicaciones

  2. Haz clic en el botón Crear.

  3. Ingresa el nombre de una 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 por Internet. No podrás implementar la aplicación si no agregas un nodo de Streams.

Si tu aplicación no está implementada, la actualización de la entrada de transmisión se aplicará automáticamente a la aplicación. Si tu app ya está implementada, debes anular su implementación y actualizarla para que se apliquen los cambios. Consulta la sección actualiza una app para obtener más detalles.

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.

    Ir a la pestaña Aplicaciones

  2. Haz clic en Ver app para ver tu app.

  3. En la lista lateral de componentes, elige Transmisiones de video 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.

  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 una transmisión 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:

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 entrada de transmisión 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 deGoogle 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.

    Ir 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 creador de aplicaciones, selecciona el modelo con entrada de transmisión al que deseas agregar anotaciones.

  4. En el panel lateral de configuración del modelo, 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 transmisiones, selecciona una transmisión de entrada para dibujar zonas o líneas activas.

  6. En la vista del editor, elige add multi-point lines o add simple polygon 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 transmisión.

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

  • PROJECT: Tu Google Cloud ID del proyecto 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 tu aplicación de destino.
  • STREAM_ID: Es el ID de la transmisión 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 la 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 e 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 la 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:

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 previamente entrenado de Vertex AI Vision

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 y 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 cumplen un objetivo específico, se entrenan con datos generalizados y están listos para usarse.
  • Los modelos de AutoML entrenados por el usuario o los modelos entrenados de forma personalizada requieren que identifiques y proporciones datos de muestra, y, luego, que entrenes modelos más adecuados para tu caso de uso único. Estos modelos se entrenan con Vertex AI, un producto que ofrece dos opciones de entrenamiento: modelos entrenados con AutoML y modelos entrenados de forma personalizada. Consulta Elige un método de entrenamiento para obtener más información.

Sigue estas instrucciones para agregar un modelo previamente entrenado de Vertex AI Vision a tu gráfico de la app.

Console

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

    Ir 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 creador de aplicaciones, selecciona el modelo que deseas agregar de la lista 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, luego, Agregar salida.

  5. Selecciona el nodo del modelo de IA recién creado en 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 y 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 cumplen un objetivo específico, se entrenan con datos generalizados y están listos para usarse.
  • Los modelos de AutoML entrenados por el usuario o los modelos entrenados de forma personalizada requieren que identifiques y proporciones datos de muestra, y, luego, que entrenes modelos más adecuados para tu caso de uso único. Estos modelos se entrenan con Vertex AI, un producto que ofrece dos opciones de entrenamiento: modelos entrenados con AutoML y modelos entrenados de forma personalizada. 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 a tu gráfico de la app un modelo de transmisión de detección de objetos de AutoML de Vertex AI que entrenes.

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 Entrena 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 deGoogle 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.

    Ir 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 generador 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 en 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 (transmisiones) y podrían 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. Por lo tanto, Vertex AI Vision debe comprimir la imagen RGB original en un formato con pérdida, como JPG.

Usa las siguientes instrucciones para agregar a tu gráfico de la app un modelo de video existente entrenado de forma personalizada con Vertex AI.

Para obtener información sobre cómo crear un modelo entrenado de forma personalizada con un contenedor personalizado de Vertex AI, consulta Usa un contenedor personalizado para la predicción.

Cómo especificar un archivo YAML de instancias

Cuando agregas un modelo entrenado de forma personalizada de Vertex AI, debes especificar un archivo YAML de instancias (instances.yaml) almacenado en Cloud Storage. Este archivo especifica la entrada esperada para el contenedor del modelo.

Vertex AI envía la solicitud de predicción en un 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 que tengan exactamente una entrada de predicción con nombre. 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 de 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 llamado image_bytes:

properties:
  image_bytes:
    type: string

Tu modelo personalizado recibe la entrada de predicción en 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.

Cómo especificar un archivo YAML de predicciones

Cuando agregas un modelo entrenado de forma personalizada de Vertex AI, puedes especificar un archivo YAML de predicciones (predictions.yaml) almacenado en Cloud Storage. Este archivo especifica la salida del contenedor del modelo.

Este archivo es opcional, pero se recomienda para informar a Vertex AI Vision sobre 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 para un 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.

    Ir 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 sola 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 generador 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 la 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 al 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 frecuencia de fotogramas con la que el operador personalizado de Vertex envía fotogramas de video a los contenedores personalizados de Vertex, puedes crear un tema de Pub/Sub. Agrégalo 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 de la transmisión 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 propiedad de Google de la plataforma de la app de Vertex AI Vision. Para acceder a otros servicios de Google Clouddesde el contenedor, otorga el permiso adecuado a los siguientes elementos: service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Opcional. Notificación de eventos del modelo con Cloud Run Functions y Pub/Sub

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

Modelos compatibles

Los siguientes modelos ofrecen integraciones de generación de eventos de Cloud Run Functions y 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 Cloud Run Functions para procesar el resultado del modelo y generar eventos.

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

Para ver una muestra de Cloud Run Function, consulta Habilita la notificación de eventos del modelo con Cloud Functions y Pub/Sub.

Sigue estas 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.

    Ir 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 post-processing de la sección Event notification, selecciona tu función de Cloud Run existente o crea una nueva.

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

Habilita las notificaciones 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 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.

    Ir 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 Configura 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 la frecuencia en segundos con la que se puede enviar una notificación para el mismo tipo de evento.

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

  7. Haz clic en Configurar.

Conecta el resultado del modelo con un nodo posterior

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.

    Ir 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 del modelo que genere datos en el compilador de gráficos de la aplicación (por ejemplo, el nodo del modelo Recuento de ocupación).

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

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

Conecta 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 punto final del gráfico de tu app que acepta datos de transmisión sin producir ningún dato de transmisión. 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 Conecta y almacena 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 Conecta y almacena datos en BigQuery.

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

    Para obtener más información sobre la transmisión directa de datos de salida de la app, consulta Cómo habilitar la salida de transmisión en vivo.

Actualiza una app

Apps sin implementar

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

¿Qué sigue?