Crear una aplicación de recuento de ocupación con entrada de streaming remota

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 una aplicación de recuento de ocupación

Una vez que hayas configurado tu entorno, el primer paso es crear la aplicación que procesa tus 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 occupancy-count-app como nombre de la aplicación y elige tu región.

  4. Haz clic en Crear.

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: recurso de flujo que ingiere los datos enviados desde una instancia de VM de Compute Engine que creas.
  2. Nodo de procesamiento: el modelo de analíticas de ocupación 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 la información que los modelos de IA infieren sobre los datos.

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 occupancy-count-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 un 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 emisiones, elige Registrar nuevas emisiones y añade occupancy-count-stream como nombre de la emisión.

  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 recuento de ocupación, selecciona la opción Analíticas de ocupación en la sección Modelos especializados del menú lateral.

  2. Deja seleccionadas las opciones predeterminadas: Personas y Vehículos.

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 occupancy-count-warehouse al almacén y deja la duración del TTL en 14 días.

  4. Haz clic en el botón Crear para añadir el almacén.

Desplegar una aplicación para usarla

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 occupancy-count-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

Configurar un equipo remoto para reproducir vídeo en streaming

Ahora que tienes una aplicación de recuento de ocupación implementada y lista para recibir, procesar y almacenar datos de streaming, debes transmitir datos de vídeo a la aplicación.

En este tutorial, crearás una instancia de VM de Compute Engine que aloje un vídeo y enviarás los datos de ese vídeo en streaming desde la VM.

Crea una máquina virtual de Linux

El primer paso para enviar vídeo desde una instancia de VM de Compute Engine es crear la instancia de VM.

Consola

  1. En la consola, ve a la página Instancias de VM.

    Ir a instancias de VM

  2. Selecciona el proyecto y haz clic en Continuar.

  3. Haz clic en Crear instancia.

  4. Especifica un nombre para la máquina virtual. Para obtener más información, consulta el artículo sobre las convenciones para asignar nombres de recursos.

  5. Opcional: Cambia la zona de esta VM. Compute Engine aleatoriza la lista de zonas de cada región para fomentar el uso en varias zonas.

  6. Acepta las opciones predeterminadas restantes. Para obtener más información sobre estas opciones, consulta Crear e iniciar una VM.

  7. Para crear e iniciar la VM, haz clic en Crear.

Configurar el entorno de la máquina virtual

Una vez que se haya iniciado la VM, puedes usar la consola para establecer una conexión SSH en tu navegador. Una vez establecida esta conexión, puedes descargar la vaictl herramienta de línea de comandos para insertar vídeos en tu aplicación.

Consola

Establecer una conexión SSH con tu VM

  1. En la consola, ve a la página Instancias de VM.

    Ir a instancias de VM

  2. En la sección Conectar de la línea de la instancia que has creado, haz clic en SSH. Se abrirá una conexión SSH en una nueva ventana del navegador.

    La opción SSH en la interfaz de usuario

Descarga la herramienta de línea de comandos vaictl.

  1. En la ventana SSH en el navegador, descarga la herramienta de línea de comandos Vertex AI Vision (vaictl) con el siguiente comando:

    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    
  2. Instala la herramienta de línea de comandos ejecutando el siguiente comando:

    sudo apt install ./visionai_0.0-5_amd64.deb
    
  3. Para probar la instalación, ejecuta el siguiente comando:

    vaictl --help
    

Ingerir un archivo de vídeo en tu aplicación

Una vez que hayas configurado tu entorno de VM, puedes copiar un archivo de vídeo de muestra y, a continuación, usar vaictl para transmitir los datos del vídeo a tu aplicación de recuento de ocupación.

SSH en el navegador

Copia un vídeo de muestra en tu VM

  1. En la ventana SSH en el navegador de tu máquina virtual, copia un vídeo de ejemplo con el siguiente comando gcloud storage cp. Sustituye la siguiente variable:
    • SOURCE: la ubicación del archivo de vídeo que se va a usar. Puedes usar tu propio archivo de vídeo (por ejemplo, gs://BUCKET_NAME/FILENAME.mp4) o uno de los vídeos de muestra:
      • gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 (vídeo con personas y vehículos, fuente)
      • gs://cloud-samples-data/vertex-ai-vision/highway_vehicles.mp4 (vídeo solo con vehículos, fuente)
    gcloud storage cp SOURCE .

Transmitir vídeo desde una máquina virtual e ingerir datos en tu aplicación

  1. Para enviar este archivo de vídeo local al flujo de entrada de la aplicación, usa el siguiente comando. Debe sustituir las siguientes 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.
    • 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 reproducirá en bucle en la emisión 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 'occupancy-count-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 occupancy-count-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. Vídeo de: Elizabeth Mavor en Pixabay (pixelación añadida).

Buscar contenido de vídeo en el almacén

Una vez que hayas insertado datos de vídeo en tu aplicación de procesamiento, podrás ver los datos de vídeo analizados y buscar datos en función de la información analítica de ocupación.

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 occupancy-count-warehouse en la lista y haz clic en Ver recursos.

  3. En la sección Recuento de personas o Recuento de vehículos, defina el valor Mín. en 1 y el valor Máx. en 5.

  4. Para filtrar los datos de vídeo procesados almacenados en Media Warehouse de Vertex AI Vision, haz clic en Buscar.

    Vista de los datos almacenados facetados en la interfaz de usuario
    Una vista de los datos de vídeo almacenados que coinciden con los criterios de búsqueda en la Google Cloud consola. Atribución del vídeo: Elizabeth Mavor en Pixabay (criterios de búsqueda aplicados).