Comment le suivi inter-images de SignalPlate maintient l’identité de chaque véhicule image après image sans jamais confondre deux voitures

Un véhicule blanc apparaît au loin sur votre écran. SignalPlate l’entoure d’un rectangle ambre, signe qu’il est en cours d’identification. Deux secondes plus tard, la plaque est lue, le rectangle passe au vert, et le numéro s’affiche clairement à côté du véhicule. Un camion de livraison masque brièvement la voiture blanche, puis celle-ci réapparaît de l’autre côté. Le rectangle vert est toujours là, avec le même numéro, comme si rien ne s’était passé. Pendant ce temps, un second véhicule entre dans le champ par la gauche : il reçoit son propre rectangle ambre, sa propre identité, totalement indépendante du premier. Cette chorégraphie visuelle, qui semble si naturelle à l’écran, repose sur l’un des systèmes les plus sophistiqués de SignalPlate : le suivi inter-images avec correspondance IoU, identifiants persistants et réassociation temporelle des plaques. Derrière chaque rectangle qui suit fidèlement son véhicule se cache un algorithme qui résout en temps réel un problème que même l’œil humain trouve parfois difficile : maintenir l’identité de chaque objet en mouvement dans un flux d’images continu.

Le défi fondamental : pourquoi suivre un véhicule est bien plus complexe qu’il n’y paraît

Pour un être humain, suivre du regard une voiture qui traverse son champ de vision semble trivial. Notre cerveau maintient automatiquement la continuité de l’objet, même lorsqu’il disparaît momentanément derrière un poteau, un autre véhicule ou un virage. Mais pour un algorithme qui traite des images discrètes — une succession de photographies prises trente ou soixante fois par seconde — chaque image est un monde nouveau. Le véhicule détecté dans l’image numéro 47 n’a aucun lien intrinsèque avec celui détecté dans l’image numéro 48. Ce sont deux rectangles, dans deux images distinctes, et rien ne dit a priori qu’ils représentent le même objet physique.

Imaginez un jeu de bonneteau géant joué à la vitesse de l’autoroute. Sous chaque gobelet se cache un véhicule. Entre chaque image, les gobelets bougent légèrement. Certains se chevauchent, d’autres disparaissent momentanément hors cadre, de nouveaux apparaissent par les côtés. L’algorithme de suivi doit, soixante fois par seconde, soulever mentalement chaque gobelet et déclarer avec certitude : celui-ci est le même que celui de l’image précédente, celui-là est nouveau, et ce troisième a disparu. Une erreur d’association — confondre deux véhicules, perdre la trace d’un véhicule existant, ou créer un fantôme qui n’existe pas — se traduit immédiatement par un comportement visuel erratique : rectangles qui sautent d’un véhicule à l’autre, numéros de plaque attribués au mauvais véhicule, ou détections fantômes qui persistent à l’écran alors que le véhicule a quitté le champ.

La correspondance IoU : mesurer la ressemblance spatiale entre deux détections

Le premier outil que SignalPlate déploie pour résoudre ce problème s’appelle la correspondance IoU, pour Intersection over Union, ou intersection sur union en français. Le principe est étonnamment intuitif une fois qu’on le comprend. Prenez deux rectangles sur deux images successives. Superposez-les mentalement. La zone où ils se chevauchent, c’est l’intersection. La zone totale couverte par les deux rectangles combinés, c’est l’union. Le rapport entre les deux donne un score entre zéro et un qui mesure à quel point les deux rectangles se ressemblent en termes de position et de taille.

Un score IoU de un signifie que les deux rectangles sont parfaitement superposés : même position, même taille, donc très probablement le même véhicule qui n’a pas bougé. Un score de zéro signifie qu’ils ne se chevauchent pas du tout : ce sont certainement deux véhicules différents. Entre les deux, un score élevé — disons supérieur à 0,3 ou 0,4 — indique un fort recouvrement spatial qui suggère qu’il s’agit du même véhicule ayant légèrement bougé entre les deux images.

Pour illustrer avec une analogie du quotidien : imaginez que vous prenez deux photos successives d’un échiquier en déplaçant légèrement votre appareil entre les deux prises. Si vous superposez les deux images, chaque pièce sera presque au même endroit, avec un léger décalage. Ce décalage est mesurable, et c’est exactement ce que fait l’IoU pour chaque véhicule détecté. Plus le décalage est faible, plus le score est élevé, et plus l’algorithme est confiant qu’il s’agit de la même pièce — ou du même véhicule.

