Brevet FR2931006A1 — publié le 20091113

SYSTÈME ET PROCÉDÉ DE RECONNAISSANCE VISUELLE La présente invention porte sur le domaine de la vision artificielle et, plus particulièrement, sur un système et sur un procédé de reconnaissance visuelle destinés à être utilisés dans diverses applications. La vision artificielle est généralement associée à la théorie et à la technologie utilisée pour construire des systèmes artificiels qui obtiennent des informations à partir d'images ou de données multidimensionnelles. Tel qu'il est utilisé ici, le terme "information" signifie n'importe quelle donnée sur laquelle on peut se baser complètement et/ou partiellement pour prendre une décision. On peut citer comme applications exemplaires de la vision artificielle : la reconnaissance visuelle d'objets et l'interprétation de scènes, particulièrement pour le repérage d'images, l'indexation vidéo, la commande de processus (par exemple la commande d'un robot ou d'un véhicule autonome tel qu'un véhicule aérien/terrestre/marin sans pilote), la détection d'évènements (pour la surveillance visuelle par exemple), l'organisation de l'information (par exemple pour l'indexation de bases de données d'images et de séquences d'images), la recherche d'images sur Internet (par exemple la recherche d'une image similaire sur Internet), la modélisation d'objets ou d'environnements (par exemple l'analyse d'images médicales ou la modélisation topographique), l'interaction (par exemple l'introduction dans un dispositif en vue d'une interaction humain- ordinateur), etc. Un objectif de la vision artificielle est de faire un ordinateur "qui voit" réellement tout comme les êtres humains. La compréhension du contenu des images et des vidéos de tous les jours est un des défis fondamentaux de la vision artificielle. Afin de faire un ordinateur "qui voit" dans un environnement sans limites, il est probable qu'une quantité extraordinaire de puissance de calcul, peut-être de l'ordre de 1015 opérations par seconde, soit nécessaire. Même si une telle vitesse était possible dans un système de vision artificielle commercial, il serait difficile d'effectuer des recherches visuelles rapides dans des environnements naturels sans limites. Afin de rendre les tâches de recherche et de reconnaissance résolubles dans la vision artificielle commerciale, les concepteurs limitent généralement la complexité visuelle de la tâche. Cela peut être fait de diverses façons. Par exemple, le système de vision peut être établi de façon à voir et à reconnaître seulement un objet ou une petite classe d'objets. Deuxièmement, la présentation (position, orientation, taille, vue etc.) de ces objets est strictement contrôlée. Ainsi, la variabilité de l'objet est limitée jusqu'au point où la grande majorité des variables sont éliminées et la recherche peut être mise en oeuvre moyennant un coût raisonnable aussi bien en temps de calcul qu'en argent. Les systèmes de vision artificielle n'ont généralement pas les connaissances nécessaires pour limiter et interpréter une recherche visuelle générale (par exemple recherches effectuées dans un environnement non contrôlé). Par conséquent la recherche pratique par vision artificielle nécessite que le concepteur limite radicalement ce que le système de vision voit et ajoute des connaissances a priori sur ce qu'il verra de façon à ce qu'il puisse interpréter le résultat. Ainsi, un désavantage majeur pour la vision artificielle dans les applications du monde réel est le temps, l'argent et les connaissances spécialisées nécessaires pour que de telles applications soient exécutées de manière adéquate. L'évolution de la vision artificielle au cours des vingt dernières années a été stimulée par les améliorations apportées au matériel et aux algorithmes. Une variété de procédés de vision artificielle ont été développés pour la détection des images (désignée aussi ci-après 'reconnaissance des formes'). Ces techniques comprennent, par exemple, l'utilisation d'images binaires pour représenter les images à niveaux de gris, la corrélation en niveaux de gris normalisés, l'analyse des nuées, la recherche et la reconnaissance basées sur la géométrie, la recherche basée sur les contours, la reconnaissance basée sur la constellation invariante affine, la détection des coins, la détection des icônes saillantes, la transformée de propriétés invariantes à l'échelle, etc. Il existe un besoin important dans le domaine de la vision artificielle de reconnaître les objets dans une image ou dans une séquence d'images d'une manière similaire à la vision des êtres humains. Par exemple, dans un aéroport, un véhicule sans pilote a besoin de reconnaître les autres véhicules et les obstacles afin de pouvoir les éviter et/ou manoeuvrer dans l'aéroport. Dans un véhicule sans pilote ou dans une autre application de vision robotique, l'application robotique a généralement besoin de "voir" le chemin et de naviguer de manière autonome ou d'atterrir de manière autonome. Dans la reconnaissance visuelle, il est difficile d'obtenir l'invariance à la présentation (position, orientation, distance (échelle) et perspective), à l'éclairage, à l'occlusion et au fond des objets. Les aspects de la présente invention fournissent une invariance excellente à la présentation, à l'éclairage, à l'occlusion et au fond des objets et une généralisation excellente pour la reconnaissance réelle des objets. Le cerveau humain traite l'information visuelle associée aux objets totalement indépendamment de la position, de l'orientation, de la distance (échelle) et de la perspective. Par exemple, si un être humain voit une "canette de boisson gazeuse", il peut la reconnaître quelle que soit la distance et/ou l'orientation (par exemple la distance de la canette, sa rotation, si elle est renversée, inclinée etc.) Le cerveau "normalise" essentiellement la vue. Les êtres humains sont capables d'apprendre un grand nombre d'objets et de repérer facilement les objets appris. Les aspects de la présente invention permettent d'apprendre virtuellement un nombre illimité d'objets et de reconnaître n'importe lequel de ces objets appris, quelle que soit la présentation de l'objet. Cela est analogue à la capacité de reconnaissance visuelle humaine. Par exemple, des aspects de l'invention permettent la reconnaissance de centaines d'objets appris très rapidement (par exemple en moins d'une seconde) et il n'y a fondamentalement pas de limites à l'apprentissage et à la reconnaissance de millions d'objets. Cette capacité vient de la possibilité d'extraire les mêmes icônes (parcelles d'image) d'une image d'un objet quelle que soit la distance, la rotation, la présentation de cet objet par rapport à la personne qui le voit et/ou au dispositif en train d'acquérir l'image ou la série d'images. Les aspects de l'invention se rapportent à l'extraction de points uniques (par exemple les points de coordonnées x et y) dans une image. Chacun de ces points uniques à sa propre échelle unique (par exemple taille) et sa propre orientation unique qui est liée directement à la présentation de l'objet. Le fait que l'information sur l'échelle et l'orientation soit mesurée par point unique permet une reconnaissance visuelle qui est complètement invariante à la présentation. Autrement dit, lorsqu'un objet est plus près, plus loin, tourné, renversé, et/ou incliné, ces points uniques ont des emplacements relatifs similaires par rapport à l'objet, une échelle unique qui est liée à la proximité/distance de l'objet et des valeurs de rotation qui sont liées directement à la rotation planaire de l'objet. Essentiellement, ces points uniques "normalisent la vue" de l'objet. Une icône (parcelle d'image) d'une image d'un objet est extraite de chacun de ces points uniques. La taille de l'icône correspond à l'échelle du point unique. Et l'angle de l'icône est l'angle du point unique. Après l'extraction des diverses icônes, un objet devient un groupe d'icônes. Chacune de ces icônes à sa rotation éliminée par l'angle de l'icône et elle est redimensionnée de façon à pouvoir être comparée (mesure de distance telle que la différence absolue) individuellement avec une autre icône (ce qui est désigné aussi dans ce mémoire descriptif par le terme "normalisé"). II a été déterminé que les icônes étaient virtuellement identiques, quelle que soit la présentation de l'objet. Autrement dit, les icônes (parcelles d'image) sont les mêmes, que l'objet soit près ou loin, tourné, incliné et/ou renversé. Une des propriétés uniques de ces icônes est leur stabilité relativement à l'échelle et à l'angle. La comparaison d'une icône relativement à la similarité peut aussi comprendre une information de couleur. Généralement, lorsqu'on compare deux icônes, chaque icône peut aussi être normalisée en intensité. La recherche d'un objet dans une base de données d'images d'objets appris devient une recherche de vecteurs associés aux images des objets appris. Les techniques d'indexation sont une façon de représenter une image pour la recherche. Le calcul de la transformation géométrique entre un objet appris et un objet trouvé est effectué en calculant la transformation entre la position de l'icône apprise correspondante et la position de l'icône trouvée, comme cela est décrit ci-après. La matrice de transformation entre l'objet appris et l'objet trouvé est calculée en utilisant une matrice de perspective qui utilise les moindres carrés de toutes les positions des icônes correspondantes ou en choisissant deux ensembles de positions d'icônes quadruples parmi les objets appris et trouvés. En se basant sur des suppositions qu'un corps est rigide, chaque ensemble de quatre icônes peut calculer une matrice de perspective. De nombreux ensembles de quatre icônes donnent la même transformation, ce qui fournit une mesure robuste de concordance correcte, désignée aussi dans ce mémoire descriptif "redondance de mesure", comme décrit ci-après. Un aspect de la présente invention se rapporte à un procédé de reconnaissance visuelle d'au moins un objet dans une image, ce procédé comprenant : la fourniture d'une image sous format électronique, cette image comprenant au moins un objet à apprendre ; la production d'une information sur extremum associée à l'image par corrélation croisée avec au moins une structure sur au moins une partie de l'image, cette information sur extremum comprenant au moins un point de coordonnée associé à la corrélation croisée avec la structure sur l'image ; l'extraction d'au moins une icône de l'image, cette icône comprenant le point de coordonnée associé à l'information sur extremum ; la détermination d'un angle associé à l'icône ; la normalisation de l'icône à une taille fixe ; et le stockage de l'information sur l'icône sous une forme lisible par ordinateur, l'information sur l'icône comprenant des valeurs d'image associées à au moins une partie de l'icône ; le point de coordonnée associé à l'information sur extremum ; et l'angle associé à l' icône. Un autre aspect de l'invention se rapporte à un procédé pour faire concorder un objet appris avec un objet cible, ce procédé comprenant : la fourniture d'au moins un objet appris et d'au moins un objet cible, l'objet appris et l'objet cible ; l'extraction de points uniques de l'objet cible, les points uniques étant générés à partir de l'information sur extremum obtenue de l'image cible par corrélation croisée avec au moins une structure sur l'image cible ; l'extraction d'une icône de l'image cible correspondant à chacun des points uniques ; la détermination d'un angle associé à l' icône ; la normalisation de l'icône extraite ; et la détermination de si oui ou non l'icône extraite des images cibles correspond à un objet appris Un autre aspect de l'invention se rapporte à un programme stocké sur un support lisible par une machine qui est approprié pour être utilisé de façon à faire concorder un objet appris avec un objet cible, comme quoi, lorsque ce programme est chargé dans la mémoire d'un ordinateur associé et exécuté, il permet l'extraction de points uniques de l'objet cible, les points uniques étant générés à partir de l'information sur extremum obtenue de l'image cible par corrélation croisée avec au moins une structure sur l'image cible ; l'extraction d'une icône de l'image cible correspondant à chacun des points uniques ; la détermination d'un angle associé à l' icône ; la normalisation de l'icône extraite ; et la détermination de si oui ou non l'icône extraite des images cibles concorde avec l'objet appris. D'autres systèmes, dispositifs, procédés, caractéristiques et avantages de la présente invention seront compris de l'homme du métier lors de l'examen des dessins et de la description détaillée ci-après. Il convient de souligner que le terme "comprennent/comprenant", lorsqu'il est utilisé dans ce mémoire descriptif, est sensé spécifier la présence de caractéristiques, de nombres entiers, d'étapes ou de composants indiqués mais qu'il n'exclut pas la présence ou l'addition d'une ou de plusieurs autres caractéristiques, nombres entiers, étapes, composants ou groupes de ceux-ci. Les modes de réalisation de l'invention susmentionnés et d'autres modes de réalisation de l'invention sont décrits ci-après en référence aux dessins. Les composants dans les dessins ne sont pas nécessairement à l'échelle ; l'accent est mis plutôt sur l'illustration claire des principes de la présente invention. De même, les caractéristiques et les éléments illustrés sur un dessin peuvent être combinés à des caractéristiques et des éléments illustrés sur des dessins supplémentaires. De plus, sur les dessins, des numéros de référence similaires désignent des parties correspondantes sur toutes les vues multiples. Les figures 1A à 1D sont une illustration d'un exemple d'une structure et d'un procédé de corrélation selon des aspects de la présente invention. La figure 2 est une illustration d'un exemple d'une structure ayant diverses échelles selon un aspect de la présente invention. Les figures 3A à 3N illustrent les résultats de la corrélation et l'information sur extremum correspondante associée à ceux-ci selon des aspects de la présente invention. Les figures 4A et 4B illustrent des vecteurs d'angle d'icône selon des aspects de la présente invention. La figure 5 est une illustration d'exemples d'icônes normalisées 20 obtenues selon des aspects de la présente invention. Les figures 6A et 6B illustrent des exemples d'icônes selon des aspects de la présente invention. Les figures 7A et 7B illustrent des exemples d'icônes selon des aspects de la présente invention. 25 Les figures 8A à 8C illustrent des exemples de structures selon des aspects de la présente invention. Les figures 9 à 13 sont des exemples de procédés selon des aspects de la présente invention. Les figures 14A et 14B illustrent des exemples d'objets ayant 30 différentes échelles et orientations selon des aspects de la présente invention. La figure 15 est un schéma fonctionnel d'un système selon des aspects de la présente invention. La présente invention se rapporte à un système et à un procédé pour l'identification des formes d'une image apprise (ou d'une forme apprise) dans une image cible. Des points uniques et stables (par exemple les points de coordonnées x et y) sont extraits d'une image d'un objet, quelle que soit la présentation de l'objet. Le caractère unique des points extraits vient du fait que ces points ont la même position relative dans l'objet, quelle que soit la distance, l'orientation (par exemple renversement, inclinaison, rotation etc.) et l'éclairage de l'objet par rapport à la personne ou au dispositif qui le voit. Autrement dit, les points extraits sont invariants à la présentation de l'objet. Les premiers algorithmes de vision artificielle utilisaient généralement un procédé de soustraction d'image, désigné aussi 'golden template matching' (concordance avec modèle de référence), comme procédé primitif de reconnaissance. La soustraction d'image est une forme de mesure de distance entre deux images. Pour que le procédé de soustraction d'image marche, l'objet dans l'image apprise doit être presque identique à l'objet dans l'image (la scène) cible. Par exemple, l'objet doit généralement être dans la même position, à la même échelle, au même angle planaire etc. que l'objet appris. Tout changement d'emplacement ou toute autre transformation produirait un résultat faux. De telles conditions étaient généralement nécessaires parce que le procédé de soustraction soustrayait simplement des valeurs de pixels ayant des coordonnées dans une image avec des valeurs de pixels situées à des coordonnées correspondantes dans une autre image. Si un procédé peut trouver des régions dans une image d'objet qui sont les mêmes quelle que soit la présentation de l'objet, il est concevable que le concept du modèle de référence puisse être utilisé pour reconnaître des régions de cet objet, ce qui pourrait résulter en la reconnaissance de l'objet tout entier. Les procédés antérieurs pour trouver ces points uniques et les icônes associées produisaient des points instables en regard de leur position, leur échelle instable, et/ou leur angle. Les procédés antérieurs produisaient quelques valeurs concordantes et une majorité de valeurs discordantes, ce qui rendait généralement problématique la reconnaissance des formes. Les chercheurs universitaires ont mené des expérimentations avec plusieurs types de ces points uniques. Comme exemples de quelques-uns des types connus de ces points, on peut citer le détecteur Harris-Corner, Harris-Laplace, Laplacien de Gaussienne et SIFT (différence de Gaussien). Généralement, ces détecteurs manquent de stabilité dans la position, l'échelle et l'angle, ce qui entraîne divers problèmes pendant le processus de reconnaissance. Par exemple, ces procédés antérieurs produisent des centaines et/ou des milliers de points uniques et il est possible que seulement quelques-uns de ces points survivent d'une position d'objet à une autre pour faciliter la reconnaissance de formes. Un point invariant dans une image a généralement besoin d'avoir la caractéristique d'extremum pour quelque mesure. Par exemple, dans un signal dimensionnel, tel qu'une parabole, le point maximum d'une parabole est un point invariant quels que soient les paramètres de la parabole (par exemple que la parabole soit large, étroite, déplacée ou tournée). En se reportant aux figures 1A à ID, un procédé exemplaire 10 d'extraction de points uniques et très stables (par exemple les points de coordonnées x et y) est illustré. Ces points sont très stables en matière de position, d'échelle et d'angle. En conséquence, ces points sont désignés dans ce mémoire comme des points invariants en échelle et en rotation (SRI) ou (SRIP). Une façon d'extraire les points SRI est par corrélation croisée de l'image de l'objet avec une structure 12. La corrélation croisée est généralement une mesure de la similarité des deux signaux. La corrélation croisée est utilisée couramment pour trouver des caractéristiques dans un signal inconnu en le comparant à un signal connu. C'est une fonction du temps relatif entre les signaux et on l'appelle parfois le produit scalaire glissant. La structure 12 peut être de forme circulaire, conique ou gaussienne. Dans un mode de réalisation, la structure 12 est une structure de forme conique. En se reportant à la figure 1A, la structure 12 de forme conique est illustrée dans deux dimensions. La structure de forme conique 12 a un angle de cône e qui correspond généralement à la hauteur (h) de la structure 12. Par exemple, les points SRI ont généralement des propriétés très intéressantes qui facilitent la reconnaissance. En se basant sur le score de corrélation entre la structure de forme conique (ou toute autre structure désirée) et l'image : un score de corrélation proche de 1,0 identifie des structures rondes ; un score de corrélation d'environ 0,5 identifie des structures à forme de bande, et un score de corrélation d'environ 0,7 identifie une structure à forme d'extrémité de bande. L'homme du métier appréciera facilement que la forme de la structure choisie peut correspondre à un changement du score de corrélation pour la structure identifiée. En se reportant à la figure 1B, une "plaque d'acier" 14 est illustrée. Cette plaque d'acier 14 a des trous 16 de tailles diverses le long d'une surface 18. Cette plaque d'acier est analogue à l'image de l'objet ou à l'image de la scène. On essaie d"'insérer" la structure 12 dans la plaque d'acier 14 d'une manière numérisée (par exemple un pixel après un autre pixel). Comme cela est montré sur la figure 1C, la structure de forme conique 12 est illustrée comme étant insérée dans une "plaque d'acier" 14, pour les besoins d'illustration. Un objectif est de trouver les trous (ou une autre structure significative) en enfonçant (d'une manière numérisée) (c'est-à-dire pixel par pixel et/ou groupe de pixels par groupe de pixels) la structure 12 (par exemple une cheville conique) dans la plaque d'acier. La structure 12 (par exemple la forme conique est l'image de corrélation croisée connue) est utilisée pour produire les points uniques. Si un point sur la surface 18 ne contient pas de trou, la cheville ne pénètre pas dans la plaque d'acier 14, ce qui donne un faible score de concordance de corrélation (par exemple, voir "D" sur la figure 1C). En se reportant à la figure 1C, si la structure 12 est insérée (ou enfoncée) dans un trou, le cône pénètre sur une certaine distance suivant la taille conique de la cheville et la taille du trou dans la plaque. Par exemple, en "A", la structure 12 pénètre dans le trou 16 environ jusqu'à mi-chemin. En "C", la structure 12, qui a essentiellement la même taille que la structure en "A", pénètre presque complètement dans le trou. En conséquence, "C" a une corrélation plus élevée que "A". Notez aussi qu'en "B", une plus grande structure 12 que celle utilisée en "A" et "C" est illustrée. La plus grande structure pénètre approximativement 80% dans le trou 16 en "B". Si la structure de la même taille que celle utilisée en "A" et en "C" était insérée dans le trou en "B", cette structure heurterait le fond sans toucher aucune des parois associées au trou 16, et n'aurait donc pas de forte corrélation, aucun extremum. Dans un mode de réalisation, il est souhaitable de faire la corrélation croisée d'une image avec des structures ayant une variété d'échelles afin d'identifier la totalité ou au moins une partie de l'information sur extremum disponible sur l'image. En se reportant à la figure 1 D, la quantité de pénétration du cône (par exemple le score de concordance de corrélation) est liée à la structure, à l'angle du cône et à la taille du trou ou de la structure. Par exemple, on peut voir cela comme une analyse de fréquence bidimensionnelle d'une image. Le résultat de la corrélation croisée d'une structure de forme conique avec l'image à une échelle différente est un ensemble de points de coordonnées (x, y) et un rayon unique (échelle) pour chacun de ces points. La valeur du rayon est liée directement à l'échelle de l'image et à la taille de la structure autour du point de coordonnée. La figure 2 illustre la structure de forme conique 12 dans une image bidimensionnelle pour six échelles 21 différentes. La taille de l'échelle peut être n'importe quelle taille désirable pour chacune des diverses structures utilisées pour identifier les points SRI. Les points SRI pour chacune des diverses tailles de structure varieront généralement lorsqu'ils sont mis en corrélation croisée avec une image. Le groupe de points SRI pour toutes les tailles de structure est généralement utilisé pour définir l'objet, comme cela est décrit ci-après. Par exemple, la taille de l'échelle de la structure 12 peut varier entre un contact ponctuel (par exemple 5 x 5 pixels) jusqu'à la taille de l'image et/ou de l'objet en question. Les gradations 22 de changement de couleur correspondent à la hauteur de la structure de forme conique 12. Les figures 3A à 3G illustrent un exemple d'image qui a été mise en corrélation croisée avec une structure 12 d'une taille de cône (échelle) variable (par exemple les structures coniques illustrées sur les figures 1 et 2). L'image exemplaire peut être n'importe quelle image numérique, une partie d'un objet ou d'une image, une représentation électronique d'une image, etc. Comme cela est montré sur les figures 3A à 3G, l'image est une image numérique d'un objet. Il peut être souhaitable pour une machine de déterminer l'emplacement et/ou l'orientation précise d'un ou de plusieurs éléments (ou formes) dans cette scène. Cette information peut être utilisée de n'importe quelle manière désirable. Par exemple, l'information peut être utilisée de façon à ce qu'un contrôleur, un dispositif ou un autre dispositif électronique puisse interagir correctement avec un logiciel qui est capable de détecter des objets optiques afin de faciliter le contrôle, la localisation, l'assemblage et/ou le traitement de l'information associée à l'élément. Une fois que l'image a été mise en corrélation croisée, un ensemble résultant de points uniques (désignés aussi dans ce mémoire comme les points de coordonnées x et y) et des valeurs de rayon (échelle) pour chacun des points sont obtenus, comme cela est illustré par les cercles blancs dans chacune des images. Comme cela a été indiqué plus haut, n'importe quelle structure 12 peut être utilisée selon les aspects de la présente invention. Par exemple, un Gaussien bidimensionnel a fourni des résultats similaires à la structure de forme conique. La structure de forme conique 12 est utilisée pour trouver l'extremum dans l'objet, quelle que soit l'échelle. Cela fournit une localisation relative robuste et fiable (par exemple les positions des coordonnées x et y dans l'image), et l'échelle. Une fois que l'image de corrélation est calculée, un détecteur de crêtes est appliqué pour trouver la coordonnée des crêtes sous forme de sous-pixels, comme cela est illustré sur les figures 3H à 3N. La figure 3H identifie l'extremum correspondant à la figure 3A ; la figure 31 identifie l'extremum correspondant à la figure 3B ; la figure 3J identifie l'extremum correspondant à la figure 3C ; la figure 3K identifie l'extremum correspondant à la figure 3E ; la figure 3L identifie l'extremum correspondant à la figure 3D ; la figure 3M identifie l'extremum correspondant à la figure 3F ; et la figure 3N identifie l'extremum correspondant à la figure 3G. La structure de forme conique 12 est un détecteur d'extremum invariant en rotation pour une gamme d'échelles. De plus, la structure de forme conique 12 offre aussi une localisation de position supérieure quelle que soit l'échelle. Une fois que les points uniques (par exemple les valeurs de coordonnées) sont déterminés, une icône (parcelle d'image) est extraite des points associés à chacune de ces coordonnées. La taille de l'icône est proportionnelle au rayon (échelle) de la structure de forme conique ayant une valeur de concordance de corrélation croisée élevée. L'angle de l'icône 50 est calculé à partir d'un vecteur entre la position de point unique 54 et la position centroïde de niveau des gris 52 de l'icône à l'échelle, comme cela est montré sur les figures 4A et 4B. Comme cela est montré sur la figure 4A, le calcul de l'angle de l'icône est basé sur le centroïde de niveau des gris en utilisant l'image brute de l'icône, par exemple. Le calcul de l'angle de l'icône peut aussi être basé sur l'image détectée par les bords de l'icône, comme cela est montré sur la figure 4B. L'angle de l'icône est le vecteur depuis le centre de l'icône jusqu'au centroïde de niveau des gris. Le centroïde de niveau des gris peut aussi être appliqué sur l'image brute (par exemple comme la détection de bords Sobel ou Canny). Une fois extraite, chacune est icônes est normalisée à une taille fixe, comme cela est montré sur la figure 5. La figure 5 illustre l'ensemble d'icônes extraites de l'image à chaque point de coordonnée pour chaque échelle associée à la structure. Par exemple, la figure 5 illustre une matrice d'icônes normalisée. L'objectif de la normalisation de ces icônes en une taille constante est d'être capable de les comparer avec d'autres icônes (pour trouver des icônes similaires dans la base de données d'icônes, et donc des objets similaires), en calculant simplement la différence entre les deux images comme dans le "golden template matching". Un autre procédé pour comparer ces icônes est de créer le vecteur descripteur puis de comparer ces descripteurs en utilisant la mesure de distance entre les vecteurs. Par exemple, l'icône de la figure 6A peut être décrite dans le format de vecteur descripteur comme : 6, 17, 22, 23, 16, 0, 0, 11, 3, 26, 25, 3, 0, 0, 20, 20, 6, 5, 4, 10, 5, 60, 0, 7, 6, 14, 4, 12, 9, 22, 12, 16. De même, l'icône de la figure 6B peut être décrite dans le format de vecteur descripteur comme : 13, 7, 21, 11, 4, 5, 24, 11, 0, 58, 38, 0, 0, 0, 2, 0, 0, 5, 20, 11, 4, 28, 28, 1, 7, 6, 0, 0, 0, 84, 1, 0. L'homme du métier comprendra facilement qu'il y a de nombreuses façons de calculer les descripteurs d'icône (par exemple histogramme d'angle de gradient, analyses de composante principale (PCA) etc.). Chaque objet appris peut être décrit par un ensemble d'icônes. Chaque icône comprend généralement une ou plusieurs valeurs, par exemple : position de coordonnées (x, y), une taille qui correspond à la taille de la structure de l'image de laquelle provient l'icône, et un angle. Par exemple, les figures 7A à 7C illustrent diverses icônes extraites d'une corrélation de structures ayant des tailles diverses. La relation spatiale de ces icônes est assurée par les contours de l'objet. Ces icônes peuvent être stockées dans n'importe quel dispositif de stockage électronique. Par exemple, ces icônes peuvent être stockées dans une base de données d'icônes qui comprend généralement un identificateur, qui est étiqueté et/ou associé autrement à un objet appris spécifique. Dans un autre mode de réalisation, un descripteur associé à chacune des icônes est stocké dans une base de données ou un autre support d'enregistrement de données approprié. Dans un autre mode de réalisation, les icônes peuvent aussi être extraites à des valeurs à échelle multiple qui produisent des icônes multiples par points uniques, contrairement à l'extraction d'icônes seulement à l'échelle de structure de forme conique. Par exemple, si l'échelle de structure de forme conique est 32 x 32 pixels, on extrait alors des icônes à 32 x 32 pixels et à 48 x 48 pixels, comme cela est illustré sur la figure 7C. Ce procédé garantit généralement une correspondance et une reconnaissance réelles à partir d'un très petit nombre d'icônes. En fait, dans de nombreuses situations, il est possible que seulement une icône unique soit nécessaire pour déterminer la reconnaissance de l'objet. Les figures 8A à 8C illustrent un processus d'extraction de points uniques d'une image. Sur la figure 8A, des points uniques sont extraits le long d'une région semblable à une bande avec un score de corrélation d'environ 0,5. La figure 8B illustre l'extrémité d'une bande et a un score de corrélation d'environ 0,7. La figure 8C illustre l'extraction de beaucoup d'objets ronds. Le score de corrélation avec les objets ronds est environ 1, indiquant que les objets ronds ont une corrélation élevée avec la structure (par exemple la structure de forme conique) sélectionnée pour la corrélation croisée. La figure 9 illustre un exemple de procédé exemplaire 100 pour extraire d'une image des icônes invariantes à l'échelle et à la rotation. Au bloc 102, une image d'un objet est fournie sous forme électronique. Cette image peut être dans n'importe quel format électronique approprié (par exemple JPEG, TIFF, PDF, bitmap, etc.). Au bloc 104, l'image d'un objet est mise en corrélation croisée avec une ou plusieurs structures 12 (par exemple des structures de forme conique), comme décrit plus haut. Au bloc 106, l'image de sortie de l'opération de corrélation croisée est obtenue pour chacune des structures de corrélation croisée. Au bloc 108, les valeurs de crête sont extraites pour chacune des structures de corrélation croisée. Au bloc 110, une liste de points de coordonnées par structure de corrélation croisée est obtenue est stockée dans une mémoire. La figure 10 illustre un exemple de procédé 120 pour extraire d'une image des icônes invariantes à l'échelle et à la rotation. Au bloc 122, une image d'un objet est fournie sous forme électronique. Au bloc 124, une liste de points de coordonnées par structure de corrélation croisée est fournie. Au bloc 126, l'angle de l'icône est généré pour chacune des icônes et stocké de manière appropriée pour être utilisé plus tard au bloc 128. Au bloc 130, les icônes sont alors normalisées par une mise à l'échelle appropriée, comme on le désire. Au bloc 132, les icônes sont stockées dans une mémoire ou dans un autre dispositif de stockage électronique. La figure 11 illustre un autre exemple de procédé 150 pour extraire d'une image des icônes invariantes à l'échelle et à la rotation. Au bloc 152, une image d'un objet est fournie sous forme électronique. Au bloc 154, des points invariants à l'échelle et à la rotation sont extraits à une échelle. Au bloc 156, une sous-échelle est calculée pour chaque icône. Un point extremum est généralement une crête à une échelle et à des échelles voisines. Par conséquent, il est possible de calculer la sous-échelle en prenant la valeur de crête à la "meilleure échelle" et à son échelle voisine. L'échelle d'une icône devient l'échelle de la structure de forme conique plus ou moins la sous-échelle. Un procédé bien connu est l'ajustement de parabole pour trouver sa crête en sous-position. Au bloc 158, l'icône pour chacune des coordonnées est calculée pour l'échelle. Au bloc 160, étant donné l'angle de l'icône et l'échelle pour chacune des coordonnées, on extrait les icônes de l'image. Au bloc 162, les icônes sont normalisées à une taille fixe. Au bloc 162, les blocs 154 à 160 sont répétés jusqu'à ce que toutes les icônes aient été extraites. Au bloc 164, une constante K d'icônes très stables et invariantes qui représentent l'objet est obtenue et peut être stockée dans une mémoire ou dans un autre dispositif de stockage approprié ou pompée dans une base de données d'indexation ou dans une table de hachage. Un exemple de procédé 200 pour apprendre un objet est illustré sur la figure 12. Au bloc 202, une image d'un objet est fournie sous forme électronique. Au bloc 204, un point de contour d'objet est extrait d'une image et échantillonné. On peut utiliser les points de contour pour la vérification d'hypothèses et pour vérifier la relation spatiale entre les coordonnées de points uniques. En général, les points uniques attirent l'attention et les points de contour vérifient les hypothèses. Des points échantillons venant des points de contour sont sélectionnés, ce qui fournit un processus de vérification rapide. Au bloc 206, les points SRI acquis de l'image et/ou de l'objet à apprendre sont utilisés pour extraire des icônes associées aux points SRI. Dans un mode de réalisation, chaque icône a ses coordonnées (x, y), sa taille (échelle) et son angle. Au bloc 208, un descripteur est créé pour chaque icône. En plus ou en variante, chaque icône peut aussi être étiquetée ou associée autrement avec un nom d'objet appris. Au bloc 210, des icônes similaires sont trouvées et étiquetées. Des icônes similaires sont généralement appropriées pour la reconnaissance, mais pas suffisamment uniques pour localiser l'objet à moins que la relation spatiale entre les icônes ne soit appliquée comme, par exemple, icône voisine la plus proche ; n voisines les plus proches ; voisine à gauche, en haut, en bas, à gauche ; etc. Des icônes similaires peuvent avoir des correspondances multiples. Les blocs 202-210 sont répétés pour chaque objet devant être appris. Une fois appris, un objet devient un groupe d'icônes (ou de leurs descripteurs) et la relation spatiale qui relie les icônes ensemble est un ensemble de points de contour d'objet. On peut aussi utiliser les coordonnées d'icônes pour détecter, déterminer et/ou vérifier des relations spéciales entre les icônes. L'utilisation de descripteurs présente divers avantages. Ces avantages comprennent, par exemple, le fait qu'ils permettent l'utilisation de techniques d'indexation pour le repérage rapide d'icônes similaires dans une base de données d'icônes, ce qui accélère le repérage d'objets similaires. Cette fonctionnalité est très désirable lors de la reconnaissance d'un ou de plusieurs objets dans une grande base de données d'objets. Pendant la phase de reconnaissance, un objet ou des objets multiples peuvent exister dans une image (image de scène) et un but est de reconnaître l'objet ou les objets multiples et de fournir les coordonnées x et y de chaque objet. Un procédé de reconnaissance exemplaire 250 est illustré sur la figure 13. Au bloc 252, une image ayant un ou plusieurs objets à identifier est fournie sous forme électronique. Au bloc 254, la phase de reconnaissance est initialisée. Au bloc 256, les points de contour sont extraits de l'image et les points SRI sont extraits de l'image. Au bloc 258, des icônes de l'image sont extraites à chacun des points uniques et normalisées, comme décrit plus haut. Au bloc 260, pour chaque icône extraite, une icône concordant le mieux est trouvée ou sinon est recherchée dans une base de données d'icônes en utilisant soit un procédé séquentiel si le nombre d'objets appris est petit, soit un procédé d'indexation si le nombre d'objets appris est grand. Au bloc 262, les objets candidats dans l'image sont identifiés et classés en se basant sur la qualité de la concordance et/ou le nombre de concordances. Au bloc 264, l'emplacement de l'objet ou des objets est déterminé. Au bloc 266, en se basant sur l'icône ou les icônes apprises d'un objet ou d'objets identifiés, des icônes correspondantes dans les icônes reconnues sont trouvées. Cela peut être accompli par divers procédés. Un exemple de procédé commence au bloc 268. Au bloc 268, toutes les icônes correspondantes sont utilisées pour calculer une transformation de perspective. Cela peut être fait en générant une ou plusieurs hypothèses. Ces hypothèses peuvent être générées de n'importe quelle manière désirée. Par exemple, toutes les icônes d'objet(s) appris peuvent être sélectionnées et comparées avec des icônes concordantes correspondantes. En utilisant un procédé de corrélation aux moindres carrés ou un autre procédé de corrélation, une transformée de perspective est générée entre les coordonnées des points uniques appris et les points concordants correspondants dans l'image de la scène. Un procédé de corrélation aux moindres carrés est généralement préféré parce qu'il peut y avoir quelques valeurs discordantes à ce moment-là. Au bloc 270, les points de contour appris échantillonnés des objets candidats sont transformés et superposés sur l'image de la scène pour la vérification. Un score de concordance entre le contour échantillonné et le contour de la scène est calculé. La transformation ayant la meilleure concordance de contours est sélectionnée. Au bloc 272, en utilisant la transformation de la meilleure concordance, tous les points uniques de l'objet appris sont transformés avec la transformée de perspective sur l'image. De plus, la distance entre ces points transformés et les points uniques des objets de la scène est calculée. Au bloc 274, toute icône correspondante discordante est enlevée et la transformée ayant la meilleure concordance est enregistrée pour être utilisée plus tard. Les blocs 270 à 274 sont répétés N fois, N étant le nombre de points d'icônes correspondants. Une fois que ce procédé a été appliqué N fois, la transformée ayant la meilleure concordance est enregistrée pour être utilisée plus tard. Un autre procédé pour obtenir une localisation précise d'une icône est illustré dans les blocs 280 à 286. En se reportant au bloc 280, pour chaque ensemble quadruple de points d'icône correspondants (par exemple coordonnées), une transformée de perspective est calculée en utilisant un procédé aux moindres carrés ou quelque autre procédé de corrélation. Au bloc 282, les points de contour de l'objet avec la transformée de perspective sont transformés, de manière similaire au bloc 270. Au bloc 284, les points de contour transformés sont transformés et superposés sur l'image pour vérifier la transformée, comme cela est décrit plus haut relativement au bloc 272. Au bloc 286, la transformée produisant la meilleure concordance est enregistrée et le processus est répété N fois (N étant le nombre d'ensembles quadruples). Les figures 14A et 14B illustrent des échantillons de points uniques qui sont invariants à la présentation. Par exemple, la figure 14A illustre un objet dans une image, l'image ayant été prise à une distance relativement proche de l'objet et/ou l'image ayant été zoomée "avant" autour de l'objet. La figure 14B illustre une image du même objet pris à une distance plus grande et/ou zoomé plus arrière, et tourné, renversé et incliné par rapport à l'image sur la figure 14A. En cours d'utilisation, un procédé de génération des hypothèses sélectionne un nombre prédéterminé de points (par exemple quatre points) parmi les points uniques appris et un nombre prédéterminé de points correspondants (par exemple quatre points) dans l'image de la scène. Ce processus est répété pour N nombre de points quadruples. Pour chaque ensemble de quatre points, la transformée de perspective est générée et des points de contour échantillonnés sont transformés et superposés sur les points de contour de la scène. La transformée ayant la meilleure concordance entre les contours appris et le contour de la scène est conservée comme la meilleure transformée de transformation. Pour un ensemble de dix icônes concordantes entre l'objet appris et l'objet trouvé, il y a 210 combinaisons possibles et, bien sûr, la génération de 210 hypothèses possibles et vérifications possibles. La vitesse du processus de reconnaissance (du processus tout entier) pour un objet appris est environ 140 millisecondes en utilisant un processeur Pentium commercial standard avec une vitesse de processeur de 1,6 GHz. Cela prend environ 2 millisecondes de plus pour chaque objet appris en utilisant la concordance d'icônes séquentielle. Cela signifie, par exemple, que pour 430 objets appris, une reconnaissance prendrait 1 seconde ((1000 ù 140)/2). Une indexation basée sur une table de hachage aurait le potentiel d'accomplir la reconnaissance d'un million d'objets en une seconde. Comme contribution pratique, les aspects de la présente invention peuvent être utilisés dans une grande diversité d'applications de vision artificielle comprenant, par exemple : la reconnaissance visuelle d'objets et l'interprétation de scènes, particulièrement pour le repérage d'images, l'indexation vidéo, la commande de processus (par exemple un robot ou un véhicule autonome tel qu'un véhicule aérien/terrestre/marin sans pilote), la détection d'évènements (par exemple pour la surveillance visuelle), l'organisation de l'information (par exemple pour l'indexation de bases de données d'images et de séquences d'images), la recherche d'images sur Internet (par exemple la recherche d'une image similaire sur Internet), la modélisation d'objets ou d'environnements (par exemple l'analyse d'images médicales ou la modélisation topographique), l'interaction (par exemple l'introduction dans un dispositif pour une interaction humain-ordinateur), les applications dans lesquelles un système de guidage et/ou de commande à boucle fermée est utilisé qui a besoin d'un algorithme de recherche rapide, etc. La figure 15 illustre un exemple de système asservi 300 qu'on peut utiliser selon les aspects de la présente invention. Le système 300 peut comprendre un dispositif d'entrée optique 302 (par exemple une caméra à transfert de charge) et/ou un dispositif de stockage électronique 304 pour fournir une image apprise et/ou une image cible à un processeur 306. La sortie des dispositifs 302, 304 peut être alimentée à un processeur 306 qui a un code informatique qui est fonctionnel pour exécuter la fonctionnalité désirée. Le processeur 306 peut générer un signal de commande destiné à un dispositif de commande 308 (par exemple un automate logique programmable) qui peut être utilisé pour commander un ou plusieurs dispositifs électroniques 310 (par exemple système de navigation de véhicule, système de poursuite etc.). Un signal de réaction peut être généré par le dispositif électronique 310 et envoyé au dispositif de commande 308 et/ou au processeur 306 afin de commander l'application particulière à laquelle l'invention est appliquée. Les éléments de programme informatique de l'invention peuvent être mis en oeuvre dans un matériel et/ou dans un logiciel (y compris un micrologiciel, un logiciel résident, un microcode etc.). L'invention peut prendre la forme d'un produit programme informatique, qui peut être mis en oeuvre par un support d'enregistrement utilisable par ordinateur ou lisible par ordinateur ayant des instructions de programme utilisables par ordinateur ou lisibles par ordinateur, un "code" ou un "programme d'ordinateur" mémorisés dans le support et destinés à être utilisés par le système d'exécution des instructions ou relativement à celui-ci. Dans le contexte de ce document, un support utilisable par ordinateur ou lisible par ordinateur peut être n'importe quel support qui peut contenir, stocker, communiquer, propager ou transporter le programme destiné à être utilisé par le système, l'appareil ou le dispositif d'exécution des instructions ou relativement à ceux-ci. Ce support utilisable par ordinateur ou lisible par ordinateur peut être, par exemple, sans que cette liste soit exhaustive, un système, appareil, dispositif électronique, magnétique, optique, électromagnétique, infrarouge, ou à semi-conducteurs ou un support de propagation tel qu'Internet. Il convient de noter que le support utilisable par ordinateur ou lisible par ordinateur pourrait même être du papier ou un autre support approprié sur lequel le programme est imprimé, car le programme peut être saisi électroniquement, par exemple par numérisation optique du papier ou d'un autre support, puis compilé, interprété ou traité autrement d'une manière appropriée. Le produit programme informatique et tout logiciel et matériel décrit ici forment les divers moyens pour exécuter les fonctions de l'invention dans les modes de réalisation possibles. Des modes de réalisation spécifiques d'une invention sont divulgués ici. L'homme du métier reconnaîtra facilement que l'invention peut avoir d'autres applications dans d'autres environnements. En fait, de nombreux modes de réalisation et mises en oeuvre sont possibles. Les revendications ci-après ne sont sensées limiter aucunement la portée de la présente invention aux modes de réalisation spécifiques décrits ci-dessus. Il convient aussi de noter que, bien que ce mémoire descriptif énumère des étapes de procédé se produisant dans un ordre particulier, ces étapes peuvent être exécutées dans n'importe quel ordre, ou en même temps. REVENDICATIONS1. Procédé de reconnaissance visuelle d'au moins un objet (14) 5 dans une image, caractérisé en ce que ledit procédé comprend : la fourniture d'une image (102) sous un format électronique, cette image comprenant au moins un objet à apprendre ; la génération de l'information sur extremum associée à l'image par corrélation croisée (104) avec au moins une structure (12) sur au moins 10 une partie de l'image, cette information sur extremum comprenant au moins un point de coordonnée (110) associé à la corrélation croisée avec la structure sur l'image ; l'extraction (108) d'au moins une icône (50) de l'image, cette icône comprenant le point de coordonnée associé à l'information sur 15 extremum ; la détermination d'un angle associé à l'icône ; la normalisation de l'icône à une taille fixe ; et le stockage de l'information sur l'icône sous une forme lisible par ordinateur, l'information sur l'icône comprenant des valeurs d'image 20 associées à la partie de l'icône ; le point de coordonnée associé à l'information sur extremum ; et l'angle associé à l'icône. 2. Procédé selon la revendication 1, dans lequel l'information sur extremum comprend un ensemble de points de coordonnées pour chaque 25 information sur extremum. 3. Procédé selon la revendication 2, dans lequel l'information sur extremum comprend en outre un rayon pour chaque information sur extremum. 30 4. Procédé selon la revendication 1, dans lequel la structure (12) utilisée pour générer l'information sur extremum est une structure de forme conique. 5. Procédé selon la revendication 4, dans lequel la au moins une structure a un nombre prédéterminé de tailles et l'information sur extremum associée à l'image est générée pour chaque taille de structure. 6. Procédé selon la revendication 5, dans lequel l'information sur 10 extremum associée à une taille de structure est normalisée par un facteur d'échelle commun. 7. Procédé selon la revendication 5, dans lequel l'information sur extremum associée à deux tailles de structures ou plus est normalisée en 15 utilisant différents facteurs d'échelle pour chaque taille de structure. 8. Procédé selon la revendication 1, dans lequel l'information sur l'icône est stockée dans une base de données, dans lequel au moins une entrée de la base de données comprend une description de l'objet. 9. Procédé selon la revendication 1, dans lequel l'information sur l'icône est stockée dans un vecteur descripteur. 10. Procédé selon la revendication 1, dans lequel l'information sur 25 extremum est générée en extrayant des valeurs de crête de l'étape de corrélation croisée. 11. Procédé pour faire concorder un objet appris avec un objet cible, caractérisé en ce que ledit procédé comprend : 30 la fourniture d'au moins un objet appris et d'au moins un objet 20 cible, l'extraction de points uniques de l'objet cible, ces points uniques étant générés à partir de l'information sur extremum obtenue de l'image cible par corrélation croisée avec au moins une structure sur l'image cible ; l'extraction d'une icône de l'image cible correspondant à chacun des points uniques (54, 124) ; la détermination d'un angle associé à l'icône ; la normalisation (132) de l'icône extraite ; et la détermination de si oui ou non l'icône extraite concorde avec un objet appris. 12. Procédé selon la revendication 11, dans lequel l'étape de détermination d'une concordance comprend la recherche dans une base de données d'objets afin de déterminer une concordance. 13. Procédé selon la revendication 12 comprenant en outre le classement des objets détectés dans l'image cible en se basant sur un score de concordance. 20 14. Procédé selon la revendication 13 comprenant en outre la localisation des objets détectés dans l'image cible pour déterminer l'emplacement des objets dans l'image cible. 15. Procédé selon la revendication 14 comprenant en outre l'étape 25 consistant à trouver une ou plusieurs icônes correspondantes dans les icônes détectées parmi une ou plusieurs icônes apprises associées à au moins un objet appris. 16. Procédé selon la revendication 15 comprenant en outre le 30 calcul d'une transformée de perspective pour tous les points uniques.15 17. Procédé selon la revendication 16 comprenant en outre la transformation des points de contour de l'objet avec la transformée de perspective. 18. Procédé selon la revendication 17 comprenant en outre la vérification des points de contour transformés en superposant les points de contour transformés sur l'image. 19. Procédé selon la revendication 17 comprenant en outre la 10 génération d'une mesure de redondance. 20. Procédé selon la revendication 14 comprenant en outre un nombre prédéterminé de points uniques et le calcul d'une transformée de perspective pour le nombre prédéterminé de points uniques. 21. Procédé selon la revendication 20 comprenant en outre la transformation des points de contour de l'objet avec la transformée de perspective pour le nombre prédéterminé de points uniques. 20 22. Procédé selon la revendication 21 comprenant en outre la vérification des points de contour transformés en superposant les points de contour transformés sur l'image. 23. Procédé selon la revendication 15 comprenant en outre une 25 transformée de perspective pour chaque ensemble de 4 points uniques. 24. Produit-programme d'ordinateur stocké sur un support lisible par une machine, ce programme étant approprié pour être utilisé afin de faire correspondre un objet appris avec un objet cible, de sorte que, lorsque ce 30 programme est chargé dans la mémoire d'un ordinateur associé et exécuté, il cause l'extraction de points uniques de l'objet cible, ces points uniques étant 15générés à partir de l'information sur extremum obtenue de l'image cible par corrélation croisée avec au moins une structure sur l'image cible ; l'extraction d'une icône de l'image cible correspondant à chacun des points uniques ; la détermination d'un angle associé à la au moins une icône ; la normalisation de l'icône extraite ; et la détermination de si oui ou non l'icône extraite des images cibles correspond à l'objet appris.