Brevet FR2813419A1 — publié le 20020301

PROCEDE POUR LA DETERMINATION D'UN RECALAGE ENTRE DEUX IMAGES D'UNE MEME SCENE OBTENUES AU MOYEN DE DEUX SENSEURS DIFFERENTS DOMAINE GENERAL DE L'INVENTION ET ETAT DE LA TECHNIQUE L'invention est relative au recalage de deux images obtenues pour une même scène au moyen de deux senseurs différents, et notamment au recalage de deux images obtenues à partir de deux senseurs visualisant une même scène dans des plages de longueurs d'onde différentes. Un exemple d'application de l'invention est ainsi le recalage l'une sur l'autre de deux images obtenues à partir des voies TV et infrarouge d'un même viseur monté par exemple sur un char, un hélicoptère ou tout autre véhicule. Les conditions d'utilisation de tels viseurs, et notamment les vibrations mécaniques intenses et les variations de température auxquelles ils sont soumis, sont susceptibles de détériorer de façon importante l'alignement et le centrage des axes de visée de leurs senseurs. Classiquement, l'harmonisation des différents senseurs d'un viseur, c'est à dire le maintien de l'alignement et du centrage sur un même point de leurs axes de visée, s'effectue principalement de façon opto-mécanique, en utilisant des réticules et des invariants optiques et en agissant de façon mécanique sur l'orientation et/ou la position des senseurs. Cette technique présente l'inconvénient de nécessiter l'utilisation de moyens onéreux (sources de lumière, pièces nombreuses, matériaux chers), d'un volume et d'un poids non négligeable. PRSENTATION DE L'INVENTION Un but de l'invention est de proposer une solution qui permette un recalage d'une grande précision et qui ne présente pas les inconvénients des techniques d'harmonisation connues dans l'état de la technique antérieur. L'invention propose à cet effet un procédé de traitement numérique d'images pour la détermination d'un recalage entre deux images obtenues pour une même scène au moyen de deux senseurs différents, qui comporte les étapes consistant à - isoler des contours caractéristiques dans les deux images ; - les vectoriser pour en déduire un ensemble de segments , - mettre en oeuvre un traitement de sélection apte à associer à chaque segment de l'une des deux images un segment de l'autre image, - calculer pour chaque paire de segments ainsi déterminée le recalage élémentaire à appliquer pour passer de l'un à l'autre de ces deux segments ; - calculer en fonction des différents recalages élémentaires ainsi déterminés pour les différentes paires de segments un recalage global à appliquer sur l'une des deux images. Un tel procédé est avantageusement complété par les différentes caractéristiques suivantes prises seules ou selon toutes leurs combinaisons techniquement possibles - pour mettre en #uvre le traitement de sélection, on définit pour chaque segment de la première image une zone autour de ce segment et on identifie les segments qui, pour la seconde image se trouvent dans cette même zone; - ladite zone est de forme rectangulaire ; - lorsque plusieurs segments sont identifiés comme se trouvant, pour la seconde image, dans la zone précitée, on met en couvre une sélection complémentaire fonction d'un ou plusieurs critères ; - un critère de sélection complémentaire consiste à choisir le segment dont la différence de longueur avec le segment dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette différence de longueurs est inférieure à un seuil donné ; - un critère de sélection complémentaire consiste à choisir le segment dont la distance entre son milieu et le milieu du segment, dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette distance est inférieure à un seuil donné ; - un critère de sélection complémentaire consiste à choisir le segment dont la différence d'angle avec le segment dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette différence est inférieure à un seuil donné ; - pour calculer le recalage global, on moyenne les recalages élémentaires en appliquant à ceux-ci une pondération par un coefficient de vraisemblance d'appariement qui est associé à la paire de segments considérée ; - le coefficient de vraisemblance d'une paire de segments est fonction du rapport entre les longueurs de ceux-ci ; - après détermination d'un recalage global, on recale les images ou les segments déterminés à partir de ces images et on détermine un nouveau recalage global ; - on itère ce calcul de recalage global jusqu'à ce que celui-ci soit inférieur à un seuil donné. L'invention concerne également un viseur comportant une caméra thermique et une caméra vidéo, caractérisé en ce qu'il comporte des moyens de traitement aptes à mettre en oeuvre sur les images relevées par l'une et l'autre de ces deux caméras un procédé du type précité. DESCRIPTION D'UN OU PLUSIEURS EXEMPLES DE MISE EN CFUVRE POSSIBLES D'autres caractéristiques, buts et avantages de l'invention apparaîtront à la lecture de la description détaillée qui va suivre, faite en référence aux dessins annexés sur lesquels les figures 1 et 2 illustrent différentes étapes d'un traitement conforme à un mode de mise en #uvre possible de l'invention. On se place dans la description qui suit dans le cas particulier d'un traitement de recalage sur des images relevées par deux caméras, l'une dans la bande visible, l'autre dans la bande thermique. Ces deux caméras sont par exemple montées sur un même viseur. Elles observent sensiblement la même scène, avec le cas échéant des champs angulaires différents. Dans une première étape (étape 1), les images numériques acquises, référencées respectivement par 10a et 10b, sont filtrées de façon a atténuer les éventuels bruits de perturbation et à rendre similaires les résolutions des deux images. Lorsque c'est effectivement le cas, le filtrage met en ceuvre un regroupement des pixels de l'image vidéo, de façon à disposer de résolutions similaires dans les deux images. A la suite de ce prétraitement, les images 10a et 10b sont traitées de la façon suivante. Dans une première étape (étape 2), les deux images subissent un traitement de mise en valeur des contours des différents éléments apparaissant sur ces images. Ce traitement est réalisé au moyen d'un opérateur qui met en #uvre une différentiation sur les pixels voisins (algorithme de type Prewitt ou Sobel), suivi par une comparaison à une valeur seuil qui permet de ne retenir que les lignes de l'image qui correspondent à un seuil de clarté sur l'image traitée. La valeur de seuil utilisée est ajustée au moyen d'une boucle d'asservissement destinée à faire ressortir sur les images, à l'issue des étapes 3 et 4 qui vont être décrites ci-après, un nombre de lignes ou de segments suffisamment grand pour permettre le traitement statistique mis en oeuvre dans l'étape 6 (également décrite ci-après). Les images alors obtenues par ce traitement de mise en valeur des contours sont des images binarisées (contour blanc sur fond noir ou l'inverse), qui sont traitées en appliquant successivement des opérateurs de dilatation, d'érosion, d'agglomération des contours proches, et de filtrage médian, de sorte que les principaux contours des images ressortent, à l'issue de ce traitement, en étant lissés et plus francs, les petits contours les moins significatifs étant agrégés aux plus importants. Puis, on met en oeuvre un traitement de squelettisation (étape 3) consistant en une réduction de la largeur des lignes, par exemple jusqu'à la largeur minimale d'un pixel. Les contours ainsi traités sont ensuite vectorisés (étape 4), c'est-à-dire qu'ils sont remplacés par une série de segments rectilignes 20a et 20b, chaque segment étant caractérisé par un bipoint (coordonnées de ses points d'extrémités), par sa longueur et son angle par rapport à l'axe des abscisses. Cette vectorisation est en outre complétée par une fusion des segments en fonction des critères de proximité angulaire et spatiale, afin de réduire le nombre de segments sans altérer la qualité de la modélisation. Après, le cas échéant, une remise à l'échelle des images (puisque celles- ci ne sont pas nécessairement initialement à la même échelle), on met en oeuvre un traitement permettant un appariement des segments des deux images (étape 5). Ce traitement met en oeuvre les différentes phases représentées sur la figure 2. Chaque segment 20a est associé à une zone 25a qui est centrée sur ledit segment et qui englobe celui-ci (étape 5a). Cette zone 25a est avantageusement une zone rectangulaire, dont les côtés sont parallèles aux côtés de l'image. Dans le cas d'une image de 800 x 600 pixels, elle est par exemple de dimensions minimales 40 x 30 pixels (ce qui correspond à un décalage maximal de 5%), les dimensions de la zone 25a pouvant toutefois être ajustées en fonction des dimensions du segment 20a. La zone 25a ainsi définie est ensuite utilisée dans l'autre image, c'est-à- dire dans l'image 10b, comme une zone dans laquelle on va rechercher les segments susceptibles d'être appariés au segment 20a de l'image 10a. Plus précisément, on définit dans l'image 10b une zone 25b qui est l'homologue de la zone 25a et qui permet de faire, dans l'image 10b, une première sélection des segments 20b qui sont suffisamment proches du segment 20a de l'image 10a (étape 5b). Puis on applique sur les segments de l'image 10b ainsi présélectionnés une seconde sélection qui met en oeuvre un ou plusieurs critères tels que - choix du segment dont la différence de longueur avec le segment 20a dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette différence de longueurs est inférieure à un seuil donné ; - choix du segment dont la distance entre son milieu et le milieu du segment 20a dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette distance est inférieure à un seuil donné ; - choix du segment dont la différence d'angle avec le segment 20a dont on recherche le segment homologue est la plus petite ou des segments pour lesquels cette différence est inférieure à un seuil donné. (Sur la figure 2, les étapes 5c et 5d schématisent le cas où plusieurs critères de sélections successifs sont utilisés). A l'issue des différentes phases de ce traitement, on a déterminé pour chaque segment 20a de l'image 10a un segment 20b que l'on peut considérer comme son homologue dans l'image 10b. On détermine alors pour chaque paire de segments ainsi définie le vecteur de recalage élémentaire qui permet de passer du segment 20a de ladite paire au segment 20b qui est son homologue dans l'image 10b. Ce vecteur de recalage est déterminé comme le vecteur entre les points milieux des deux segments. A l'issue des différents traitements de l'étape 5 qui viennent d'être décrits, on met en oeuvre dans une étape 6 un calcul statistique sur l'ensemble des vecteurs de décalages ainsi déterminés. Plus précisément, on détermine un recalage statistique à appliquer en faisant la moyenne des vecteurs de décalage élémentaires, chaque vecteur de décalage élémentaire étant pondéré dans cette moyenne par un coefficient de vraisemblance d'appariement associé à la paire de segments considérée. Le coefficient de vraisemblance d'une paire est un coefficient caractérisant un niveau de similitude géométrique entre les deux segments de ladite paire. II est par exemple égal au rapport entre la longueur la plus petite et la longueur la plus grande des deux segments de la paire. L'algorithme applique ensuite le recalage ainsi calculé aux segments obtenus pour l'image 10a à l'issue de l'étape 4. On met alors en ceuvre avec l'image 10b et la nouvelle image 10a les différentes phases de traitement de l'étape 5, puis on recalcule un nouveau recalage statistique. Ce traitement est réitéré jusqu'à ce que le vecteur de recalage soit suffisamment petit (comparaison de sa longueur à un seuil donné, qui est par exemple choisi égal à la largeur d'un pixel). On notera que la réitération du traitement avec chaque nouveau recalage permet d'éliminer les paires de segments associés dont l'éloignement était en discordance avec le résultat obtenu au recalage précédent, et donc d'améliorer la finesse du recalage suivant. Avec le traitement qui vient d'être décrit, on obtient une valeur de recalage final (sommes des différents vecteurs de recalage calculés à chaque itération) qui peut être utilisé pour recaler soit électron iquement, soit mécaniquement les images brutes par la voie visible et la voie thermique. Un tel recalage peut notamment être réalisé de façon unitaire, par exemple par une intervention mécanique lors de la fabrication du viseur. Il peut également être réalisé au cours du fonctionnement du viseur grâce à une carte à microprocesseur qui est intégrée à l'électronique de celui-ci et qui met en #uvre, de façon continue ou commandée sur les images relevées par les deux caméras du viseur, une détermination de recalage selon les étapes qui viennent d'être exposées, puis un recalage électronique. De nombreuses variantes de mises en oeuvre autres que celle qui vient d'être décrite, sont bien entendu envisageables. Notamment, il peut être prévu de diminuer automatiquement les dimensions de la zone de recherche 25a au fur et à mesure des itérations. Plusieurs variantes peuvent à cet effet être envisagées. Dans une première variante, on choisit la largeur de la fenêtre rectangulaire qui constitue la zone de recherche 25a comme étant égale à a.Ax+b et la hauteur de la fenêtre égale à a'.Dy+b', où Ax et oy sont les recalages, horizontal et vertical, calculés lors de la boucle (itération) précédente, et où a, a', b, b' sont des constantes. Cette relation fait tendre la taille de la fenêtre vers une valeur minimale de bxb' pixels. Dans une autre variante, la largeur de la fenêtre 25a de rang n est égale à la largeur de la fenêtre au rang n-1 divisée par la racine carrée de n (idem pour la hauteur). Par ailleurs, dans d'autres modes de mise en oeuvre possibles, les étapes 1 et 2 correspondant au traitement initial de l'image brute (isolement des contours, différentiation, seuillage, dilatation, érosion, filtrage médian, squelettisation) sont remises en oeuvre à chaque itération. Ceci permet d'augmenter le nombre de segments caractéristiques pris en compte à chaque itération et donc la précision du recalage. REVENDICATIONS 1. Procédé pour la détermination d'un recalage entre deux images obtenues pour une même scène au moyen de deux senseurs différents, caractérisé en ce qu'il comporte les étapes consistant à - isoler des contours caractéristiques (20a,20b) dans les deux images (10a,10b) ; - les vectoriser pour en déduire un ensemble de segments , - mettre en oeuvre un traitement de sélection apte à associer à chaque segment (20a) de l'une des deux images (10a) un segment de l'autre image (10b), - calculer pour chaque paire de segments (20a,20b) ainsi déterminée le recalage élémentaire à appliquer pour passer de l'un à l'autre de ces deux segments ; - calculer en fonction des différents recalages élémentaires ainsi déterminés pour les différentes paires de segments un recalage global à appliquer sur l'une des deux images (1 Oa,1 Ob). 2. Procédé selon la revendication 1, caractérisé en ce que pour mettre en ceuvre le traitement de sélection, on définit pour chaque segment (20a) de la première image (10a) une zone (25a) autour de ce segment et on identifie les segments (20b) qui, pour la seconde image (10b) se trouvent dans cette même zone (25b). 3. Procédé selon la revendication 2, caractérisé en ce que ladite zone est de forme rectangulaire. 4. Procédé selon l'une des revendications 2 et 3, caractérisé en ce que lorsque plusieurs segments de la seconde image sont identifiés comme se trouvant dans la zone, on met en oeuvre une sélection complémentaire fonction d'un ou plusieurs critères . 5. Procédé selon la revendication 4, caractérisé en ce qu'un critère de sélection complémentaire consiste à choisir le segment dont la différence de longueur avec le segment (20a) dont on recherche le segment homologue est la plus petite ou à choisir des segments pour lesquels cette différence de longueurs est inférieure à un seuil donné. 6. Procédé selon la revendication 4, caractérisé en ce qu'un critère de sélection complémentaire consiste à choisir le segment dont la distance entre son milieu et le milieu du segment (20a) dont on recherche le segment homologue est la plus petite ou à choisir des segments pour lesquels cette distance est inférieure à un seuil donné. 7. Procédé selon la revendication 4, caractérisé en ce qu'un critère de sélection complémentaire consiste à choisir le segment dont la différence d'angle avec le segment (20a) dont on recherche le segment homologue est la plus petite ou à choisir des segments pour lesquels cette différence est inférieure à un seuil donné. 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que pour calculer le recalage global, on moyenne les recalages élémentaires en appliquant à ceux-ci une pondération par un coefficient de vraisemblance d'appariement qui est associé à la paire de segments considérée. 9. Procédé selon la revendication 8, caractérisé en ce que le coefficient de vraisemblance d'une paire de segments est fonction du rapport entre les longueurs de ceux-ci. 10. Procédé selon l'une des revendications précédentes, caractérisé en ce que, après détermination d'un recalage global, on recale les images ou les segments déterminés à partir de ces images et on détermine un nouveau recalage global. 11. Procédé selon la revendication 10, caractérisé en ce qu'on itère ce calcul de recalage global jusqu'à ce que celui-ci soit inférieur à un seuil donné. 12. Procédé pour la détermination d'un recalage, l'une par rapport à l'autre, de deux images obtenues pour une même scène au moyen d'une caméra thermique et d'une caméra vidéo, caractérisé en ce qu'on met en couvre le procédé selon l'une des revendications précédentes. 13. Viseur comportant une caméra thermique et une caméra visible, caractérisé en ce qu'il comporte des moyens de traitement aptes à mettre en couvre sur les images relevées par l'une et l'autre de ces deux caméras un procédé selon l'une des revendications précédentes.