Vous filmez un boulevard urbain en heure de pointe. Une dizaine de véhicules entrent et sortent de votre champ de vision en l’espace de quelques secondes. Une berline grise est partiellement masquée par un bus qui la double, puis réapparaît trois secondes plus tard de l’autre côté. Une moto se faufile entre deux voitures et disparaît momentanément derrière un camion. Pour un humain qui regarde la scène, identifier que la berline grise après le bus est bien la même que celle d’avant le bus est une évidence cognitive immédiate. Pour une application de reconnaissance de plaques, c’est l’un des défis algorithmiques les plus subtils qui soient. Comment savoir que deux détections successives concernent le même véhicule ou deux véhicules différents ? Comment éviter de créer dix entrées dans l’historique pour une seule voiture qui traverse lentement la scène ? Comment ne pas perdre l’identité d’un véhicule qu’un obstacle masque pendant deux ou trois secondes ? SignalPlate répond à ces questions par un mécanisme méconnu mais fondamental : le suivi inter-images avec correspondance IoU et réassociation temporelle des plaques. Plongeons dans cette mécanique de continuité visuelle qui transforme une succession d’images isolées en une narration cohérente du trafic.
Le piège de la détection image par image
Pour comprendre pourquoi le suivi inter-images est indispensable, imaginez ce qui se passerait sans lui. Le réseau neuronal YOLO analyse chaque image du flux vidéo de manière totalement indépendante. Pour lui, l’image numéro 247 et l’image numéro 248 sont deux univers parallèles sans aucune relation. Sur la première, il détecte une voiture dans la zone supérieure droite du cadre. Sur la seconde, il détecte une voiture dans une zone très légèrement décalée, parce que le véhicule s’est déplacé de quelques pixels entre les deux captures. Sans mécanisme de liaison, ces deux détections seraient traitées comme deux véhicules distincts, créant deux entrées séparées dans l’historique alors qu’il s’agit du même véhicule.
Multipliez ce problème par trente images par seconde et par une dizaine de véhicules simultanément présents dans le champ, et vous obtenez rapidement un historique pollué de centaines de doublons pour un trafic qui n’aurait dû générer que quelques dizaines d’entrées légitimes. Le mode Gardien deviendrait inutilisable, submergé par des alertes redondantes pour le même véhicule. Les webhooks domotiques se déclencheraient en rafale pour chaque image où le véhicule de votre conjoint est visible, ouvrant et refermant le portail de manière absurde. La dashcam afficherait des annotations qui clignotent comme un sapin de Noël, chaque rectangle disparaissant et réapparaissant légèrement décalé d’une image à l’autre.
L’identité persistante : donner un nom à chaque véhicule détecté
La solution adoptée par SignalPlate est conceptuellement simple : attribuer à chaque véhicule un identifiant unique qui persiste tant que le véhicule reste dans le champ de vision. Quand YOLO détecte un nouveau véhicule, le système de suivi lui assigne un numéro — disons 47. À l’image suivante, plutôt que de traiter la nouvelle détection comme un véhicule inconnu, le système tente d’établir une correspondance entre les détections de l’image précédente et celles de l’image actuelle. Si une détection de l’image actuelle correspond manifestement au véhicule numéro 47 d’avant, elle hérite de cet identifiant. Le véhicule reste numéro 47 image après image, jusqu’à ce qu’il quitte définitivement le champ.
Cette approche par identifiant persistant transforme la vidéo en un récit cohérent. Chaque véhicule est une entité narrative continue, pas une série de fragments dissociés. Le système de vote par consensus caractère par caractère, qui accumule jusqu’à sept lectures OCR pour confirmer un numéro de plaque, ne peut fonctionner qu’à condition de savoir que ces sept lectures concernent bien le même véhicule. Sans identifiant persistant, le vote serait impossible.
L’IoU : la mesure mathématique du recouvrement spatial
Comment le système décide-t-il qu’une détection de l’image actuelle correspond à un véhicule de l’image précédente ? La réponse tient en trois lettres : IoU, pour Intersection over Union, ou en français rapport entre l’intersection et l’union. C’est une mesure mathématique du recouvrement spatial entre deux rectangles.
Imaginez deux rectangles qui se chevauchent partiellement. L’intersection est la zone commune aux deux — la surface qu’ils partagent. L’union est la surface totale couverte par les deux rectangles ensemble. L’IoU est simplement le rapport entre ces deux valeurs. Si les deux rectangles sont parfaitement superposés, leur intersection est égale à leur union, et l’IoU vaut 1. Si les deux rectangles ne se touchent pas du tout, leur intersection est nulle, et l’IoU vaut 0. Entre ces deux extrêmes, l’IoU exprime le degré de similitude spatiale entre les deux rectangles.
Pour le suivi inter-images, le principe est le suivant : si une détection de l’image actuelle présente un IoU élevé avec un véhicule de l’image précédente, c’est qu’il s’agit très probablement du même véhicule qui s’est légèrement déplacé. Si l’IoU est faible, c’est probablement deux véhicules distincts. Le seuil exact qui sépare ces deux cas est calibré pour produire les meilleurs résultats en conditions réelles, en équilibrant le risque de fusionner par erreur deux véhicules proches et celui de séparer artificiellement un véhicule en mouvement rapide.
L’appariement glouton : optimiser les associations en temps réel
Quand plusieurs véhicules sont présents simultanément, l’attribution des identifiants devient un problème combinatoire. Imaginez trois véhicules détectés sur l’image précédente — numéros 12, 13 et 14 — et trois nouvelles détections sur l’image actuelle. Comment apparier optimalement les six rectangles ? La détection actuelle A correspond-elle au véhicule 12, 13 ou 14 ? Et la détection B ?
SignalPlate utilise une stratégie dite gloutonne qui privilégie systématiquement les meilleures correspondances possibles. Le système calcule l’IoU entre toutes les paires possibles de détections anciennes et nouvelles, puis associe d’abord la paire avec l’IoU le plus élevé. Cette paire est verrouillée — les deux rectangles concernés sont retirés du pool des candidats — et le processus recommence avec les rectangles restants. À chaque étape, la meilleure correspondance disponible est consommée, jusqu’à ce que tous les rectangles soient appariés ou que les correspondances restantes soient sous le seuil de validité.
Cette approche n’est pas mathématiquement optimale au sens strict — il existerait des combinaisons globalement meilleures dans certains cas extrêmes — mais elle est extrêmement rapide et produit des résultats excellents en pratique. Dans le contexte d’une analyse à trente images par seconde où chaque milliseconde compte, la simplicité algorithmique de l’appariement glouton est une qualité essentielle.
La suppression par contenance : éliminer les doublons de détection
Un défi connexe au suivi concerne la suppression des détections redondantes au sein d’une même image. YOLO peut occasionnellement produire deux rectangles qui désignent le même véhicule physique — par exemple un grand rectangle entourant l’ensemble du véhicule et un plus petit cadrant uniquement la partie arrière. Sans intervention, ces deux détections seraient traitées comme deux véhicules distincts par le suivi, créant des doublons fantômes qui pollueraient l’analyse.
SignalPlate applique une suppression dite par non-maximums avec contenance, qui élimine intelligemment les rectangles dont 85% ou plus sont contenus à l’intérieur d’un rectangle plus grand. Le rectangle parent absorbe le rectangle enfant, et le système ne conserve que la détection englobante. Cette opération, exécutée avant l’appariement IoU, garantit que chaque véhicule physique n’est représenté que par un seul rectangle dans l’image, ce qui simplifie radicalement le travail du suivi en aval.
La fenêtre de réassociation de trois secondes : le souvenir des fantômes
Le mécanisme le plus fascinant du suivi inter-images de SignalPlate est sans doute la réassociation temporelle des plaques sur une fenêtre de trois secondes. Pour comprendre son utilité, considérez le scénario classique de l’occultation. Un véhicule entre dans votre champ de vision, sa plaque est lue avec succès — disons AB-123-CD — puis il est masqué par un bus qui le double. Pendant deux secondes, aucune détection n’est possible. Le bus s’éloigne et le véhicule réapparaît, mais sa nouvelle position est trop éloignée de sa dernière position connue pour qu’un appariement IoU classique fonctionne.
Sans mécanisme spécial, le système créerait un nouveau traqueur pour ce véhicule réapparu — disons numéro 89 — alors qu’il s’agit du même véhicule que le numéro 47 perdu de vue trois secondes plus tôt. Toute l’histoire accumulée sur le numéro 47, notamment la plaque AB-123-CD confirmée par plusieurs lectures de vote, serait orpheline. Le nouveau numéro 89 devrait reconstruire son historique de zéro, peut-être avec moins de chance s’il est désormais plus loin de la caméra.
SignalPlate prévient ce gaspillage en maintenant pendant trois secondes les traqueurs récemment perdus dans une mémoire interne. Quand un nouveau véhicule apparaît, le système vérifie d’abord s’il pourrait correspondre à l’un de ces traqueurs fantômes — par la similarité de la plaque détectée, par la cohérence de la trajectoire, par les caractéristiques visuelles du véhicule. Si une correspondance plausible est identifiée, le nouveau véhicule hérite de l’identité du traqueur fantôme, avec tout son historique de votes OCR accumulés. La continuité narrative est préservée malgré l’occultation.
Pourquoi trois secondes et pas plus ?
Le choix de trois secondes comme fenêtre de réassociation reflète un compromis calibré. Une fenêtre plus courte — disons une seconde — manquerait les occultations courantes par des bus, des camions ou des passages sous des ponts qui durent fréquemment deux à trois secondes. Une fenêtre plus longue — disons dix secondes — augmenterait le risque de fausses réassociations, où un véhicule disparu serait incorrectement confondu avec un nouveau véhicule arrivant tardivement dans le même secteur. Trois secondes capturent la grande majorité des occultations légitimes tout en limitant les faux positifs à un niveau négligeable.
Le nettoyage immédiat des fantômes hors champ
Un comportement particulièrement soigné concerne l’affichage des boîtes de détection à l’écran. Pendant longtemps, un bug subtil affectait l’expérience visuelle : quand un véhicule sortait du champ de vision, le rectangle qui l’entourait persistait pendant quelques images supplémentaires avant de disparaître. Cette latence d’effacement, héritée du fait que le traqueur conserve les fantômes en interne pour la réassociation, donnait une impression de boîtes flottantes sans véhicule associé.
SignalPlate a corrigé ce comportement en dissociant l’affichage de la mémoire interne du traqueur. Quand un véhicule quitte le champ, sa boîte de détection disparaît immédiatement de l’écran et de l’enregistrement dashcam, alors même que le traqueur fantôme reste maintenu en interne pendant trois secondes pour la réassociation potentielle. Cette dissociation produit le meilleur des deux mondes : une réactivité visuelle parfaite pour l’utilisateur et une mémoire suffisante pour la continuité narrative en cas de réapparition.
L’intégration avec le mode Gardien : éviter les alertes en rafale
Le suivi inter-images joue un rôle crucial dans la pertinence des notifications du mode Gardien. Quand un véhicule inconnu stationne devant votre domicile pendant cinq minutes, sa présence est détectée sur des milliers d’images successives. Sans suivi, chaque image générerait sa propre alerte et son propre webhook, inondant votre système domotique de notifications redondantes pour un événement unique.
Grâce aux identifiants persistants, SignalPlate sait que toutes ces détections concernent le même véhicule numéro 73, et n’émet qu’une seule notification pour son arrivée. Si le véhicule reste stationnaire, aucune alerte supplémentaire n’est générée. S’il se déplace, sa nouvelle position met simplement à jour le traqueur existant. Quand il finit par quitter le champ, une éventuelle notification de départ peut être émise, fermant proprement l’épisode de stationnement.
Cette intelligence d’agrégation transforme le mode Gardien en un véritable système d’événements de haut niveau, plutôt qu’un flux brut de détections de bas niveau. Vous recevez une notification pour chaque événement significatif — l’arrivée d’un véhicule, son départ — et non pour chaque image où il est visible. Vos webhooks domotiques se déclenchent une fois par événement réel, préservant la pertinence des automatisations qu’ils pilotent.
La cohérence des annotations dashcam dans le temps
L’incrustation des numéros de plaque dans les enregistrements dashcam bénéficie également directement du suivi inter-images. Sans persistance d’identité, l’annotation textuelle accolée à un véhicule pourrait clignoter ou changer subtilement d’une image à l’autre selon les variations de lecture OCR. Avec le suivi, le numéro affiché reste le résultat stabilisé du vote de consensus pour ce traqueur précis, produisant une annotation fluide et continue qui suit le véhicule fidèlement à travers la scène.
Pour un enregistrement utilisé comme preuve en cas de litige, cette stabilité est précieuse. Un visualisateur qui examine la vidéo voit le même numéro de plaque affiché de manière cohérente pendant toute la traversée du véhicule, renforçant la crédibilité de l’identification. Un numéro qui changerait subtilement entre les images créerait au contraire un doute légitime sur la fiabilité du système.
Le défi des trajectoires croisées
Un cas particulièrement délicat pour le suivi survient quand deux véhicules se croisent dans le champ de vision. Imaginez une voiture qui dépasse une autre sur une route à deux voies. Pendant l’instant du croisement, les deux rectangles se rapprochent puis se chevauchent partiellement avant de s’éloigner. Un appariement IoU naïf pourrait échanger les identifiants — le véhicule A devient B et inversement — créant une confusion permanente dans l’historique.
SignalPlate utilise plusieurs signaux complémentaires à l’IoU spatial pour désambiguïser ces situations. La cohérence de la trajectoire — la direction et la vitesse de chaque véhicule — favorise l’appariement avec le rectangle qui poursuit le mouvement attendu plutôt qu’avec celui qui semble surgir d’ailleurs. La similarité des plaques déjà lues, quand elles sont disponibles, agit comme un confirmateur d’identité indépendant de la position spatiale. Ces signaux multiples convergent vers un appariement robuste qui préserve les bonnes identités même dans les situations de croisement.
L’optimisation mémoire du suivi : zéro allocation pendant la boucle critique
Maintenir simultanément une dizaine de traqueurs actifs et autant de fantômes dans la fenêtre de réassociation pourrait représenter un coût mémoire non négligeable si la gestion n’était pas optimisée. SignalPlate utilise un pool de structures de données pré-allouées qui sont recyclées d’un cycle à l’autre. Quand un véhicule quitte le champ et que son traqueur fantôme expire après trois secondes, la structure n’est pas libérée mais retournée au pool pour être réutilisée par le prochain véhicule entrant.
Cette gestion à zéro allocation pendant la boucle critique élimine la pression sur le ramasse-miettes et garantit une latence constante pour le suivi, image après image. Sur un boulevard urbain dense où des dizaines de véhicules entrent et sortent du champ par minute, le pool absorbe toute cette activité sans la moindre allocation dynamique, préservant la fluidité globale du pipeline.
Pour les utilisateurs curieux de comprendre comment leur installation suit les véhicules en temps réel, l’assistant Plaky peut expliquer les détails du processus pour des cas spécifiques. Demandez-lui pourquoi tel véhicule a été suivi pendant tant de secondes, ou comment une réassociation a permis de récupérer une plaque après une occultation par un camion, et il vous éclairera sur les mécanismes invisibles qui transforment chaque trajet ou session de surveillance en un récit cohérent et exploitable. Cette transparence pédagogique permet de mieux apprécier la sophistication algorithmique qui se cache derrière une simple ligne dans l’historique de détection.
De la succession d’images à la narration du trafic
Le suivi inter-images avec correspondance IoU et réassociation temporelle est l’un de ces composants invisibles qui définissent silencieusement la qualité d’une application de reconnaissance de plaques. Sans lui, SignalPlate produirait une cascade d’alertes redondantes, des historiques pollués de doublons et des annotations dashcam clignotantes. Avec lui, chaque véhicule devient une entité narrative cohérente, suivie fidèlement de son entrée à sa sortie du champ, avec son numéro de plaque confirmé par vote et son histoire visuelle préservée à travers les occultations.
Cette transformation d’un flux d’images brutes en une narration structurée du trafic est ce qui distingue une véritable application de surveillance automobile d’un simple détecteur de plaques. Et c’est cette qualité narrative qui rend possible toutes les fonctionnalités de haut niveau — le mode Gardien intelligent, les webhooks domotiques pertinents, la dashcam aux annotations stables, le vote de consensus fiable. Le suivi inter-images n’est pas une fonctionnalité parmi d’autres : c’est la colonne vertébrale qui tient debout l’ensemble de l’architecture, transformant une succession d’instantanés en une vision continue et intelligente du monde automobile qui vous entoure.
Laisser un commentaire