L’appariement glouton : associer chaque détection à son meilleur candidat

Calculer le score IoU entre deux rectangles est simple. Mais dans une scène réelle, il peut y avoir cinq, dix, voire vingt véhicules simultanément dans le champ de vision. Chaque véhicule suivi dans l’image précédente doit être associé à exactement une détection dans l’image courante, et chaque nouvelle détection ne peut être attribuée qu’à un seul véhicule existant — ou être déclarée comme nouveau véhicule entrant.

SignalPlate résout ce problème d’affectation avec un algorithme glouton. Il calcule tous les scores IoU possibles entre les véhicules suivis et les nouvelles détections, puis les trie du meilleur au pire. Le meilleur score est accepté en premier : le véhicule suivi et la détection correspondante sont appariés. Ce couple est ensuite retiré du jeu, et le processus se répète avec les candidats restants. Les détections qui restent sans partenaire après ce processus sont déclarées comme nouveaux véhicules. Les véhicules suivis qui n’ont trouvé aucun partenaire sont provisoirement marqués comme temporairement absents.

Cette approche gloutonne n’est pas mathématiquement optimale dans tous les cas — un algorithme hongrois pourrait théoriquement trouver une meilleure affectation globale — mais elle présente un avantage décisif en contexte embarqué : sa rapidité. Là où un algorithme optimal nécessiterait des calculs dont la complexité explose avec le nombre de véhicules, l’approche gloutonne produit un résultat excellent en une fraction de milliseconde, laissant le budget de temps restant pour la reconnaissance de plaques, l’encodage vidéo et toutes les autres tâches simultanées de l’application.

Les identifiants persistants : donner une mémoire à chaque véhicule

L’appariement IoU résout le problème image par image, mais un suivi véritablement fiable exige une mémoire plus longue. Chaque véhicule détecté pour la première fois par SignalPlate se voit attribuer un identifiant unique et persistant — un numéro interne qui le distingue de tous les autres véhicules jamais rencontrés pendant la session en cours. Cet identifiant voyage avec le véhicule d’image en image, porté par le traqueur associé, indépendamment des fluctuations de la détection.

Pourquoi cette persistance est-elle cruciale ? Parce que la détection elle-même est imparfaite. Le réseau neuronal YOLO, aussi performant soit-il, peut manquer un véhicule pendant une ou deux images — à cause d’un reflet soudain, d’un changement de luminosité, ou simplement parce que le véhicule se trouve momentanément dans une pose ambiguë. Sans identifiant persistant, chaque absence serait interprétée comme une disparition définitive, suivie d’une réapparition comme « nouveau » véhicule avec un nouveau rectangle et un compteur de confiance remis à zéro. Le résultat visuel serait un clignotement incessant des rectangles, extrêmement perturbant pour l’utilisateur et ruinant la fiabilité de la détection.

Grâce à l’identifiant persistant, le traqueur conserve la mémoire du véhicule même lorsque celui-ci n’est pas détecté pendant quelques images. Il extrapole mentalement sa position probable en se basant sur sa trajectoire récente, prêt à reprendre le suivi dès que la détection revient. C’est exactement ce que fait votre cerveau lorsqu’une voiture disparaît derrière un panneau publicitaire : vous ne concluez pas qu’elle a cessé d’exister, vous estimez qu’elle réapparaîtra de l’autre côté, et vous la reconnaissez instantanément quand c’est le cas.

La réassociation des plaques avec une fenêtre de trois secondes

Le suivi de la position d’un véhicule et le maintien de son identité spatiale sont une chose. La gestion de son numéro de plaque en est une autre, car la lecture OCR ne réussit pas à chaque image. L’angle peut être défavorable, la lumière insuffisante, ou un autre véhicule peut masquer partiellement la plaque. SignalPlate sépare donc intelligemment le suivi du véhicule — basé sur la position et la forme — du suivi de la plaque — basé sur la reconnaissance de caractères.

