Crear una solución de analíticas de visión de aprendizaje automático con Dataflow y la API Cloud Vision

Last reviewed 2024-05-23 UTC

En esta arquitectura de referencia, descubrirá los casos prácticos, las alternativas de diseño y las consideraciones de diseño que debe tener en cuenta al implementar una canalización de Dataflow para procesar archivos de imagen con Cloud Vision y almacenar los resultados procesados en BigQuery. Puedes usar esos resultados almacenados para analizar datos a gran escala y para entrenar modelos precompilados de BigQuery ML.

Este documento de arquitectura de referencia está dirigido a ingenieros y científicos de datos.

Arquitectura

En el siguiente diagrama se muestra el flujo del sistema de esta arquitectura de referencia.

Arquitectura que muestra el flujo de información de los procesos de ingestión y activación, procesamiento, almacenamiento y análisis.

Como se muestra en el diagrama anterior, la información fluye de la siguiente manera:

  1. Ingest and trigger (Ingestión y activación): es la primera fase del flujo del sistema, en la que las imágenes entran en el sistema. Durante esta fase, se llevan a cabo las siguientes acciones:

    1. Los clientes suben archivos de imagen a un segmento de Cloud Storage.
    2. Por cada subida de archivos, Cloud Storage envía automáticamente una notificación de entrada publicando un mensaje en Pub/Sub.
  2. Proceso: esta fase se lleva a cabo inmediatamente después de la fase de ingesta y activación. Cada vez que se recibe una notificación de entrada nueva, se realizan las siguientes acciones:

    1. El flujo de procesamiento de Dataflow está atento a estas notificaciones de entrada de archivos, extrae los metadatos de los archivos del mensaje de Pub/Sub y envía la referencia del archivo a la API Vision para que lo procese.
    2. La API Vision lee la imagen y crea anotaciones.
    3. La canalización de Dataflow almacena las anotaciones producidas por la API Vision en tablas de BigQuery.
  3. Almacenar y analizar: esta es la última fase del flujo. En esta fase, puedes hacer lo siguiente con los resultados guardados:

    1. Consultar tablas de BigQuery y analizar las anotaciones almacenadas.
    2. Usa BigQuery ML o Vertex AI para crear modelos y ejecutar predicciones basadas en las anotaciones almacenadas.
    3. Realiza análisis adicionales en la canalización de Dataflow (no se muestra en este diagrama).

Productos usados

Esta arquitectura de referencia usa los siguientes Google Cloud productos:

Casos prácticos

La API Vision admite varias funciones de procesamiento, como el etiquetado de imágenes, la detección de caras y puntos de referencia, el reconocimiento óptico de caracteres y el etiquetado de contenido explícito, entre otras. Cada una de estas funciones permite varios casos prácticos que se pueden aplicar a diferentes sectores. Este documento contiene algunos ejemplos sencillos de lo que se puede hacer con la API Vision, pero el espectro de aplicaciones posibles es muy amplio.

La API Vision también ofrece modelos de aprendizaje automático preentrenados y muy potentes a través de las APIs REST y RPC. Puedes asignar etiquetas a imágenes y clasificarlas en millones de categorías predefinidas. Te ayuda a detectar objetos, leer texto impreso y manuscrito, y conseguir metadatos de gran valor para tu catálogo de imágenes.

Esta arquitectura no requiere que entrenes ningún modelo para poder usarla. Si necesitas un modelo personalizado entrenado con tus datos específicos, Vertex AI te permite entrenar un modelo de AutoML o un modelo personalizado para objetivos de visión artificial, como la clasificación de imágenes y la detección de objetos. También puedes usar Vertex AI Vision, un entorno de desarrollo de aplicaciones integral que te permite crear, desplegar y gestionar aplicaciones de visión artificial.

Alternativas de diseño

En lugar de almacenar imágenes en un segmento de Google Cloud Storage, el proceso que genera las imágenes puede publicarlas directamente en un sistema de mensajería (por ejemplo, Pub/Sub) y la canalización de Dataflow puede enviar las imágenes directamente a la API Vision.

Esta alternativa de diseño puede ser una buena solución para casos prácticos sensibles a la latencia en los que necesites analizar imágenes de tamaños relativamente pequeños. Pub/Sub limita el tamaño máximo del mensaje a 10 MB.

