Datamecum
Material

Tema 06: Otras tareas de visión

Otras tareas fundacionales de visión artificial

Seis tareas más, cada una con su modelo fundacional.

Estimación de pose

Identificar y localizar puntos clave del cuerpo humano o de objetos en imágenes y vídeos.

OCR moderno

Extraer texto de imágenes y documentos, transformándolo en datos editables y buscables.

Superresolución

Mejorar la calidad y resolución de imágenes o vídeos, a menudo a partir de datos de baja resolución.

Eliminación de fondo

Segmentar y eliminar automáticamente el fondo de una imagen, aislando el objeto principal.

Estimación de profundidad

Calcular la distancia de los objetos en una escena respecto a la cámara, creando mapas de profundidad.

Correspondencias entre imágenes

Encontrar correspondencias o similitudes entre dos o más imágenes para tareas como la localización o el reconocimiento.

Estimación de pose humana: de píxeles a esqueletos

Estructurando el cuerpo humano en coordenadas digitales.

¿Qué es? Tarea de visión que localiza articulaciones clave (keypoints) para modelar la postura y el movimiento.

El estándar (COCO-17): se buscan típicamente 17 puntos.

  • Cabeza: nariz, ojos (2), orejas (2).
  • Tren superior: hombros (2), codos (2), muñecas (2).
  • Tren inferior: caderas (2), rodillas (2), tobillos (2).

El output: una lista de coordenadas (x, y) más un score de confianza por punto.

Esqueleto COCO de 17 puntos clave sobre una persona.

Transformamos una matriz de píxeles ininteligible en una estructura geométrica analizable (skeleton).

Enfoques de modelado: top-down vs. bottom-up

Trade-off entre precisión y velocidad en multitudes.

Top-down (alta precisión)

Proceso: primero detecta personas (cajas), luego estima la pose dentro de cada una.

Ejemplos: HRNet, ViTPose.

  • Pros: máxima precisión, robustez a distintas escalas.
  • Contras: lento en grandes aglomeraciones, con coste lineal en el número de personas.

Bottom-up (alta velocidad)

Proceso: detecta todos los puntos clave de la imagen a la vez, luego los agrupa en personas.

Ejemplo: OpenPose.

  • Pros: velocidad constante, independiente del número de personas.
  • Contras: menos preciso, el agrupamiento de puntos es complejo.

Single-stage (el equilibrio moderno)

Proceso: redes como YOLO-Pose predicen cajas y puntos simultáneamente en una sola pasada (end-to-end).

  • Ventaja: velocidad en tiempo real con precisión competitiva, ideal para dispositivos edge.

Modelos destacados

Herramientas prácticas para cada escenario.

  1. MediaPipe (Google)

    Funciona bien en CPU y en el móvil. Pensado para fitness, filtros AR y escenas con una o pocas personas cerca de la cámara. Tiene también modelos para manos y cara.

  2. YOLO-Pose (Ultralytics)

    YOLOv8, YOLO11 y YOLO26 en versión pose: varias personas en una pasada, buen equilibrio entre velocidad y precisión y fáciles de reentrenar. Licencia AGPL-3.0, como el resto de Ultralytics (tema 1).

  3. OpenPose (CMU)

    El pionero académico que estableció las bases. Aunque influyente, hoy en día es computacionalmente pesado en comparación con opciones más modernas.

  4. HRNet

    Prioridad en precisión extrema. Cuando la exactitud es crítica (análisis médico, biomecánico) y la velocidad de inferencia es secundaria.

  5. ViTPose (el del cuaderno)

    Top-down sobre un ViT sencillo: en el cuaderno, RT-DETR encuentra a las personas y ViTPose les pone los 17 puntos. Licencia Apache 2.0.

¿Cómo medimos la calidad? La métrica OKS