Lorsque le moteur PaddleOCR parvient à lire une plaque, celle-ci est associée au traqueur du véhicule correspondant. Si, dans les images suivantes, la lecture échoue temporairement, le traqueur conserve la dernière plaque connue et continue de l’afficher. Mais si le véhicule disparaît complètement du champ puis réapparaît — par exemple après avoir été masqué par un camion pendant deux secondes — un mécanisme de réassociation entre en jeu.

SignalPlate maintient une fenêtre temporelle de trois secondes pendant laquelle une plaque précédemment lue peut être réassociée à un véhicule qui réapparaît dans une zone spatiale compatible. Cette fenêtre a été calibrée pour couvrir les occultations typiques rencontrées en conduite urbaine — un bus qui passe, un virage serré, un passage sous un pont — sans être si longue qu’elle risquerait d’associer une plaque à un véhicule complètement différent qui aurait pris la même position entre-temps.

Concrètement, cela signifie que si vous suivez un véhicule identifié « AB-123-CD » et qu’un bus le masque pendant deux secondes, le véhicule réapparaîtra avec son numéro de plaque intact, sans nécessiter une nouvelle lecture OCR. L’expérience est fluide, continue, et fidèle à la réalité. L’utilisateur voit un rectangle vert stable avec un numéro constant, exactement comme s’il suivait lui-même le véhicule du regard.

L’élimination des fantômes : quand un traqueur doit mourir pour que les données restent fiables

Le suivi persistant crée un risque symétrique : si le système est trop réticent à abandonner un traqueur, des véhicules fantômes peuvent apparaître à l’écran. Un traqueur dont le véhicule associé a quitté le champ de vision continuerait à exister, affichant un rectangle figé à la dernière position connue ou, pire, s’accrochant à un nouveau véhicule qui occupe désormais cet espace.

SignalPlate a mis en place un mécanisme sophistiqué d’anti-fantôme qui résout ce problème par une combinaison de règles temporelles et spatiales. Lorsqu’un traqueur n’est associé à aucune détection pendant un nombre défini d’images consécutives, il est d’abord placé en état de veille, puis définitivement supprimé. Les rectangles de détection affichés à l’écran disparaissent immédiatement lorsqu’un véhicule quitte le cadre, bien avant que le traqueur interne ne soit supprimé. Ce décalage entre la disparition visuelle et la suppression logique est intentionnel : il maintient une fenêtre de réassociation invisible pour l’utilisateur mais active en coulisses.

Un cas particulièrement retors a nécessité une attention spéciale : lorsque YOLO détecte simultanément un véhicule complet et sa section arrière comme deux objets distincts. Sans traitement, cette double détection créerait deux traqueurs pour un seul véhicule physique, avec des comportements contradictoires. SignalPlate utilise une détection de contenance — si un rectangle est entièrement contenu dans un autre — pour identifier ces doublons et supprimer le traqueur redondant. De plus, lorsqu’un traqueur fantôme est réassigné à une nouvelle cible physique, le système efface automatiquement le texte de plaque précédemment associé, empêchant le transfert incorrect d’un numéro d’immatriculation d’un véhicule à un autre.

La suppression des détections dupliquées par NMS

Avant même que le suivi inter-images n’entre en jeu, une première couche de filtrage élimine les détections redondantes au sein d’une même image. Le réseau neuronal YOLO, par conception, propose souvent plusieurs rectangles candidats pour un même objet, avec des positions et des tailles légèrement différentes. La technique de suppression des non-maximums, connue sous l’acronyme NMS, compare ces candidats entre eux et ne conserve que le plus pertinent pour chaque objet réel.

Le principe est analogue à un concours de sosies. Si trois rectangles se chevauchent fortement — avec un IoU supérieur à un seuil fixé à cinquante pour cent — c’est qu’ils représentent probablement le même véhicule vu sous des angles ou à des échelles très légèrement différents par le réseau neuronal. Le NMS conserve celui dont le score de confiance est le plus élevé et élimine les deux autres. Cette opération, effectuée avant le suivi, garantit que chaque véhicule physique n’engendre qu’un seul traqueur, évitant dès le départ les ambiguïtés et les dédoublements.

L’approche gloutonne utilisée pour le NMS parcourt les détections du score le plus élevé au plus faible, marquant comme supprimées toutes les détections trop proches d’une détection déjà retenue. Cette méthode produit des résultats identiques à un NMS classique dans l’immense majorité des configurations de trafic routier, tout en s’exécutant avec une rapidité compatible avec le traitement en temps réel.

