Brevet FR2884008A1 — publié le 20061006

Système et procédé de localisation de points d'intérêt dans une image d'objet mettant en oeuvre un réseau de neurones. 1. Domaine de l'invention Le domaine de l'invention est celui du traitement numérique des images fixes ou animées. Plus précisément, l'invention concerne une technique de localisation d'un ou plusieurs point(s) d'intérêt dans un objet représenté sur une image numérique. L'invention trouve notamment, mais non exclusivement, une application dans le domaine de la détection de caractéristiques physiques dans les visages présents sur une image numérique ou numérisée, telles que la pupille de l'oeil, le coin des yeux, le bout du nez, la bouche, les sourcils, etc. En effet, la détection automatique de points d'intérêt dans des images de visages est un enjeu majeur dans le domaine de l'analyse faciale. 2. Solutions de l'art antérieur Dans ce domaine, on connaît plusieurs techniques qui consistent, pour la plupart, à rechercher et détecter de manière indépendante chaque élément facial particulier, au moyen de filtres dédiés et spécialisés. La plupart des détecteurs utilisés reposent sur une analyse de la chrominance du visage: les pixels du visage sont étiquetés comme appartenant à la peau ou à des éléments faciaux en fonction de leur couleur. D'autres détecteurs utilisent les variations du contraste. Pour cela, un détecteur de contour est appliqué, reposant sur l'analyse du gradient lumineux. On tente alors d'identifier les éléments faciaux à partir de la forme des différents contours détectés. D'autres approches mettent en oeuvre une recherche par corrélation en utilisant des modèles statistiques de chaque élément. Ces modèles sont généralement construits à partir d'une analyse en composantes principales (ACP) à partir d'exemples d'imagettes de chacun des éléments à rechercher ("eigenfeatures"). Certaines techniques connues mettent en oeuvre une seconde phase consistant à appliquer un modèle géométrique de visage à l'ensemble des positions candidates déterminées dans la première phase de détection indépendante de chaque élément. Les éléments détectés en phase initiale forment des constellations de positions candidates et le modèle géométrique pouvant être déformable permet de sélectionner la meilleure constellation. Une méthode récente permet de s'affranchir du schéma classique à deux étapes (recherches indépendantes des éléments faciaux suivies par l'application de règles géométriques). Cette méthode repose sur l'utilisation de Modèles Actifs d'Apparence (AAMs) et est décrite notamment par D. Cristinacce et T. Cootes, dans "A comparison of shape constrained facial feature detectors" (Proceedings of the 6h International Conference on Automatic Face and Gesture Recognition 2004, Séoul, Corée, pages 375-380, 2004). Elle consiste à prédire la position des éléments faciaux en essayant de faire correspondre un modèle de visage actif sur le visage dans l'image, en adaptant les paramètres d'un modèle linéaire combinant forme et texture. Ce modèle de visage actif est appris à partir de visages sur lesquels les points d'intérêt sont annotés, à partir d'une analyse en composantes principales (ACP) sur les vecteurs encodant la position des points d'intérêt et les textures lumineuses des visages associés. 3. Inconvénients de l'art antérieur Ces différentes techniques connues présentent toutes pour inconvénient principal d'être peu robustes face aux bruits affectant les images de visage, et plus généralement les images d'objets. En effet, les détecteurs conçus spécifiquement pour la détection des différents éléments faciaux ne résistent pas aux conditions extrêmes d'illumination des images, telles que le sur-éclairage ou le sous éclairage, l'éclairage de coté, de dessous. Ils sont également peu robustes vis-à-vis des variations de qualité de l'image, notamment dans le cas des images de basse résolution issues de flux vidéo (acquises par exemple au moyen d'une "webcam") ou préalablement compressées. Les méthodes reposant sur l'analyse de la chrominance (qui mettent en oeuvre un filtrage de la teinte chair) sont également sensibles aux conditions d'éclairage. En outre, elles ne peuvent pas être appliquées aux images en niveaux de gris. Un autre inconvénient de ces techniques connues, reposant sur la détection indépendante de différents points d'intérêt, est qu'elles sont totalement inefficaces lorsque ces points d'intérêt sont occultés, ce qui est le cas par exemple pour les yeux dans le cas du port de lunettes noires, pour la bouche en présence de barbe, ou lorsqu'une main vient la cacher, et plus généralement en cas de fortes dégradations locales de l'image. L'échec dans la détection de plusieurs éléments ou même d'un seul n'est généralement pas corrigé par l'utilisation postérieure d'un modèle de visage géométrique. Ce dernier n'est utilisé que lorsque il s'agit de choisir entre plusieurs positions candidates, qui doivent impérativement avoir été détectées dans l'étape précédente. Ces différents inconvénients sont partiellement compensés dans les méthodes reposant sur des visages actifs, qui permettent une recherche globale des éléments en utilisant conjointement les informations de forme et de texture. Cependant, ces dernières ont pour autre inconvénient de reposer sur un processus d'optimisation lent et instable, qui dépend de centaines de paramètres qu'il s'agit de déterminer itérativement durant la recherche, ce qui est particulièrement long et fastidieux. De plus, les modèles statistiques utilisés étant linéaires, créés par ACP, ils sont peu robustes aux variations globales de l'image, notamment aux variations d'éclairage. Ils sont de plus peu robustes vis-à-vis d'occultations partielles du visage. 4. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une technique de localisation d'un ou plusieurs point(s) d'intérêt dans une image représentative d'un objet qui ne nécessite pas de développement long et fastidieux de filtres spécifiques à chaque point d'intérêt que l'on veut pouvoir localiser, et à chaque type d'objet. Un autre objectif de l'invention est de proposer une telle technique de localisation qui soit particulièrement robuste à tous les bruits pouvant affecter l'image, tels que les conditions d'illumination, les variations chromatiques, les occultations partielles, etc. L'invention a encore pour objectif de fournir une telle technique qui prenne en compte les occultations affectant partiellement les images, et qui permette l'inférence de la position des points occultés. L'invention a également pour objectif de proposer une telle technique qui soit simple à mettre en oeuvre et peu coûteuse à implémenter. Un autre objectif de l'invention est de fournir une telle technique qui soit particulièrement bien adaptée à la détection d'éléments faciaux dans des images de visages. 5. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un système de localisation d'au moins un point d'intérêt dans une image d'objet, qui met en oeuvre un réseau de neurones artificiels et présente une architecture en couches comprenant: - une couche d'entrée recevant ladite image d'objet; - au moins une couche intermédiaire, appelée première couche intermédiaire, comprenant une pluralité de neurones permettant de générer au moins une carte de saillance associée à ladite image d'objet; - au moins une couche de sortie comprenant ladite au moins une carte de saillance, qui comprend elle-même une pluralité de neurones connectés chacun à tous les neurones de ladite première couche intermédiaire. Ledit au moins un point d'intérêt est localisé, dans ladite image d'objet, par la position d'un maximum global sur ladite au moins une carte de saillance. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive de la détection d'un ou plusieurs points d'intérêt dans une image représentative d'un objet, puisqu'elle propose d'utiliser une architecture neuronale en couches, qui permet de générer en sortie une ou plusieurs cartes de saillance permettant une détection directe du ou des points d'intérêt à localiser, par simple recherche de maximum. L'invention propose donc une recherche globale, sur l'ensemble de l'image d'objet, des différents points d'intérêt par le réseau de neurones, ce qui permet notamment de tenir compte des positions relatives de ces points, et permet également de s'affranchir des problèmes liés à leur occultation totale ou partielle. Il n'est en outre plus nécessaire de concevoir et développer des filtres dédiés à la détection des différents points d'intérêt, ces derniers étant localisés automatiquement par le réseau de neurones après achèvement d'une phase préliminaire d'apprentissage. Une telle architecture neuronale s'avère en outre plus robuste que les techniques antérieures aux éventuels problèmes d'éclairage des images d'objets. Préférentiellement, ladite couche de sortie comprend au moins deux cartes de saillance associées chacune à un point d'intérêt distinct. On peut ainsi rechercher simultanément plusieurs points d'intérêt sur une même image, en dédiant chaque carte de saillance à un point d'intérêt particulier: la localisation de ce point se fait alors par recherche d'un unique maximum sur chaque carte, ce qui est plus facile à mettre en oeuvre qu'une recherche simultanée de plusieurs maxima locaux sur une carte de saillance globale, associée à tous les points d'intérêt. Selon une caractéristique avantageuse, ladite image d'objet est une image de visage. Les points d'intérêt recherchés sont alors des traits physiques permanents, tels que les yeux, le nez, la bouche, les sourcils, etc. Avantageusement, un tel système de localisation comprend également au moins une deuxième couche intermédiaire de convolution comprenant une pluralité de neurones. Une telle couche peut se spécialiser dans la détection d'éléments de bas niveaux, tels que des lignes de contraste, dans l'image d'objet. De manière préférentielle, un tel système de localisation comprend également au moins une troisième couche intermédiaire de souséchantillonnage comprenant une pluralité de neurones. On réduit ainsi la dimension de l'image sur laquelle on travaille. Dans un mode de réalisation préférentiel de l'invention, un tel système de localisation comprend, entre ladite couche d'entrée et ladite première couche intermédiaire: - une deuxième couche intermédiaire de convolution comprenant une pluralité de neurones et permettant de détecter au moins une forme élémentaire de type ligne dans ladite image d'objet, ladite deuxième couche intermédiaire délivrant une image d'objet convoluée; une troisième couche intermédiaire de sous-échantillonnage comprenant une pluralité de neurones et permettant de réduire la dimension de ladite image d'objet convoluée, ladite troisième couche intermédiaire délivrant une image d'objet convoluée réduite; - une quatrième couche intermédiaire de convolution comprenant une pluralité de neurones et permettant de détecter au moins une forme complexe de type coin dans ladite image d'objet convoluée réduite. L'invention concerne aussi un procédé d'apprentissage d'un réseau de neurones d'un système de localisation d'au moins un point d'intérêt dans une image d'objet tel que décrit précédemment. Chacun desdits neurones présente au moins une entrée pondérée par un poids synaptique, et un biais. Un tel procédé d'apprentissage comprend des étapes de: construction d'une base d'apprentissage comprenant une pluralité d'images d'objet annotées en fonction dudit au moins un point d'intérêt à localiser; - initialisation desdits poids synaptiques et/ou desdits biais; - pour chacune desdites images annotées de ladite base d'apprentissage: préparation de ladite au moins une carte de saillance désirée en sortie à partir dudit au moins un point d'intérêt annoté sur ladite image; présentation de ladite image en entrée dudit système de localisation et détermination de ladite au moins une carte de saillance délivrée en sortie; - minimisation d'une différence entre lesdites cartes de saillance désirées et délivrées en sortie sur l'ensemble desdites images annotées de ladite base d'apprentissage, de façon à déterminer lesdits poids synaptiques et/ou lesdits biais optimaux. Le réseau de neurones apprend ainsi, en fonction d'exemples annotés manuellement par un utilisateur, à reconnaître certains points d'intérêt sur les images d'objet. Il sera ensuite capable de les localiser dans une image quelconque fournie en entrée du réseau. Avantageusement, ladite minimisation est une minimisation d'une erreur quadratique moyenne entre lesdites cartes de saillance désirées et délivrées en sortie et met en oeuvre un algorithme itératif de rétropropagation du gradient. Cet algorithme est décrit en détail en annexe 2 du présent document, et permet une convergence rapide vers les valeurs optimales des différents biais et poids synaptiques du réseau. L'invention concerne aussi un procédé de localisation d'au moins un point d'intérêt dans une image d'objet, qui comprend des étapes de: présentation de ladite image d'objet en entrée d'une architecture en couches mettant en oeuvre un réseau de neurones artificiels; - activation successive d'au moins une couche intermédiaire, appelée première couche intermédiaire, comprenant une pluralité de neurones et permettant de générer au moins une carte de saillance associée à ladite image d'objet, et d'au moins une couche de sortie comprenant ladite au moins une carte de saillance, ladite carte de saillance comprenant au moins deux neurones connectés chacun à tous les neurones de ladite première couche intermédiaire; - localisation dudit au moins un point d'intérêt dans ladite image d'objet par recherche, dans ladite au moins une carte de saillance, d'une position d'un maximum global sur ladite carte. Selon une caractéristique avantageuse de l'invention, un tel procédé de localisation comprend des étapes préalables de: - détection, dans une image quelconque, d'une zone englobant ledit objet, et constituant ladite image d'objet; - redimensionnement de ladite image d'objet. Cette détection peut se faire à partir d'un détecteur classique bien connu de l'Homme du Métier, par exemple un détecteur de visages qui permet de déterminer une boîte englobant un visage dans une image complexe. Le redimensionnement peut être effectué automatiquement par le détecteur, ou indépendamment par des moyens dédiés: il permet de fournir en entrée du réseau de neurones des images présentant toutes la même taille. L'invention concerne encore un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé d'apprentissage d'un réseau de neurones décrit précédemment lorsque ledit programme est exécuté par un processeur, ainsi qu'un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé de localisation d'au moins un point d'intérêt dans une image d'objet décrit précédemment lorsque ledit programme est exécuté par un processeur. De tels programmes peuvent être téléchargés depuis un réseau de communication (par exemple le réseau mondial Internet) et/ou stockés dans un support de données lisible par ordinateur. 6. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: - la figure 1 présente un synoptique de l'architecture neuronale du système de localisation de points d'intérêt dans une image d'objet de l'invention; la figure 2 illustre plus précisément une carte de convolution, suivie d'une carte de sous-échantillonnage, dans l'architecture neuronale de la figure 1; - les figures 3a et 3b présentent quelques exemples d'images de visage de la base d'apprentissage; la figure 4 décrit les grandes étapes du procédé de localisation d'éléments faciaux dans une image de visage selon l'invention; la figure 5 présente un schéma synoptique simplifié du système de localisation de l'invention; - la figure 6 présente un exemple de réseau de neurones artificiels de type perceptron multi-couches; - la figure 7 illustre plus précisément la structure d'un neurone artificiel; la figure 8 présente la caractéristique de la fonction tangente hyperbolique utilisée comme fonction de transfert pour les neurones sigmoïdes. 7. Description d'un mode de réalisation de l'invention Le principe général de l'invention repose sur l'utilisation d'une architecture neuronale pour pouvoir détecter de manière automatique un ou plusieurs point(s) d'intérêt dans des images d'objet (plus particulièrement d'objets semi-rigides), et notamment dans des images de visages (détection de traits permanents tels que les yeux, le nez ou la bouche). Plus précisément, le principe de l'invention consiste à construire un réseau de neurones permettant d'apprendre à transformer, en une passe, une image d'objet en plusieurs cartes de saillance dont les positions des maxima correspondent aux positions de points d'intérêts sélectionnés par l'utilisateur dans l'image d'objet fournie en entrée. Cette architecture neuronale est composée de plusieurs couches hétérogènes, qui permettent de développer automatiquement des détecteurs bas-niveau robustes, tout en apprenant des règles permettant de régir les dispositions relatives plausibles des éléments détectés et de prendre en compte naturellement toute information disponible pour localiser d'éventuels éléments occultés. Tous les poids de connexions des neurones sont réglés au cours d'une phase d'apprentissage, à partir d'un ensemble d'images d'objets pré- segmentées, et des positions des points d'intérêt dans ces images. L'architecture neuronale agit par la suite comme une cascade de filtres permettant de transformer une zone d'image contenant un objet, préalablement détectée dans une image de plus grande taille ou dans une séquence vidéo, en un ensemble de cartes numériques, de la taille de l'image en entrée, dont les éléments sont compris entre -1 et 1. Chaque carte correspond à un point d'intérêt particulier dont la position est repérée par une simple recherche de la position de l'élément dont la valeur est maximale. On s'attache, dans toute la suite de ce document, à décrire plus particulièrement un exemple de réalisation de l'invention dans le cadre de la détection de plusieurs éléments faciaux sur une image de visage. L'invention s'applique cependant bien sûr aussi à la détection de points d'intérêt quelconques dans une image représentative d'un objet, comme par exemple la détection d'éléments de la carrosserie d'un véhicule automobile, ou de caractéristiques architecturales d'un ensemble d'immeubles. Dans ce contexte de la détection de caractéristiques physiques dans des images de visage, le procédé de l'invention permet une détection robuste des éléments faciaux dans des visages, en poses variées (orientations, semi-frontalité), avec des expressions faciales variées, pouvant contenir des éléments occultants, et apparaissant dans des images qui présentent une variabilité importante en termes de résolution, de contraste et d'illumination. 7.1 Architecture neuronale On présente, en relation avec la figure 1, l'architecture du réseau de neurones artificiels du système de localisation de points d'intérêt de l'invention. Le principe de fonctionnement de tels neurones artificiels, ainsi que leur structure, est rappelé en annexe 1, qui fait partie intégrante de la présente description. Un tel réseau de neurones est par exemple un réseau de type perceptron multi-couches, également décrit en annexe 1. Un tel réseau de neurones est constitué de six couches hétérogènes interconnectées référencées E, C,, S2, C3, N4 et R5, qui contiennent une série de cartes issues d'une succession d'opérations de convolution et de sous-échantillonnage. Ces différentes couches réalisent, par leurs actions successives et combinées, l'extraction de primitives dans l'image présentée en entrée pour conduire à la production de cartes de sorties R5m, d'où les positions des points d'intérêt peuvent être facilement déterminées. Plus précisément, l'architecture proposée comprend: une couche d'entrée E: il s'agit d'une rétine, qui est une matrice image de taille H x L où H est le nombre de lignes et L, le nombre de colonnes. La couche d'entrée E reçoit les éléments d'une zone d'image de même taille H x L. Pour chaque pixel P; i de l'image présentée en entrée du réseau de neurones, en niveaux de gris (P;i variant de 0 à 255), l'élément correspondant de la matrice E est E= (P;j-128)/128, de valeur comprise entre -1 et 1. On choisit par exemple H=56 et L=46. HxL est donc aussi la taille des images de visages de la base d'apprentissage utilisée pour le paramétrage du réseau de neurones, et des images de visage dans lesquelles on souhaite détecter un ou plusieurs éléments faciaux. Cette taille peut être celle obtenue directement en sortie du détecteur de visage qui extrait les images de visage, d'images de plus grande dimension ou de séquences vidéo. Il peut aussi s'agir de la taille à laquelle sont redimensionnées les images de visage après extraction par le détecteur de visages. De préférence, un tel redimensionnement respecte les proportions naturelles des visages; une première couche de convolution C,, constituée de NC1 cartes référencées C,;. Chaque carte C,; est connectée 10; à la carte d'entrée E, et comprend une pluralité de neurones linéaires (tels que présentés en annexe 1). Chacun de ces neurones est connecté par des synapses à un ensemble de M, x M, éléments voisins dans la carte E (champs réceptif) comme décrit plus en détail sur la figure 2. Chacun de ces neurones reçoit en outre un biais. Ces M, x M, synapses, plus le biais, sont partagées par l'ensemble des neurones de Chaque carte C,; correspond donc au résultat d'une convolution par un noyau M, x M, 11 augmentée d'un biais, dans la carte d'entrée E. Cette convolution se spécialise en un détecteur de certaines formes bas niveaux dans la carte d'entrée comme par exemple des lignes de contraste orientées de l'image. Chaque carte C,; est donc de taille H, x L, où H, = (H - M,+ 1) et L, = (L - M, + 1), pour empêcher les effets de bord de la convolution. Par exemple, la couche C, contient NC1=4 cartes de taille 50 x 41 avec des noyaux de convolution de taille NN1 x NN1 = 7 x 7; - une couche de sous- échantillonnage S2, constituée de NS2 cartes S2. Chaque carte Sei est connectée 12j à une carte correspondante C,;. Chaque neurone d'une carte S2, reçoit la moyenne de M2 x M2 éléments voisins 13 dans la carte C,; (champs réceptif), comme illustré plus en détail sur la figure 2. Chaque neurone multiplie cette moyenne par un poids synaptique, et y ajoute un biais. Poids synaptique et biais, dont les valeurs optimales sont déterminées lors d'une phase d'apprentissage, sont partagés par l'ensemble des neurones de chaque carte S2j. La sortie de chaque neurone est obtenue après passage dans une fonction sigmoïde. Chaque carte S2j est de taille H2 x L2 où H2 = H1/M2 et L2 = L,/M2. Par exemple, la couche S2 contient NS2=4 cartes de taille 25 x 20 avec un sous-échantillonage de 1 pour NN2 x NN2 = 2 x 2; - une couche de convolution C3, constituée de NC3 cartes C3k. Chaque carte C3k est connectée 14, à chacune des cartes S2j de la couche de sous-échantillonnage S2. Les neurones d'une carte C3k sont linéaires, et chacun de ces neurones est connecté par des synapses à un ensemble de M3 x M3 éléments voisins 15 dans chacune des cartes S2j. II reçoit en outre un biais. Les M3 x M3 synapses par carte, plus le biais, sont partagés par l'ensemble des neurones des cartes C3k. Les cartes Cu correspondent au résultat de la somme de NC3 convolutions par des noyaux M3 x M3 15, augmentées d'un biais. Ces convolutions permettent d'extraire des caractéristiques de plus haut niveau, telles que des coins, en combinant des extractions sur les cartes de convolution Cu en entrée. Chaque carte C3k est de taille H3 x L3 où H3 = (H2 - M3 + 1) et L3 = (L2 - M3 + 1). Par exemple, la couche C3 contient NC3=4 cartes de taille 21 x 16 avec un noyau de convolution de taille NN3 x NN3 = 5 x 5; - une couche N4 de NN4 neurones sigmoïdes N41. Chaque neurone de la couche N4 est connecté 16, à tous les neurones de la couche C3, et reçoit un biais. Ces neurones N41 permettent d'apprendre à générer les cartes de sortie R5m en maximisant les réponses sur les positions des points d'intérêt dans chacune de ces cartes, tout en prenant en compte la globalité des cartes C3, ce qui permet de détecter un point d'intérêt particulier en tenant compte de la détection des autres. On choisit par exemple NN4=100 neurones, et la fonction tangente hyperbolique (notée th ou tanh) pour la fonction de transfert des neurones sigmoïdes; une couche R5 de cartes, constituée de NR5 cartes RSn, une pour chaque point d'intérêt choisi par l'utilisateur (oeil droit, ceil gauche, nez, bouche, etc.). Chaque carte R5m est connectée à tous les neurones de la couche N4. Les neurones d'une carte R5m sont sigmoïdes, et chacun est connecté à tous les neurones de la couche N4. Chaque carte R5m est de taille H x L, qui est la taille de la couche d'entrée E. On choisit par exemple NR5=4 cartes de taille 56 x 46. Après activation du réseau de neurones, la position du neurone 171, 172, 173, 174 présentant une sortie maximale dans chaque carte R5m correspond à la position de l'élément facial correspondant dans l'image présentée en entrée du réseau. On notera que, dans une variante de réalisation de l'invention, la couche R5 ne compte qu'une unique carte de saillance sur laquelle figurent tous les points d'intérêt que l'on souhaite localiser dans l'image. La figure 2 illustre un exemple d'une carte C11 de convolution 5 x 5 11 suivie d'une carte S2 de sous-échantillonnage 2 x 2 13. Comme on le notera, la convolution effectuée ne tient pas compte des pixels situés sur les bords de la carte Cl,, afin d'éviter les effets de bord. Afin de pouvoir détecter les points d'intérêt sur des images de visage, il est nécessaire de paramétrer le réseau de neurones de la figure 1 lors d'une phase d'apprentissage décrite ci-après. 7.2 Apprentissage à partir d'une base d'images Après construction de l'architecture neuronale en couches décrite ci-dessus, on constitue donc une base d'apprentissage d'images annotées, de façon à régler par apprentissage les poids des synapses de tous les neurones de l'architecture. Pour ce faire, on procède comme décrit ci-dessous. On extrait tout d'abord manuellement un ensemble T d'images de visages d'un corpus d'images de taille importante. Chaque image de visage est redimensionnée à la taille H x L de la couche d'entrée E de l'architecture neuronale, de préférence en respectant les proportions naturelles des visages. On veille à extraire des images de visages d'apparences variées. Dans un mode particulier de réalisation, dans lequel on s'intéresse à la détection de quatre points d'intérêt dans le visage ( à savoir oeil droit, oeil gauche, nez et bouche), les positions des yeux, du nez et du centre de la bouche sont repérées manuellement, comme illustré sur la figure 3a:on obtient ainsi un ensemble d'images annotées en fonction des points d'intérêt que le réseau de neurones va devoir apprendre à localiser. Ces points d'intérêt à localiser dans les images peuvent être choisis librement par l'utilisateur. De manière à générer automatiquement des exemples plus variés, on applique un ensemble de transformations à ces images, ainsi qu'aux positions annotées, telles que des translations selon les colonnes et selon les lignes (par exemple jusqu'à 6 pixels à gauche, à droite, en haut, en bas), des rotations par rapport au centre de l'image par des angles variant de -25 à +25 degrés, des zooms arrière et avant de 0.8 à 1. 2 fois la taille du visage. A partir d'une image donnée, on obtient ainsi une pluralité d'images transformées, comme illustré par la figure 3b. Les variations appliquées aux images de visages permettent de prendre en compte en phase d'apprentissage, non seulement les apparences possibles des visages, mais aussi des erreurs possibles de centrage lors de la détection automatique des visages. L'ensemble T est appelé l'ensemble d'apprentissage. A titre d'exemple, on peut utiliser une base d'apprentissage d'environ 2500 images de visages annotées manuellement en fonction de la position du centre de l' eil gauche, de l'oeil droit, du nez et de la bouche. Après application de modifications géométriques sur ces images annotées (translations, rotations, zooms, etc.), on obtient environ 32000 exemples de visages annotés présentant une variabilité importante. On procède ensuite à l'apprentissage automatique de l'ensemble des poids synaptiques et des biais de l'architecture neuronale. Pour cela, on initialise tout d'abord les biais et poids synaptiques de l'ensemble des neurones de manière aléatoire, à de petites valeurs. Les NT images I de l'ensemble T sont ensuite présentées dans un ordre quelconque en couche d'entrée E du réseau de neurones. Pour chaque image I présentée, on prépare les cartes de sorties D5r,, que le réseau de neurones devrait délivrer dans la couche R5 si son fonctionnement était optimal: ces cartes D5m sont appelées cartes désirées. Sur chacune de ces cartes D5m, on fixe la valeur de l'ensemble des points à -1, à l'exception du point dont la position correspond à celle de l'élément facial que la carte D5m doit permettre de localiser, et dont la valeur désirée est de 1. Ces cartes D5m sont illustrées en figure 3a, sur laquelle chaque point correspond au point de valeur +1, dont la position correspond à celle d'un élément facial à localiser (oeil droit, oeil gauche, nez ou centre de la bouche). Une fois les cartes D5m préparées, la couche d'entrée E et les couches C,, S2, C3, N4, et R5 du réseau de neurones sont activées l'une après l'autre. En couche R5, on obtient alors la réponse du réseau de neurones à l'image I. Le but est d'obtenir des cartes R5m identiques aux cartes désirées D5m. On définit donc une fonction objectif à minimiser pour atteindre ce but: xa; 1 z O = 1(R1 D5,) où (ij) correspond à l'élément en NTxNRSxHxGh_, n,i)EHvc ligne i et colonne j de chaque carte R5m. Il s'agit donc de minimiser l'erreur moyenne quadratique entre les cartes produites R5m et désirées D5,n sur l'ensemble des images annotées de l'ensemble d'apprentissage T. Pour minimiser la fonction objectif O, on utilise l'algorithme itératif de rétropropagation du gradient, dont le principe est rappelé en annexe 2, qui fait partie intégrante de la présente description. Un tel algorithme de rétropropagation du gradient va ainsi permettre de déterminer l'ensemble des poids synaptiques et biais optimaux de l'ensemble des neurones du réseau. A titre d'exemple, on peut utiliser les paramètres suivants dans l'algorithme de rétropropagation du gradient: un pas d'apprentissage de 0. 005 pour les neurones des couches C,, S2, C3; - un pas d'apprentissage de 0.001 pour les neurones de la couche N4; un pas d'apprentissage de 0. 0005 pour les neurones de la couche R5; un momentum de 0.2 pour tous les neurones de l'architecture. L'algorithme de rétropropagation du gradient converge alors vers une solution stable après 25 itérations, si l'on considère qu'une itération de l'algorithme correspond à la présentation de toutes les images de l'ensemble d'apprentissage T. Une fois les valeurs optimales des biais et poids synaptiques déterminées, le réseau de neurones de la figure 1 est prêt à traiter une image de visage numérique quelconque, afin d'en extraire les points d'intérêt annotés sur les images de l'ensemble d'apprentissage T. 7.3 Recherche des points d'intérêt dans une image On peut désormais utiliser le réseau de neurones de la figure 1, réglé en phase d'apprentissage, pour la recherche des éléments faciaux dans une image de visage. Le procédé mis en oeuvre pour réaliser une telle localisation est présenté en figure 4. On détecte 40 les visages 44 et 45 présents dans l'image 46 en utilisant un détecteur de visage. Ce dernier localise la boîte englobant l'intérieur de chaque visage 44, 45. Les zones d'images contenues dans chaque boîte englobante sont extraites 41 et constituent les images de visages 47, 48 dans lesquelles doit s'effectuer la recherche des éléments faciaux. Chaque image de visage extraite 147, 48 est redimensionnée 41 à la taille H x L et est placée en entrée E de l'architecture neuronale de la figure 1. La couche d'entrée E, les couches intermédiaires C,, S2, C3, N4, et la couche de sortie R5 sont activées l'une après l'autre, de façon à réaliser un filtrage 42 de l'image 1 47, 48 par l'architecture neuronale. En couche R5, on obtient la réponse du réseau de neurones à l'image I 47, 48, sous la forme de quatre cartes de saillance R5n, pour chacune des images I 47, 48. On localise alors 43 les points d'intérêt dans les images de visage I 47, 48 par recherche des maxima dans chaque carte de saillance R5n,. Plus précisément, dans chacune des cartes RsR on recherche la position telle que (lin,,,,r'fin.r) = aria (ij)EH xmaxL Rs,n pour m E NRs. Cette position correspond à la position recherchée du point d'intérêt (par exemple l'oeil droit) correspondant à cette carte. Dans un mode de réalisation préférentiel de l'invention, les visages sont détectés 40 dans les images 46 par le détecteur de visage CFF présenté par C. Garcia et M. Delakis, dans "Convolutional Face Finder: a Neural Architecture for Fast and Robust Face Detection, " IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(11): 1408-1422, Novembre 2004. Un tel détecteur de visages permet en effet de détecter de manière robuste des visages de taille minimale 20x20, penchés jusqu'à 25 degrés et tournés jusqu'à 60 degrés, dans des scènes à fond complexe, et sous des éclairages variables. Le détecteur CFF détermine 40 la boîte englobante des visages détectés 47, 48 et l'intérieur de la boîte est extrait, puis redimensionné 41 à la taille H=56 et L=46. Chaque image est ensuite présentée en entrée du réseau de neurones de la figure 1. Le procédé de localisation de la figure 4 présente une particulièrement grande robustesse face à la grande variabilité des visages présents dans les images. On présente désormais succinctement, en relation avec la figure 5, un schéma synoptique simplifié d'un système ou dispositif de localisation de points d'intérêt dans une image d'objet. Un tel système comprend une mémoire M 51, et une unité de traitement 50 équipée d'un processeur!IF, qui est piloté par le programme d'ordinateur Pg 52. Dans une première phase d'apprentissage, l'unité de traitement 50 reçoit en entrée un ensemble T d'images de visage d'apprentissage, annotées en fonction des points d'intérêt que le système doit pouvoir localiser dans une image, à partir duquel le microprocesseur 03 réalise, selon les instructions du programme Pg 52, la mise en oeuvre d'un algorithme de rétropropagation du gradient permettant d'optimiser les valeurs des biais et poids synaptiques du réseau de neurones. Ces valeurs optimales 54 sont alors stockées dans la mémoire M 51. Dans une deuxième phase de recherche de points d'intérêt, les valeurs optimales des biais et poids synaptiques sont chargées depuis la mémoire M 51. L'unité de traitement 50 reçoit en entrée une image d'objet I, à partir de laquelle le microprocesseur 1uP réalise, selon les instructions du programme Pg 52, un filtrage par le réseau de neurones et une recherche de maxima dans les cartes de saillance obtenues en sortie. En sortie de l'unité de traitement 50, on obtient les coordonnées 53 de chacun des points d'intérêt recherchés dans l'image I. A partir des positions des points d'intérêt détectés grâce à la présente invention, de nombreuses applications deviennent possibles, comme le codage de visages par modèles, l'animation synthétique d'images de visages fixes par déformations locales du visage (en anglais "morphing"), les méthodes de reconnaissance de visages ou d'émotions basées sur une analyse locale de traits caractéristiques (yeux, nez, bouche) et plus généralement les interactions homme-machine utilisant la vision artificielle (suivi de la direction du regard de l'utilisateur, lecture labiale, etc...). ANNEXE 1: Neurones artificiels et réseaux de neurones perceptron multicouches 1. Généralités Le perceptron multi-couches est un réseau orienté de neurones artificiels organisé en couches, dans lequel l'information voyage dans un seul sens, de la couche d'entrée vers la couche de sortie. La figure 6 présente l'exemple d'un réseau contenant une couche d'entrée 60, deux couches cachées 61 et 62 et une couche de sortie 63. La couche d'entrée 60 représente toujours une couche virtuelle associée aux entrées du système. Elle ne contient aucun neurone. Les couches suivantes 61 à 63 sont des couches de neurones. Dans le cas général, un perceptron multicouches petit posséder un nombre de couches quelconque et un nombre de neurones (ou d'entrées) par couche également quelconque. Dans l'exemple présenté en figure 6, le réseau de neurones compte 3 entrées, 4 neurones sur la première couche cachée 61, trois neurones sur la deuxième 62 et quatre neurones sur la couche de sortie 63. Les sorties des neurones de la dernière couche 63 correspondent aux sorties du système. Un neurone artificiel est une unité de calcul qui reçoit un signal d'entrée (X, vecteur de valeurs réelles), au travers de connexions synaptiques qui portent des poids (valeurs réelles w), et délivrent une sortie à valeur réelle y. La figure 7 présente la structure d'un tel neurone artificiel, dont le fonctionnement est décrit dans le paragraphe 2 ci-après. Les neurones du réseau de la figure 6 sont reliés entre eux, de couche à couche, par les connexions synaptiques pondérées. Ce sont les poids de ces connexions qui gouvernent le fonctionnement du réseau et "programment" une application de l'espace des entrées vers l'espace des sorties à l'aide d'une transformation non linéaire. La création d'un perceptron multi-couches pour résoudre un problème donné passe donc par l'inférence de la meilleure application possible, telle que définie par un ensemble de données d'apprentissage constituées de paires de vecteurs d'entrées et de sorties désirées. 2. Le neurone artificiel Comme indiqué ci-dessus, un neurone artificiel est une unité de calcul qui reçoit un vecteur X, vecteur de n valeurs réelles Ix,,.., x; ,..,xnl, ainsi qu'une valeur fixe valant xo=+1. Chacune des entrées x;, excite une synapse pondérée par w;. Une fonction de sommation 70 calcule un potentiel V, qui, après passage dans une fonction 5 d'activation (D, délivre une sortie à valeur réelle y. Le potentiel V s'exprime de la manière suivante: V = La quantité woxo est appelée biais et correspond à une valeur de seuil pour le neurone. La sortie y s'exprime sous la forme: y = (1)(V)= ( La fonction 1 peut prendre différentes formes en fonction des applications visées. Dans le cadre du procédé de localisation de points d'intérêt de l'invention, deux types de fonctions d'activation sont utilisés: - pour les neurones à fonction d'activation linéaire, on a: 4(x)= x. C'est le cas par exemple des neurones des couches C, et C3 du réseau de la figure 1; pour les neurones à fonction d'activation non-linéaire sigmoïde, on choisit par exemple la fonction tangente hyperbolique, dont la courbe caractéristique est illustrée en figure 8: (x) = tanh(x) = (e. e) à valeurs réelles entre -1 et 1. (e +e) C'est le cas par exemple des neurones des couches S2, N4 et R3 du réseau de la figure 1. ANNEXE 2: Algorithme de rétropropagation du gradient Comme décrit précédemment dans ce document, l'apprentissage du réseau de neurones consiste à déterminer tous les poids des connexions synaptiques, de façon à obtenir un vecteur de sorties désirées D en fonction d'un vecteur d'entrée X. Pour cela, une base d'apprentissage est constituée, qui consiste en une liste de K paires d'entrée/sortie (Xk, Dk) correspondantes. En notant Yk les sorties du réseau obtenues à un instant t pour des entrées Xk, on cherche donc à minimiser l'erreur quadratique moyenne sur la couche de sortie: K E=KEkoùEk= Dk YklI2 (1). Pour ce faire, on réalise une descente de gradient, par un algorithme itératif: aE"-" aE"-" aE"-" Et" = E(-" pVE"-" où VER'-" = est le gradient de l'erreur quadratique moyenne à l'instant (t-1) par rapport à l'ensemble des P poids de connexions synaptiques du réseau, et où p est le pas d'apprentissage. La mise en oeuvre de ce processus de descente de gradient dans un réseau de neurones passe par l'algorithme de rétropropagation du gradient. Soit un réseau de neurones où: - c=0 est l'indice de la couche d'entrée; c=l..C-1 sont les indices des couches intermédiaires; - c=C est l'indice de la couche de sortie; - i=1 à ne sont les indices des neurones de la couche d'indice c; - S est l'ensemble des neurones de la couche d'indice c-1 connectés aux entrées du neurone i de la couche d'indice c; - w est le poids de la connexion synaptique s'étendant du neurone j au neurone L'algorithme de rétropropagation du gradient fonctionne en deux passes successives, qui sont des passes de propagation directe et de rétropropagation: - lors de la passe de propagation, le signal d'entrée Xk traverse le réseau de neurones et active une réponse Yk en sortie; - lors de la rétropropagation, le signal d'erreur Ek est rétropropagé dans le réseau, ce qui permet de modifier les poids synaptiques pour minimiser l'erreur Ek. 2884008 21 Plus précisément, un tel algorithme comprend les étapes suivantes: Fixer le pas d'apprentissage p à une valeur positive suffisamment petite (de l'ordre de 0.001) Fixer le momentum a à une valeur positive entre 0 et 1 (de l'ordre de 0.2) Initialiser aléatoirement les poids synaptiques du réseau à de petites valeurs Répéter choisir une paire exemple (Xk, Dk): propagation: calculer dans l'ordre des couches les sorties des neurones: Charger l'exemple Xk dans la couche d'entrée: Yo = Xk et assigner D = Dk =j Pour les couches c de 1 à c Pour chaque neurone i de la couche c (i de 1 à nc) Calculer le potentiel: V = w,, y,c._1 et la sortie y;,, =(V)où Y. =LYS,...,y, rétropropagation: calculer dans l'ordre inverse des couches: Pour les couches c de C à 1 Pour chaque neurone i de la couche c (i de 1 à tic) Calculer: (d; y,,c) 4'(V c) si c = C (couche de sortie) Sk,+t (D'(Vt.c) si c C k tels q ue ÎESk,'+I où (D' (x) = 1 tanh2 (x) mettre à jour les poids des synapses arrivant au neurone i Ow' = P Si y + a Aw Vj E S où p est le pas d'apprentissage et a le momentum (Aw = 0 lors de la première itération) w =w +Aw VjES Aw = Aw =w dj E S VjES,c. - calculer l'erreur quadratique moyenne E (cf. équation 1) Jusqu'à E REVENDICATIONS 1. Système de localisation d'au moins un point d'intérêt dans une image d'objet, caractérisé en ce qu'il met en oeuvre un réseau de neurones artificiels et présente une architecture en couches comprenant: -une couche d'entrée (E) recevant ladite image d'objet; - au moins une couche intermédiaire (N4), appelée première couche intermédiaire, comprenant une pluralité de neurones (N41) permettant de générer au moins une carte de saillance (R51) associée à ladite image d'objet; - au moins une couche de sortie (R5) comprenant ladite au moins une carte de saillance (Rsn,), ladite carte de saillance comprenant une pluralité de neurones connectés chacun à tous les neurones de ladite première couche intermédiaire, ledit au moins un point d'intérêt étant localisé, dans ladite image d'objet, par la position (171, 172, 173, 174) d'un maximum global sur ladite au moins une carte de saillance. 2. Système de localisation selon la revendication 1, caractérisé en ce que ladite couche de sortie (R5) comprend au moins deux cartes de saillance (R51) associées chacune à un point d'intérêt distinct. 3. Système de localisation selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite image d'objet est une image de visage. 4. Système de localisation selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend également au moins une deuxième couche intermédiaire de convolution (C1, C3) comprenant une pluralité de neurones (C11, C3k). 5. Système de localisation selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend également au moins une troisième couche intermédiaire de sous-échantillonnage (S2) comprenant une pluralité de neurones (S2i). 6. Système de localisation selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend, entre ladite couche d'entrée (E) et ladite première couche intermédiaire (N4) : - une deuxième couche intermédiaire de convolution (C1) comprenant une pluralité de neurones (C1i) et permettant de détecter au moins une forme élémentaire de type ligne dans ladite image d'objet, ladite deuxième couche intermédiaire délivrant une image d'objet convoluée; - une troisième couche intermédiaire de sous-échantillonnage (S2) comprenant une pluralité de neurones (S2i) et permettant de réduire la dimension de ladite image d'objet convoluée, ladite troisième couche intermédiaire délivrant une image d'objet convoluée réduite; - une quatrième couche intermédiaire de convolution (C3) comprenant une pluralité de neurones (C3k) et permettant de détecter au moins une forme complexe de type coin dans ladite image d'objet convoluée réduite. 7. Procédé d'apprentissage d'un réseau de neurones d'un système de localisation d'au moins un point d'intérêt dans une image d'objet selon la revendication 1, chacun desdits neurones présentant au moins une entrée pondérée par un poids synaptique caractérisé en ce qu'il comprend des étapes de: - construction d'une base d'apprentissage comprenant une pluralité d'images d'objet annotées en fonction dudit au moins un point d'intérêt à localiser; - initialisation desdits poids synaptiques et/ou desdits biais; - pour chacune desdites images annotées de ladite base d'apprentissage: - préparation de ladite au moins une carte de saillance désirée en sortie (D5m) à partir dudit au moins un point d'intérêt annoté sur ladite image; - présentation de ladite image en entrée dudit système de localisation et détermination de ladite au moins une carte de saillance délivrée en sortie (R;,,,) ; - minimisation d'une différence entre lesdites cartes de saillance désirées (D5,,,) et délivrées (R5,,,) en sortie sur l'ensemble desdites images annotées de ladite base d'apprentissage, de façon à déterminer lesdits poids synaptiques (w,-w,) et/ou lesdits biais (wo) optimaux. 8. Procédé d'apprentissage selon la revendication 7, caractérisé en ce que ladite minimisation est une minimisation d'une erreur quadratique moyenne entre lesdites cartes de saillance désirées (D5,,,) et délivrées (R51) en sortie et met en oeuvre un algorithme itératif de rétropropagation du gradient. 9. Procédé de localisation d'au moins un point d'intérêt dans une image d'objet, caractérisé en ce qu'il comprend des étapes de: -présentation de ladite image d'objet en entrée d'une architecture en couches mettant en oeuvre un réseau de neurones artificiels; - activation successive d'au moins une couche intermédiaire (N4), appelée première couche intermédiaire, comprenant une pluralité de neurones (N41) et permettant de générer au moins une carte de saillance (R5m) associée à ladite image d'objet, et d'au moins une couche de sortie (R5) comprenant ladite au moins une carte de saillance (R5m), ladite carte de saillance comprenant au moins deux neurones connectés chacun à tous les neurones de ladite première couche intermédiaire (N4) ; - localisation dudit au moins un point d'intérêt dans ladite image d'objet par recherche, dans ladite au moins une carte de saillance (R5m), d'une position (171-174) d'un maximum global sur ladite carte. 10. Procédé de localisation selon la revendication 9, caractérisé en ce qu'il comprend des étapes préalables de: - détection (40), dans une image quelconque (46), d'une zone englobant ledit objet, et constituant ladite image d'objet (44, 45) ; - redimensionnement (41) de ladite image d'objet. 11. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé d'apprentissage d'un réseau de neurones selon l'une quelconque des revendications 7 et 8 lorsque ledit programme est exécuté par un processeur. 12. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé de localisation d'au moins un point d'intérêt dans une image d'objet selon l'une quelconque des revendications 9 et 10 lorsque ledit programme est exécuté par un processeur.