Captura de Movimiento y Clasificación de Danzas Regionales con IA para el MINISTERIO DE CULTURA

🤖 IngeniaUp
| marzo 31, 2026 | Lectura técnica

El archivo audiovisual del Ministerio de Cultura del Perú (MINCUL) alberga miles de horas de video documentando las danzas tradicionales de nuestras regiones. Sin embargo, este invaluable registro enfrentaba dos problemas críticos: la imposibilidad de clasificar manualmente miles de terabytes de video y, más grave aún, la pérdida gradual de la precisión coreográfica original al depender únicamente del ojo humano para su estudio.

Desde IngeniaUp, asumimos el reto de digitalizar y estructurar este patrimonio inmaterial desarrollando Vision-Danzas-Regionales, un pipeline avanzado de Computer Vision de doble propósito: clasificación de indumentaria a nivel de fotograma y extracción cinemática (Pose Estimation) para la preservación de los movimientos coreográficos.

A continuación, detallamos la arquitectura técnica y el despliegue de este sistema.

1. El Desafío Técnico

Para digitalizar el folclore peruano no basta con una etiqueta que diga "Esto es Marinera" o "Esto es Wititi". El MINCUL requería un sistema capaz de:

  1. Clasificación de Objetos: Identificar prendas específicas (polleras, monteras, bordados, máscaras) en videos de baja resolución o archivos históricos.

  2. Markerless Motion Capture: Extraer el esqueleto 3D y los patrones de movimiento de los danzantes a partir de videos 2D convencionales, sin usar trajes de captura de movimiento (mocap suits).

  3. Búsqueda Semántica: Permitir a los antropólogos buscar en la base de datos consultas complejas como: "Mostrar videos de la danza de las Tijeras donde el ángulo de flexión de la rodilla supere los 90 grados".


2. Arquitectura de Inteligencia Artificial

Para lograr una inferencia rápida y precisa procesando video a 30 y 60 FPS, diseñamos una arquitectura en dos fases, corriendo sobre servidores On-Premise con GPUs NVIDIA RTX para garantizar la soberanía de los datos del estado.

Fase A: Detección y Clasificación (YOLOv8 Fine-tuned)

Implementamos un modelo de detección de objetos basado en YOLOv8 (You Only Look Once), reconocido por su velocidad en tiempo real.

  • El Dataset: Entrenamos el modelo base con un dataset propietario de 45,000 imágenes etiquetadas manualmente con indumentaria típica del sur del Perú (Arequipa, Puno, Cusco).

  • Funcionamiento: El modelo escanea el video cuadro por cuadro, generando bounding boxes (cajas delimitadoras) alrededor de los objetos clave, clasificando la danza instantáneamente por la suma de sus elementos visuales.

Fase B: Extracción Cinemática (Advanced Pose Estimation)

Esta es el núcleo innovador del proyecto. Para guardar los movimientos de los danzantes, implementamos un pipeline de estimación de pose humana utilizando MediaPipe y ViTPose (Vision Transformer Pose).

En lugar de simplemente clasificar el video, la IA mapea 33 puntos articulares (keypoints) del cuerpo del danzante en un espacio tridimensional (X, Y, Z) en cada fotograma.

El sistema calcula y almacena:

  • Vectores de desplazamiento: La ruta espacial que sigue el bailarín en el escenario.

  • Cinemática articular: Los ángulos exactos de codos, rodillas y cadera en los momentos clave de la coreografía.

  • Frecuencia rítmica: Sincronización de los pasos (footwork) respecto a los picos de audio de la banda sonora.

Python
# Ejemplo simplificado del pipeline de extracción de coordenadas (Keypoints)
import cv2
import mediapipe as mp

mp_pose = mp.solutions.pose
pose_analyzer = mp_pose.Pose(min_detection_confidence=0.75, model_complexity=2)

def extract_choreography_data(video_frame):
    results = pose_analyzer.process(cv2.cvtColor(video_frame, cv2.COLOR_BGR2RGB))
    
    if results.pose_landmarks:
        # Extraer ángulo de la rodilla derecha (Ej. para danza Wititi)
        hip = results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_HIP]
        knee = results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_KNEE]
        ankle = results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_ANKLE]
        
        angle = calculate_angle(hip, knee, ankle)
        return {"joint_data": results.pose_landmarks, "knee_flexion": angle}

3. Implementación y Base de Datos Vectorial

Guardar coordenadas 3D de videos de horas de duración generaba una cantidad masiva de datos temporales. Para que el Ministerio pudiera buscar dentro de esta información, vectorizamos las secuencias de movimiento.

Convertimos los "pasos de baile" en Embeddings (vectores matemáticos) y los almacenamos en una base de datos vectorial (Milvus). Esto permite realizar comparaciones matemáticas. Si un antropólogo quiere saber si un paso de una danza moderna en Arequipa tiene raíces en una danza ancestral de Puno, la IA compara la geometría de los movimientos y arroja un porcentaje de similitud matemática en milisegundos.

4. Resultados e Impacto

La implementación de este sistema en el Ministerio de Cultura logró:

  • Procesamiento Masivo: Catalogación automática de más de 5,000 horas de video histórico en menos de 3 semanas.

  • Preservación Digital: Las coreografías ya no dependen solo de la memoria humana o el video plano; ahora existen como "esqueletos digitales matemáticos" inmutables que pueden usarse para enseñar a futuras generaciones mediante Realidad Aumentada (AR) o avatares 3D.

  • Reducción de Tiempos: Búsquedas documentales que antes tomaban meses de revisión manual ahora se ejecutan mediante queries en menos de 2 segundos.

De la Cultura a la Industria

En IngeniaUp, desarrollamos tecnología profunda. Si nuestro sistema de Visión Artificial puede detectar el cambio de ángulo de un grado en el tobillo de un danzante de Caporales a partir de un video de 1995, imagina lo que esta misma tecnología puede hacer por el control de calidad en tu línea de producción, la prevención de accidentes laborales o el control biométrico de tu personal.