Logo
BLOG|
Miranda logo

Miranda

Aplicación de Análisis de Video

Dic 2024 - Presente

Aplicación avanzada de análisis de video para seguimiento de deformación de materiales usando visión por computadora e IA. Incluye seguimiento en tiempo real, análisis de elasticidad, selección de polígonos y visualización estadística integral. Construida como prototipo de investigación y ejecutable listo para producción.

Stack

Next.js
TypeScript
Tailwind
FastAPI
Python
AWS
Supabase
GitLab
Poetry
pnpm

El Problema

El análisis de video con modelos modernos de visión por computadora (como tracking denso o segmentación avanzada) requiere grandes cantidades de memoria, GPU y tiempo de procesamiento. Estas limitaciones hacen que este tipo de análisis quede restringido a máquinas locales con hardware costoso, dificultando la escalabilidad y ralentizando significativamente los flujos de trabajo.

La Solución

Diseñé una plataforma distribuida que permite ejecutar modelos de visión por computadora de alto coste computacional en infraestructura cloud bajo demanda. Esto elimina la dependencia de hardware local y permite escalar el procesamiento de forma flexible, optimizando costes y haciendo accesible el análisis avanzado de video.

Arquitectura

Architecture
Frontend
El frontend está construido con Next.js, React, TypeScript y Tailwind CSS, y proporciona una interfaz interactiva donde los usuarios pueden subir videos, seleccionar puntos de tracking y monitorizar el progreso del procesamiento. Soporta dos modos principales: Job Mode para análisis individuales y Session Mode para procesamiento batch de múltiples videos, con actualización del estado en tiempo real mediante polling.
Backend
El backend, desarrollado con FastAPI y Python, actúa como API central del sistema. Gestiona autenticación mediante JWT, controla el sistema de créditos para el uso de recursos y coordina la lógica de procesamiento. Se integra con Supabase a través de SQLAlchemy para la persistencia de usuarios, jobs y sesiones, y utiliza boto3 para comunicarse con los servicios de AWS.
Infraestructura Cloud (AWS)
La infraestructura cloud es donde se ejecuta el procesamiento intensivo. Utiliza Amazon S3 para almacenamiento de videos y resultados, AWS Lambda como sistema de triggers y Amazon EC2 con instancias GPU para ejecutar los modelos de inteligencia artificial. Las instancias se lanzan mediante Lambda utilizando AMIs (Amazon Machine Images) preconfiguradas con el código de miranda-aws y los modelos de IA de Computer Vision, asegurando que los EC2 arranquen con toda la configuración necesaria lista para usar. Cada job lanza una de estas instancias dedicadas que descarga los datos desde S3, ejecuta el procesamiento y sube los resultados antes de apagarse automáticamente. Toda la infraestructura está securizada bajo el modelo de mínimo privilegio mediante AWS IAM, integrando roles específicos para cada servicio como 'miranda-video-trigger-role' y 'miranda-cleanup-role' para las funciones Lambda, así como 'miranda-ec2-role' y 'aws-ec2-spot-fleet-tagging-role' para la gestión segura y ejecución de las instancias EC2.
Flujo de Datos
El flujo comienza cuando el usuario sube un video desde el frontend. El backend lo almacena en S3 y dispara un evento que activa una función Lambda. Lambda lanza una instancia EC2 que ejecuta el procesamiento, y una vez finalizado, los resultados se almacenan nuevamente en S3. El frontend detecta la finalización y permite al usuario descargar los resultados.
Despliegue y CI/CD
El despliegue está automatizado mediante contenedores Docker y un pipeline de CI/CD en GitLab. Tanto el frontend como el backend cuentan con sus propios Dockerfiles, y se orquestan en el servidor mediante Docker Compose. El proceso de actualización se gestiona con un script .sh que descarga las últimas imágenes del registro de GitLab, asegurando una integración continua eficiente definida en el archivo .gitlab-ci.yml.

Impacto

+10.000€

en ahorro de infraestructura al evitar inversión en hardware GPU

+40h/mes

de tiempo de procesamiento reducidas

Métricas

+5

usuarios usándolo en paralelo

+300

análisis hechos

20€

al mes de gasto

Capturas de pantalla

Página Principal

Página Principal

Interfaz principal de Miranda mostrando el espacio de trabajo de análisis de video.

Inicio de Sesión

Inicio de Sesión

Autenticación de usuario y gestión de sesiones.

Sesión

Sesión

Vista de sesión activa con visualización de seguimiento en tiempo real.

Historial

Historial

Historial de análisis y resumen de sesiones guardadas.

Procesamiento de Trabajos

Procesamiento de Trabajos

Procesamiento por lotes y gestión de cola de trabajos.

Aplicación de Escritorio

Aplicación de Escritorio

Versión ejecutable independiente para entornos de investigación.

Financiado por
Universitat de Barcelona
En colaboración con
Universitat Politècnica de Catalunya