L’interaction entre suivi et super-résolution neuronale

Le suivi inter-images interagit de manière synergique avec le module de super-résolution neuronale embarqué dans SignalPlate. Lorsqu’un véhicule est détecté à longue distance, sa plaque peut être trop petite pour une lecture immédiate, même après application de la super-résolution. Mais le traqueur maintient le véhicule sous observation image après image. À mesure que le véhicule se rapproche, la zone de plaque grandit progressivement. Le traqueur accumule les tentatives de lecture successives, et dès que la combinaison de la super-résolution et de la taille croissante permet une lecture réussie, la plaque est immédiatement associée au véhicule qui était suivi depuis le début.

Ce mécanisme d’accumulation progressive est invisible pour l’utilisateur, qui voit simplement un rectangle ambre apparaître au loin, suivre fidèlement le véhicule, puis passer au vert avec le numéro de plaque affiché lorsque la lecture aboutit. Le suivi a fait le travail patient de maintenir l’identité pendant les secondes où la reconnaissance n’était pas encore possible, et la super-résolution a permis de réduire la distance nécessaire pour cette reconnaissance. Ensemble, ces deux systèmes étendent considérablement la portée effective de détection de l’application.

L’adaptation à la caméra USB et aux différentes résolutions

Le système de suivi de SignalPlate fonctionne indépendamment de la source vidéo. Que les images proviennent de la caméra intégrée du smartphone en 1080p, d’une caméra USB externe en 4K, ou même d’une caméra en résolution inférieure, l’algorithme s’adapte automatiquement. Les coordonnées des rectangles de détection sont normalisées par rapport aux dimensions réelles du flux vidéo, ce qui garantit que les calculs IoU restent cohérents quelle que soit la résolution source.

Cette normalisation prend toute son importance lors du basculement entre sources vidéo — par exemple, lorsqu’une caméra USB se déconnecte momentanément et que SignalPlate bascule temporairement sur la caméra intégrée. Les traqueurs actifs sont réinitialisés proprement lors de ce basculement, évitant toute confusion entre les coordonnées de l’ancien et du nouveau flux. Lorsque la caméra USB se reconnecte, un nouveau cycle de détection et de suivi démarre sur des bases saines.

Le format d’image variable des caméras USB est également pris en compte. Une caméra en 16:9 et une caméra en 4:3 ne produisent pas le même espace de détection. Les boîtes de suivi sont recalculées en temps réel pour s’aligner sur les dimensions réelles du flux, garantissant que les rectangles affichés à l’écran correspondent exactement à la position des véhicules dans l’image, sans déformation ni décalage.

Le suivi au service du mode Gardien et de la dashcam

Le suivi inter-images n’est pas une fonctionnalité visible en tant que telle dans l’interface de SignalPlate, mais il irrigue et renforce tous les modes d’utilisation. En mode Gardien, il garantit que chaque véhicule passant devant la caméra n’est consigné qu’une seule fois dans l’historique, même s’il reste visible pendant plusieurs secondes ou s’il effectue une manœuvre complexe dans le champ de vision. Sans suivi, un véhicule qui stationne devant la caméra pendant trente secondes pourrait générer des dizaines d’entrées redondantes dans l’historique, noyant les événements réellement significatifs.

En mode dashcam, le suivi assure la continuité des annotations visuelles gravées dans l’enregistrement vidéo. Les rectangles et les numéros de plaque suivent fidèlement chaque véhicule d’image en image, produisant un enregistrement où les détections sont clairement attribuées et visuellement cohérentes. Lors du visionnage ultérieur d’un enregistrement, un véhicule identifié conserve son annotation tout au long de sa présence dans le cadre, offrant une traçabilité visuelle immédiate et professionnelle.

Le webhook du mode Gardien bénéficie également du suivi. Plutôt que d’envoyer une notification à chaque image où un véhicule est visible, SignalPlate n’envoie qu’une seule notification par véhicule détecté, au moment où la plaque est identifiée avec un niveau de confiance suffisant. Le traqueur assure que cette notification contient la meilleure lecture possible de la plaque, obtenue après accumulation de plusieurs tentatives de reconnaissance sur les images successives.