OKS (Object Keypoint Similarity) hace con los esqueletos lo que IoU hace con las cajas: convierte la distancia entre cada punto predicho y el real en una puntuación de 0 a 1, corregida por el tamaño de la persona y por lo difícil que es marcar esa articulación.

Por eso el mismo error no penaliza igual: 5 píxeles de error en el ojo, que los anotadores marcan con mucha precisión, cuestan bastante más que 5 píxeles en la cadera, cuya posición exacta es más difícil de fijar.

Comparación entre el esqueleto predicho y el real para ilustrar la evaluación con OKS.

El mismo error no penaliza igual

La tolerancia depende de la articulación y de la escala de la persona (la raíz de su área). Mueve las dos cosas y mira cuándo la pose deja de contar como acierto.

ojo muñeca cadera

El muñeco mide siempre lo mismo y representa a la persona entera: si la persona encoge, el mismo error en píxeles se ve mayor sobre ella. Las tolerancias son las constantes de COCO.

Cuenta como acierto

OKS del esqueleto0,92

Umbral de acierto0,50

  • Ojo σ 0,025 0,80
  • Muñeca σ 0,062 0,96
  • Cadera σ 0,107 0,99

Con escala de 150 px, 5 px dejan el ojo en 0,80 y la cadera en 0,99. El ojo pierde medio punto a partir de 9 px.

Esto explica el fallo más habitual en planta: el modelo va bien con la persona cerca y se desmorona con la persona al fondo, aunque el error en píxeles sea el mismo. Las dos salidas son acercar la cámara o trabajar en top-down, detectando primero a cada persona y recortándola para que llegue grande al modelo de pose.

Cinco píxeles no son cinco píxeles

La tolerancia de cada articulación sale de cómo de acuerdo se ponen los anotadores humanos.

Dos articulaciones fallan cinco píxeles. ¿Penaliza OKS siempre igual?

Impacto real y desafíos técnicos

Dónde genera valor la estimación de pose.

Deporte y fitness

  • Entrenador IA: conteo preciso de repeticiones (sentadillas, flexiones…).
  • Análisis de técnica: medición de ángulos corporales para prevenir lesiones.
  • Por ejemplo, Peloton Guide cuenta repeticiones con una cámara.

Seguridad industrial y ergonomía

  • Detección de posturas peligrosas: identificar movimientos de riesgo al levantar peso.
  • «Hombre caído»: alertas de seguridad en tiempo real en entornos peligrosos.
  • Optimización: mejora de la eficiencia en líneas de montaje.

Salud y rehabilitación

  • Fisioterapia remota: validación de ejercicios en casa sin supervisión presencial.
  • Análisis de marcha: detección temprana de patologías neurológicas o musculoesqueléticas.

El gran reto: oclusiones y reconstrucción 3D

El problema: la estimación de pose se complica cuando partes del cuerpo se ocultan entre sí o tras otros objetos, y se pierde información.

La solución: modelos avanzados emplean memoria temporal para rastrear y predecir oclusiones, o realizan inferencia 3D para «imaginar» las partes ocultas basándose en la anatomía y el contexto.

Aplicaciones de la estimación de pose en deporte, industria y salud.

OCR moderno: de leer caracteres a entender documentos

La evolución de Tesseract a los transformers (TrOCR).

El pasado: enfoque clásico (Tesseract)

Metodología: hasta la versión 3 segmentaba caracteres con reglas y contornos; desde la 4 (2018) reconoce líneas con una red LSTM, pero sigue necesitando texto limpio y horizontal.

Limitaciones comunes:

  • Falla con texto curvo, distorsionado o en perspectivas inusuales.
  • Poca robustez ante fuentes manuscritas complejas o variaciones tipográficas.
  • Sensible al ruido de fondo, baja resolución o iluminación deficiente.
  • Requiere preprocesamiento intensivo (normalización, binarización).

El presente: transformers para OCR (TrOCR y VLM)

Arquitectura end-to-end: utiliza Vision Transformers (ViT) para codificar la imagen de forma global y un decoder de texto (en TrOCR, inicializado desde RoBERTa) genera la secuencia de caracteres.

Lo que cambia: lee la línea entera de una vez, con el contexto de las letras vecinas, en lugar de reconocer caracteres sueltos.

Estado del arte (SOTA):

  • TrOCR (Microsoft): un referente específico para tareas de OCR.
  • Qwen3-VL y Qwen3.5: VLM que leen y además razonan sobre el texto, por ejemplo devolviendo en JSON los campos de una factura.

Herramientas prácticas de OCR

Implementación rápida con Hugging Face y EasyOCR.

EasyOCR: el comodín versátil

Una opción todo terreno para cualquier proyecto. Es ligera, soporta más de 80 idiomas y funciona eficientemente en CPU. Ideal para prototipos rápidos y escenarios donde no se dispone de GPU.

TrOCR (Hugging Face): precisión avanzada

Muy preciso en texto impreso y en manuscrito, según la variante. Lee una sola línea ya recortada, así que necesita un detector de texto delante. Va mucho mejor con GPU.

VLM (Qwen, Gemini, GPT): documentos estructurados

Perfectos para casos de uso complejos como el procesamiento de facturas o tablas. Permiten extraer información estructurada, por ejemplo JSON, en lugar de solo texto plano, integrando visión y lenguaje para un razonamiento avanzado.

Lo que devuelve cada generación de OCR

La misma foto de una placa, leída de tres formas. Cambia la herramienta y mira qué recibe tu programa.

Placa de circuito impreso verde con serigrafía: Easy Pulse, www.Embedded-Lab.com, Place finger, SENSOR, PULSE y las referencias de los componentes.
Serigrafía de una placa real, con texto pequeño, girado por el brillo del cobre y mezclado con los componentes. Las cajas están medidas a mano para enseñar el formato de salida.

Qué herramienta usas

C1  C5  R6  C4  PULSE
T1  R3  MCP6004
IC2  R4  R11  R10  R5  R9
J1  VCC  EN  VOUT  GND
R1  R2  R7  R8
Place finger  SENSOR
Easy Pulse
www.Embedded-Lab.com

Sale una tira de caracteres y poco más. El orden lo inventa el recorrido por líneas, así que «VCC EN VOUT GND» y las referencias de las resistencias se mezclan sin que puedas saber qué va con qué.

La pregunta útil es qué necesita tu programa, más que qué herramienta lee mejor. Para contar si la serigrafía está impresa basta la primera; para comprobar que cada referencia está junto a su componente hacen falta coordenadas; para rellenar un parte de recepción con el modelo y el fabricante, el tercero te ahorra el pegamento.

Superresolución: restaurando el detalle perdido

El uso de deep learning para generar detalles plausibles de alta frecuencia a partir de una imagen de baja resolución, superando los límites de la interpolación tradicional (bilineal, bicúbica…).

El modelo del cuaderno: Swin2SR (2022).

  • Basado en Swin Transformers V2, lo que le permite procesar imágenes de manera eficiente y global.
  • Entrenado para escalar la imagen y también para eliminar artefactos de compresión JPEG y ruido.
  • Lo que aporta: recupera y sintetiza texturas finas (como pelo, tela o detalles faciales) que los métodos clásicos dejarían borrosas o artificiales.
Una rana arborícola ampliada con interpolación bicúbica: ruido de color y textura empastada.
La misma rana reconstruida con Swin2SR: bordes limpios y textura de piel recuperada.
Mira el recuadro rojo: la textura fina de la derecha la sintetiza el modelo.

Nota importante: la superresolución no es magia. El modelo «imagina» detalles a partir de los patrones que vio al entrenar; no reconstruye información que nunca existió.

Aplicaciones reales y limitaciones

Dónde aplicar superresolución en industria.

Restauración de archivos

  • Digitalización de fotos antiguas o documentos históricos dañados.
  • Mejora de contenido multimedia antiguo (remasterización).

