Compila una solución de estadísticas de vision de AA con Dataflow y la API de Cloud Vision

Last reviewed 2024-05-23 UTC

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.

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

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

  1. Ingesta y activación: Esta es la primera etapa del flujo del sistema en la que las imágenes ingresan al sistema. Durante esta etapa, ocurren las siguientes acciones:

    1. Los clientes suben archivos de imagen a un bucket de Cloud Storage.
    2. Para cada carga de archivos, Cloud Storage envía automáticamente una notificación de entrada publicando un mensaje en Pub/Sub.
  2. Proceso: Esta etapa sigue inmediatamente a la etapa de activación y transferencia. Para cada notificación de entrada nueva, ocurren las siguientes acciones:

    1. La canalización de Dataflow escucha 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 de Vision para su procesamiento.
    2. La API de Vision lee la imagen y crea anotaciones.
    3. La canalización de Dataflow almacena las anotaciones que produce la API de Vision en tablas de BigQuery.
  3. Almacenar y analizar: Esta es la etapa final del flujo. En esta etapa, 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 compilar 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

En esta arquitectura de referencia, se usan los siguientes productos 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 incluyen algunos ejemplos simples de lo que se puede hacer con la API de Vision, pero el espectro de aplicaciones posibles es muy amplio.

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 generar 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 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 para obtener un entorno de desarrollo de aplicaciones de extremo a extremo que te permita 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 los 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 específicamente.

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 que se reciben de fuentes no confiables pueden contener software malicioso. Dado 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 de Cloud Storage > Visualizador de objetos de Storage (roles/storage.objectViewer) al bucket que contiene los archivos que deseas analizar.

Para conocer los principios y las recomendaciones de seguridad específicos de las cargas de trabajo de IA y AA, consulta la perspectiva de IA y AA: seguridad en Well-Architected Framework.

Optimización de costos

En comparación con las otras opciones analizadas, 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 las canalizaciones de transmisión por lotes de las solicitudes a la API. La transmisión directa de imágenes con 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 realizarse 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 asíncrona 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 devuelve archivos JSON que se almacenan en un bucket de Cloud Storage.

La API de Vision también proporciona un conjunto de funciones para analizar imágenes. El precio se aplica 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.

Para conocer los principios y las recomendaciones de optimización de costos específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización de costos en el Framework de Well-Architected.

Optimización del rendimiento

La API de Vision es una API que requiere muchos recursos. Por eso, procesar 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, controlar de forma correcta 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 se justifica un aumento en la cuota de la 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 las solicitudes de aumento de cuota para 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. Para obtener más información sobre estos parámetros, consulta Despliega una solución de estadísticas de visión basadas en AA con Dataflow y la API de Vision.

Si deseas conocer los principios y las recomendaciones de optimización del rendimiento específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización del rendimiento en Well-Architected Framework.

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?

Colaboradores

Autores:

Otros colaboradores: