Feature Pyramid Network (FPN)
Explora cómo las redes de pirámide de características (FPN) mejoran la detección de objetos a múltiples escalas. Aprende cómo Ultralytics YOLO26 utiliza FPN avanzadas para detectar objetos pequeños y grandes.
Una Feature Pyramid Network (FPN) es un componente arquitectónico especializado que se utiliza en sistemas modernos de computer vision (CV) para mejorar la detección de objetos a diversas escalas. Resuelve eficazmente un desafío constante en el análisis de imágenes: reconocer tanto estructuras grandes y prominentes como pequeños detalles distantes dentro de la misma imagen. Al generar una representación a multiescala de la entrada, conceptualmente similar a una pirámide, las FPN permiten que las redes neuronales extraigan información semántica rica en cada nivel de resolución. Esta arquitectura generalmente se sitúa entre el backbone, que extrae características sin procesar, y la detection head, que predice clases de objetos y cuadros delimitadores.
Link to this sectionCómo funcionan las Feature Pyramid Networks#
La innovación central de la FPN reside en cómo procesa la información. Las Convolutional Neural Networks (CNNs) tradicionales crean naturalmente una jerarquía de características donde la imagen de entrada se submuestrea progresivamente. Si bien esto profundiza la comprensión semántica (saber qué hay en la imagen), a menudo degrada la resolución espacial (saber exactamente dónde está), haciendo que los objetos pequeños desaparezcan.
Las FPN abordan esto mediante un proceso de tres pasos:
-
Bottom-Up Pathway: Este es el paso de alimentación directa estándar de la red, como una Residual Network (ResNet). A medida que la red procesa la imagen, crea feature maps que disminuyen en tamaño pero aumentan en valor semántico.
-
Top-Down Pathway: La red construye una pirámide de mayor resolución mediante el sobremuestreo de las características semánticamente ricas de las capas más profundas. Este paso "alucina" un contexto fuerte de regreso a mapas espaciales más grandes.
-
Lateral Connections: Para recuperar los detalles nítidos perdidos durante el submuestreo, las FPN fusionan las características sobremuestreadas con los mapas originales de alta resolución de la ruta ascendente mediante conexiones laterales.
Esta combinación da como resultado una pirámide donde cada nivel tiene una semántica sólida y una buena localización, lo que aumenta significativamente la precision y el recall en todos los tamaños de objetos.
Link to this sectionImportancia en las arquitecturas de detección de objetos#
Las FPN son una piedra angular de las object detection architectures modernas. Antes de su introducción, los modelos tenían que elegir entre velocidad (usando solo la capa final) o precisión (procesando una pirámide de imágenes, lo cual es muy lento). Las FPN ofrecen una solución que combina lo mejor de ambos mundos, permitiendo la real-time inference sin sacrificar las capacidades de detección de objetos pequeños.
Esta eficiencia es crucial para modelos avanzados como YOLO26, que utiliza redes de agregación sofisticadas inspiradas en los principios de las FPN (como PANet) para lograr un rendimiento de vanguardia. La arquitectura garantiza que, ya sea que el modelo se implemente en dispositivos periféricos o servidores potentes a través de la Ultralytics Platform, mantenga una alta precisión en diversos conjuntos de datos.
Link to this sectionAplicaciones en el mundo real#
La capacidad multiescala de las FPN las hace indispensables en industrias donde la seguridad y la precisión son primordiales.
- AI in Automotive: Los vehículos autónomos deben rastrear simultáneamente camiones grandes cercanos y semáforos pequeños o peatones en la distancia. Las FPN permiten que la pila de percepción procese estas escalas dispares en una sola pasada, asegurando una toma de decisiones oportuna. Conjuntos de datos como nuScenes se utilizan a menudo para comparar estas capacidades.
- Medical Image Analysis: En el diagnóstico por imagen, detectar patologías requiere identificar anomalías que varían enormemente en tamaño. Un modelo equipado con FPN puede identificar tanto estructuras orgánicas grandes como tumores pequeños en etapas tempranas en MRI scans, ayudando a los radiólogos a realizar diagnósticos precisos.
- AI in Agriculture: La agricultura de precisión depende de la detección de cultivos y plagas a partir de imágenes de drones. Dado que la altitud del dron puede variar, el tamaño de las plantas en la imagen cambia. Las FPN ayudan a que los modelos se generalicen bien, realizando con precisión el object counting independientemente de la altura de la cámara.
Link to this sectionFPN frente a otros agregadores de características#
Resulta útil distinguir la FPN estándar de sus variantes evolucionadas que se encuentran en arquitecturas más nuevas.
- FPN vs. PANet: Mientras que la FPN añade una ruta descendente para enriquecer las características, la Path Aggregation Network (PANet) añade una ruta ascendente adicional sobre la FPN. Esto acorta la ruta de información para características de bajo nivel, mejorando aún más la localización, una técnica a menudo adaptada en los modelos YOLO.
- FPN vs. BiFPN: Encontrada en EfficientDet, la Bi-directional Feature Pyramid Network (BiFPN) introduce pesos aprendibles para diferentes características y elimina nodos con una sola entrada, optimizando la red para la eficiencia.
Link to this sectionEjemplo práctico#
Bibliotecas avanzadas como ultralytics gestionan la complejidad de la construcción de FPN internamente. Cuando cargas un modelo como YOLO26, la arquitectura incluye automáticamente estas capas de agregación de características para maximizar el rendimiento.
from ultralytics import YOLO
# Load the YOLO26 model, which uses advanced feature pyramid principles internally
# The 'n' suffix indicates the nano version, optimized for speed
model = YOLO("yolo26n.pt")
# Perform inference on an image containing objects of various sizes
# The model's neck (FPN-based) aggregates features to detect small and large items
results = model("https://ultralytics.com/images/bus.jpg")
# Display results to see bounding boxes around buses (large) and people (small)
results[0].show()