Medicina e imagen satelital

  • Mejorar la legibilidad de escáneres médicos.
  • Zoom en imágenes aéreas o satelitales.

E-commerce y marketing

  • Mejorar fotos de productos de baja calidad enviadas por usuarios o proveedores.
  • Lograr una apariencia profesional en la web para el catálogo de productos.

Riesgo crítico: «alucinaciones». El modelo puede inventar un tumor o una mancha. Nunca usar para diagnóstico crítico sin supervisión.

Detalle generado no es evidencia

Lo que aparece al ampliar puede venir del modelo, no del sensor.

Una superresolución muestra una mancha nueva en una imagen médica. ¿Qué concluyes?

Eliminación de fondo profesional

El reto del «alpha matting» y el modelo RMBG.

El problema: bordes difusos

Segmentar objetos sólidos es fácil. Pero elementos como el pelo, el pelaje o el vidrio transparente son extremadamente difíciles de separar debido a sus bordes difusos y semitransparentes.

La solución: RMBG-1.4 (BRIA AI)

Modelo pensado para alpha matting: genera un canal alfa con transparencia gradual en los bordes en lugar de una máscara binaria, así que el recorte encaja en cualquier fondo sin efecto «pegatina». Su licencia no permite uso comercial sin acuerdo con BRIA.

Recorte con canal alfa que conserva el detalle del pelo frente a una máscara binaria.

Image matching: encontrando parejas visuales

De los algoritmos clásicos (SIFT, ORB…) a las redes.

¿Qué es? Encontrar puntos idénticos en dos fotos de la misma escena tomadas desde ángulos diferentes, a pesar de cambios en la perspectiva o la iluminación. Es la base de la reconstrucción 3D, la realidad aumentada y la localización de robots.

La nueva era: deep learning

Detector (SuperPoint, DISK)

Una red que localiza los puntos más distintivos de la imagen (esquinas, texturas) y describe cada uno con un vector. Aguanta mejor que SIFT los cambios fuertes de luz y de punto de vista.

Matcher (LightGlue)

Un Transformer que compara los puntos de las dos imágenes, decide cuáles se corresponden y descarta los que no tienen pareja. Los errores geométricos que se le escapan se filtran después con RANSAC, como en la pantalla siguiente.

Correspondencias entre dos fotografías de la misma escena tomadas desde ángulos distintos.

Dónde se nota: con cambios de luz (de día a noche), grandes variaciones de perspectiva y oclusiones, justo donde los métodos clásicos fallan más.

La mitad de las parejas sobran

Un matcher devuelve más parejas de las que valen. El filtro que las separa no mira el aspecto, mira la geometría: mueve el umbral y comprueba cuáles encajan con la escena.

vista 1 vista 2

Esquema con una homografía real: la misma fachada vista desde otro sitio. Las parejas y su error se calculan en el navegador.

Estimación sólida

Parejas aceptadas9

Descartadas6

9 parejas coherentes y 6 descartadas. Las descartadas son las que se parecían sin estar en el mismo sitio.

Este umbral es el que se pasa a cv2.findHomography con RANSAC, y es el mando que más cambia el resultado en fotogrametría y en SLAM. Demasiado bajo y te quedas sin puntos para calcular; demasiado alto y una ventana confundida con otra te tuerce la pose de la cámara.

Reconstruyendo el mundo en 3D

Tres usos del matching.

Fotogrametría (SfM)

Al identificar y conectar puntos coincidentes en múltiples fotos de una escena, se puede reconstruir la geometría 3D del objeto y la posición de la cámara en cada toma.

SLAM (robótica)

Un robot utiliza el matching de características para comprender su posición dentro de un entorno y construir un mapa del mismo, incluso mientras se mueve y explora.

Panoramas (stitching)

Permite fusionar sin problemas varias imágenes superpuestas en una única foto de gran formato o una vista de 360 grados, eliminando duplicados y alineando las perspectivas.

Depth estimation: 3D desde una sola imagen

Profundidad con una sola cámara y una sola foto.

Depth Anything V2/V3

Un modelo fundacional con encoder DINOv2. La V2 se entrenó con 595.000 imágenes sintéticas etiquetadas y 62 millones de imágenes reales con pseudoetiquetas.

Capacidad

Genera un mapa de profundidad (heatmap) donde el color indica la distancia relativa, revelando la estructura 3D subyacente.

Robustez

Aguanta interiores, exteriores y escenas con mucho detalle. Cristales y espejos, que hacían fallar a la V1, los maneja mucho mejor gracias a los datos sintéticos; aun así, compruébalo con tus imágenes.

Un camión circulando por una carretera recta, con un coche al fondo y un poste a la izquierda.
La misma carretera como mapa de profundidad: el camión aparece muy claro por cercano y el cielo oscuro por lejano.
Una sola cámara y una sola imagen: el modelo deduce qué está cerca y qué está lejos.

Recortar una foto por distancia

El mapa de profundidad de la pantalla anterior, usado como filtro: todo lo que queda más lejos que el corte se aclara. No hacen falta clases ni etiquetas: basta un umbral sobre la cercanía.

La carretera con el camión: lo que queda más lejos que el corte aparece aclarado y lo cercano conserva su color.

Imagen que se conserva42 %

Queda la trasera del camión, y la pantalla que muestra otra carretera sigue entera: el modelo le da la distancia del camión aunque enseñe una carretera lejana.

Mapa precalculado, el de la pantalla anterior; el corte se aplica en tu navegador. La escala es relativa: 100 no equivale a ninguna distancia en metros.

Aplicaciones de la profundidad

¿Para qué sirve un mapa de profundidad?

Efecto retrato (bokeh)

Desenfocar el fondo sintéticamente, creando imágenes con una profundidad de campo profesional y destacando el sujeto principal.

Robótica y navegación

Permitir que robots y vehículos autónomos detecten obstáculos y comprendan su entorno 3D, utilizando solo una cámara de bajo coste.

Generación de nubes de puntos

Convertir una foto plana en una estructura 3D navegable (malla o nube de puntos) al combinar la imagen RGB con su mapa de profundidad.

Recorte por distancia

Un umbral sobre el mapa elimina lo que queda más lejos (o más cerca) de lo que interesa, sin clases ni etiquetas.

Profundidad relativa vs. métrica. Estos modelos suelen estimar profundidad relativa (mapas de calor). Para obtener metros reales se necesita calibración de cámara o un modelo de profundidad métrica; Depth Anything V2 tiene variantes métricas para interior y exterior.

Relativa no es métrica

Un mapa normalizado ordena distancias, pero no las mide.

Necesitas saber si un obstáculo está a 1,5 metros. ¿Basta un mapa relativo normalizado?

Cuatro sectores, las tareas del curso

Los mismos modelos, combinados de otra manera, resuelven problemas muy distintos. Lo que cambia de un sector a otro es qué hay que vigilar.

Vigilancia y seguridad

Detectar y seguir personas y vehículos, contar los que entran en una zona, avisar de una caída con la pose. RF-DETR con un seguidor (tema 1) y ViTPose (este tema).

Ojo: el Reglamento europeo de IA prohíbe desde febrero de 2025, salvo excepciones tasadas, la identificación biométrica remota en tiempo real en espacios públicos con fines policiales y el reconocimiento de emociones en el trabajo.

Industria

Defectos sin ejemplos de defecto, conteo de piezas, lectura de lotes y etiquetas, medidas con máscaras. DINOv3 con banco de normalidad (tema 4), SAM (tema 5) y OCR (este tema).

Ojo: luz y encuadre estables, y un umbral fijado con piezas buenas.

Robótica

