Anchor-Based Detectors
Los detectores basados en anclajes predicen los objetos como desplazamientos respecto a cajas de anclaje predefinidas, como en Faster R-CNN, SSD, RetinaNet y YOLOv5. Cómo funcionan y cómo se comparan.
Los detectores basados en anclajes son modelos de detección de objetos que distribuyen cajas de anclaje predefinidas por una imagen y predicen para cada anclaje puntuaciones de clase y los desplazamientos que lo convierten en una caja delimitadora ajustada. La familia incluye modelos de dos etapas, como Faster R-CNN, cuya red de propuestas de regiones puntúa los anclajes para generar regiones candidatas, y modelos de una etapa, como SSD, RetinaNet y YOLOv2 a YOLOv5, que clasifican y refinan directamente cada anclaje. Los anclajes fueron el método estándar para localizar objetos desde Faster R-CNN en 2015 hasta que los detectores sin anclajes, como FCOS, igualaron su precisión en 2019.
Cómo funciona la detección basada en anclajes#
Un backbone y un cuello convierten la imagen en mapas de características, y en cada celda de cada mapa se sitúa un conjunto fijo de anclajes de varios tamaños y proporciones. Para cada anclaje, la cabeza de detección predice una puntuación por clase, además de una puntuación de objetualidad en YOLOv2 a YOLOv5, y cuatro valores de regresión. La codificación de Faster R-CNN, ampliamente utilizada, desplaza el centro del anclaje en fracciones de su anchura y altura, y escala exponencialmente su anchura y altura:
import torch
# One anchor as (center x, center y, width, height) in pixels
anchor = torch.tensor([320.0, 240.0, 64.0, 128.0])
# Offsets (tx, ty, tw, th) that the regression branch predicts for this anchor
tx, ty, tw, th = torch.tensor([0.25, -0.10, 0.20, -0.05])
# Faster R-CNN decoding: shift the center in units of anchor size, scale width and height exponentially
cx = anchor[0] + tx * anchor[2]
cy = anchor[1] + ty * anchor[3]
w = anchor[2] * torch.exp(tw)
h = anchor[3] * torch.exp(th)
print(f"anchor 64x128 at (320, 240) -> box {w:.1f}x{h:.1f} at ({cx:.1f}, {cy:.1f})")El anclaje se convierte en una caja de 78.2 × 121.8 píxeles centrada en (336.0, 227.2): se desplazó 16 píxeles a la derecha y 12.8 píxeles hacia arriba, ganó un 22 % de anchura (exp(0.2)) y perdió un 5 % de altura (exp(−0.05)). Como los desplazamientos son relativos al tamaño del anclaje, los mismos valores predichos sirven para anclajes pequeños y grandes.
Durante la inferencia, el detector decodifica así todos los anclajes, descarta las cajas por debajo de un umbral de confianza y aplica la supresión no máxima (NMS) para eliminar duplicados de anclajes vecinos.
Entrenamiento: etiquetado de cada anclaje#
Durante el entrenamiento, cada anclaje se etiqueta según su intersección sobre la unión (IoU) con las cajas etiquetadas. RetinaNet usa estos umbrales:
La red de propuestas de regiones de Faster R-CNN usa valores más estrictos: 0,7 y 0,3. Los 9 anclajes por ubicación de RetinaNet en cinco niveles piramidales suman unos 100 000 anclajes por imagen, casi todos negativos. Su pérdida focal reduce el peso de esos negativos fáciles para que no dominen el entrenamiento.
Principales arquitecturas basadas en anclajes#
- Detectores de dos etapas: La red de propuestas de regiones de Faster R-CNN puntúa los anclajes como objetos o fondo y los refina para obtener unas 300 propuestas por imagen; después, una segunda cabeza clasifica y refina cada propuesta. Con un backbone VGG-16, alcanzaba 5 FPS en una GPU; Mask R-CNN añade una rama de máscaras al mismo diseño.
- Detectores de objetos de una etapa: SSD, RetinaNet y los modelos YOLO desde YOLOv2 hasta YOLOv5 clasifican y refinan cada anclaje en una sola pasada. YOLOv2 sustituyó los anclajes elegidos manualmente por grupos k-means de las anchuras y alturas de las cajas de entrenamiento.
Ultralytics YOLOv5 se basa en anclajes, con 3 anclajes en cada uno de sus tres niveles de salida, y empareja las etiquetas con los anclajes según su forma: un anclaje es candidato si la anchura y la altura de una etiqueta están ambas dentro de un factor de 4× respecto a las del anclaje. Las variantes YOLOv5u del paquete Ultralytics sustituyen esa cabeza por la cabeza dividida sin anclajes introducida en YOLOv8, diseño que YOLO26 mantiene.
Detectores basados en anclajes y sin anclajes#
Los detectores sin anclajes predicen una caja desde cada punto de la cuadrícula, como distancias a los cuatro bordes, o a partir de puntos clave, como los centros de los objetos. Por tanto, no hay tamaños de anclaje, proporciones ni umbrales de IoU que ajustar y generan un candidato por ubicación, en lugar de uno por forma de anclaje. ATSS atribuyó la diferencia de precisión entre RetinaNet y FCOS, que no usa anclajes, a la forma en que cada uno seleccionaba las muestras positivas de entrenamiento: con la misma regla de selección, ambos alcanzaron la misma precisión, y RetinaNet obtuvo 39,2 AP en COCO minival con 9 anclajes por ubicación y 39,3 con 1.










