Object Detection Architectures
Las arquitecturas de detección de objetos son diseños de redes que convierten píxeles en cajas y etiquetas. Descubre el backbone, el neck, la head y las principales familias de detectores.
Las arquitecturas de detección de objetos son diseños de red que convierten una imagen en una lista de cuadros delimitadores, etiquetas de clase y puntuaciones de confianza. Casi todos los detectores modernos se construyen con un backbone, un neck y una head, y los diseños se diferencian principalmente por cómo generan cuadros candidatos —mediante propuestas de regiones, una cuadrícula densa o consultas aprendidas— y cómo eliminan las predicciones duplicadas, con supresión no máxima (NMS) o correspondencia uno a uno. Estas decisiones determinan la precisión del detector, su velocidad y la facilidad con la que se implementa en hardware periférico. Detección de objetos designa la tarea, y la cabeza de detección es una parte de la arquitectura.
Backbone, neck y head#
El backbone extrae características. Es una red neuronal convolucional, como ResNet o CSPDarknet, o un transformador de visión, a menudo preentrenado para clasificar ImageNet; reduce progresivamente la resolución de la imagen, de modo que sus mapas de características pierden resolución y adquieren contenido semántico a medida que aumenta la profundidad. El neck, normalmente una red piramidal de características (FPN) con una ruta ascendente adicional, como en PANet, combina mapas profundos y superficiales para que cada escala de salida contenga tanto detalles precisos como contexto. La head predice cuadros y puntuaciones de clase en cada ubicación de cada escala, normalmente con strides de 8, 16 y 32; así, el mapa de mayor resolución detecta objetos pequeños y el de menor resolución, objetos grandes. Las tres partes de un detector real se pueden identificar en la definición de su modelo:
from ultralytics import YOLO
# Carga YOLO26n y divide sus capas como lo hace su YAML de modelo
model = YOLO("yolo26n.pt")
layers = model.model.model
n_backbone = len(model.model.yaml["backbone"])
# El backbone extrae características, el neck combina escalas y la última capa es la head
print("Backbone:", [type(m).__name__ for m in layers[:n_backbone]])
print("Neck:", [type(m).__name__ for m in layers[n_backbone:-1]])
print("Head:", type(layers[-1]).__name__, "at strides", model.model.stride.tolist())La lista del backbone muestra capas Conv con stride y bloques C3k2 que terminan en una agrupación SPPF y un bloque de atención C2PSA; el neck ejecuta capas Upsample, Concat y C3k2 de arriba abajo, y capas Conv, Concat y C3k2 con stride de vuelta hacia arriba; y una head Detect predice con strides de 8, 16 y 32.
Familias de detectores#
- Detectores de dos etapas: Una red de propuestas de regiones sugiere unos cientos de regiones candidatas y una segunda head clasifica y refina cada una, como en Faster R-CNN (2015) y Mask R-CNN (2017).
- Detectores de una etapa basados en anchors: SSD (2016), YOLOv2 a YOLOv5 y RetinaNet (2017) predicen desplazamientos respecto a cuadros anchor predefinidos en cada celda de la cuadrícula, en una sola pasada.
- Detectores sin anchors: FCOS (2019) y YOLOv8 (2023) predicen las distancias desde un punto hasta los cuatro bordes del cuadro; CenterNet (2019) predice los centros de los cuadros como picos de un mapa de calor, con una anchura y una altura en cada uno; y YOLOX (2021) devolvió a la familia YOLO a la predicción sin anchors, por lo que ninguno necesita ajustar anchors.
- Detectores Transformer de tipo DETR: DETR (2020) decodifica un conjunto fijo de consultas de objeto aprendidas y las empareja una a una con los objetos etiquetados, por lo que su resultado no necesita NMS; Deformable DETR alcanzó mayor precisión con 10 veces menos épocas de entrenamiento, y RT-DETR hizo que el diseño funcionara en tiempo real en 2023.
- Detectores CNN sin NMS: YOLOv10 (2024) entrena una head uno a uno junto a una head uno a muchos y, durante la inferencia, solo ejecuta la head uno a uno, por lo que sus cuadros no necesitan NMS.
- Detectores de vocabulario abierto: Grounding DINO y YOLO-World sustituyen la capa de clasificación fija por incrustaciones de texto, de modo que detectan las clases indicadas en el momento de la inferencia.
Elegir una arquitectura#
Los benchmarks, como la precisión media promedio (mAP) en COCO, permiten comparar la precisión, pero el hardware de destino y los objetos de las imágenes suelen determinar el diseño. YOLO26 es una CNN de una etapa y sin anclajes, con ambos tipos de cabezal: aplica NMS de forma predeterminada a su rama de uno a muchos; nms=False activa la rama de uno a uno, y sus archivos YAML del modelo incluyen variantes P2 y P6 que añaden una salida de stride 4 o stride 64.
- Vídeo en tiempo real y en el edge: Los detectores CNN pequeños se compilan bien con entornos de ejecución como TensorRT y OpenVINO, y una head sin NMS elimina un paso de posprocesamiento cuyo coste aumenta con el número de candidatos.
- Objetos pequeños: las imágenes aéreas y de inspección necesitan un nivel de salida más fino, como stride 4, o inferencia por teselas, que ejecuta el detector en recortes solapados.
- Catálogos de productos cambiantes: Los detectores de vocabulario abierto encuentran un producto nuevo a partir de una indicación de texto, sin necesidad de imágenes etiquetadas del producto.
- Objetos girados: Los barcos, vehículos y edificios de imágenes por satélite encajan mejor en cuadros orientados, que añaden una salida de ángulo a la head.










