Detection Head
Apprends comment une tête de détection permet la détection d'objets en temps réel. Explore son rôle dans Ultralytics YOLO26 pour prédire les boîtes englobantes et les étiquettes avec une grande précision.
Une tête de détection agit comme la couche décisionnelle finale dans l'architecture d'un réseau de neurones de détection d'objets. Alors que les premières couches du modèle sont responsables de la compréhension des formes, des textures et des caractéristiques au sein d'une image, la tête de détection est le composant spécifique qui interprète ces informations pour prédire exactement quels objets sont présents et où ils se trouvent. Elle transforme les données abstraites de haut niveau produites par l'extracteur de caractéristiques en résultats exploitables, générant généralement un ensemble de bounding boxes entourant les objets identifiés, accompagnés de leurs étiquettes de classe correspondantes et de leurs confidence scores.
Link to this sectionDistinguer la tête du Backbone et du Neck#
Pour bien saisir la fonction d'une tête de détection, il est utile de visualiser les détecteurs modernes comme étant composés de trois étapes principales, chacune remplissant un objectif distinct dans le pipeline de computer vision (CV) :
- Backbone : Il s'agit de la partie initiale du réseau, souvent un Convolutional Neural Network (CNN) tel que ResNet ou CSPNet. Il traite l'image d'entrée brute pour créer des feature maps qui représentent des modèles visuels.
- Neck : Situé entre le backbone et la tête, le neck affine et combine les caractéristiques provenant de différentes échelles. Des architectures comme le Feature Pyramid Network (FPN) garantissent que le modèle peut détecter des objets de tailles variées en agrégeant le contexte.
- Head : Le composant final qui consomme les caractéristiques affinées par le neck. Il effectue la tâche réelle de classification (qu'est-ce que c'est ?) et de régression (où est-ce ?).
Link to this sectionÉvolution : Basé sur les ancres vs Sans ancres#
La conception des têtes de détection a considérablement évolué pour améliorer la vitesse et la précision, notamment avec le passage des méthodes traditionnelles aux modèles de real-time inference modernes.
- Têtes basées sur les ancres : Les one-stage object detectors traditionnels s'appuyaient sur des anchor boxes prédéfinies, des formes de référence fixes de différentes tailles. La tête prédisait alors comment étirer ou déplacer ces ancres pour les adapter à l'objet. Cette approche est détaillée dans les recherches fondamentales sur Faster R-CNN.
- Têtes sans ancres : Les modèles de pointe, y compris le dernier YOLO26, utilisent des anchor-free detectors. Ces têtes prédisent les centres et les dimensions des objets directement à partir des pixels des feature maps, éliminant ainsi le besoin de réglage manuel des ancres. Cela simplifie l'architecture et améliore la capacité du modèle à généraliser sur des formes d'objets inédites, une technique souvent associée à Fully Convolutional One-Stage Object Detection (FCOS).
Link to this sectionApplications concrètes#
La précision de la tête de détection est essentielle pour déployer l'artificial intelligence (AI) dans des environnements industriels et critiques pour la sécurité. Tu peux facilement annoter des données et entraîner ces têtes spécialisées en utilisant l'Ultralytics Platform.
- Conduite autonome : Dans l'AI for automotive, la tête de détection est responsable de distinguer les piétons, les feux de circulation et les autres véhicules en temps réel. Une tête hautement optimisée garantit que l'inference latency reste suffisamment faible pour que le véhicule puisse réagir instantanément.
- Diagnostics médicaux : Dans l'medical image analysis, les têtes de détection sont ajustées pour localiser des anomalies telles que des tumeurs dans des IRM. La branche de régression doit être extrêmement précise pour délimiter les contours exacts d'une lésion, aidant ainsi les médecins dans leurs healthcare solutions.
Link to this sectionExemple de code#
L'exemple suivant montre comment charger un modèle YOLO26 et inspecter la sortie de sa tête de détection. Lorsque l'inférence est exécutée, la tête traite l'image et renvoie les boxes finales contenant les coordonnées et les ID de classe.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to utilize the detection head
results = model("https://ultralytics.com/images/bus.jpg")
# The detection head outputs are stored in results[0].boxes
for box in results[0].boxes:
# Print the bounding box coordinates and the predicted class
print(f"Class: {int(box.cls)}, Coordinates: {box.xywh.numpy()}")Cette interaction met en évidence la manière dont la tête de détection traduit les activations complexes du réseau de neurones en données lisibles que tu peux utiliser pour des tâches en aval comme l'object tracking ou le comptage.






