Procesa contenido generado por el usuario con Cloud Video Intelligence y las API de Cloud Vision

En esta solución se, describen los servicios de Google Cloud Platform (GCP) que se usan para implementar un sistema escalable a fin de filtrar los envíos de imágenes y videos mediante las API de Cloud Video Intelligence y Cloud Vision.

Las campañas de marketing social muchas veces invitan a los consumidores a que envíen imágenes y videos generados por los usuarios. Las campañas que solicitan imágenes y videos, por lo general, los usan para la presentación de concursos, testimonios de productos o como contenido generado por el usuario destinado a sitios web de campañas públicas. El proceso de estas presentaciones a gran escala requiere de recursos considerables. Las API de Cloud Video Intelligence y de Cloud Vision te ofrecen una forma escalable y sin servidores de implementar un filtrado de imagen y video inteligente que acelera el procesamiento de las presentaciones. Si usas la característica de búsqueda segura en la solución de la API de Vision y la característica de detección de contenido explícito en la API de Video Intelligence, puedes eliminar imágenes y videos que se identifican como contenido no seguro o no deseado antes de continuar con el procesamiento.

Si quieres obtener más información sobre cómo implementar esta solución, puedes implementar el código con este instructivo.

Conceptos

La compilación de una aplicación para que procese imágenes y videos generados por el usuario plantea varios desafíos particulares:

  • Escalabilidad

    Al comienzo de una campaña, la cantidad de presentaciones crece con rapidez, pero cuando la campaña está por finalizar, las presentaciones bajan casi hasta cero. Si este proceso se compila en un servicio, debe escalar como respuesta a la actividad del usuario.

  • Rendimiento

    Procesar cada imagen y video requiere de un flujo inteligente y eficiente. A gran escala, la aplicación debe almacenar y procesar con eficiencia cada imagen y video enviado.

  • Inteligencia

    Reducir la cantidad de imágenes y videos que necesitan evaluación o revisión antes de procesar aumenta la eficiencia en gran medida. La aplicación tiene que clasificar cada presentación y, de inmediato, dejar de procesar todos los resultados detectados como inapropiados.

Arquitectura

Procesamiento inteligente y escalable con GCP

GCP proporciona una plataforma escalable con los beneficios de modelos disponibles de aprendizaje automático (AA) capacitados con anterioridad mediante llamadas a la API sencillas. En la figura a continuación, se muestra la arquitectura de un sistema que clasifica imágenes y videos de forma inteligente y, también, ignora los resultados inapropiados.

Arquitectura de procesamiento de imagen y video

Cloud Storage

En esta arquitectura, almacenas todo el contenido en Cloud Storage que te brinda un almacenamiento de objetos durable y escalable. Una característica útil de Cloud Storage es la capacidad de generar mensajes de notificación basados en eventos en un depósito de Cloud Storage. Con esta característica, puedes especificar una acción para cada archivo subido. Mientras tu aplicación sube archivos a Cloud Storage, los mensajes de notificación activan el procesamiento.

En la siguiente imagen, se muestra la carga útil de JSON de un mensaje de notificación de Cloud Storage.

Carga útil de JSON de un mensaje de notificación de Cloud Storage

Cloud Pub/Sub

Cloud Pub/Sub te ofrece un servicio de mensajería escalable y confiable. En esta arquitectura, cuando se sube el contenido a un depósito de Cloud Storage, el sistema genera un mensaje de notificación de Cloud Pub/Sub y lo envía al tema configurado de Cloud Pub/Sub. Luego, Cloud Pub/Sub entrega el mensaje de notificación de Cloud Storage. Cuando separa la funcionalidad de carga de la funcionalidad de procesamiento, Cloud Pub/Sub separa con efectividad la aplicación en una arquitectura de backend basada en microservicios.

Cloud Functions

Cloud Functions proporciona un entorno de aplicaciones básico y sin servidores integrado a un rango de API avanzadas como las API de Cloud Vision y la de Video Intelligence. Además, los servicios de almacenamiento como BigQuery, Cloud Storage, Cloud Spanner y Cloud Datastore están integrados en Cloud Functions, lo que lo convierte en un método útil para procesar eventos a demanda.

En la siguiente figura, se muestra el tema de Cloud Pub/Sub que activa el GCStoPubSub de Cloud Function por cada mensaje que se envía al tema intelligentcontentfileupload.

Tema de Cloud Pub/Sub que activa a Cloud Function

Backend

Un conjunto de Cloud Functions que escuchan los temas de Cloud Pub/Sub y proporcionan procesamiento de backend.

  1. Cada vez que se sube un archivo al depósito de Cloud Storage, un tema de Cloud Pub/Sub recibe un mensaje.
  2. La aplicación de backend analiza la ubicación de Cloud Storage desde cada notificación de mensaje y determina si el contenido es una imagen o un video.
  3. Luego, la aplicación de backend envía un mensaje de Cloud Pub/Sub a un par de Cloud Functions y llama la API de Cloud Vision o a la de Cloud Video Intelligence, según si el archivo es una imagen o un video.
  4. Con los resultados de la llamada a la API, la aplicación de backend clasifica el contenido basado en logotipos, etiquetas, texto y resultados de la búsqueda segura.

En la siguiente figura, se muestran los pasos de procesamiento que realiza cada Cloud Function. En este ejemplo, los resultados se almacenan en BigQuery, pero puedes almacenar los resultados en cualquier servicio de almacenamiento de datos de GCP.

Pasos de procesamiento de Cloud Function

Frontend

En esta arquitectura, almacenas los resultados del procesamiento de imagen y video en BigQuery. Como motor de estadísticas escalable de GCP, BigQuery proporciona acceso simple basado en SQL a una base de datos de tamaño en petabytes. BigQuery proporciona a tu aplicación un modo sencillo y escalable para analizar las etiquetas del contenido enviado.

Data Studio proporciona un panel visual en el que puedes filtrar el contenido enviado mediante etiquetas que generan las API de aprendizaje automático. Las etiquetas simplifican la filtración de contenido de forma dinámica en el conjunto de paneles de Data Studio.

En la imagen a continuación, se muestra un panel de Data Studio simple que manejan los datos en tiempo real desde BigQuery.

Panel simple de Data Studio

El panel refleja los cambios a medida que el contenido adicional se procesa y se almacena en BigQuery. Puedes filtrar el panel por contenido, etiquetas o conteo de contenido inapropiado.

Pasos siguientes