Tema 01: Detección de objetos
Modelos fundacionales en visión artificial
Tema 1: Detección de objetos
Día 1 del curso
- Web del curso
- datamecum.sergiovillanuevalopez.com
- Práctica
- Cuaderno 1 en Colab (1_OD.ipynb)
- Profesor
- Sergio Villanueva · Datamecum
Enseñando a las máquinas a ver
La brecha semántica: ¿cómo lo ve un humano vs. una máquina?
Visión humana
Inmediatamente identificamos «un gato naranja durmiendo en un sofá» y comprendemos su contexto.
Visión computacional
Una máquina percibe una compleja matriz de millones de píxeles, cada uno con valores numéricos RGB como [255, 128, 64…].
Las imágenes digitales son matrices de píxeles. La visión artificial aprende representaciones que permiten asociar esos valores con objetos, relaciones o regiones.
Tareas principales en visión artificial
¿Qué salida necesitas?
La misma imagen admite tareas distintas.
Respuesta B. Exacto: la detección localiza cada instancia y permite contarla.
La clasificación da una etiqueta global. La detección devuelve cajas y categorías por instancia. La segmentación delimita píxeles. Otros problemas incluyen anomalías, pose, OCR, profundidad y superresolución.
1. Detección de objetos
Tipos de arquitecturas de Object Detection
La rama basada en CNN se divide en frameworks con propuestas de región (R-CNN, SPP-Net, Fast R-CNN, Faster R-CNN, FPN) y frameworks de regresión o clasificación directa (YOLO, SSD, RetinaNet). La rama basada en transformer agrupa detección extremo a extremo (DETR, Deformable DETR, Efficient DETR, Sparse DETR) y arquitecturas ViT (ViT, DeiT, CaiT, CvT).
Evolución histórica de los detectores
-
Two-Stage (2014-2016)
R-CNN, Fast R-CNN, Faster R-CNN: arquitecturas de dos etapas que primero proponen regiones candidatas y luego las clasifican. Precisos pero complejos y lentos.
-
One-Stage (2015 →)
YOLO cambia el planteamiento: una sola red neuronal procesa la imagen completa en tiempo real, prediciendo cajas y clases simultáneamente mediante una cuadrícula.
-
Transformers (2020 →)
DETR y RF-DETR: pipelines limpios basados en atención, sin anchors predefinidos ni supresión de no máximos (NMS). Arquitectura más simple y generalizable.
Redes neuronales convolucionales (CNN)
Las CNN incorporan localidad e invariancia aproximada a traslaciones. Siguen dentro de muchos detectores actuales, y una CNN también capta contexto global si se le añaden capas de atención o un campo receptivo grande.
Lo que hace una capa convolucional
Un filtro de 3 × 3 recorre la imagen: cada píxel de salida es la suma de sus nueve vecinos multiplicados por nueve pesos. Cambia el filtro y mira qué se enciende; toca o pasa el ratón por las imágenes para ver la cuenta.
Filtros escritos a mano y calculados en tu navegador. Una CNN aprende sus pesos durante el entrenamiento, y los de su primera capa acaban pareciéndose a estos.
Esta página recoge el filtro de bordes verticales: pesos negativos a la izquierda y positivos a la derecha, de modo que la suma es grande donde la luz cambia en horizontal y cero en las zonas lisas. En el punto marcado, sobre una arista del edificio de la izquierda, la salida vale 419. El filtro de bordes horizontales es el mismo girado 90 grados y enciende cornisas y filas de ventanas. El desenfoque promedia los vecinos y el realce resta los vecinos al centro. Una capa convolucional aplica decenas de filtros como estos a la vez, y las capas siguientes combinan sus mapas para detectar texturas, partes y objetos.
Two-Stage: precisión a costa de complejidad
R-CNN
Comparación de velocidad de RCNNs
La tabla compara tres generaciones. Método de propuestas: Selective Search en RCNN y Fast RCNN, RPN en Faster RCNN. Tiempo de generación: 1500 ms, 1500 ms y 10 ms. Predicción sobre las propuestas por imagen: 47000 ms, 320 ms y 190 ms. Factor de aceleración: 1×, 25× y 250×.
YOLO: detección como regresión directa
La arquitectura YOLO: velocidad y simplicidad
Una celda se responsabiliza de un objeto
Baja la cuadrícula y mira qué pasa cuando dos centros caen en la misma celda.
Cada punto es el centro de un objeto. YOLOv1 usaba una cuadrícula de 7 × 7.
Objetos con celda propia3 de 3
Esta página recoge el estado con una cuadrícula de 7 × 7, la que usaba YOLOv1. Al bajar a 6 × 6 o menos, los centros de los dos coches de la izquierda caen en la misma celda y esa celda solo puede responsabilizarse de uno: es la limitación más citada de YOLOv1 con objetos juntos o pequeños. Subir S reparte mejor los centros en general, pero no lo garantiza: con 8 × 8 y con 12 × 12 esos dos centros vuelven a caer juntos, porque lo que decide es dónde quedan las líneas de la rejilla. Además, más celdas multiplican las predicciones y el coste. Las versiones posteriores atacan el problema con predicción multiescala y, más tarde, con enfoques anchor-free.
Una sola pasada, una sola red
Comprueba en qué se diferencia un detector de una etapa.
Respuesta C. Exacto: esa es la idea central, aunque los detalles cambian entre versiones.
Un detector de una etapa predice cajas y clases en una única pasada sobre toda la imagen, sin una fase previa que proponga regiones candidatas.
Evolución de la familia YOLO (2016-2026)
- 2016 · YOLOv1Detección en tiempo real con una sola pasada de la red. Mucho más rápido que los detectores de dos etapas, aunque menos preciso.
- 2018 · YOLOv3Predicción a tres escalas y backbone Darknet-53, con mejor detección de objetos pequeños.
- 2020 · YOLOv4Backbone CSPDarknet53 y trucos de entrenamiento («Bag of Freebies», como el aumento Mosaic) que mejoran la precisión sin frenar la inferencia.
- 2020 · YOLOv5Primera versión en PyTorch, de Ultralytics. Popularizó YOLO por lo fácil que era entrenarlo y exportarlo.
- 2022 · YOLOv7Arquitectura E-ELAN. Superó en velocidad y precisión a los detectores conocidos entre 5 y 160 FPS.
- 2023 · YOLOv8De Ultralytics. Pasó a una cabeza sin anchors y unificó en una API detección, segmentación, pose y clasificación.
- 2024 · YOLOv9PGI y GELAN para que la información útil no se pierda en redes profundas. La rama auxiliar se quita al inferir y no añade coste.
- 2024 · YOLOv10De la Universidad de Tsinghua. Añade una asignación uno a uno al entrenar y prescinde del NMS al inferir.
- 2024 · YOLO11Sucesor de YOLOv8 en Ultralytics, sin la «v» en el nombre: más precisión con menos parámetros.
- 2025 · YOLO12Versión comunitaria centrada en la atención: introduce atención por áreas sin perder el tiempo real.
- 2026 · YOLO26Última de Ultralytics (enero). Cabeza uno a uno opcional sin NMS y regresión sin DFL, pensada para edge.
Por qué las CNN no son suficientes
Campo receptivo limitado
Las CNN procesan información en parches locales. Para entender relaciones a larga distancia, necesitan muchas capas, lo que aumenta la profundidad del modelo y dificulta la propagación de gradientes. Esto es ineficiente para capturar el contexto global de una imagen.
Sesgo inductivo fuerte
Asumen una fuerte localidad espacial e invarianza a traslación. Esto es útil para objetos que aparecen en cualquier lugar de la imagen, pero dificulta la modelización de relaciones abstractas o estructuras que no se ajustan a patrones de vecindad directa.
Componentes ad hoc
Los detectores basados en CNN dependen de piezas manuales y heurísticas, como los «anchors» predefinidos (cajas de distintos tamaños y proporciones) y la supresión de no máximos (NMS) para eliminar duplicados. Estas piezas añaden complejidad e hiperparámetros, y no se optimizan junto con el resto de la red.
El umbral de NMS es un hiperparámetro
El NMS mide cuánto se solapan dos cajas (su IoU, que se define unas pantallas más adelante). Baja el umbral y desaparece un coche entero; súbelo y vuelven los duplicados.
Cinco cajas candidatas sobre dos coches. El detector las propone todas antes de filtrar.
Cajas que quedan2
Suprimidas3
Esta página recoge el estado con umbral 0,50. El algoritmo recorre las cajas de mayor a menor puntuación: cada superviviente suprime a las que solapan con ella por encima del umbral. Con 0,20 la caja del primer coche llega a suprimir la del segundo, porque comparten un 25 % de área, y se pierde un objeto real. Con 0,80 apenas se suprime nada y quedan las cinco cajas. No hay un valor universalmente correcto: depende de cuánto se solapen los objetos del dominio, y por eso DETR y RF-DETR eliminan este paso mediante la asignación uno a uno durante el entrenamiento.
DETR: Transformers para detección
Fin del NMS: matching húngaro
YOLO antes del NMS: predicciones redundantes
Predice miles de cajas candidatas y necesita un proceso de filtrado (NMS) para eliminar las duplicadas.
DETR: predicciones directas y únicas
Asigna una predicción única a cada objeto real utilizando un algoritmo de matching húngaro basado en un coste global.
Emparejar de una en una no basta
Mueve p1, la predicción más segura, hacia el coche B. Emparejar por orden de confianza le da B y deja a p2 sin pareja útil; la asignación húngara minimiza el coste total.
| Predicción | A | B | C |
|---|---|---|---|
| p1 | 0,80 | 0,67 | 1,00 |
| p2 | 1,00 | 0,14 | 1,00 |
| p3 | 1,00 | 1,00 | 0,14 |
| p4 | 1,00 | 1,00 | 1,00 |
Coste por confianza1,81
Coste húngaro1,08
Coste simplificado: solo cuenta el solape. DETR suma además el error de clase y la distancia L1 entre cajas.
Esta página recoge el estado con p1 en x = 36, emparejando por orden de confianza. p1 solapa un 33 % con B y un 20 % con A, así que elige B; p2, que cubría B casi perfectamente, se queda con A y no lo toca. Coste total: 1,81. La asignación húngara prueba el reparto completo y prefiere p1 con A y p2 con B: 1,08. Con p1 por debajo de x = 34 los dos métodos coinciden. DETR usa la húngara durante el entrenamiento; p4, la predicción sobrante, aprende a decir «ningún objeto».
Una predicción por objeto
La asignación bipartita ocurre durante el entrenamiento, no en la inferencia.
Respuesta A. Exacto: define qué objetivo supervisa cada predicción.
El coste combina clase y geometría. Al forzar una correspondencia uno a uno, el modelo aprende a no duplicar predicciones y deja de necesitar NMS al inferir.
RF-DETR
Backbone DINOv2 preentrenado
Parte de un vision transformer entrenado sin etiquetas sobre millones de imágenes (tema 4). Por eso se adapta rápido a un dominio nuevo con pocos datos.
Atención deformable en el decoder
En lugar de mirar todos los píxeles, cada query consulta unos pocos puntos de muestreo en cada escala. Así trabaja con mapas de alta resolución sin disparar el coste, lo que ayuda con los objetos pequeños.
Sin anchors ni NMS, en varios tamaños
Como todo DETR, no necesita anchors predefinidos ni supresión de no máximos. Una búsqueda de arquitectura (NAS) entrena una sola red y saca de ella versiones de nano a 2XL sin reentrenar.
De Deformable DETR a RF-DETR
Por qué NO usamos Ultralytics en clase
Licencia problemática
Código y pesos van con AGPL-3.0, que obliga a publicar el código de la aplicación que los incorpora cuando la distribuyes, y también cuando solo la ofreces como servicio en red. Para evitarlo hay que pagar su licencia comercial. AGPL es open source, pero choca con la mayoría de usos industriales.
Apropiación de marca YOLO
Sus versiones (YOLOv5, YOLOv8, YOLO11 y YOLO26) se presentan como la continuación de YOLO, pero no vienen de Joseph Redmon ni de la línea académica que siguió su trabajo. Como otros grupos numeran también sus YOLO (v6, v7, v9, v10, v12), el número ya no dice de dónde sale cada modelo.
Código no modular
Está pensado para usarse a través de su CLI y de su API de alto nivel. Estudiarlo por dentro o adaptarlo a un proyecto de investigación cuesta bastante más.
Limitaciones académicas
Varias versiones salieron sin un paper que describa la arquitectura y los experimentos, lo que dificulta reproducir resultados y explicarlos en clase.
Las condiciones de licencia se revisan por versión y por artefacto: el código y los pesos pueden tener términos distintos y cambiar entre versiones. Conviene comprobar la licencia vigente del repositorio y del checkpoint concreto antes de decidir.
Por qué SÍ usamos RF-DETR en clase
Licencia Apache 2.0
Permite usarlo, modificarlo y venderlo en industria, investigación y enseñanza, sin obligación de publicar tu código.
Arquitectura moderna y clara
Es un DETR: backbone, decoder con queries y salida directa, sin anchors ni NMS. Entenderlo es entender cómo se construyen los detectores actuales.
Código limpio y modular
Se lee y se modifica bien, y el mismo paquete sirve para inferir y para reentrenar con tus datos.
Velocidad y precisión
A igual latencia en una T4, da más mAP en COCO que YOLO11 según las curvas de su repositorio (siguiente pantalla).
RF-DETR vs YOLO en producción
Las curvas proceden del repositorio de RF-DETR y se miden en un hardware concreto. Antes de decidir conviene reproducir la medida en el dispositivo de destino, con el tamaño de entrada, la precisión numérica y el tamaño de lote que se vayan a usar realmente.
Del cuaderno al tiempo real
Medir bien
FPS es 1 entre el tiempo por fotograma. Se mide con un fotograma cada vez, tras unas pasadas de calentamiento y contando todo: leer, preparar la imagen, el modelo, el posproceso y el dibujo.
Ganar velocidad sin reentrenar
- Un modelo más pequeño: RF-DETR tiene versiones nano, small, medium, base y large.
- Menos resolución de entrada y media precisión (FP16).
- Detectar uno de cada N fotogramas y dejar que el seguidor cubra los demás.
Llevarlo a producción
Exportar el modelo a ONNX y optimizarlo para el hardware: TensorRT en GPU de NVIDIA, OpenVINO en procesadores de Intel. Así están medidas las curvas de la pantalla anterior.
Equipos pequeños
Junto a la cámara, en un NVIDIA Jetson por ejemplo, se usan las versiones pequeñas y la exportación optimizada. La cifra que vale es la medida en ese equipo, no la del portátil.
En el ejercicio de vídeo del cuaderno 1, RF-DETR medium procesa 200 fotogramas de 960 × 540 a unos 25 FPS en una RTX 3080 Ti de portátil, contando el proceso entero; una T4 de Colab va más despacio. Las versiones small y nano son más rápidas y algo menos precisas. Para decidir, se mide en el dispositivo de destino con la resolución, la precisión numérica y el tamaño de lote reales.
IoU (Intersection over Union)
IoU0,33
Umbrales típicos de IoU
- IoU ≥ 0,5: el umbral clásico de PASCAL VOC para contar un acierto. COCO lo publica como AP50.
- IoU ≥ 0,75: más estricto, exige cajas casi exactas (AP75). La métrica principal de COCO promedia diez umbrales, de 0,50 a 0,95.
- IoU por debajo del umbral: la detección cuenta como False Positive (FP).
¿Por qué es importante?
- Sin IoU no habría forma de separar los aciertos (TP) de las falsas alarmas (FP).
- Es la base de las métricas que vienen después: precisión, recall, Average Precision (AP) y mean Average Precision (mAP).
- Mide la exactitud espacial de cada detección, además de si acierta la clase.
IoU vale 1 cuando ambas cajas coinciden y 0 cuando no comparten área. Para decidir TP, FP y FN también se tiene en cuenta la clase, la correspondencia uno a uno y un protocolo de evaluación.
Fundamentos: TP, FP, FN (y por qué no hay TN)
TP (True positives)
Detecciones correctas: cajas predichas que coinciden con objetos reales (IoU > umbral).
FP (False positives)
Falsas alarmas: cajas predichas donde no hay objeto real o con IoU por debajo del umbral.
FN (False negatives)
Objetos perdidos: objetos reales que el modelo no detectó.
Por qué NO existen True Negatives (TN) en detección de objetos
Métricas de evaluación: precisión y recall
La importancia de la precisión
Mide la fiabilidad de las detecciones: con alta precisión hay pocos falsos positivos (detectar algo que no está o confundir su clase). Importa cuando una falsa alarma sale cara, como en inspección de calidad o en sistemas de seguridad.
Precisión = TPTP + FP
Responde a: «De todas mis predicciones, ¿cuántas son correctas?».
La importancia del recall
Mide la capacidad de encontrar todos los objetos: con alto recall hay pocos falsos negativos (objetos presentes que no se detectan). Importa cuando perder uno es grave, como una persona en vigilancia o un tumor en imagen médica.
Recall = TPTP + FN
Responde a: «De todos los objetos reales, ¿cuántos he detectado?».
Calcula precisión y recall
Aplica las dos fórmulas a un recuento concreto.
Respuesta C. Exacto: 3/(3+1) y 3/(3+2).
Con 3 TP, 1 FP y 2 FN: precisión = 3 / (3 + 1) = 0,75 y recall = 3 / (3 + 2) = 0,60. La precisión mira el denominador de las predicciones; el recall, el de los objetos reales.
Subir el umbral cambia el equilibrio
Al filtrar por puntuación el recall solo puede bajar; la precisión suele subir, aunque no siempre.
Precisión0,75
Recall1,00
TP 3 FP 1 FN 0
Esta página recoge el estado con umbral 0,30. El emparejamiento sigue el protocolo habitual: las predicciones se ordenan por puntuación y cada una reclama el objeto libre con el que comparte más área, siempre que el IoU llegue a 0,50. La predicción de 0,24 solapa con el tercer objeto, pero llega tarde: ese objeto ya está emparejado, así que cuenta como falso positivo duplicado. Al subir el umbral desaparecen antes las predicciones dudosas: sube la precisión y baja el recall. La curva precisión-recall recorre ese intercambio umbral a umbral.
Filtrar no cambia las cajas
El umbral de confianza decide qué predicciones se muestran; IoU evalúa su solapamiento.
Respuesta A. Exacto: el filtro elimina las puntuaciones que quedan por debajo del nuevo umbral.
Al subir el umbral suelen desaparecer predicciones de baja puntuación: pueden bajar los falsos positivos y también aumentar los falsos negativos. La curva precisión-recall estudia ese intercambio recorriendo muchos umbrales.
Métricas de evaluación: AP y mAP
Recorrer el umbral de confianza traza la curva: con umbral 0,9 la precisión es alta y el recall bajo; con 0,1 ocurre lo contrario. AP50 y AP promediada entre varios umbrales de IoU responden a protocolos distintos y no son intercambiables.
La curva se dibuja bajando el umbral
Ocho detecciones de una clase, ordenadas por confianza, para seis objetos reales. Cada vez que el umbral deja pasar una más, la curva gana un punto; la AP es el área bajo su escalera.
- 0,95TP
- 0,90TP
- 0,82FP
- 0,76TP
- 0,64TP
- 0,51FP
- 0,43FP
- 0,30TP
Precisión0,75
Recall0,50
Área acumulada 0,47AP final 0,70
Esta página recoge el estado con umbral 0,76: cuatro detecciones aceptadas, tres aciertos y un falso positivo, con precisión 0,75 y recall 0,50. Cada falso positivo baja la precisión sin mover el recall; cada acierto sube el recall. Para calcular el área, cada punto toma la mejor precisión que se alcanza a ese recall o a uno mayor, y por eso la curva sombreada es una escalera. Con las ocho detecciones el recall se queda en 0,83 porque un objeto no lo encontró ninguna, y la AP vale 0,70. COCO usa 101 puntos de recall en vez de todos, con el mismo principio.
Límites prácticos: COCO y el mundo real
El vocabulario depende de los datos
Un checkpoint aprende las clases de sus datos. Tu aplicación puede necesitar otras.
Respuesta B. Exacto: la nueva categoría exige una estrategia y una evaluación en el dominio.
Un detector de vocabulario cerrado solo puede nombrar las categorías con las que fue entrenado. Ampliarlo exige anotar y reentrenar, o cambiar a un enfoque guiado por texto.
Buenas prácticas al evaluar detectores
Mide donde vas a usarlo
Un benchmark no sustituye datos representativos, latencia medida y análisis de errores.
Respuesta C. Exacto: la elección depende del problema, del entorno y de los errores que aceptas.
Un AP mejor en un benchmark público indica rendimiento sobre ese conjunto y ese protocolo. La decisión necesita además datos de tu dominio, latencia medida en el hardware de destino y revisión de los errores que importan.
El siguiente paso
Limitaciones actuales
- Solo 80 clases COCO
- No entienden lenguaje
- Requieren reentrenamiento
Modelos multimodales
- Entienden texto + imagen
- Zero-shot con lenguaje natural
- Sin reentrenamiento constante
Detectar objetos en seis líneas
Lo mínimo que necesitas para tener cajas sobre una imagen tuya.
from transformers import pipeline
from PIL import Image
detector = pipeline("object-detection", model="Roboflow/rf-detr-medium")
image = Image.open("mi_imagen.jpg").convert("RGB")
for d in detector(image, threshold=0.5):
print(d["label"], round(d["score"], 2), d["box"])
RF-DETR se publica bajo Apache 2.0 y devuelve las clases de COCO. Para un vocabulario propio hace falta fine-tuning con un dataset anotado, cuyo coste estima la calculadora de presupuesto, tres pantallas más adelante.
¿De dónde han salido esos pesos?
La receta anterior baja un modelo ya entrenado antes de detectar nada. Ese paso silencioso es el tema siguiente.
Por el Hub de Hugging Face
Es lo que acabas de ejecutar. RF-DETR está publicado como Roboflow/rf-detr-medium con licencia Apache 2.0, y pipeline lo descarga y lo usa como a cualquier otro modelo del curso. Por dentro hace los dos pasos de abajo.
Por el paquete de Roboflow
La otra vía es rfdetr, que trae el modelo, su propio predict y su entrenamiento. No viene en Colab: se instala con pip install rfdetr.
from transformers import AutoImageProcessor, RfDetrForObjectDetection
processor = AutoImageProcessor.from_pretrained("Roboflow/rf-detr-medium")
model = RfDetrForObjectDetection.from_pretrained("Roboflow/rf-detr-medium")
Las dos vías cargan los mismos pesos y se diferencian en el envoltorio. transformers expone la interfaz común de la librería, que es la que comparten todos los modelos de los temas siguientes y la que permite intercambiar un detector por otro sin reescribir el resto; por eso es la que usa el cuaderno, también para el ajuste fino. El paquete rfdetr expone la API de Roboflow, con predict y un entrenamiento propio. El identificador y el nombre de clase están tomados de la ficha del modelo, consultada el 17 de septiembre de 2026. El curso pasado RF-DETR solo se podía usar por el paquete; la integración en transformers es reciente.
La misma familia hace tres cosas
El paquete de Roboflow, rfdetr, trae además segmentación y puntos clave. Cambia la clase y cambia lo que recibes, con la misma foto y las mismas tres líneas. No viene en Colab: antes hay que ejecutar pip install rfdetr.
from rfdetr import RFDETRMedium
modelo = RFDETRMedium()
salida = modelo.predict("foto.jpg", threshold=0.5)
print(salida.xyxy) # una caja por objeto
print(salida.class_id) # su clase de COCO
from rfdetr import RFDETRSegPreview
modelo = RFDETRSegPreview()
salida = modelo.predict("foto.jpg", threshold=0.5)
print(salida.mask.shape) # una máscara por objeto
print(salida.mask[0].sum()) # área del primero, en píxeles
import cv2
from rfdetr import RFDETRKeypointPreview
modelo = RFDETRKeypointPreview()
imagen = cv2.cvtColor(cv2.imread("foto.jpg"), cv2.COLOR_BGR2RGB)
puntos = modelo.predict(imagen, threshold=0.5)
print(puntos.xy.shape) # personas x 17 puntos x 2
print(puntos.keypoint_confidence[0]) # confianza de cada punto
El ejercicio
Haz una foto a tu mesa, con una persona dentro si puedes, y pasa las tres. Luego responde con cada salida a la misma pregunta: ¿cuánto ocupa ese objeto? La caja da un rectángulo, la máscara da los píxeles de verdad y el esqueleto no responde, porque mide otra cosa.
Para pintarlo
Las tres salidas son objetos de supervision, así que se dibujan con sv.BoxAnnotator, sv.MaskAnnotator y sv.EdgeAnnotator sin tocar nada más.
Segmentación y puntos clave se publican como «preview», es decir, acceso temprano pensado sobre todo para ajustar el modelo con un dataset propio; las clases son RFDETRSegPreview y RFDETRKeypointPreview, y la licencia del paquete abierto es Apache 2.0. Los puntos clave son los 17 de COCO, los mismos que se evalúan con OKS en el tema 6. Las variantes de detección aparecen en el tema 1, la segmentación es lo que se estudia en el tema 5 con SAM y la pose, en el tema 6: esta pantalla adelanta que el mismo paquete cubre las tres, con la diferencia de que aquí las clases son las de COCO y con SAM se segmenta cualquier cosa sin lista de clases. Consultado el 17 de septiembre de 2026 en la documentación de Roboflow.
¿Cuánto cuesta anotar tu dataset?
La cuenta que decide si fine-tuneas o te apoyas primero en un detector guiado por texto.
Imágenes que anotar1200
Horas, con revisión incluida20
Jornadas de una persona3,3
Coste asumible para un conjunto propio. Aun así, empieza validando con zero-shot para saber si hace falta.
Estimación de orden de magnitud. Suma un 30 % de revisión sobre el tiempo de anotación y cuenta 6 horas productivas por jornada.
La página recoge el caso de 4 clases, 300 imágenes por clase y 45 segundos por imagen. Las cifras que más se disparan son las clases y los segundos por imagen: anotar segmentación o puntos clave multiplica el tiempo respecto a poner cajas. Antes de asumir ese coste conviene comprobar cuánto resuelve un detector guiado por texto sin anotar nada, que se ve en el tema 3.
¿Qué error te sale más caro?
El umbral no se elige en abstracto: depende de qué duele más en tu aplicación.
Prioriza el recall
No detectar a alguien que sí está es el fallo grave. Una falsa alarma cuesta una comprobación; un objeto perdido cuesta el incidente.
Qué hacer: baja el umbral de confianza y asume más falsos positivos. Añade una segunda comprobación, humana o automática, para filtrarlos.
Prioriza el recall, con revisión humana
Dejar pasar una pieza defectuosa llega al cliente; marcar una buena solo cuesta una revisión en planta.
Qué hacer: umbral bajo y una estación de revisión. Mide cuántas piezas buenas estás parando, porque ese es el coste que notará producción.
Prioriza la precisión
Contar de más es peor que contar de menos: dispara reposiciones y pedidos equivocados que nadie revisa.
Qué hacer: sube el umbral hasta que apenas haya duplicados y vigila el recuento frente a un conteo manual de control.
Busca el equilibrio y mide la tendencia
Aquí no importa cada persona concreta sino que el sesgo sea estable. Un error constante se corrige; uno que cambia con la hora o el clima, no.
Qué hacer: deja el umbral intermedio y valida sobre grabaciones de momentos distintos, no sobre una sola.
La regla general: si el coste de perder un objeto supera al de revisar una falsa alarma, baja el umbral; si es al revés, súbelo. Y en todos los casos, mide el efecto sobre tus propios datos, no sobre el benchmark.
Antes de poner un detector en producción
Ocho comprobaciones que evitan casi todos los sustos.
- Conjunto de validación propioImágenes de tu dominio, tus cámaras y tus condiciones de luz. No basta el mAP del benchmark.
- Umbral elegido con criterioDecidido según qué error cuesta más en tu caso, no dejado en el valor por defecto.
- Latencia medida en el dispositivo realEnd to end, incluyendo carga, preprocesado y posprocesado. No el número del paper.
- Revisión visual de los erroresMira falsos positivos, falsos negativos y casos límite: ocluidos, pequeños, contraluz.
- Licencia comprobadaDel repositorio y de los pesos, en la versión concreta que vas a desplegar.
- Versión y revisión fijadasAnota el identificador del modelo y su revisión para poder reproducir el resultado.
- Comportamiento ante entradas rarasImagen vacía, muy oscura, resolución distinta, formato inesperado.
- Plan de seguimientoCómo vas a detectar que el rendimiento cae cuando cambien las condiciones.
Ahora, con tu propia imagen
Prueba RF-DETR en tu copia del cuaderno.
- Guarda una copia en Drive.
- Ejecuta el detector con una imagen.
- Cambia el umbral de confianza: 0,25 · 0,50 · 0,75.
- Entrena con CPPE-5 y compara el antes y el después.
Un detector cerrado reconoce sus clases; el tema 3 añade lenguaje y zero-shot.
Abrir en ColabEn Colab: Archivo → Guardar una copia en Drive. Empieza por inferencia. La disponibilidad de GPU varía. El ajuste fino descarga solo su dataset desde el Hub (CPPE-5, equipos de protección sanitaria), congela DINOv2 y entrena el resto en menos de 10 minutos en una GPU T4; no hay que instalar nada. La comparación entre 0,25, 0,50 y 0,75 permite observar qué predicciones desaparecen sin confundir confianza con IoU. El tema 3 amplía el vocabulario cerrado con modelos que relacionan visión y lenguaje; antes, el tema 2 enseña de dónde salen los pesos.