Two-Stage Object Detectors
Los detectores de objetos de dos etapas proponen regiones candidatas y, después, clasifican y refinan cada una. Descubre cómo funciona Faster R-CNN, cuáles son los modelos de la familia R-CNN y qué ventajas e inconvenientes tienen.
Los detectores de objetos de dos etapas son modelos de detección de objetos que dividen el trabajo en dos pasos: una primera etapa propone regiones de la imagen que podrían contener un objeto, y una segunda etapa clasifica cada región y ajusta su cuadro delimitador. La familia R-CNN definió este diseño entre 2014 y 2018 y lideró durante años los benchmarks de detección y segmentación de instancias. Los detectores de objetos de una etapa omiten la propuesta de regiones y predicen todos los cuadros desde una cuadrícula densa en una sola pasada, por lo que la mayoría de los sistemas en tiempo real los utilizan.
Cómo funcionan los detectores de dos etapas#
Una red troncal de red neuronal convolucional calcula los mapas de características de toda la imagen una sola vez, normalmente con una red piramidal de características (FPN) encima. En la primera etapa, una red de propuesta de regiones (RPN) puntúa un conjunto de cajas ancla en cada posición del mapa de características según la probabilidad de que contengan un objeto y regresa desplazamientos que las reajustan; Faster R-CNN utiliza nueve anclas por posición: tres tamaños por tres relaciones de aspecto. La supresión no máxima (NMS) elimina las propuestas que se solapan y las regiones con mayor puntuación —300 por imagen durante las pruebas en el artículo original— pasan a la segunda etapa. Allí, RoI pooling o su sucesor más preciso, RoIAlign, recorta una cuadrícula de características de tamaño fijo para cada propuesta, y un pequeño cabezal predice una clase, incluida una clase de fondo, y los desplazamientos de caja específicos de cada clase para cada recorte.
Un hook forward en la RPN de Faster R-CNN de torchvision muestra cuánto trabajo recibe la segunda etapa:
import urllib.request
from PIL import Image
from torchvision.models.detection import FasterRCNN_ResNet50_FPN_V2_Weights, fasterrcnn_resnet50_fpn_v2
# Load Faster R-CNN with a ResNet-50 FPN backbone, pretrained on COCO
weights = FasterRCNN_ResNet50_FPN_V2_Weights.DEFAULT
model = fasterrcnn_resnet50_fpn_v2(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
# Report how many regions the first stage, the region proposal network, passes on
model.rpn.register_forward_hook(lambda module, inputs, output: print(f"Stage 1: {len(output[0][0])} proposals"))
# The second stage classifies and refines every proposal
detections = model([weights.transforms()(image)])[0]
labels = detections["labels"][detections["scores"] > 0.5]
print(f"Stage 2: {len(labels)} objects {[weights.meta['categories'][i] for i in labels]}")Imprime Stage 1: 1000 proposals y Stage 2: 6 objects ['person', 'bus', 'person', 'person', 'person', 'tie']: torchvision conserva 1.000 propuestas por imagen durante la inferencia, y la segunda etapa las convierte en seis detecciones fiables.
La familia R-CNN#
- R-CNN (2014): Selective Search proponía unas 2.000 regiones; cada región se deformaba a un tamaño fijo y se pasaba por separado por la CNN, y las máquinas de vectores de soporte clasificaban las características, por lo que la detección con una red troncal VGG-16 tardaba 47 segundos por imagen en una GPU.
- Fast R-CNN (2015): Calcular el mapa de características una sola vez y extraer de él las características de cada propuesta mediante RoI pooling permitió entrenar VGG-16 9 veces más rápido que R-CNN y realizar las pruebas 213 veces más rápido.
- Faster R-CNN (2015): La RPN sustituyó a Selective Search y comparte las características de la red troncal, por lo que las propuestas apenas tienen coste y el detector completo funcionaba a 5 fotogramas por segundo.
- Mask R-CNN (2017): Una tercera rama predice una máscara de píxeles para cada región, lo que convierte el detector en un modelo de segmentación de instancias, y RoIAlign muestrea las características en posiciones fraccionarias exactas, en lugar de redondearlas como hacía RoI pooling.
- Cascade R-CNN (2018): Tres cabezales de segunda etapa entrenados con umbrales de IoU crecientes de 0,5, 0,6 y 0,7 refinan cada uno las cajas del anterior y mejoran la precisión de la localización.
Detectores de dos etapas frente a detectores de una etapa#
La RPN descarta la mayor parte del fondo antes de que lo vea el clasificador, así que la segunda etapa se entrena con regiones muestreadas en las que los objetos representan una proporción fija —el 25 % en Fast R-CNN— y clasifica cada región con características extraídas en su posición exacta. Los detectores de una etapa puntúan todas las posiciones de una cuadrícula densa, unas 100.000 candidatas por imagen en RetinaNet, y su precisión fue inferior a la de los detectores de dos etapas hasta que en 2017 la pérdida focal redujo el peso de las candidatas fáciles del fondo. Los modelos actuales de una etapa igualan o superan la precisión de los de dos etapas con una latencia muy inferior, y resulta más sencillo exportar una sola red a hardware de borde, por lo que hoy los modelos de dos etapas aparecen sobre todo como referencias de investigación y en bibliotecas como Detectron2. auto_annotate de Ultralytics aplica la misma división de propuesta y refinamiento mediante dos modelos para el etiquetado de datos: un detector YOLO26 propone cajas y el Modelo Segment Anything (SAM) de Meta, al que se le proporciona cada caja como indicación, segmenta el objeto que contiene para generar etiquetas de segmentación.
Aplicaciones en el mundo real#
- Diagnóstico por imagen: Las variantes de Mask R-CNN detectan y delimitan células, núcleos y lesiones individuales en imágenes de microscopía y TC, donde cada instancia necesita su propia máscara para poder contarla y medirla.
- Análisis de la estructura de documentos: El benchmark PubLayNet, con más de 360.000 imágenes de páginas, se utilizó para entrenar modelos Faster R-CNN y Mask R-CNN que localizan bloques de texto, títulos, listas, tablas e ilustraciones antes del reconocimiento de texto.
- Imágenes aéreas: Oriented R-CNN amplía la RPN para proponer regiones rotadas, de modo que la segunda etapa devuelve cajas delimitadoras orientadas para barcos, aviones y vehículos del conjunto de datos DOTA.