Saber qué está cerca con una sola cámara, recortar el objeto que hay que coger, encontrar objetos nuevos por su nombre. Depth Anything (este tema), SAM 2 (tema 5) y Grounding DINO (tema 3).

Ojo: esta profundidad es relativa; para coger un objeto hacen falta metros.

Automoción

Vehículos, peatones y señales, la calzada separada del resto, distancias y matrículas. Detectores en tiempo real (tema 1), segmentación (tema 5), profundidad y OCR (este tema).

Ojo: tiempo real en el hardware del coche, y noche, lluvia y contraluz en los datos de validación.

Las seis tareas, seis recetas

Lo mínimo para arrancar cada una, con el mismo código que usa el cuaderno. Elige la tarea.

# Pose: personas y sus 17 puntos
import torch
from PIL import Image
from transformers import AutoProcessor, RTDetrForObjectDetection, VitPoseForPoseEstimation

image = Image.open("mi_imagen.jpg").convert("RGB")

# 1. Encontrar a las personas
det_processor = AutoProcessor.from_pretrained("PekingU/rtdetr_r50vd_coco_o365")
detector = RTDetrForObjectDetection.from_pretrained("PekingU/rtdetr_r50vd_coco_o365")
with torch.no_grad():
    detections = detector(**det_processor(images=image, return_tensors="pt"))
found = det_processor.post_process_object_detection(
    detections, target_sizes=[(image.height, image.width)], threshold=0.5)[0]
person_id = [i for i, name in detector.config.id2label.items() if name == "person"][0]
boxes = found["boxes"][found["labels"] == person_id].numpy()
boxes[:, 2:] -= boxes[:, :2]   # ViTPose quiere x, y, ancho, alto

# 2. Ponerles el esqueleto
pose_processor = AutoProcessor.from_pretrained("usyd-community/vitpose-plus-base")
pose_model = VitPoseForPoseEstimation.from_pretrained("usyd-community/vitpose-plus-base")
inputs = pose_processor(image, boxes=[boxes], return_tensors="pt")
inputs["dataset_index"] = torch.tensor([0])   # 0: los 17 puntos de COCO
with torch.no_grad():
    poses = pose_model(**inputs)
people = pose_processor.post_process_pose_estimation(poses, boxes=[boxes])[0]
print(len(people), people[0]["keypoints"].shape)   # personas, (17, 2)

Top-down: RT-DETR encuentra a las personas y ViTPose les pone 17 puntos. ViTPose no busca personas por su cuenta; sin las cajas no hace nada.

  • Cada tarea es independiente: ejecuta solo la que necesites y no cargues el resto.
  • Revisa la licencia antes de llevarlo a producción. LightGlue con SuperPoint no permite uso comercial sin acuerdo; el resto de recetas usa modelos con licencia Apache 2.0.
  • Para encadenar dos, empieza por profundidad y usa el mapa como máscara: es la combinación más directa.

Antes de usar cualquiera de estas seis

Seis comprobaciones comunes a tareas muy distintas.

  1. Sabes qué es medida y qué es generaciónPose y profundidad estiman; superresolución sintetiza. No se usan igual como evidencia.
  2. La licencia permite tu usoVarias de estas familias tienen restricciones comerciales. Compruébalo por modelo.
  3. La escala está resueltaSi necesitas metros, un mapa relativo no sirve: hace falta calibración o un modelo métrico.
  4. Probado con tus imágenesResolución, encuadre y calidad reales, no las fotos de la demo.
  5. Sin diagnóstico automáticoEn medicina o seguridad, revisión humana sobre la imagen original.
  6. Coste por imagen calculadoSi vas a procesar miles, mide tiempo y memoria antes de comprometerte.

Cinco tareas, un cuaderno

Pose, OCR, superresolución, fondo y profundidad sobre tus propias imágenes.

  1. Guarda una copia en Drive.
  2. Ejecuta cada tarea por separado.
  3. Combina dos pipelines y comenta el resultado.
Abrir en Colab