Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Detection Head

Una cabeza de detección es la parte final de un detector de objetos: convierte las características del backbone y del neck en una caja y puntuaciones de clase en cada posición de la cuadrícula.

Un cabezal de detección es el conjunto final de capas de una red de detección de objetos. Lee los mapas de características generados por las capas anteriores y produce, en cada ubicación candidata, un cuadro delimitador y una puntuación para cada clase. Su diseño determina cómo se codifican los cuadros —como desplazamientos respecto a los cuadros de anclaje o como distancias desde un punto—, cuántos cuadros candidatos genera el modelo y si un paso de posprocesamiento, como la supresión no máxima (NMS), debe eliminar los duplicados.

Ubicación del cabezal#

Los detectores modernos constan de tres etapas. Una red troncal, normalmente una red convolucional o un vision transformer, convierte los píxeles en mapas de características cuya resolución disminuye y cuyo contenido semántico aumenta con la profundidad. Un cuello, como una red piramidal de características (FPN), combina mapas profundos y superficiales para que cada escala de salida incorpore tanto detalles finos como contexto. A continuación, el cabezal aplica pequeñas ramas convolucionales a cada nivel de la pirámide, normalmente con pasos de 8, 16 y 32, de modo que los mapas de mayor resolución detectan objetos pequeños y los de menor resolución detectan los grandes.

Los detectores de una etapa tienen un único cabezal denso que predice en cada celda de la cuadrícula. Los detectores de dos etapas, como Faster R-CNN, tienen dos: una red de propuestas de regiones que puntúa anclajes en cada ubicación y, después, un cabezal de regiones de interés que clasifica y refina los cientos de regiones que propone.

Cómo predice cuadros y clases un cabezal#

En cada celda de la cuadrícula, un cabezal denso predice tres tipos de valores:

  • Puntuaciones de clase: Una por clase; cada una pasa por una sigmoide para que una ubicación pueda puntuar cada clase de forma independiente.
  • Regresión de cuadros: Cuatro números que definen un cuadro: pueden ser desplazamientos para mover y cambiar el tamaño de un cuadro de anclaje, o las distancias desde el centro de la celda hasta los cuatro bordes del cuadro.
  • Calidad y salidas de la tarea: Una puntuación de objetualidad (de YOLOv1 a YOLOv5) o de centralidad (FCOS) para ordenar los cuadros, además de valores específicos de la tarea, como coeficientes de máscara para la segmentación de instancias o puntos clave para la estimación de pose.

La codificación de los cuadros es lo que distingue los detectores basados en anclajes de los detectores sin anclajes. Cada rama consta de unas cuantas convoluciones que terminan en una convolución de 1 × 1 con un canal de salida por cada valor predicho. RetinaNet y FCOS ya usaban ramas de clasificación y regresión independientes, y YOLOX incorporó este cabezal desacoplado a YOLO en 2021 y comunicó una convergencia del entrenamiento mucho más rápida que con la única capa de salida compartida de YOLOv3. El esquema siguiente construye esas capas finales de 1 × 1 para los tres niveles de la pirámide de una imagen de 640 × 640 y aplana sus salidas en una sola lista de candidatos:

import torch
from torch import nn

# Neck outputs for a 640x640 image at strides 8, 16, and 32 (80x80, 40x40, and 20x20 grids)
channels = (64, 128, 256)
features = [torch.randn(1, c, 640 // s, 640 // s) for c, s in zip(channels, (8, 16, 32))]

# Decoupled head: a box branch (4 values) and a class branch (80 scores) for every pyramid level
box_branches = nn.ModuleList(nn.Conv2d(c, 4, 1) for c in channels)
cls_branches = nn.ModuleList(nn.Conv2d(c, 80, 1) for c in channels)

# Flatten each level's grid and concatenate, giving one candidate per grid cell
boxes = torch.cat([branch(f).flatten(2) for branch, f in zip(box_branches, features)], dim=2)
scores = torch.cat([branch(f).flatten(2) for branch, f in zip(cls_branches, features)], dim=2).sigmoid()
print(f"boxes {tuple(boxes.shape)}, class scores {tuple(scores.shape)}")

Imprime boxes (1, 4, 8400), class scores (1, 80, 8400): las celdas de cuadrícula 6.400 + 1.600 + 400 proponen cada una un cuadro con 80 puntuaciones de clase.

De las salidas brutas a las detecciones#

El entrenamiento determina cuántas predicciones recibe cada objeto. La asignación de uno a varios marca como positivas varias celdas cercanas a cada objeto, lo que proporciona más señales de entrenamiento al cabezal y deja varios cuadros superpuestos por objeto durante la inferencia; por eso, NMS conserva el mejor. La asignación de uno a uno, que usan DETR y el cabezal de inferencia de YOLOv10, entrena exactamente una predicción por objeto, así que las salidas no necesitan NMS.

El cabezal de YOLO26 predice directamente las distancias a los cuatro bordes y elimina la salida de Distribution Focal Loss de 16 intervalos por borde que usaban YOLOv8 y YOLO11. Además, entrena una copia de uno a varios y otra de uno a uno de sus ramas de cuadros y clases. De forma predeterminada, YOLO26 aplica NMS a las salidas de uno a varios, y pasar nms=False cambia a las ramas de uno a uno, que devuelven como máximo 300 cuadros por imagen sin aplicar NMS.

Diseño de cabezales en la práctica#

  • Ajuste fino con clases nuevas: La rama de clases termina con un canal de salida por clase, así que para entrenar con un conjunto de datos que tenga un número distinto de clases se necesita una nueva capa de clasificación final, mientras que se conservan los pesos preentrenados de la red troncal y el cuello.
  • Implementación: Todas las operaciones del cabezal se ejecutan en el dispositivo de destino, así que una decodificación sencilla de cuadros y las salidas sin NMS facilitan la exportación y reducen el tiempo de posprocesamiento.
  • Objetos pequeños: Añadir un nivel de pirámide con paso 4 proporciona al cabezal una cuadrícula más fina para detectar objetos diminutos, a costa de más cálculo: para una entrada de 640 × 640 añade 160 × 160 = 25.600 celdas, cuatro veces más que el nivel con paso 8.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático