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.
Como se muestra en el diagrama anterior, la información fluye de la siguiente manera:
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:
- Los clientes suben archivos de imagen a un segmento de Cloud Storage.
- Por cada subida de archivos, Cloud Storage envía automáticamente una notificación de entrada publicando un mensaje en Pub/Sub.
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:
- 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.
- La API Vision lee la imagen y crea anotaciones.
- La canalización de Dataflow almacena las anotaciones producidas por la API Vision en tablas de BigQuery.
Almacenar y analizar: esta es la última fase del flujo. En esta fase, puedes hacer lo siguiente con los resultados guardados:
- Consultar tablas de BigQuery y analizar las anotaciones almacenadas.
- Usa BigQuery ML o Vertex AI para crear modelos y ejecutar predicciones basadas en las anotaciones almacenadas.
- 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
- Más información sobre Dataflow
- Más información sobre BigQuery ML
- Consulte más información sobre la fiabilidad de BigQuery en la guía Información sobre la fiabilidad de BigQuery.
- Consulta información sobre cómo almacenar datos en la solución Jump Start: almacén de datos con BigQuery.
- Consulta la lista de funciones de la API Vision.
- Consulta cómo desplegar una solución de analíticas de visión de aprendizaje automático con Dataflow y la API Vision.
- Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos de las cargas de trabajo de IA y aprendizaje automático en Google Cloud, consulta la sección Perspectiva de IA y aprendizaje automático del framework Well-Architected.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autores:
- Masud Hasan | Site Reliability Engineering Manager
- Sergei Lilichenko | Arquitecto de soluciones
- Lakshmanan Sethu | Administrador técnico de cuentas
Otros colaboradores:
- Jiyeon Kang | Ingeniera de clientes
- Sunil Kumar Jang Bahadur | Ingeniero de clientes