Performances et impact sur l’autonomie

L’ensemble du système de suivi — calcul IoU, appariement glouton, gestion des traqueurs, réassociation des plaques, élimination des fantômes — s’exécute en moins d’une milliseconde par image sur un smartphone de milieu de gamme. Ce coût computationnel négligeable est le fruit d’une conception algorithmique minutieuse qui privilégie les structures de données légères et les opérations arithmétiques simples. Aucune allocation mémoire n’est effectuée pendant le suivi : tous les tampons nécessaires sont pré-alloués au démarrage et réutilisés indéfiniment.

L’impact sur la batterie est tout aussi maîtrisé. Le suivi ne sollicite ni le processeur graphique ni le module d’intelligence artificielle — il travaille uniquement sur les résultats de détection déjà produits par YOLO. Il s’agit de calculs géométriques purs, exécutés sur les coordonnées des rectangles, sans aucun traitement d’image supplémentaire. En pratique, activer ou désactiver le suivi ne modifie pas de manière mesurable la consommation énergétique de l’application.

Cette légèreté computationnelle est essentielle dans le contexte de SignalPlate, où le suivi cohabite avec la détection YOLO, la reconnaissance PaddleOCR, la super-résolution neuronale, l’encodage vidéo, l’enregistrement audio et le chiffrement de base de données. Chacune de ces tâches consomme sa part du budget de calcul disponible, et le suivi doit accomplir sa mission critique — maintenir l’identité de chaque véhicule — sans empiéter sur les ressources des autres composants.

Quand le suivi échoue et comment SignalPlate se rattrape

Aucun algorithme de suivi n’est infaillible, et reconnaître ses limites fait partie d’une conception honnête. Les situations les plus difficiles pour le suivi IoU sont les croisements de trajectoires — deux véhicules qui se croisent dans le champ de vision avec des vitesses et des directions opposées — et les occultations prolongées au-delà de la fenêtre de trois secondes. Dans ces cas, le système peut perdre la trace d’un véhicule ou, plus rarement, confondre deux véhicules.

SignalPlate compense ces limitations par une stratégie de dégradation gracieuse. Si un traqueur perd sa cible, il est supprimé proprement, et si le véhicule réapparaît, un nouveau traqueur est créé. La plaque sera relue, et l’historique de détection contiendra deux entrées pour le même véhicule physique — une situation sous-optimale mais préférable à une fausse association qui attribuerait la plaque d’un véhicule à un autre. L’anti-fantôme garantit que les anciennes données de plaque ne contaminent pas les nouvelles détections, préservant l’intégrité de l’historique.

L’assistant Plaky peut vous aider à comprendre les résultats de détection et à interpréter les situations où le suivi a dû redémarrer. En consultant l’historique des détections, vous pouvez identifier les cas de double comptage d’un même véhicule grâce aux horodatages rapprochés et aux images similaires, et compenser manuellement si nécessaire. Cette transparence dans le fonctionnement du système, plutôt que de masquer ses imperfections, renforce la confiance de l’utilisateur dans la fiabilité globale de l’application.

L’invisible travail qui rend tout le reste possible

Le suivi inter-images est le tissu conjonctif de SignalPlate, la couche invisible qui relie la détection brute de véhicules à l’expérience fluide et cohérente que l’utilisateur perçoit à l’écran. Sans lui, chaque image serait un univers isolé, chaque détection un événement sans contexte, et chaque numéro de plaque un fragment orphelin impossible à relier à un véhicule en mouvement. Avec lui, l’application comprend le flux du trafic comme un récit continu où chaque véhicule a une entrée, une présence et une sortie clairement identifiées.

Ce récit continu est ce qui permet au mode Gardien d’être un véritable gardien plutôt qu’un simple déclencheur de photos aléatoires. C’est ce qui permet à la dashcam de produire des enregistrements annotés où chaque véhicule est identifié de manière permanente. C’est ce qui permet aux webhooks d’envoyer une notification unique et précise plutôt qu’un flot de signaux redondants. Et c’est ce qui permet à l’utilisateur de faire confiance aux informations affichées sur son écran, sachant que derrière chaque rectangle coloré se trouve un algorithme rigoureux qui a vérifié, recoupé et validé l’identité du véhicule qu’il désigne.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *