Visión agente: creación de inteligencia visual con servidores Amazon Bedrock y MCP

La integración de la IA en aplicaciones del mundo real se ha visto obstaculizada durante mucho tiempo por un desafío fundamental: la desconexión entre los sistemas que pueden ver, los sistemas que pueden pensar y los sistemas que pueden actuar. Los desarrolladores han luchado con integraciones complejas, administrando múltiples API y creando soluciones personalizadas para cerrar estas brechas, lo que resulta en implementaciones ineficientes, costosas y a menudo frágiles.

Estamos haciendo converger las tres tecnologías clave: visión por computadora, agentes Strands y el protocolo de contexto modelo (MCP). Juntos, crean un canal donde la información visual se puede capturar, comprender y actuar dentro de un marco unificado. Esta integración reduce las barreras tradicionales entre la percepción, la toma de decisiones y la acción, permitiendo que los sistemas de IA funcionen más como la inteligencia humana al ver, comprender y responder de manera coordinada.

En esta publicación, lo guiaremos a través del servidor MCP de Computer Vision, que ilustra este enfoque y representa cómo los sistemas de inteligencia artificial pueden procesar información visual y tomar decisiones inteligentes a través de una interfaz única y estandarizada. Esta convergencia transforma lo que alguna vez fue un desafío de integración complejo en un proceso simplificado, haciendo que las capacidades de IA sean accesibles para una gama más amplia de aplicaciones y desarrolladores.

Descripción general de la solución

En nuestra arquitectura, el cliente interactúa con múltiples Amazon Web Services (AWS) a través de una función centralizada de AWS Identity and Access Management (IAM), que sirve como puerta de enlace de seguridad para administrar los permisos. Amazon Simple Storage Service (Amazon S3) maneja el almacenamiento de objetos para recuperar y administrar datos. Amazon OpenSearch proporciona capacidades de búsqueda para consultar los datos indexados. Amazon Bedrock ofrece modelos de IA generativa, que otorgan al cliente acceso a herramientas de IA para tareas como la generación de texto para el agente. Finalmente, Amazon Rekognition se especializa en análisis de imágenes, realizando funciones como la detección de objetos. La arquitectura enfatiza un modelo de seguridad unificado, donde la función de IAM centraliza la administración de permisos, lo que elimina la necesidad de credenciales integradas en el cliente y agiliza el acceso controlado a través de múltiples servicios de AWS.

Visión por computadora, Strands Agents y servidores MCP

La solución utiliza tres tecnologías principales. La visión por computadora se centra en procesar información visual como fotografías y videos. Strands Agents es un marco para crear agentes de IA que admite múltiples proveedores de modelos y objetivos de implementación, y ofrece un ciclo de agentes personalizable con capacidades de producción que incluyen observabilidad, seguimiento e implementación escalable. Por último, el Model Context Protocol (MCP) es un estándar diseñado para simplificar la forma en que los sistemas de IA se integran con herramientas y fuentes de datos, reemplazando el proceso de crear conexiones separadas para cada modelo de IA y par de fuentes de datos.

Interfaz de usuario (cliente MCP)

La interfaz presenta una interfaz de usuario de chat Streamlit. En el lado izquierdo, hay un panel de menú donde los usuarios pueden seleccionar su modelo de base preferido para el análisis, predeterminado en Claude 4 Sonnet con capacidades de razonamiento que incluyen las opciones Claude 4 Sonnet y Claude 3.7 Sonnet. Los usuarios también pueden restablecer su historial de conversaciones a través de un botón dedicado en esta barra lateral.

Para utilizar esta aplicación, los usuarios pueden cargar su contenido visual a través de la sección destacada Carga de medios en el centro de la interfaz. El sistema acepta imágenes y vídeos y admite una amplia gama de formatos, incluidos PNG, JPG, JPEG, GIF, WEBP para imágenes y MP4, AVI, MOV, MKV, WEBM, MPEG4 para vídeos, con un límite máximo de tamaño de archivo de 200 MB. Los usuarios pueden arrastrar y soltar sus archivos directamente en el área de carga designada o seleccionar Examinar archivos para seleccionar archivos manualmente desde su dispositivo. Una vez cargados los medios, el sistema de inteligencia artificial puede realizar diversas tareas de análisis, como recorte de objetos, detección de etiquetas y análisis de contenido detallado. Luego, los usuarios pueden interactuar con el sistema a través del campo de entrada de mensajes en la parte inferior de la interfaz, haciendo preguntas específicas sobre los medios cargados o solicitando tipos de análisis.

El siguiente es el mensaje del sistema utilizado por el agente:

SYSTEM_PROMPT = """Usted es un agente especializado en visión por computadora con acceso directo a herramientas de CV. SU FUNCIÓN: Especialista en CV de agente único – Maneja análisis de imagen/video, recorte, eliminación de fondo, detección de etiquetas – Procesa las solicitudes de los usuarios directamente usando las herramientas disponibles – Proporciona respuestas claras y procesables con resultados visuales HERRAMIENTAS DISPONIBLES: 1. crop_bounding_box(image_filename, object_name) – Devuelve "cropped_image_filename"… PATRONES DE USO DE HERRAMIENTAS: Recorte Flujo de trabajo: “` 1. Llame a crop_bounding_box("image.jpg", "person") – "cropped_person_123.jpg" 2. Llame a crop_bounding_box("image.jpg", "dog") – "cropped_dog_456.jpg" 3. Llame a ui_show_images(["cropped_person_123.jpg", "cropped_dog_456.jpg"]) “`… PASO DE VARIABLE: – Entrada: Consultas del usuario con nombres de archivos cargados en contexto… REGLAS DE EFICIENCIA: – Utilice ui_show_images para obtener múltiples resultados (crea mejores diseños)… FORMATO DE RESPUESTA: 1. Reconozca la solicitud 2. Ejecute las herramientas apropiadas en secuencia lógica 3. Muestre los resultados usando las herramientas de la interfaz de usuario 4. Resuma lo que se logró – Llame a ui_show_images con ["image_bg_removed_123456.png"] para mostrar el resultado Ejemplo de flujo de trabajo para análisis de video: – Llame a analyse_video con el nombre del archivo de video e instrucciones de monitoreo específicas – La herramienta devolverá resultados de análisis detallados. Informe siempre los mensajes de error exactamente como se recibió """.

Servidores MCP de visión por computadora

Nuestra implementación se compone de dos servidores, a saber, el servidor CV y ​​el servidor OpenSearch. Cada uno maneja diferentes tipos de solicitudes, como se describe en la siguiente sección.

servidor de CV

El servidor MCP de AWS Computer Vision proporciona una interfaz unificada para el análisis de imágenes y vídeos mediante la consolidación de tres servicios de IA de Amazon en un protocolo estandarizado. Esta integración permite a los agentes de IA acceder y procesar contenido visual a través de una API consistente, lo que agiliza el desarrollo de aplicaciones de visión por computadora. Las siguientes herramientas están disponibles en el servidor MCP:

La herramienta describe_image utiliza el modelo Claude en Amazon Bedrock para proporcionar análisis de imágenes basado en instrucciones de monitoreo específicas. Esta función recupera imágenes del almacenamiento de Amazon S3 y las procesa a través de las capacidades multimodales de Claude para admitir la interpretación de contenido visual impulsada por IA. Es útil para escenarios que requieren descripciones o identificación de atributos específicos dentro de imágenes, y devuelve resultados de análisis junto con información de estado.

Respuesta del agente: Te ayudaré a describir la imagen cargada. Permítanme analizarlo primero usando el agente de visión por computadora. Ahora mostraré la imagen con la descripción:

Descripción de la imagen

La imagen cargada muestra una escena rural al aire libre que presenta:

Una oveja en primer plano (detectada con un 99,07 % de confianza) La oveja parece estar pastando en una pradera o pasto La oveja tiene una coloración predominantemente gris/blanca El entorno es un entorno de pradera/pradera El fondo consta de campos verdes típicos de paisajes rurales o pastorales La escena tiene iluminación exterior natural

