En esta arquitectura de referencia, aprenderás sobre los casos de uso, alternativas de diseño y consideraciones de diseño cuando implementes 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 el análisis de datos a gran escala y entrenar modelos compilados con anterioridad de BigQuery ML.
Este documento de arquitectura de referencia está dirigido a ingenieros y científicos de datos.
Arquitectura
En el siguiente diagrama, se ilustra el flujo del sistema para esta arquitectura de referencia.
Como se muestra en el diagrama anterior, la información fluye de la siguiente manera:
Transferencia y activador: Esta es la primera etapa del flujo del sistema en la que las imágenes ingresan por primera vez al sistema. Durante esta etapa, ocurren las siguientes acciones:
- Los clientes suben archivos de imagen a un bucket de Cloud Storage.
- Para cada carga de archivos, Cloud Storage envía de forma automática una notificación de entrada mediante la publicación de un mensaje en Pub/Sub.
Proceso: Esta etapa sigue de inmediato la etapa de transferencia y activación. Para cada notificación de entrada nueva, ocurren las siguientes acciones:
- La canalización de Dataflow detecta estas notificaciones de entrada de archivos, extrae metadatos de archivos del mensaje de Pub/Sub y envía la referencia del archivo a la API de Vision para su procesamiento.
- La API de Vision lee la imagen y crea anotaciones.
- La canalización de Dataflow almacena las anotaciones que genera la API de Vision en tablas de BigQuery.
Almacenamiento y análisis: Esta es la etapa final del flujo. En esta etapa, puedes hacer lo siguiente con los resultados guardados:
- Consultar las tablas de BigQuery y analizar las anotaciones almacenadas
- Usa BigQuery ML o Vertex AI para compilar modelos y ejecutar predicciones basadas en las anotaciones almacenadas.
- Realiza un análisis adicional en la canalización de Dataflow (no se muestra en este diagrama).
Productos usados
En esta arquitectura de referencia, se usan los siguientes productos de Google Cloud:
Casos de uso
La API de Vision admite varias funciones de procesamiento, como el etiquetado de imágenes, la detección de rostros y puntos de referencia, el reconocimiento óptico de caracteres, el etiquetado de contenido explícito y otras. Cada una de estas características habilita varios casos de uso que se pueden aplicar a industrias diferentes. En este documento, se presentan algunos ejemplos simples de lo que se puede hacer cuando se usa la API de Vision, pero la variedad de aplicaciones posibles es muy amplia.
La API de Vision ofrece potentes modelos de aprendizaje automático previamente entrenados mediante las APIs de REST y RPC. Puedes asignar etiquetas a las imágenes y clasificarlas en millones de categorías predefinidas. Te ayuda a detectar objetos, leer texto impreso y escrito a mano, y compilar metadatos valiosos en tu catálogo de imágenes.
Esta arquitectura no requiere ningún entrenamiento de modelos antes de que puedas usarla. Si necesitas un modelo personalizado entrenado con tus datos específicos, Vertex AI te permite entrenar un AutoML o un modelo personalizado para objetivos de visión artificial, como la clasificación de imágenes y la detección de objetos. O bien, puedes usar Vertex AI Vision para un entorno de desarrollo de aplicaciones de extremo a extremo que te permite compilar, implementar y administrar aplicaciones de visión artificial.
Alternativas de diseño
En lugar de almacenar imágenes en un bucket de Google Cloud Storage, el proceso que produce 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 de Vision.
Esta alternativa de diseño puede ser una buena solución para casos de uso sensibles a la latencia en los que necesitas 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 una gran cantidad de imágenes, puedes usar una API de asyncBatchAnnotate
diseñada de forma específica.
Consideraciones del diseño
En esta sección, se describen las consideraciones de diseño para esta arquitectura de referencia:
Security, privacy, and compliance
Las imágenes recibidas de fuentes no confiables pueden contener software malicioso. Debido a que la API de Vision no ejecuta nada en función de las imágenes que analiza, el software malicioso basado en imágenes no afectaría a la API. Si necesitas analizar imágenes, cambia la canalización de Dataflow para agregar un paso de análisis. Para lograr el mismo resultado, también puedes usar una suscripción independiente al tema de Pub/Sub y analizar las imágenes en un proceso separado.
Para obtener más información, consulta Automatiza el análisis de software malicioso para archivos subidos a Cloud Storage.
La API de Vision usa la Identity and Access Management (IAM) para la autenticación. Para acceder a la API de Vision, la principal de seguridad necesita acceso a Cloud Storage > Visualizador de objetos de Storage (roles/storage.objectViewer
) al bucket que contiene los archivos que deseas. analizar.
Optimización de costos
En comparación con las otras opciones que se analizaron, como el procesamiento de baja latencia y el procesamiento por lotes asíncrono, esta arquitectura de referencia usa una manera rentable de procesar las imágenes en las canalizaciones de transmisión mediante el agrupamiento de solicitudes a la API. La transmisión directa de imágenes de menor latencia que se menciona en la sección Alternativas de diseño podría ser más costosa debido a los costos adicionales de Pub/Sub y Dataflow. Para el procesamiento de imágenes que no necesita ocurrir en segundos o minutos, puedes ejecutar la canalización de Dataflow en modo por lotes. Ejecutar la canalización en modo por lotes puede proporcionar ahorros en comparación con lo que cuesta ejecutar la canalización de transmisión.
La API de Vision admite la anotación de imágenes por lotes sin conexión sin conexión para todas las funciones. La solicitud asíncrona admite hasta 2,000 imágenes por lote. En respuesta, la API de Vision muestra archivos JSON que se almacenan en un bucket de Cloud Storage.
La API de Vision también proporciona un conjunto de funciones para el análisis de imágenes. El precio se calcula por imagen y por función. Para reducir costos, solo solicita las funciones específicas que necesites para tu solución.
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Optimización del rendimiento
La API de Vision es una API con uso intensivo de recursos. Debido a eso, el procesamiento de imágenes a gran escala requiere una organización cuidadosa de las llamadas a la API. La canalización de Dataflow se encarga de agrupar las solicitudes a la API, manejar de forma ordenada las excepciones relacionadas con el alcance de las cuotas y producir métricas personalizadas del uso de la API. Estas métricas pueden ayudarte a decidir si se justifica un aumento de cuota de la API o si los parámetros de la canalización de Dataflow deben ajustarse para reducir la frecuencia de las solicitudes. Si quieres obtener más información para aumentar las solicitudes de cuota de la API de Vision, consulta Cuotas y límites.
La canalización de Dataflow tiene varios parámetros que pueden afectar las latencias de procesamiento. Si deseas obtener más información sobre estos parámetros, consulta Implementa una solución de estadísticas de vision de AA con Dataflow y la API de Vision.
Implementación
Para implementar esta arquitectura, consulta Implementa una solución de estadísticas de vision de AA con Dataflow y la API de Vision.
¿Qué sigue?
- Obtén más información sobre Dataflow.
- Obtén más información sobre la confiabilidad de Dataflow en la guía de confiabilidad de Dataflow.
- Obtén más información sobre BigQuery ML.
- Obtén más información sobre la confiabilidad de BigQuery en la guía de confiabilidad de BigQuery.
- Obtén información sobre el almacenamiento de datos en la Solución de inicio rápido: almacén de datos con BigQuery.
- Revisa la lista de funciones de la API de Vision.
- Aprende a implementar una solución de estadísticas de vision de AA con Dataflow y la API de Vision.
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autores:
- Masud Hasan | Administrador de ingeniería de confiabilidad de sitios
- Sergei Lilicherko | Arquitecto de Soluciones
- Lakshmanan Sethu | Administrador técnico de cuentas
Otros colaboradores:
- Jiyeon Kang | Ingeniero de Atención al cliente
- Sunil Kumar Jang Bahadur | Ingeniero de Atención al cliente
Para ver los perfiles de LinkedIn no públicos, accede a LinkedIn.