Feature Pyramid Network (FPN)
Explore comment les réseaux pyramidaux de caractéristiques (FPN) améliorent la détection d’objets à plusieurs échelles. Découvre comment Ultralytics YOLO26 utilise des FPN avancés pour détecter les petits et les grands objets.
Un réseau pyramidal de caractéristiques (FPN) est un composant architectural spécialisé utilisé dans les systèmes modernes de vision par ordinateur (CV) pour améliorer la détection d’objets à différentes échelles. Il résout efficacement un problème ancien de l’analyse d’images : reconnaître à la fois les structures grandes et bien visibles et les détails minuscules et éloignés au sein d’une même image. En générant une représentation multi-échelle de l’entrée — conceptuellement similaire à une pyramide — les FPN permettent aux réseaux neuronaux d’extraire des informations sémantiques riches à chaque niveau de résolution. Cette architecture se situe généralement entre le backbone, qui extrait les caractéristiques brutes, et la tête de détection, qui prédit les classes d’objets et les boîtes englobantes.
Fonctionnement des réseaux pyramidaux de caractéristiques#
L’innovation centrale du FPN réside dans sa façon de traiter les informations. Les réseaux de neurones convolutifs (CNN) traditionnels créent naturellement une hiérarchie de caractéristiques dans laquelle l’image d’entrée est progressivement sous-échantillonnée. Si cette opération approfondit la compréhension sémantique (savoir ce qui se trouve dans l’image), elle dégrade souvent la résolution spatiale (savoir exactement où cela se trouve), ce qui peut faire disparaître les petits objets.
Les FPN répondent à ce problème en trois étapes :
-
Voie ascendante : il s’agit de la passe standard en propagation avant du réseau, par exemple celle d’un réseau résiduel (ResNet). Au fur et à mesure que le réseau traite l’image, il crée des cartes de caractéristiques dont la taille diminue, tandis que la valeur sémantique augmente.
-
Voie descendante : le réseau construit une pyramide à plus haute résolution en suréchantillonnant les caractéristiques riches sur le plan sémantique issues des couches profondes. Cette étape « hallucine » un contexte pertinent dans des cartes spatiales plus grandes.
-
Connexions latérales : pour récupérer les détails nets perdus lors du sous-échantillonnage, les FPN fusionnent les caractéristiques suréchantillonnées avec les cartes originales à haute résolution de la voie ascendante via des connexions latérales.
Cette combinaison produit une pyramide dont chaque niveau possède une sémantique riche et une bonne capacité de localisation, ce qui améliore considérablement la précision et le rappel pour toutes les tailles d’objets.
Importance dans les architectures de détection d’objets#
Les FPN sont un élément fondamental des architectures modernes de détection d’objets. Avant leur introduction, les modèles devaient choisir entre la vitesse (en utilisant uniquement la dernière couche) et la précision (en traitant une pyramide d’images, ce qui est très lent). Les FPN offrent une solution qui réunit le meilleur des deux approches, en permettant l’inférence en temps réel sans sacrifier les capacités de détection des petits objets.
Cette efficacité est essentielle pour des modèles avancés comme YOLO26, qui utilise des réseaux d’agrégation sophistiqués inspirés des principes des FPN (comme PANet) afin d’atteindre des performances de pointe. L’architecture garantit que, que le modèle soit déployé sur des appareils périphériques ou sur des serveurs puissants via l’Ultralytics Platform, il conserve une grande précision sur des jeux de données variés.
Applications concrètes#
La capacité multi-échelle des FPN les rend indispensables dans les secteurs où la sécurité et la précision sont primordiales.
- IA dans l’automobile : les véhicules autonomes doivent suivre simultanément de gros camions proches et de petits feux de circulation ou piétons éloignés. Les FPN permettent à la pile de perception de traiter ces échelles disparates en une seule passe, ce qui garantit une prise de décision rapide. Des jeux de données comme nuScenes sont souvent utilisés pour évaluer ces capacités.
- Analyse d’images médicales : en imagerie diagnostique, détecter des pathologies nécessite de repérer des anomalies dont la taille peut varier considérablement. Un modèle équipé d’un FPN peut identifier à la fois de grandes structures organiques et de minuscules tumeurs à un stade précoce dans des scans IRM, aidant ainsi les radiologues à établir des diagnostics précis.
- IA dans l’agriculture : l’agriculture de précision repose sur la détection des cultures et des nuisibles à partir d’images prises par drone. Comme l’altitude du drone peut varier, la taille des plantes dans l’image change. Les FPN aident les modèles à bien généraliser et à effectuer avec précision le comptage d’objets, quelle que soit la hauteur de la caméra.
FPN et autres agrégateurs de caractéristiques#
Il est utile de distinguer le FPN standard de ses variantes évoluées présentes dans les architectures plus récentes.
- FPN et PANet : alors que le FPN ajoute une voie descendante pour enrichir les caractéristiques, le réseau d’agrégation des chemins (PANet) ajoute une voie ascendante supplémentaire par-dessus le FPN. Cela raccourcit le chemin de l’information pour les caractéristiques de bas niveau et améliore encore la localisation, une technique souvent adaptée dans les modèles YOLO.
- FPN et BiFPN : présent dans EfficientDet, le réseau pyramidal de caractéristiques bidirectionnel (BiFPN) introduit des poids pouvant être appris pour différentes caractéristiques et supprime les nœuds ne possédant qu’une seule entrée, afin d’optimiser l’efficacité du réseau.
Exemple pratique#
Des bibliothèques avancées comme ultralytics gèrent en interne la complexité de la construction des FPN. Lorsque tu charges un modèle comme YOLO26, l’architecture inclut automatiquement ces couches d’agrégation de caractéristiques afin de maximiser les performances.
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()