La imagen captura una escena rural tranquila con las ovejas colocadas en el centro del encuadre con el telón de fondo de prados verdes. Los colores dominantes son varios tonos de verde en el fondo (que representa la pradera) y los tonos gris/blanco de las ovejas en primer plano.

Esta es una fotografía de la naturaleza que captura el ganado en su entorno pastoral natural, mostrando las ovejas pastando en un campo abierto.

El siguiente fragmento de código de la herramienta describe_image representa la estructura general de una herramienta:

async def describe_image(image_file_name: str, Monitoring_instructions: str) … intente: # Obtener la imagen del prefijo S3 = f"mcp/{image_file_name}" print(f"n[DEBUG] Intentando analizar la imagen en s3://{Connections.agent_bucket_name}/{prefix}n") respuesta = Connections.s3_client.get_object( Bucket=Connections.agent_bucket_name, Key=prefix ) image_data = respuesta['Body'].read() content_type = respuesta['ContentType'] # Asegúrese de que el tipo de contenido sea compatible con Bedrock valid_content_types = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'] si content_type no está en valid_content_types: # Intente determinar a partir de la extensión del archivo si image_file_name.lower().endswith(('.jpg', '.jpeg')): content_type="image/jpeg" elif image_file_name.lower().endswith('.png'): content_type="image/png" elif image_file_name.lower().endswith('.gif'): content_type="image/gif" elif image_file_name.lower().endswith('.webp'): content_type="image/webp" else: content_type="image/jpeg" # Impresión alternativa predeterminada (f"[DEBUG] Tipo de contenido corregido a: {content_type}") # Crear el mensaje para el mensaje de Claude = create_multimodal_prompt( image_data=image_data, text=monitoring_instructions, content_type=content_type, system_prompt=( "Usted es un asistente útil que analiza imágenes. " "Proporciona descripciones detalladas y precisas basadas en las instrucciones del usuario". ) ) # Obtener análisis de Claude análisis = invoke_bedrock_model(prompt) return ImageAnalysisResponse( status="success", source=prefix, análisis=analysis, message="Análisis de imagen completado exitosamente" ) excepto excepción como e: logger.error(f"Error al analizar la imagen: {str(e)}") return. ImageAnalysisResponse( estado="error", fuente=image_file_name, análisis=Ninguno, mensaje=f"Error al analizar la imagen: {str(e)}" )

La herramienta analyse_video utiliza las capacidades de análisis de video de Amazon Nova para procesar contenido de video. Esta función maneja archivos de video almacenados en S3 y puede analizarlos de acuerdo con instrucciones específicas.

Vídeo subido:

Usuario: Analiza el vídeo subido

Respuesta del agente: Te ayudaré a analizar el video subido. Permítanme delegar esta tarea al especialista en visión por computadora.

Analicé el video que subiste (15dc6b31_19642406-uhd_3840_2160_30fps.mp4) y esto es lo que encontré:

Descripción del contenido

El video presenta una vista en primer plano de una planta (probablemente un tipo de pasto) cubierta de nieve. Está ambientado en un campo en lo que parece ser un día soleado de invierno. El fondo está intencionalmente borroso, creando un efecto de profundidad de campo natural que llama la atención sobre el sujeto principal.

Elementos visuales

Hay un sorprendente contraste visual entre la nieve blanca y los elementos verdes naturales de la planta. La nieve se distribuye de manera desigual entre las hojas largas y delgadas de la planta. La nieve parece estar derritiéndose ligeramente, lo que sugiere temperaturas suaves.

La herramienta detect_labels se integra con Amazon Rekognition para proporcionar detección de etiquetas y análisis de propiedades de imágenes. Ofrece control sobre los parámetros de detección, incluidos umbrales de confianza, recuentos máximos de etiquetas y filtros de etiquetas personalizados. La herramienta puede identificar objetos, escenas y actividades dentro de imágenes y al mismo tiempo proporciona información detallada del cuadro delimitador para la localización espacial.

Respuesta del agente: Te ayudaré a detectar etiquetas en la imagen cargada. Permítanme analizarla con el especialista en visión por computadora. Ahora que analicé la imagen, permítanme mostrarla con las etiquetas detectadas:## Resultados de la detección de etiquetas de imagen

El análisis de visión por computadora detectó las siguientes etiquetas en su imagen:

Etiquetas principales (con puntuaciones de confianza):

Animal (99,99%) Gato (99,99%) Gatito (99,99%) Mamífero (99,99%) Mascota (99,99%)| Hierba (99,99%) Planta (99,99%)| Césped (95,56%) Manx (77,85%)

Detalles:

La imagen contiene 5 gatos/gatitos (detectados con cuadros delimitadores individuales) Los gatos parecen estar en pasto/césped Uno de los gatos puede ser una raza Manx (77,85% de confianza) Los colores dominantes incluyen varios tonos de gris, verde y marrón

La imagen muestra principalmente varios gatitos o gatos relajándose en un área de césped.

crop_bounding_box utiliza Amazon Rekognition para sus funciones de detección de objetos. Cuando se utiliza Amazon Rekognition para recortar, el servicio primero analiza la imagen para identificar elementos clave como caras, objetos o texto y luego proporciona coordenadas precisas del cuadro delimitador que se pueden utilizar para recortar la imagen de forma inteligente. La herramienta remove_background utiliza la biblioteca rembg, que es una solución para eliminar el fondo de las imágenes sin requerir una configuración compleja ni una amplia experiencia en aprendizaje automático (ML).

Servidor OpenSearch

El servidor OpenSearch MCP proporciona una interfaz unificada para la ingesta y recuperación de imágenes. Las siguientes herramientas están disponibles en el servidor MCP:

La herramienta generate_image_description utiliza los modelos de Amazon Bedrock Claude para analizar imágenes y generar descripciones en lenguaje natural. Procesa imágenes convirtiéndolas primero a un formato compatible con las capacidades multimodales de Claude y luego genera descripciones contextuales detalladas basadas en el contenido visual. La herramienta generate_multimodal_embedding utiliza los modelos multimodales de Amazon Titan para crear representaciones vectoriales de alta dimensión (incrustaciones) que capturan información visual y textual. Estas incrustaciones codifican relaciones semánticas entre imágenes y texto en un espacio vectorial compartido, que admite comparaciones de similitudes y tareas de recuperación intermodales. La herramienta ingest_image_to_opensearch proporciona un canal de un extremo a otro para procesar y almacenar imágenes en OpenSearch. Combina las capacidades de generación de descripciones de imágenes y creación de incrustaciones multimodales, luego indexa esta información en OpenSearch con metadatos apropiados. La herramienta query_images_by_text admite la búsqueda en lenguaje natural en colecciones de imágenes mediante el uso de incrustaciones multimodales almacenadas en OpenSearch. Los usuarios pueden buscar imágenes mediante consultas de texto, que se convierten en incrustaciones y se comparan con las incrustaciones de imágenes almacenadas para encontrar las coincidencias semánticamente más similares.

La herramienta query_images_by_image implementa una funcionalidad de búsqueda basada en imágenes, lo que permite a los usuarios encontrar imágenes similares utilizando una imagen como entrada de consulta. Procesa la imagen de consulta para generar su incrustación y luego realiza búsquedas de similitud con las incrustaciones de imágenes almacenadas en OpenSearch.

Respuesta del agente: Te ayudaré a encontrar imágenes similares a la que proporcionaste en el índice de “imágenes”. Permítanme analizar esta imagen primero y luego buscar otras similares. Según los resultados de la búsqueda, encontré una imagen similar en el índice de "imágenes" que coincide con su consulta. Permítame mostrarle tanto la imagen original como la similar que encontré: Encontré una imagen similar a la que proporcionó en el índice de "imágenes".

Esto es lo que encontré:

Imagen original: Un búho barrado (Strix varia) posado sobre el tronco de un árbol en un entorno forestal. El búho tiene ojos grandes distintivos y un plumaje moteado que crea un camuflaje eficaz contra la corteza del árbol. Imagen similar encontrada: Otra imagen de búho que muestra un pequeño búho posado en la rama de un árbol en un entorno forestal. Este búho también tiene ojos grandes y alerta y plumas esponjosas que lo ayudan a mezclarse con el entorno del bosque.