Si necesitas procesar por lotes un gran número de imágenes, puedes usar una API asyncBatchAnnotate diseñada específicamente para ello.

Factores del diseño

En esta sección se describen las consideraciones de diseño de esta arquitectura de referencia:

Seguridad, privacidad y cumplimiento

Las imágenes recibidas de fuentes que no son de confianza pueden contener malware. Como la API Vision no ejecuta nada en función de las imágenes que analiza, el malware basado en imágenes no afectaría a la API. Si necesitas analizar imágenes, cambia la canalización de Dataflow para añadir un paso de análisis. Para obtener el mismo resultado, también puedes usar una suscripción independiente al tema de Pub/Sub y analizar imágenes en un proceso independiente.

Para obtener más información, consulta Automatizar el análisis de malware de los archivos subidos a Cloud Storage.

La API Vision usa Gestión de Identidades y Accesos (IAM) para la autenticación. Para acceder a la API Vision, la entidad de seguridad necesita el permiso Cloud Storage > Storage object viewer (roles/storage.objectViewer) para el segmento que contiene los archivos que quieres analizar.

Para consultar principios y recomendaciones de seguridad específicos de las cargas de trabajo de IA y aprendizaje automático, consulta la sección Perspectiva de IA y aprendizaje automático: seguridad del framework Well-Architected.

Optimización de costes

En comparación con las otras opciones que se han tratado, como el procesamiento de baja latencia y el procesamiento por lotes asíncrono, esta arquitectura de referencia usa una forma rentable de procesar las imágenes en flujos de streaming agrupando las solicitudes de la API. El streaming directo de imágenes con menor latencia que se menciona en la sección Alternativas de diseño podría ser más caro debido a los costes adicionales de Pub/Sub y Dataflow. Si el procesamiento de imágenes no tiene que realizarse en cuestión de segundos o minutos, puedes ejecutar la canalización de Dataflow en modo por lotes. Ejecutar la canalización en modo de lote puede suponer un ahorro en comparación con el coste de ejecutar la canalización de streaming.

La API Vision admite la anotación de imágenes por lotes asíncrona sin conexión para todas las funciones. La solicitud asíncrona admite hasta 2000 imágenes por lote. En respuesta, la API Vision devuelve archivos JSON que se almacenan en un segmento de Cloud Storage.

La API Vision también ofrece un conjunto de funciones para analizar imágenes. Los precios se aplican por imagen y por función. Para reducir los costes, solicita solo las funciones específicas que necesites para tu solución.

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Para consultar los principios y las recomendaciones de optimización de costes específicos de las cargas de trabajo de IA y aprendizaje automático, consulta el artículo Perspectiva de IA y aprendizaje automático: optimización de costes del framework Well-Architected.

Optimización del rendimiento

La API Vision es una API que requiere muchos recursos. Por eso, procesar imágenes a gran escala requiere una orquestación cuidadosa de las llamadas a la API. La canalización de Dataflow se encarga de agrupar las solicitudes de API, gestionar correctamente las excepciones relacionadas con el alcance de las cuotas y generar métricas personalizadas del uso de la API. Estas métricas pueden ayudarte a decidir si es necesario aumentar la cuota de una API o si se deben ajustar los parámetros de la canalización de Dataflow para reducir la frecuencia de las solicitudes. Para obtener más información sobre cómo aumentar las solicitudes de cuota de la API Vision, consulta Cuotas y límites.

La canalización de Dataflow tiene varios parámetros que pueden afectar a las latencias de procesamiento. Para obtener más información sobre estos parámetros, consulta el artículo sobre cómo desplegar una solución de analíticas de visión de aprendizaje automático con Dataflow y la API Vision.

Para consultar los principios y las recomendaciones de optimización del rendimiento específicos de las cargas de trabajo de IA y aprendizaje automático, consulte el artículo Perspectiva de la IA y el aprendizaje automático: optimización del rendimiento del marco de trabajo Well-Architected.

Implementación

Para desplegar esta arquitectura, consulta el artículo Desplegar una solución de analíticas de visión de aprendizaje automático con Dataflow y la API Vision.

Siguientes pasos

Colaboradores

Autores:

Otros colaboradores: