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

Feature Pyramid Network (FPN)

Una red piramidal de características (FPN) combina características semánticas profundas con otras más detalladas y de alta resolución, para que los detectores encuentren objetos grandes y pequeños.

Una red piramidal de características (FPN) es una arquitectura de neck que convierte los mapas de características de varias resoluciones de un backbone en una pirámide en la que cada nivel contiene información semántica sólida y se adapta a un intervalo de tamaños de objeto. Presentada por Facebook AI Research en Feature Pyramid Networks for Object Detection (CVPR 2017), añade una ruta de arriba abajo y conexiones laterales a una red neuronal convolucional (CNN) estándar, de modo que los objetos pequeños puedan detectarse en niveles de alta resolución que aún conservan el conocimiento de las capas profundas sobre el aspecto de los objetos. Las FPN y sus sucesoras se sitúan entre el backbone y la cabeza de detección en la mayoría de las arquitecturas modernas de detección de objetos y los modelos de segmentación de instancias.

Por qué los detectores necesitan características multiescala#

Un backbone CNN reduce la resolución a medida que se profundiza, así que su último mapa de características tiene una semántica sólida y una resolución baja: con un stride de 32, un objeto de 20 píxeles ocupa menos de una celda de la cuadrícula. Los primeros mapas de características conservan el detalle espacial fino y responden sobre todo a bordes y texturas. Antes de FPN, los detectores tenían tres opciones, cada una con un coste. Ejecutar la red sobre una pirámide de imágenes a varias escalas es preciso y varias veces más lento. Predecir solo a partir del último mapa, como hacía el Faster R-CNN original, es rápido y poco eficaz con objetos pequeños. Predecir a partir de varias etapas del backbone, como hace SSD, empieza en una zona avanzada de la red para evitar características de bajo nivel débiles y, por ello, pasa por alto los mapas de alta resolución que necesitan los objetos pequeños. FPN obtiene la cobertura multiescala de una pirámide de imágenes en una sola pasada hacia delante, y Faster R-CNN con FPN estableció un nuevo estado del arte de un único modelo en detección de COCO, funcionando a 5 fotogramas por segundo en una GPU.

Cómo funciona una FPN#

Una FPN construye su pirámide en tres pasos:

  1. Ruta de abajo arriba: la propagación hacia delante habitual del backbone. FPN toma el último mapa de características de cada etapa, etiquetado de C2 a C5 en una ResNet con strides de 4, 8, 16 y 32.
  2. Ruta de arriba abajo: desde el nivel más grueso, cada mapa se amplía por un factor de 2 mediante interpolación del vecino más cercano, llevando la semántica de alto nivel hacia los niveles más finos.
  3. Conexiones laterales: una convolución 1×1 adapta cada mapa del backbone a una anchura común de 256 canales; el resultado se suma elemento a elemento al mapa ampliado del nivel superior, y una convolución 3×3 suaviza la suma para reducir los artefactos de ampliación. Las salidas, de P2 a P5, tienen todas 256 canales, por lo que una única cabeza de predicción con pesos compartidos funciona en todos los niveles.

Torchvision incluye un módulo FeaturePyramidNetwork listo para usar que recibe los mapas del backbone en un diccionario ordenado.

from collections import OrderedDict

import torch
from torchvision.ops import FeaturePyramidNetwork

# Salidas del backbone para una imagen de 640x640 con strides de 8, 16 y 32 (número de canales de ResNet-50)
features = OrderedDict(
    c3=torch.randn(1, 512, 80, 80),
    c4=torch.randn(1, 1024, 40, 40),
    c5=torch.randn(1, 2048, 20, 20),
)

# Las convoluciones laterales 1x1 y la ruta de arriba abajo dan a cada nivel los mismos 256 canales
fpn = FeaturePyramidNetwork(in_channels_list=[512, 1024, 2048], out_channels=256)
pyramid = fpn(features)

for name, level in pyramid.items():
    print(name, tuple(level.shape))

Imprime c3 (1, 256, 80, 80), c4 (1, 256, 40, 40) y c5 (1, 256, 20, 20): cada nivel conserva su tamaño espacial y ahora los tres comparten la misma anchura de canales, lo que permite que una única cabeza funcione a todas las escalas.

Aplicaciones#

  • Imágenes aéreas y de satélite: Los vehículos, las personas y los edificios de análisis de imágenes de satélite y las grabaciones de drones suelen ocupar solo unos pocos píxeles, por lo que los detectores dependen de los niveles de stride 4 y stride 8 de la pirámide.
  • Segmentación de instancias: Mask R-CNN, disponible en Detectron2, asigna cada región a un nivel de la pirámide según su tamaño antes de predecir su caja y su máscara.
  • Segmentación panóptica: Panoptic FPN añade una rama de segmentación semántica a la misma pirámide y etiqueta elementos como carreteras y cielos, además de los objetos contables.
  • Vehículos autónomos: Un único fotograma de cámara puede contener camiones cercanos que ocupan la mitad de la imagen y peatones y semáforos lejanos de apenas unos píxeles de altura.

FPN frente a PANet, BiFPN y otros necks#

La ruta de arriba abajo de FPN fue el punto de partida de una familia de necks que modifican el flujo de información entre niveles:

  • PANet: Añade una ruta de abajo arriba tras la ruta de arriba abajo de FPN, acortando el recorrido desde las características finas y bien localizadas hasta los niveles superiores. PANet quedó en primer lugar en el reto de segmentación de instancias COCO 2017.
  • BiFPN: El neck de EfficientDet repite varias veces la fusión de arriba abajo y de abajo arriba, elimina los nodos que solo tienen una entrada y aprende un peso para cada entrada que fusiona.
  • NAS-FPN: Una disposición de pirámide obtenida mediante búsqueda de arquitecturas neuronales y apilada varias veces.
  • U-Net: También combina características gruesas y finas mediante conexiones de salto, pero después predice una sola vez a resolución completa, lo que la hace más adecuada para la segmentación por píxel que para la detección multiescala.

YOLO26 usa un neck FPN más PAN que fusiona niveles mediante concatenación: dos pasos de ampliación llevan el contexto del stride 32 al nivel de stride 8, dos convoluciones con stride trasladan el detalle de vuelta hacia arriba, y la cabeza predice desde P3, P4 y P5 con strides de 8, 16 y 32. Su variante yolo26-p2.yaml amplía la pirámide con un nivel P2 de stride 4 para objetos muy pequeños, lo que aumenta el cómputo sin fusionar de YOLO26n de 6.1 a 9.5 GFLOPs.

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