La puntuación de similitud entre estas imágenes es 0,65 (en una escala donde más alto es más similar), lo que indica una buena coincidencia según los elementos visuales y el contexto de ambas imágenes. Ambas fotografías capturan búhos en su hábitat natural del bosque con una composición y un tema similares.

¿Le gustaría que buscara más imágenes similares usando diferentes palabras clave o le gustaría obtener más información sobre cualquiera de estas imágenes de búhos?

La herramienta Bulk_ingest_images proporciona capacidades de procesamiento por lotes para la ingesta de imágenes a gran escala. Optimiza el proceso de generación de descripciones e incrustaciones para múltiples imágenes simultáneamente, gestionando el procesamiento paralelo y la utilización de recursos.

Configuración y dependencias

Ahora que hemos analizado las diferentes funciones de la aplicación, pasaremos por el proceso de implementación. Para comenzar, asegúrese de tener instalado lo siguiente:

Interfaz de línea de comandos de AWS (AWS CLI) Cuenta de AWS activa Python

Para implementar la solución, siga el archivo README que se encuentra en el repositorio de GitHub.
Haga clic aquí para abrir la consola de AWS y seguir adelante.

Extensiones de casos de uso

Los servidores Computer Vision MCP tienen muchas aplicaciones que incluyen, entre otras, las que se mencionan a continuación:

Caso de uso 1: proceso de visión por computadora

El canal de visión por computadora sin infraestructura ofrece un enfoque para implementar capacidades de análisis visual sin las complejidades tradicionales de configurar y mantener una infraestructura extensa. Esta configuración permite a los desarrolladores realizar tareas como generar cuadros delimitadores para objetos detectados, crear descripciones detalladas de imágenes y analizar contenido de video, todo sin la necesidad de servidores dedicados o sistemas de administración complejos. El agente en línea actúa como orquestador y se coordina de manera eficiente con el servidor MCP para acceder a un conjunto de herramientas de visión por computadora. Este enfoque simplificado elimina la necesidad de administración de servidores y mantenimiento de infraestructura. También ofrece las ventajas de un modelo de pago por uso y una implementación rápida. Como resultado, los desarrolladores pueden implementar rápidamente canales de visión por computadora robustos con una sobrecarga mínima, centrando sus esfuerzos en utilizar la tecnología en lugar de administrar su infraestructura subyacente.

Caso de uso 2: catalogación inteligente de imágenes con incrustaciones

El sistema de catalogación inteligente de imágenes mejora la búsqueda de imágenes tradicional mediante la implementación de algoritmos de similitud basados ​​en incrustaciones que respaldan la comprensión semántica del contenido visual. Al generar y almacenar incrustaciones de imágenes en una base de datos vectorial, esta solución trasciende las limitaciones de las búsquedas convencionales basadas en palabras clave, permitiendo la recuperación de imágenes consciente del contexto. El sistema utiliza modelos de IA para crear incrustaciones ricas que capturan la esencia semántica de las imágenes, permitiendo a los usuarios encontrar contenido visualmente similar incluso cuando no hay coincidencias exactas de palabras clave disponibles. Este enfoque crea un sistema de catalogación escalable que comprende las relaciones visuales y el contexto, lo que lo hace particularmente valioso para grandes colecciones de imágenes donde los métodos de búsqueda tradicionales no son suficientes. La aplicación resultante ofrece búsquedas intuitivas de similitudes que pueden identificar imágenes relacionadas en función de características visuales, elementos compositivos y significado semántico, proporcionando una forma más natural y eficaz de organizar y recuperar contenido visual.

Caso de uso 3: base de datos de memoria visual para razonamiento contextual

La base de datos de memoria visual para el razonamiento contextual representa una fusión de visión por computadora y comprensión semántica, que combina las fortalezas de los canales de CV sin infraestructura con la búsqueda de similitudes basada en incrustaciones. Este sistema procesa escenas para extraer objetos y sus cuadros delimitadores, genera incrustaciones para cada elemento y los almacena con metadatos enriquecidos que incluyen información temporal y espacial. Este enfoque admite el razonamiento contextual a través de múltiples cámaras y períodos de tiempo, lo que permite consultas e información compleja. El sistema destaca en aplicaciones como monitoreo de seguridad, seguimiento de personas y comprensión integral de escenas, y ofrece capacidades de razonamiento temporal que pueden identificar patrones y anomalías. Puede responder preguntas matizadas sobre individuos, sus asociaciones y la presencia de objetos en áreas específicas, al mismo tiempo que se integra con agentes de monitoreo de video para construir una memoria visual contextual. Esta integración facilita funciones como la detección de actividades sospechosas y el análisis de patrones históricos, creando un sistema de comprensión visual dinámico e inteligente que va más allá del simple reconocimiento de objetos para proporcionar información profunda y contextual.

Limpiar

Para evitar cargos continuos, complete los siguientes pasos de limpieza:

Vacíe el depósito S3. Elimine la pila de AWS CloudFormation.

Conclusión

Al integrar las poderosas capacidades de inteligencia artificial de Amazon Bedrock con protocolos MCP estandarizados, hemos demostrado cómo las aplicaciones modernas de visión por computadora pueden ser sofisticadas y accesibles. Los tres casos de uso demuestran las aplicaciones prácticas de este enfoque unificado. Esta integración aborda los desafíos en el campo al reducir la complejidad de la infraestructura a través de arquitecturas sin servidor, comprensión semántica, capacidades de razonamiento contextual y ofreciendo interfaces estandarizadas que simplifican el desarrollo y la implementación.

La combinación de protocolos estandarizados, potentes modelos de IA y opciones de implementación flexibles posiciona a esta solución como la base para la próxima generación de aplicaciones de inteligencia visual. A medida que la IA continúa evolucionando, los principios demostrados aquí, a saber, estandarización, accesibilidad e integración, serán cada vez más importantes en la construcción de soluciones prácticas y escalables que cierren la brecha entre la percepción visual y la acción inteligente. Esto marca no sólo un logro técnico, sino un cambio fundamental en la forma en que abordamos el desarrollo de sistemas visuales impulsados ​​por IA.

Nos encantaría saber cómo utiliza los servidores MCP de Computer Vision. Comparta sus casos de uso y preguntas en los comentarios.

Referencias

Sobre los autores

Kiowa Jackson

Kiowa Jackson

Kiowa es ingeniero sénior de aprendizaje automático en AWS ProServe. Se especializa en sistemas de inteligencia visual que combinan visión por computadora con IA agente y los llevan a producción en el sector industrial empresarial.

Jundong Qiao

Jundong Qiao

Jundong es ingeniero sénior de aprendizaje automático en AWS Professional Service, donde se especializa en implementar y mejorar las capacidades de IA/ML en varios sectores. Su experiencia abarca la creación de soluciones de inteligencia artificial de próxima generación, incluidos chatbots y modelos predictivos que impulsan la eficiencia y la innovación.

Justin Kuskowski

Justin Kuskowski

Justin es consultor principal de entrega en Amazon Web Services y se especializa en soluciones de inteligencia artificial generativa que ayudan a los clientes empresariales a acelerar la innovación y reducir el tiempo de comercialización. Como defensor apasionado de las tecnologías de IA emergentes, combina experiencia práctica en consultoría con redacción técnica para compartir conocimientos prácticos sobre la implementación de GenAI mientras amplía continuamente su experiencia en modelos básicos, ingeniería rápida y marcos de gobernanza de IA. Cuando no explora los últimos avances en inteligencia artificial, Justin disfruta viajar por el país para ver a sus hijos jugar fútbol y hacer wakesurf en los lagos de Michigan con familiares y amigos.

Nick Biso

Nick Biso

Nick es ingeniero sénior de aprendizaje automático en AWS Professional Services. Resuelve complejos desafíos organizativos y técnicos utilizando la ciencia y la ingeniería de datos. Además, crea e implementa modelos de IA/ML en la nube de AWS. Su pasión se extiende a su propensión a viajar y diversas experiencias culturales.