Détection d'objets
Comment un modèle localise et compte les objets dans une image : boîtes, filtrage, métriques, suivi léger dans le temps et catalogue des erreurs récurrentes.
Table des matières
De la classification à la détection : un changement de nature
Un modèle de classification répond à une question unique : « qu'est-ce qu'il y a sur cette image ? ». Il produit un vecteur de probabilités sur un jeu de classes fermé, point final. La détection d'objets répond à une question plus dure : « qu'est-ce qu'il y a, et où, et combien de fois ? ». Une image peut contenir zéro, un ou cinquante objets d'intérêt, de tailles différentes, partiellement superposés, et le modèle doit produire un nombre variable de réponses structurées — pas un vecteur de taille fixe.
Ce changement de nature a des conséquences concrètes sur toute la chaîne : la donnée d'entraînement change (on annote des rectangles, pas des étiquettes), la sortie change (une liste de boîtes avec coordonnées, classe et score), la métrique d'évaluation change (mAP au lieu d'accuracy), et surtout les modes de défaillance changent. Un classifieur se trompe de classe. Un détecteur peut se tromper de classe, de position, de taille, dupliquer un objet, en manquer un, ou halluciner un objet qui n'existe pas. Comprendre ce chapitre, c'est comprendre ce vocabulaire de défaillances avant de le rencontrer en production.
Ce que représente vraiment une bounding box
Une boîte englobante (bounding box) est une abstraction grossière : un rectangle aligné sur les axes, défini par quatre nombres. Deux conventions coexistent dans les outilstool callingIACapacité d'un agent ou d'un LLM à invoquer des outils externes (API, calcul, recherche) pendant le raisonnement.Voir dans le glossaire :
- xyxy — coin haut-gauche et coin bas-droit (x1, y1, x2, y2)
- xywh — centre ou coin haut-gauche, largeur, hauteur (x, y, w, h)
Confondre les deux conventions est une source d'erreurs très fréquente lors de l'intégration d'un modèle tiers : les boîtes s'affichent, mais décalées ou déformées, et rien ne « plante » pour signaler le bug. Toujours vérifier la convention dans la documentation du modèle avant d'écrire le code de post-traitement.
La boîte ne décrit ni la forme réelle de l'objet, ni son orientation, ni sa profondeur. Un vélo couché occupe un rectangle très différent d'un vélo debout. Deux personnes qui s'enlacent produisent des boîtes qui se recouvrent presque entièrement. C'est une simplification volontaire : elle rend le problème traitable par des réseaux convolutifsréseau convolutifIAArchitecture conçue pour les images, qui fait glisser des filtres appris détectant des motifs locaux, puis les combine en motifs de plus en plus abstraits.Voir dans le glossaire standards, au prix d'une perte d'information que la segmentationChunkingIADécoupage d'un document en segments de taille fixe ou sémantique avant indexation vectorielle, pour optimiser la récupération RAG.Voir dans le glossaire (traitée dans un autre chapitre) vient combler quand elle est nécessaire.
La boîte est une approximation rectangulaire, pas une découpe précise. Pour des usages qui exigent le contour exact (comptage de pixels, extraction de fond, mesure de surface), la détection seule ne suffit pas — il faut de la segmentation d'instance.
Ce qui se passe dans une passe du modèle
La plupart des détecteurs modernes fonctionnent selon un principe commun : le réseau ne regarde pas l'image une fois pour produire une réponse globale, il produit des centaines, voire des milliers de propositions de boîtes réparties sur une grille spatiale, chacune assortie d'un score de confiance par classe. Cette grille est directement liée à la résolution des cartes de caractéristiques (feature maps) produites par les couches convolutives : une carte de 20×20 cellules avec 3 formes d'ancrage par cellule génère 1200 propositions rien que pour ce niveau de résolution.
Deux mécanismes gouvernent cette génération :
- Les ancrages (anchors) — des boîtes de référence de tailles et ratios prédéfinis, placées à chaque position de la grille. Le réseau apprend un décalage (delta) par rapport à ces ancrages plutôt que des coordonnées absolues, ce qui stabilise l'apprentissage.
- Les approches sans ancrage (anchor-free) — le réseau prédit directement des points clés (centre, coins) et une distance vers les bords de la boîte, sans passer par des gabarits prédéfinis. Cette famille, popularisée par des architectures plus récentes, simplifie le réglage des hyperparamètreshyperparamètreIARéglage choisi avant l'entraînement — vitesse d'apprentissage, taille du modèle, nombre d'itérations. Il se distingue des paramètres, ajustés automatiquement pendant l'entraînement.Voir dans le glossaire liés aux ancrages.
Dans les deux cas, le résultat brut en sortie du réseau est massivement redondant : le même objet est détecté par plusieurs cellules voisines, avec des scores et des positions légèrement différents. Ce résultat brut n'est jamais montré tel quel à l'utilisateur — il subit un filtrage.
Le filtrage : seuil de confiance et suppression des non-maxima
Deux étapes de post-traitement transforment ces centaines de propositions redondantes en une poignée de détections exploitables.
Le seuil de confiance élimine d'abord toute proposition dont le score est inférieur à une valeur fixée (souvent entre 0,25 et 0,5 selon le cas d'usage). Ce seuil est un curseur qui déplace l'équilibre entre faux positifs et faux négatifs : le baisser fait remonter des objets difficiles mais aussi du bruit ; le monter nettoie le bruit mais fait disparaître des objets réels à faible confiance (petits, partiellement masqués, en périphérie de l'image).
La suppression des non-maxima (NMS, Non-Maximum Suppression) résout ensuite le problème des doublons. Pour chaque classe, l'algorithme :
- trie les boîtes restantes par score décroissant ;
- retient la boîte de score le plus élevé ;
- supprime toutes les boîtes de la même classe dont le recouvrement (IoU) avec cette boîte dépasse un seuil donné (typiquement 0,45 à 0,5) ;
- répète l'opération sur les boîtes restantes jusqu'à épuisement.
Un seuil NMS trop bas fusionne des objets réellement distincts et proches (une file de personnes, des voitures garées en série). Un seuil trop haut laisse passer des doublons du même objet. Le réglage optimal dépend du domaine : en comptage de foule dense, un NMS agressif peut faire disparaître des individus réels qui se chevauchent légitimement.
Des variantes existent pour les cas difficiles, notamment le Soft-NMS, qui ne supprime pas brutalement les boîtes concurrentes mais réduit progressivement leur score en fonction du recouvrement — utile quand des objets se chevauchent fortement de façon légitime (une foule, un plateau de fruits empilés).
Mesurer la qualité : IoU et mAP
L'IoU (Intersection over Union) est la métrique de base de toute évaluation en détection. Elle mesure le recouvrement entre une boîte prédite et une boîte de vérité terrain : aire de l'intersection divisée par aire de l'union des deux rectangles. Une IoU de 1 signifie une superposition parfaite ; une IoU de 0 signifie aucun recouvrement.
Un seuil d'IoU (souvent 0,5) décide si une détection est considérée comme correcte (« vrai positif ») ou non. Ce seuil unique cache une réalité continue : une boîte avec une IoU de 0,51 est jugée correcte, une boîte avec 0,49 est jugée fausse, alors que visuellement la différence est presque imperceptible.
La mAP (mean Average Precision) agrège cette logique sur l'ensemble des classes et sur toute la courbe précisionprécisionIAProportion des alertes émises par un modèle qui sont justifiées. Elle s'oppose au rappel : améliorer l'une dégrade l'autre.Voir dans le glossaire-rappelrappelIAProportion des cas positifs réels effectivement détectés par un modèle. Sur un jeu déséquilibré, c'est un indicateur bien plus parlant que l'exactitude globale.Voir dans le glossaire, en général à plusieurs seuils d'IoU. Le standard COCO calcule ainsi une mAP moyennée sur des seuils allant de 0,5 à 0,95 par pas de 0,05 (noté mAP@[.5:.95]), ce qui pénalise davantage les modèles dont les boîtes sont grossièrement bonnes mais peu précises.
| Métrique | Ce qu'elle mesure | Piège fréquent |
|---|---|---|
| IoU | Qualité géométrique d'une boîte unique | Confondue avec une mesure de classification |
| Précision | Part des détections correctes parmi celles produites | Ignore les objets manqués |
| Rappel | Part des objets réels effectivement détectés | Ignore les faux positifs |
| mAP@0.5 | Détection « globalement au bon endroit » | Masque une imprécision géométrique |
| mAP@[.5:.95] | Détection précise à plusieurs niveaux d'exigence | Chiffre plus dur à interpréter isolément |
Un mAP de 0,45 n'a aucun sens en absolu — il faut le comparer à une baseline sur le même jeu de donnéesdonnéesIAEnsemble d'informations structurées ou non utilisées pour entraîner, évaluer ou alimenter un modèle. La qualité, la quantité et la représentativité des données sont les facteurs décisifs pour les performances en apprentissage automatique.Voir dans le glossaire, dans les mêmes conditions d'annotationannotationIAProcessus d'étiquetage manuel des données d'entraînement par des experts humains. La qualité de l'annotation conditionne directement les performances du modèle d'apprentissage supervisé.Voir dans le glossaire. Deux jeux de données différents ne sont jamais comparables sur ce chiffre seul.
Une passe ou deux : familles d'architectures
Deux grandes familles structurent l'histoire de la détection moderne.
Les détecteurs à deux passes (two-stage, dont la famille R-CNNCNNIARéseau de neurones convolutif, architecture dominante en vision par ordinateur pour détecter des motifs locaux dans les images.Voir dans le glossaire est l'exemple historique) séparent explicitement la proposition de régions candidates et leur classification. Une première sous-réseau propose des zones susceptibles de contenir un objet ; un second sous-réseau classe et affine chacune de ces zones. Cette séparation donne généralement une meilleure précision géométrique, au prix d'une latence plus élevée.
Les détecteurs à une passe (one-stage, dont la famille YOLO et SSD sont les représentants les plus connus) prédisent directement classes et boîtes en une seule traversée du réseau, sans étape de proposition séparée. Le gain en vitesse est important — certaines variantes tournent en temps réel sur du matériel embarqué — au prix, historiquement, d'une précision légèrement inférieure sur les petits objets. Cet écart s'est fortement réduit avec les générations récentes de ces architectures.
Le choix entre les deux familles se fait rarement sur la seule précision brute : la contrainte de latence, la puissance de calcul disponible (serveur GPUGPUIAProcesseur graphique parallélisant massivement les calculs matriciels ; indispensable à l'entraînement et à l'inférence des modèles de deep learning.Voir dans le glossaire dédié vs. carte embarquée) et le besoin de traitement en flux vidéo temps réel pèsent souvent davantage dans la décision qu'un gain de quelques points de mAP.
Le suivi léger : donner une identité aux objets dans le temps
La détection s'applique image par image. Sur un flux vidéo, cela signifie qu'un même individu filmé pendant dix secondes est détecté indépendamment sur chacune des trois cents images, sans lien entre elles — le modèle ne « sait » pas que la boîte de l'image 42 et celle de l'image 43 désignent la même personne. Le tracking (suivi) est la couche qui reconstruit cette continuité en assignant un identifiant stable à chaque objet à travers les images successives.
Les approches les plus légères, adaptées à beaucoup de cas de production, reposent sur trois briques combinables :
- L'association par IoU — on relie la boîte de l'image courante à la boîte de l'image précédente qui présente le plus grand recouvrement. Simple, rapide, mais fragile dès que l'objet bouge vite ou que la fréquence d'images est basse.
- Le filtre de Kalman — un modèle de mouvement (position, vitesse) prédit où devrait se trouver l'objet à l'image suivante, ce qui rend l'association robuste même en cas de détection manquée sur une ou deux images.
- Un descripteur d'apparence — une signature visuelle compacte (couleur, texture, ou embeddingembeddingIAReprésentation numérique dense d'un texte, d'une image ou d'un objet dans un espace vectoriel, utilisée pour la similarité et la recherche sémantique.Voir dans le glossaire appris) permet de reconnaître un objet même après une occlusion prolongée ou un croisement avec un objet similaire.
L'algorithme SORT (Simple Online and Realtime Tracking) combine les deux premières briques et reste une référence pour sa simplicité et sa vitesse. DeepSORT y ajoute le descripteur d'apparence, ce qui améliore nettement la robustesse aux occlusions et aux croisements de trajectoires, au prix d'un calcul supplémentaire par image.
Un système de comptage de clients passant devant une caisse combine un détecteur de personnes et un tracker léger de type SORT. Sans tracker, une personne qui reste dix secondes dans le champ génère potentiellement dix comptages distincts. Avec tracker, elle génère une seule entrée, comptée au moment où sa trajectoire franchit une ligne virtuelle définie dans l'image.
Le tracking léger ne « comprend » rien à la scène : il extrapole une trajectoire plausible à partir de mesures bruitées. Il échoue prévisiblement dans certaines situations : changement brutal de direction, occlusion totale prolongée par un autre objet, ou deux objets visuellement proches qui se croisent (le tracker peut alors permuter leurs identifiants sans qu'aucune erreur ne soit signalée).
Les erreurs qui reviennent tout le temps
Certaines classes d'erreurs sont si récurrentes qu'il vaut mieux les anticiper dès la conception d'un projet plutôt que de les découvrir en production.
Les petits objets. Un objet qui occupe moins d'une trentaine de pixels de côté dans l'image d'entrée est souvent perdu dès les premières couches de sous-échantillonnage du réseau — l'information spatiale nécessaire à sa localisation disparaît avant même d'atteindre les couches de détection. Les architectures à pyramide de caractéristiques (FPN) atténuent ce problème sans l'éliminer.
Le déséquilibre de classes. Une classe rare dans les données d'entraînement (piétons de nuit, objets dangereux dans un flux de sécurité) produit un modèle qui la détecte mal, quelle que soit la qualité globale de l'architecture. Le problème est dans les données, pas dans le modèle — augmenter la profondeur du réseau ne corrige pas un déséquilibre d'échantillons.
L'occlusion. Un objet partiellement masqué par un autre reçoit une boîte tronquée, ou n'est simplement pas détecté si la portion visible est trop faible. C'est un mode d'échec normal, pas un bug : aucun détecteur entraîné sur images 2D ne peut deviner ce qu'il ne voit pas.
Le glissement de domaine (domain shift). Un modèle entraîné sur des images de jour, prises avec un certain type de caméra, se dégrade fortement de nuit, sous une autre optique, ou avec un angle de prise de vue inhabituel. La performance annoncée sur un jeu de testjeu de testIAPartie des données réservée à l'évaluation finale, à n'utiliser qu'une seule fois. Ajuster le modèle d'après ses résultats sur ce jeu lui ôte toute valeur de mesure indépendante.Voir dans le glossaire ne se transfère jamais automatiquement à des conditions de déploiement différentes.
Les faux positifs sur des motifs visuels proches. Un mannequin dans une vitrine détecté comme personne, un reflet dans une flaque détecté comme un second objet, un motif imprimé sur un vêtement confondu avec la texture d'un animal — ces erreurs trahissent que le modèle reconnaît des motifs statistiques appris, pas des objets au sens où un humain l'entend.
Un modèle mal calibré peut afficher un score de confiance de 0,9 sur une détection fausse, en particulier hors de sa distribution d'entraînement. Le score de confiance reflète la certitude interne du modèle, pas une probabilité vérifiée d'exactitude. Ne jamais l'utiliser comme seule barrière de sécurité sur un cas d'usage sensible sans validation complémentaire.
Checklist avant mise en production
Avant de déployer un pipeline de détection (avec ou sans tracking), il est utile de vérifier systématiquement :
- Le jeu d'entraînement couvre-t-il les conditions réelles de déploiement (éclairage, angle, caméra, densité de scène) ?
- Le seuil de confiance a-t-il été choisi sur un jeu de validation représentatif, et pas seulement optimisé pour un chiffre global de mAP ?
- Le seuil NMS est-il adapté à la densité attendue d'objets dans la scène cible ?
- Les petites classes ou objets rares du cas d'usage ont-ils un rappel mesuré séparément, plutôt que noyé dans une moyenne globale ?
- Le comportement du tracker en cas d'occlusion prolongée a-t-il été testé, pas seulement son comportement en conditions favorables ?
- Existe-t-il un mécanisme de repli (alerte humaine, seuil de rejet) quand la confiance est marginale sur une décision sensible ?
- La latence mesurée en conditions réelles (charge, résolution effective) correspond-elle à la contrainte du cas d'usage, et pas seulement au benchmark publié par les auteurs du modèle ?
Cette liste n'est pas exhaustive, mais elle couvre la majorité des écarts observés entre un modèle qui « marche bien sur le papier » et un pipeline qui tient en conditions réelles. La détection d'objets est une technologie mature et fiable sur un périmètre bien défini — le travail d'ingénierie consiste précisément à délimiter ce périmètre avant de lui faire confiance.
L'essentiel à retenir
Ce chapitre explique le fonctionnement d'un pipeline de détection d'objets, depuis la génération de boîtes brutes par le réseau jusqu'au filtrage par seuil de confiance et suppression des non-maxima (NMS). Il détaille les métriques de référence (IoU, mAP) et les deux grandes familles d'architectures, à une ou deux passes. Une section couvre le suivi léger (tracking) qui donne une identité stable à un objet à travers une séquence vidéo, via association IoU, filtre de Kalman ou descripteur d'apparence. Le chapitre se conclut sur un catalogue des erreurs récurrentes en production (petits objets, déséquilibre de classes, occlusion, glissement de domaine) et une checklist de mise en production.
Questions fréquentes
Quelle différence entre détection d'objets et segmentation ?
Faut-il toujours utiliser un tracker en plus d'un détecteur sur de la vidéo ?
Comment choisir le seuil de confiance d'un détecteur ?
Pourquoi deux détections légèrement décalées de la même personne apparaissent-elles parfois toutes les deux ?
Un mAP de 0,9 annoncé par un modèle open source garantit-il de bonnes performances sur mes images ?
Le tracking peut-il permuter les identifiants de deux objets qui se croisent ?
Quelle est la différence entre précision et rappel en détection d'objets ?
Progression sauvegardée dans votre navigateur.
Quiz de validation
Quiz Player
Quiz de validation
Plusieurs réponses possibles — validez ensuite.
Vrai ou faux.
Quiz indisponible (données invalides).