Crear una aplicación para difuminar caras con almacenamiento de almacén

Vertex AI Vision es una plataforma basada en IA que puedes usar para ingerir, analizar y almacenar datos de vídeo . Vertex AI Vision te permite crear y desplegar aplicaciones de IA. Puedes crear soluciones integrales de Vertex AI Vision aprovechando la integración de Vertex AI Vision con otros componentes del producto.

Para empezar a implementar soluciones con la plataforma Vertex AI Vision, consulta los siguientes conceptos y componentes de Vertex AI Vision:

  • Streams: representan una capa de streaming de vídeo de tu solución. La fuente de la emisión puede ser un vídeo en directo (por ejemplo, una cámara IP) o un archivo de vídeo (por ejemplo, un archivo MP4).

  • Aplicaciones: permite la conexión entre una emisión y un procesador de IA para realizar una operación de aprendizaje automático en el vídeo. Por ejemplo, puedes conectar una transmisión de cámara a un modelo de IA que cuente las personas que pasan por delante.

  • Almacenes de contenido multimedia: almacenan el vídeo ingerido por las emisiones en elGoogle Cloud almacenamiento. Almacenar datos en este destino te permite consultar el resultado del análisis y los metadatos de los procesadores de IA usados en los datos de las secuencias insertadas.

Crear un flujo

Para crear una aplicación de análisis de vídeo en streaming, primero debes crear y registrar un recurso de flujo. Como recurso que recibe los datos de vídeo de los usuarios, el flujo es necesario en cualquier situación que crees con Vertex AI Vision.

Consola

Para crear un nuevo flujo en la consola Google Cloud , sigue estos pasos.

  1. Abre la pestaña Streams (Streams) del panel de control de Vertex AI Vision.

    Ve a la pestaña Streams.

  2. Haz clic en Registrarse.

  3. Introduce input-stream como nombre de la emisión y selecciona la región en la que quieras crearla.

  4. Haga clic en Registrar para crear uno o varios flujos.

    Registrar opciones de Streams en la interfaz de usuario

Ingerir vídeo en el stream

Después de crear un recurso de flujo, puede usar la herramienta de línea de comandos vaictl para enviar datos de vídeo al flujo.

Cámara IP

Si vas a hacer pruebas con una cámara IP activa, debes obtener la dirección IP de la cámara. Debe proporcionar esta información junto con la solicitud y otras sustituciones de variables:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • LOCATION_ID: tu ID de ubicación. Por ejemplo, us-central1. Para obtener más información, consulta Ubicaciones en la nube.
  • RTSP_ADDRESS: la dirección de tu feed del protocolo de streaming en tiempo real (RTSP). Por ejemplo, rtsp://192.168.1.180:540.

Este comando envía un feed RTSP a la emisión. Debes ejecutar este comando en la red que tenga acceso directo al feed RTSP.

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send rtsp to streams input-stream --rtsp-uri RTSP_ADDRESS
      

Si el comando se ejecuta correctamente, obtendrás el siguiente resultado:

[...]
Waiting for long running operation projects/your-project/locations/us-central1/operations/operation-1651364156981-5dde82db7e4a9-dfb17ca5-1051eb20 ⠙
I20220430 21:16:28.024988 211449 gstvaisink.cc:417] cluster-id=application-cluster-0
I20220430 21:16:28.025032 211449 gstvaisink.cc:418] cluster-endpoint=c8khq35ftg78mn61ef50.us-central1.visionai.goog
I20220430 21:16:28.025040 211449 gstvaisink.cc:419] event-id=ev-1651364114183255223
I20220430 21:16:28.025048 211449 gstvaisink.cc:420] stream-id=input-stream
I20220430 21:16:28.025053 211449 gstvaisink.cc:421] series-id=ev-1651364114183255223--input-stream
I20220430 21:16:28.025060 211449 gstvaisink.cc:422] Sending data

Archivo de vídeo local

También puede enviar datos de archivos de vídeo a una emisión en lugar de a un feed de vídeo en directo. Esta opción puede ser útil si no tienes acceso a una cámara IP.

La única diferencia de esta opción son los parámetros del comando vaictl. En lugar de pasar la información de la cámara IP, pasa la ruta del archivo de vídeo local. Sustituye las siguientes variables:

  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • LOCATION_ID: tu ID de ubicación. Por ejemplo, us-central1. Más información
  • LOCAL_FILE.EXT: el nombre de archivo de un archivo de vídeo local. Por ejemplo, my-video.mp4.
  • Marca --loop: opcional. Repite los datos del archivo para simular la transmisión.

Este comando transmite un archivo de vídeo a una emisión. Si usas la marca --loop, el vídeo se repetirá en el stream hasta que detengas el comando:

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send video-file to streams 'input-stream' --file-path LOCAL_FILE.EXT --loop

Pueden pasar unos 100 segundos entre el inicio de la operación de ingesta vaictl y la aparición del vídeo en el panel de control.

Cuando la ingesta de la emisión esté disponible, podrás ver el feed de vídeo en la pestaña Emisiones del panel de control de Vertex AI Vision. Para ello, selecciona la emisión input-stream.

Ve a la pestaña Streams.

Vista del vídeo en directo que se está emitiendo en la interfaz de usuario
Vista en directo del vídeo que se está ingiriendo en el stream en la Google Cloud consola. Créditos del vídeo: Tima Miroshnichenko en Pexels (se ha añadido pixelación).

Crear una aplicación para desenfocar caras

Después de crear un flujo e ingerir datos en él, es el momento de crear una aplicación de Vertex AI Vision para procesar los datos. Una aplicación se puede considerar como una pipeline automatizada que conecta lo siguiente:

  • Ingestión de datos: un feed de vídeo se ingiere en un flujo.
  • Análisis de datos: se puede añadir un modelo de IA después de la ingestión. Se puede realizar cualquier operación de visión artificial en la información de vídeo insertada.
  • Almacenamiento de datos: las dos versiones del feed de vídeo (el stream original y el stream procesado por el modelo de IA) se pueden almacenar en un almacén de medios.

En la Google Cloud consola, una aplicación se representa como un gráfico. Además, en Vertex AI Vision, un gráfico de aplicación debe tener al menos dos nodos: un nodo de origen de vídeo (flujo) y al menos un nodo más (un modelo de procesamiento o un destino de salida).

Crear una aplicación vacía

Antes de rellenar el gráfico de aplicaciones, debes crear una aplicación vacía.

Consola

Crea una aplicación en la Google Cloud consola.

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

    Ve a la pestaña Aplicaciones.

  2. Haz clic en el botón Crear.

  3. Introduce person-blur-app como nombre de la aplicación y elige tu región.

  4. Haz clic en Crear.

    Cuadro de diálogo para crear una aplicación en la interfaz de usuario

Añadir nodos de componentes de aplicación

Una vez que hayas creado la aplicación vacía, podrás añadir los tres nodos al gráfico de la aplicación:

  1. Nodo de ingestión: el recurso de flujo que ya está ingiriendo datos.
  2. Nodo de procesamiento: el modelo de desenfoque de personas que actúa sobre los datos ingeridos.
  3. Nodo de almacenamiento: almacén de contenido multimedia que almacena los vídeos procesados y que también sirve como almacén de metadatos. El almacén permite generar información analítica sobre los datos de vídeo insertados, así como almacenar información inferida sobre los datos por los modelos de IA.

Consola

Añade nodos de componentes a tu aplicación en la consola.

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

    Ve a la pestaña Aplicaciones.

  2. En la línea person-blur-app, selecciona Ver gráfico. De esta forma, accederás a la visualización del gráfico de la canalización de procesamiento.

Añadir un nodo de ingestión de datos

  1. Para añadir el nodo de flujo de entrada, selecciona la opción Streams (Flujos) en la sección Connectors (Conectores) del menú lateral.

  2. En la sección Fuente del menú Stream que se abre, selecciona Añadir streams.

  3. En el menú Añadir streams, elige Seleccionar de streams existentes y selecciona person-blur-app en la lista de recursos de stream.

    Añadir el menú de flujos en la interfaz de usuario

  4. Para añadir el flujo al gráfico de la aplicación, haz clic en Añadir flujos.

Añadir un nodo de procesamiento de datos

  1. Para añadir el nodo del modelo de desenfoque de personas, selecciona la opción Desenfoque de personas en la sección Procesadores generales del menú lateral.

  2. En el menú de opciones "Desenfocar personas" que se abre, deja seleccionada la opción Oclusión completa y habilita la opción Desenfocar solo las caras.

    Añadir un modelo de desenfoque de caras en la interfaz de usuario

Añadir un nodo de almacenamiento de datos

  1. Para añadir el nodo de destino de salida (almacenamiento), selecciona la opción Vertex AI Vision's Media Warehouse (Almacén de contenido multimedia de Vertex AI Vision) en la sección Connectors (Conectores) del menú lateral.

  2. En el menú Media Warehouse de Vertex AI Vision, haz clic en Conectar almacén.

  3. En el menú Conectar almacén, selecciona Crear almacén. Ponle el nombre person-blur-app al almacén y deja la duración del TTL en 14 días.

  4. Para añadir el almacén, haz clic en Crear.

    Añadir un nodo de almacén en la interfaz de usuario

Desplegar una aplicación

Una vez que hayas creado tu aplicación integral con todos los componentes necesarios, el último paso para usarla es implementarla.

Consola

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

    Ve a la pestaña Aplicaciones.

  2. Selecciona Ver gráfico junto a la aplicación person-blur-app de la lista.

  3. En la página del creador de gráficos de aplicaciones, haz clic en el botón Implementar.

  4. En el cuadro de diálogo de confirmación que aparece, selecciona Implementar.

    La operación de implementación puede tardar varios minutos en completarse. Una vez que se haya completado la implementación, aparecerán marcas de verificación verdes junto a los nodos.

    Aplicación desplegada en la interfaz de usuario

Ver los datos de salida procesados

Consola

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

    Ve a la pestaña Almacenes.

  2. Busca el almacén person-blur-output-storage en la lista y haz clic en Ver recursos.

    Ver la salida de la aplicación en la interfaz de usuario