Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF FRAMING AN OBJECT IN AN IMAGE AND CORRESPONDING DEVICE
Document Type and Number:
WIPO Patent Application WO/2008/031978
Kind Code:
A1
Abstract:
The invention relates to a method of framing an object in an image (I), said object belonging to a category of objects exhibiting common distinctive characteristics, and said method using an artificial neural net subject previously to a learning phase, characterized in that it comprises the steps of: - locating (b1) said object in said image (I), so as to obtain a first framing (C1) of said object defining a piece (T) of said image, - applying (b2) said piece (T) of the image as input to said neural net, and obtaining as output transformation coefficients making it possible to obtain a second framing (CF) of said object, said learning phase having trained said net to provide as output transformation coefficients allowing a reframing on the basis of pieces of learning images.

Inventors:
GARCIA CHRISTOPHE (FR)
DUFFNER STEFAN (FR)
Application Number:
PCT/FR2007/051900
Publication Date:
March 20, 2008
Filing Date:
September 10, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
GARCIA CHRISTOPHE (FR)
DUFFNER STEFAN (FR)
International Classes:
G06K9/00; G06K9/32
Other References:
ROWLEY H A ET AL: "Rotation invariant neural network-based face detection", COMPUTER VISION AND PATTERN RECOGNITION, 1998. PROCEEDINGS. 1998 IEEE COMPUTER SOCIETY CONFERENCE ON SANTA BARBARA, CA, USA 23-25 JUNE 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 23 June 1998 (1998-06-23), pages 38 - 44, XP010291666, ISBN: 0-8186-8497-6
LIN W-G ET AL: "A New Neural Model for Invariant Pattern Recognition", NEURAL NETWORKS, ELSEVIER SCIENCE PUBLISHERS, BARKING, GB, vol. 9, no. 5, July 1996 (1996-07-01), pages 899 - 913, XP004096091, ISSN: 0893-6080
GARCIA C ET AL: "CONVOLUTIONAL FACE FINDER: A NEURAL ARCHITECTURE FOR FAST AND ROBUST FACE DETECTION", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 26, no. 11, November 2004 (2004-11-01), pages 1408 - 1423, XP008039814, ISSN: 0162-8828
Attorney, Agent or Firm:
FRANCE TELECOM/FTR & D/PIV/BREVETS (38-40 Rue du Général Leclerc, Issy Moulineaux Cedex 9, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé de cadrage d'un objet dans une image (I), ledit objet appartenant à une catégorie d'objets présentant des caractéristiques distinctives communes, et ledit procédé utilisant un réseau (RES) de neurones artificiels soumis préalablement à une phase d'apprentissage (φ1 ), caractérisé en ce qu'il comporte les étapes de: - localisation (b1) dudit objet dans ladite image (I), afin d'obtenir un premier cadrage (Cl) dudît objet définissant un morceau (T) de ladite image,

- application (b2) dudit morceau (T) d'image en entrée dudit réseau (RES) de neurones, et obtention en sortie de coefficients de transformation (α r , T r x, T r y, S r c) permettant d'obtenir un second cadrage (CF) dudit objet, ladite phase d'apprentissage (φ1) ayant entraîné ledit réseau (RES) à fournir en sortie des coefficients de transformation (α r , T r x, T r y, S r c) permettant un recadrage à partir de morceaux d'images d'apprentissage.

2. Procédé selon la revendication 1 , caractérisé en ce que ledit réseau (RES) de neurones est un réseau de neurones à couches hétérogènes comprenant au moins une couche cachée de convolution.

3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ledit réseau (RES) de neurones est un réseau de neurones à couches hétérogènes comprenant deux couches cachées de convolution (Ci, C3) entre lesquelles est interposée une couche de sous-échantillonnage (S 2 ).

4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit réseau (RES) de neurones comporte six couches dont quatre

couches cachées (Ci, S 2 , C 3 , N 4 ), une couche d'entrée (E) et une couche de sortie (S).

5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'étape de localisation (b1) utilise un réseau de neurones à couches hétérogènes comprenant au moins une couche cachée de convolution.

6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que lesdits coefficients de transformation (α r , T r x, T r y, S r c) en sortie du réseau de neurones correspondent à:

- un coefficient de translation (Tx) selon un premier axe dudit premier cadrage,

- un coefficient de translation (Ty) selon un second axe dudit premier cadrage, - un coefficient de rotation (α) par rapport au centre de gravité dudit premier cadrage,

- et un coefficient de mise à l'échelle (Sc).

7. Dispositif de cadrage d'un objet dans une image (I), ledit objet appartenant à une catégorie d'objets présentant des caractéristiques distinctives communes, mettant en œuvre le procédé selon l'une quelconque des revendications 1 à 6.

8. Programme d'ordinateur comportant des instructions pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 6, lorsqu'il est exécuté sur un ordinateur.

Description:

Procédé de cadrage d'un objet dans une image et dispositif correspondant

La présente invention se situe dans le domaine du traitement d'image. Plus précisément l'invention concerne un procédé de cadrage d'un objet dans une image, utilisant un réseau de neurones. Dans les systèmes automatiques de reconnaissance d'objets dans une image, la détection et la localisation des objets dans l'image constituent une première étape indispensable avant la phase de reconnaissance. Cette étape a pour objectif d'extraire uniquement les parties de l'image, ou boîtes englobantes, contenant les objets à reconnaître. Pour fonctionner correctement, ces systèmes nécessitent que chaque image d'objet extraite soit bien centrée, alignée et à la même échelle, dans une fenêtre d'entrée de taille fixe, où les éléments caractéristiques de l'objet doivent se retrouver, d'un objet à l'autre dans des positions prédéterminées. Ces systèmes sont surtout appliqués à la reconnaissance de visages. C'est pourquoi le cadrage automatique d'images de visages est un enjeu important dans le domaine de l'analyse faciale.

Cependant, les techniques existantes de détection et de localisation automatiques de visages conduisent à des boîtes englobantes contenant des visages extraits souvent mal centrés en position et en échelle dans leurs boîtes englobantes respectives. De plus certains visages extraits sont tournés dans le plan de l'image par rapport aux cadres de leurs boîtes englobantes. Cela a pour conséquence une dégradation significative des performances des systèmes automatiques de reconnaissance de visages utilisant ces techniques existantes. Les techniques automatiques de cadrage d'objets, et notamment de visages, évoluent suivant deux approches distinctes.

La première approche consiste à détecter, après détection d'un objet dans une image, des éléments caractéristiques de l'objet. Par exemple après détection d'un visage, on détecte ses éléments faciaux tels que les yeux, le nez et la bouche de ce visage. Puis on estime les paramètres nécessaires au cadrage du visage, c'est-à-dire par exemple des facteurs de translation, de rotation et d'échelle.

La plupart des détecteurs d'éléments faciaux reposent sur une analyse de la chrominance du visage et du gradient lumineux, comme décrit par exemple dans l'article de J.-G. Wang et E. Sung, intitulé "Morphology-based Front-View Facial Contour Détection" et publié en 2000 dans le volume 4 du magazine "Institute of Eîectrical and Electronic Engineer (IEEE) Conférence on Systems, Man, and Cybernetics", ou encore dans l'article de M. Yang, D.

Kriegman et N. Ahuja, intitulé "Detecting Faces in Images: A Survey" et publié en janvier 2002 dans le magazine "IEEE Transactions on Pattern Analysis and Machine Intelligence".

D'autres détecteurs d'éléments faciaux mettent en œuvre une recherche par corrélation en utilisant des modèles statistiques de chaque élément, généralement construits à partir d'une analyse en composantes principales à partir d'exemples d'imagettes de chacun des éléments à rechercher, comme décrit dans l'article de B. Moghaddam et A. Pentland, intitulé "Probabilistic Visual Learning for Object Représentation" et publié en juillet 1997 dans le magazine "IEEE Transactions on Pattern Analysis and Machine Intelligence".

D'autres détecteurs encore procèdent en deux phases: - une première détection permet d'obtenir des constellations de positions candidates pour des éléments faciaux, - puis une sélection de la meilleure constellation est effectuée à partir d'un modèle géométrique pouvant être déformable. Cette technique de détection d'éléments faciaux est décrite dans l'article "Detecting Faces in Images: A Survey" cité plus haut.

Enfin une technique de détection d'éléments faciaux plus récente mise au point par les demandeurs, recherche une localisation simultanée et conjointe des éléments faciaux en utilisant un réseau de neurones ayant appris à transformer, en une passe, une image de visage en des cartes de saillance dont les positions des maxima correspondent aux positions de points d'intérêts dans l'image de visage fournie en entrée. Cette technique est détaillée dans l'article "A Connexionist Approach for Robust and Précise Facial Feature Détection in Complex Scènes" publié à l'occasion de la conférence "Fourth International Symposium on Image and Signal Processing and Analysis (ISPA 2005)" qui a eu lieu à Zagreb en Croatie.

La deuxième approche de cadrage d'objets consiste à tenter de localiser directement un objet dans une image, par un modèle déformable. Ainsi l'article de D. Cristinacce et T. Cootes, intitulé "A comparison of shape constrained facial feature detectors" et publié à l'occasion de la conférence "6 th International Conférence on Automatic Face and Gesture Récognition 2004", qui a eu lieu à Séoul en Corée, décrit des "Modèles Actifs d'Apparence" (AAM). Il s'agit de faire correspondre un modèle de visage actif, par déformations itératives, en position, en forme et en texture, sur un visage dans une 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 d'un ensemble de visages sur lesquels des points d'intérêt sont annotés, et d'une analyse en composantes principales sur les vecteurs encodant la position des points d'intérêt et les textures lumineuses des visages associés. Une fois minimisée l'erreur de correspondance entre le modèle de visage et le visage présent dans l'image, sont retenus les paramètres de transformations géométriques effectuées itérativement durant la phase de mise en correspondance tels que des translations selon certains axes, un angle de rotation dans le plan, et un facteur d'échelle.

Ces techniques de cadrage présentent un certain nombre d'inconvénients. En effet, les trois premiers types de détecteurs d'éléments faciaux, utilisant la chrominance du visage à localiser, des modèles

statistiques ou des modèles géométriques, sont peu robustes face aux bruits affectant l'image du visage. Notamment les détecteurs reposant sur l'analyse de la chrominance, c'est-à-dire qui font du filtrage sur la teinte "chair", sont particulièrement sensibles aux conditions d'éclairage. De plus, ils ne peuvent pas être appliqués aux images en niveaux de gris. Quant aux systèmes de détection basés sur des modèles statistiques ou géométriques, ceux-ci ne résistent pas aux conditions extrêmes d'illumination, telles que le suréclairage, le sous-éclairage, l'éclairage de côté ou de dessous. Ces systèmes sont aussi sensibles aux images de mauvaise qualité, par exemple des images de basse résolution issues de flux vidéo, ou des images préalablement compressées.

En outre, ces premiers types de détecteurs reposent sur des détections indépendantes d'éléments faciaux et échouent généralement à localiser un visage dans une image lorsque certains des éléments faciaux de ce visage sont occultés. C'est le cas par exemple si le visage est masqué partiellement par des lunettes noires, de la barbe, une main devant sa bouche, ou si l'image a subi de fortes dégradations locales. 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 lorsqu'il s'agit de choisir entre plusieurs positions candidates, qui doivent avoir été détectées dans l'étape précédente.

Le détecteur d'éléments faciaux récemment mis au point par les demandeurs utilise un réseau de neurones de type convolutionnel, ce qui le rend robuste aux bruits pouvant affecter les images soumises au détecteur, et permet généralement de s'affranchir des occultations partielles de visages dans les images. Cependant les cadrages de visages que l'on obtient avec ce détecteur ne sont pas tout à fait insensibles aux occultations partielles de visages. De plus le réseau de neurones utilisé par le détecteur est conçu pour apprendre à détecter des points d'intérêts dans une image contenant un visage, ce qui veut dire que son apprentissage ne se concentre pas sur le

cadrage du visage lui-même. La localisation de visages dans une image rendue par ce détecteur est de ce fait approximative.

Quant aux méthodes reposant sur des modèles de visages actifs, qui permettent une recherche globale des éléments en utilisant conjointement les informations de forme et de texture, elles reposent 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. De plus, ces modèles statistiques étant linéaires, ils sont peu robustes aux variations globales de l'image, notamment les variations d'éclairage. Ils sont de plus peu robustes à des occultations partielles du visage. De plus ces modèles de visage sont conçus pour l'analyse de visages appris et n'offrent que peu de capacité de généralisation dans le cas de visages inconnus.

La présente invention a pour but de résoudre les inconvénients de la technique antérieure en fournissant un procédé et un dispositif de cadrage d'un objet dans une image, qui utilisent un réseau de neurones.

A cette fin, l'invention propose un procédé de cadrage d'un objet dans une image, ledit objet appartenant à une catégorie d'objets présentant des caractéristiques distinctives communes, et ledit procédé utilisant un réseau de neurones artificiels soumis préalablement à une phase d'apprentissage, caractérisé en ce qu'il comporte les étapes de:

- Localisation dudit objet dans ladite image, afin d'obtenir un premier cadrage dudit objet définissant un morceau de ladite image,

- Application dudit morceau d'image en entrée dudit réseau de neurones, et obtention en sortie de coefficients de transformation permettant d'obtenir un second cadrage dudit objet, ladite phase d'apprentissage ayant entraîné ledit réseau à fournir en sortie des coefficients de transformation permettant un recadrage à partir de morceaux d'images d'apprentissage.

Grâce à l'invention, on obtient automatiquement des extractions d'objets qui sont bien centrés et à Ia même échelle dans les cadres correspondants issus du procédé de cadrage selon l'invention. Cela permet, lorsque l'invention est appliquée à des visages, d'utiliser les systèmes automatiques de reconnaissance de visage existants de manière optimale. Le procédé selon l'invention permet également d'améliorer les performances d'autres systèmes d'analyse faciale, comme par exemple un détecteur d'éléments faciaux, en appliquant à l'entrée de ces systèmes les images de visages issues du procédé de cadrage selon l'invention. II est de plus à noter que ce procédé permet de s'affranchir, pour l'obtention du second cadrage lui-même, d'un procédé particulier de localisation d'objets dans une image. C'est pourquoi ce second cadrage donne de meilleurs résultats que le cadrage issu du détecteur d'éléments faciaux récemment mis au point par les demandeurs. De plus le procédé de cadrage selon l'invention n'utilise pas de filtre paramétré manuellement, comme fréquemment utilisé en traitement d'images, ce qui contribue à obtenir une solution généralisée pour tout type de visages, contrairement aux techniques utilisant des modèles de visages actifs par exemple.

Selon une caractéristique préférée, ledit réseau de neurones est un réseau de neurones à couches hétérogènes comprenant au moins une couche cachée de convolution.

Ce choix d'utilisation d'un réseau de neurones de type convolutionnel permet d'obtenir un procédé de cadrage performant et robuste au bruit pouvant affecter les images traitées, tout en minimisant le temps nécessaire pour la phase d'apprentissage du réseau de neurones. En effet, l'utilisation d'un simple réseau de neurones MLP, d'après l'anglais "Multi Layer Perceptron", nécessiterait un nombre de connexions entre neurones très importants et donc un temps d'apprentissage plus long.

Selon une autre caractéristique préférée, ledit réseau de neurones est un réseau de neurones à couches hétérogènes comprenant deux couches

cachées de convolution entre lesquelles est interposée une couche de sous- échantillonnage.

Ce choix d'architecture du réseau de neurones améliore les performances du procédé de cadrage selon l'invention, par rapport à un réseau de neurones hétérogène comprenant une seule couche cachée de convolution.

Selon une autre caractéristique préférée, ledit réseau de neurones comporte six couches dont quatre couches cachées, une couche d'entrée et une couche de sortie. Ce choix d'architecture du réseau de neurones est optimal et permet, par son nombre limité de couches, de diminuer les risques de "surapprentissage", ou "apprentissage par cœur", du réseau de neurones.

Selon une autre caractéristique préférée, l'étape de localisation utilise un réseau de neurones à couches hétérogènes comprenant au moins une couche cachée de convolution.

L'utilisation d'un réseau de neurones de type convolutionnel pour l'étape de localisation donne au procédé de cadrage selon l'invention tous les avantages d'un procédé de localisation robuste et performant. En particulier le procédé de cadrage selon l'invention est ainsi d'avantage robuste à tous les bruits pouvant affecter l'image, tels qu'une mauvaise résolution ou des variations importantes d'illumination et de contraste. Il est de plus performant pour cadrer par exemple des visages en poses variées, orientées dans le plan de l'image ou non frontales. Le procédé est aussi efficace lorsqu'il est utilisé sur des visages avec des expressions faciales variées, ou qui contiennent des éléments occultants, comme des lunettes ou de la barbe.

Selon une autre caractéristique préférée, lesdits coefficients de transformation en sortie du réseau de neurones comprennent:

- un coefficient de translation selon un premier axe dudit premier cadrage, - un coefficient de translation selon un second axe dudit premier cadrage,

- un coefficient de rotation par rapport au centre de gravité dudit premier cadrage,

- et un coefficient de mise à l'échelle.

Ainsi le second cadrage obtenu à l'étape d'application, prenant en compte tous ces coefficients, aboutit à un cadrage dans lequel l'objet précédemment localisé est centré et à une échelle prédéterminée dans ce cadre, mais est aussi toujours tourné dans le plan à la même position. Ceci facilite la reconnaissance de certains objets, par exemple la reconnaissance d'un visage dans une image lorsque celui-ci est tourné dans le plan. L'invention concerne aussi un dispositif de cadrage d'un objet dans une image, ledit objet appartenant à une catégorie d'objets présentant des caractéristiques distinctives communes, et mettant en œuvre le procédé de cadrage selon l'invention.

L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en œuvre le procédé de cadrage selon l'invention, lorsqu'il est exécuté sur un ordinateur.

Le dispositif de cadrage d'un objet dans une image, ainsi que le programme d'ordinateur, présentent des avantages analogues à ceux du procédé selon l'invention.

D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles :

- la figure 1 représente un réseau de neurones utilisé par le procédé selon l'invention,

- la figure 2 représente différentes phases auxquelles est soumis ce réseau de neurones,

- la figure 3 représente un équipement informatique mettant en œuvre le procédé selon l'invention, - la figure 4 représente différentes étapes d'une phase d'utilisation du réseau de neurones,

- la figure 5 représente des cadrages dans une image, obtenus pendant cette phase d'utilisation,

- la figure 6 représente un morceau d'image issu d'un des cadrages précédents, - la figure 7 représente un agrandissement d'une partie centrale de ce morceau d'image,

- la figure 8 représente la structure d'un neurone artificiel,

- la figure 9 représente les différentes étapes d'une phase d'apprentissage à laquelle on soumet le réseau de neurones utilisé par le procédé selon l'invention.

Selon un mode de réalisation préféré de l'invention, le procédé de cadrage d'objets dans une image selon l'invention utilise un réseau de neurones RES représenté à la figure 1. Ce réseau neuronal est composé de plusieurs couches hétérogènes, contenant à la fois des couches de convolution et des couches plus classiques utilisées dans les réseaux de neurones MLP. Dans ce mode de réalisation, le réseau de neurones RES comporte six couches de neurones, dont une première couche d'entrée E, une première couche cachée de convolution Ci, une deuxième couche cachée de sous-échantillonnage S 2 , une troisième couche cachée de convolution C 3 , une quatrième couche cachée de neurones N 4 de type MLP et une dernière couche de sortie S. Il est possible d'utiliser plus de couches cachées, mais un nombre important de couches cachées rend le procédé de cadrage d'objets implémenté par le réseau de neurones trop complexe: le réseau de neurones risque dans ce cas d'apprendre du bruit, problème qualifié de "surapprentissage".

En variante le réseau de neurones RES est un réseau de neurones MLP. Cette variante de réalisation nécessite une phase d'apprentissage plus longue que dans le mode de réalisation préféré de l'invention, car le nombre de connexions entre neurones est alors beaucoup plus élevé.

De plus, dans ce mode de réalisation, on travaille sur des images de pixels codés en niveaux de gris, car on n'utilise pas, dans ce mode de réalisation, les couleurs des objets à cadrer. C'est pourquoi la première couche E comporte autant de neurones que de pixels contenus dans l'image appliquée en entrée du réseau de neurones RES, biais exclus.

En variante, on travaille sur des images couleurs de pixels, codées suivant le système de codage couleur Rouge/Vert/Bleu RGB d'après l'anglais

"Red Green Blue". Dans cette variante la première couche E comporte alors autant de neurones que trois fois le nombre de pixels contenus dans l'image appliquée en entrée du réseau de neurones RES, biais exclus.

Dans une autre variante, on travaille sur des images dont les couleurs sont codées suivant d'autres systèmes de codage couleur, par exemple le système de codage Teinte/Saturation/Valeur HSV d'après l'anglais "Hue

Saturation Value", ou les systèmes de chrominance de la Commission Internationale de l'Eclairage (CIE) La * b * et LuV, ou encore les systèmes utilisés dans les standards télévision tels que YUV, YIQ, et YCbCr. Le nombre de neurones dans la couche d'entrée E est alors égal au nombre de dimensions utilisées par le système de codage couleur choisi, multiplié par le nombre de points de couleur contenus dans l'image appliquée en entrée du réseau de neurones RES, biais exclus.

Le fonctionnement détaillé de chacune des couches du réseau de neurones RES sera décrit plus loin.

Le réseau de neurones RES est soumis, préalablement à son utilisation par le procédé de cadrage selon l'invention pendant la phase d'utilisation φ2 représentée à la figure 2, à une phase d'apprentissage φ1.

Le procédé selon l'invention est typiquement implémenté de manière logicielle dans un ordinateur ORD, représenté à la figure 3. L'ordinateur ORD implémenté par exemple la phase d'apprentissage φ1 dans un module d'apprentissage MAP, et la phase d'utilisation dans un module de cadrage

MC. Chacun de ces modules implémente le réseau de neurones RES. Le module de cadrage MC implémente également un procédé de localisation de visages dans une image I.

La phase d'apprentissage φ1 , détaillée plus bas, permet d'entraîner le réseau de neurones RES, à partir d'un morceau d'image définissant un premier cadrage d'objet et appliqué en entrée du réseau de neurones, à fournir en sortie des coefficients de transformation permettant d'obtenir un second cadrage de cet objet dans l'image complète associée au morceau d'image. A la fin de cette phase d'apprentissage, on aboutit à des valeurs de poids W et de biais B du réseau de neurones, qui permettent d'obtenir de tels coefficients. Le réseau de neurones RES est alors prêt à être utilisé pendant la phase d'utilisation φ2 pour fournir, à partir d'une image I contenant un visage, un cadrage CF de ce visage selon l'invention.

Dans ce mode de réalisation, la phase d'apprentissage est effectuée à partir d'une base d'images d'apprentissage BDD, ces images contenant des visages, car le procédé de cadrage est utilisé dans cet exemple de réalisation pour cadrer des visages. Cependant le procédé de cadrage d'objets selon l'invention est utilisable pour cadrer tout autre type d'objet présentant des caractéristiques distinctives communes, par exemple pour cadrer des voitures dans une image. La phase d'apprentissage φ1 doit alors dans cet autre exemple entraîner le réseau de neurones RES sur des images contenant des voitures.

Le principe du procédé de cadrage d'objet selon l'invention est maintenant décrit en liaison avec les figures 4 à 7.

Une fois la phase préalable d'apprentissage φ1 effectuée, le réseau de neurones RES entre dans la phase d'utilisation φ2 dans laquelle il est opérationnel pour cadrer des visages présents dans des images en niveaux de gris de pixels. Dans cette phase d'utilisation φ2, l'utilisation du réseau de neurones RES pour cadrer un visage dans une image comporte trois étapes b1 à b3 représentées à la figure 4.

La première étape b1 est une étape de localisation de visages dans une image I. L'image I est soumise à un procédé de localisation de visages, donnant des localisations approximatives des visages présents dans l'image I sous forme de boîtes englobantes. On suppose ici que l'image I ne comporte qu'un visage. On obtient donc en sortie du procédé de localisation une boîte englobante définissant un premier cadrage Cl du visage, représenté à la figure 5.

Plusieurs procédés de localisation sont utilisables dans cette étape b1 , utilisant par exemple un filtrage sur la teinte chair, ou une analyse en composantes principales de l'image I. Dans ce mode de réalisation on utilise le procédé de localisation décrit dans l'article de C. Garcia et M. Delakis, intitulé "Convolutional Face Finder: a Neural Architecture for Fast and Robust Face Détection" et publié dans le magazine IEEE "Transactions on Pattern Analysis and Machine Intelligence" en novembre 2004. Ce procédé de localisation utilise aussi un réseau de neurones de type convolutionnel. Il permet de localiser de manière robuste des visages de taille minimale vingt pixels sur vingt pixels, qui sont tournés dans le plan entre -30 degrés et +30 degrés par rapport à un visage qui serait vertical dans l'image, et qui sont tournés partiellement de profil entre -60 et +60 degrés par rapport à un visage entièrement de face. Ce procédé de localisation est également performant dans des scènes à fond complexe avec des éclairages variables, et sur des visages partiellement occultés. Le choix de ce procédé de localisation augmente la robustesse du procédé de cadrage selon l'invention pour cadrer des visages tournés dans le plan ou de profil, partiellement occultés ou dans des scènes aux conditions défavorables. Cependant ce procédé de localisation ne permet d'obtenir que des boîtes englobantes verticales dans l'image contenant les visages à localiser.

La boîte englobante obtenue par le procédé de localisation est ensuite extraite de l'image I et redimensionnée à la taille d'entrée du réseau de neurones RES, représentée à la figure 1, c'est-à-dire qu'elle est

redimensionnée de manière à avoir une hauteur H de 56 pixels et une largeur L de 46 pixels. Ces valeurs sont choisies de manière à permettre au procédé de cadrage selon l'invention de fonctionner avec la plupart des images appliquées en entrée du réseau de neurones RES.

La boîte englobante ainsi extraite et redimensionnée forme un morceau d'image T, représenté à la figure 6, applicable à l'entrée du réseau de neurones RES.

La deuxième étape b2 est une étape d'application du morceau d'image T a l'entrée E du réseau de neurones RES. On obtient en sortie S du réseau de neurones des coefficients de transformation , T r x, T r y, α r et S r c donnés par les quatre neurones de la couche de sortie S. Les valeurs de ces coefficients de transformation T r x, T r y, α r et S r C sont des valeurs réduites comprises entre -1 et 1 , et doivent être ramenées à l'échelle du morceau d'image T appliqué à l'entrée du réseau de neurones RES pour obtenir les coefficients de transformation non réduits correspondants, Tx, Ty, α et Sc. On utilise pour cela la formule inverse de celle utilisée dans la phase d'apprentissage pour obtenir les valeurs réduites T r x, T r y, α r et S r c, comme détaillé plus loin en relation avec cette phase. Il faut aussi ensuite tenir compte du redimensionnement effectué à l'étape b1 , afin d'obtenir des valeurs de coefficients de transformation à l'échelle réelle de l'image I.

La dernière étape b3 est une étape de recadrage du visage dans l'image I. En supposant pour simplifier que les coefficients de transformation Tx, Ty, α et Sc à la sortie du réseau de neurones RES sont à l'échelle réelle de l'image I 1 on effectue comme représenté sur la figure 5 et sur l'agrandissement V de la figure 7:

- une rotation r de -α degrés du premier cadrage Cl par rapport au centre λ du premier cadrage Cl,

- une translation tι de valeur -Tx pixels du premier cadrage Cl suivant un axe horizontal AX de l'image I 1

- une translation t 2 de valeur -Ty pixels du premier cadrage Cl suivant un axe vertical AY de l'image I, - une mise à l'échelle e du premier cadrage Cl en multipliant ses dimensions par un facteur 1/ Sc.

On obtient à la fin de cette dernière étape b3 un deuxième cadrage CF de centre μ. On constate alors, pour la plupart des tests effectués avec le procédé de cadrage selon l'invention, que le visage localisé à l'étape b1 dans l'image I est bien mieux centré et à l'échelle dans le deuxième cadrage que dans le premier cadrage. De plus le second cadrage suit l'orientation du visage contrairement au premier cadrage.

Le fonctionnement détaillé du réseau de neurones RES est maintenant décrit en relation avec les figures 1 et 8.

La couche d'entrée E du réseau de neurones RES est conçue pour recevoir une image en niveaux de gris de hauteur H valant 56 pixels et de largeur L valant 46 pixels. Elle contient donc une matrice de 46*56 neurones dont les valeurs d'entrée e,, sont définies de la façon suivante:

11 128 ' où βj j est la valeur d'entrée d'un neurone de la couche d'entrée E correspondant à la valeur p (J d'un pixel de l'image appliquée en entrée du réseau de neurones. Cette valeur py de ce pixel est codé en niveaux de gris sur une échelle de valeurs allant de 0 à 255. Les indices i et j correspondent respectivement aux indices de ligne et de colonne de la matrice de 46*56 neurones.

Les valeurs d'entrée e tJ du réseau de neurones RES sont donc comprises entre -1 et 1. Il est à noter que les neurones de la couche d'entrée ne sont pas

de vrais neurones, dans le sens où leurs valeurs de sortie sont les mêmes que leurs valeurs d'entrée.

Les autres neurones du réseau de neurones RES fonctionnent de façon classique, comme représenté à la figure 8, qui montre un neurone n s d'une couche de ce réseau, connecté aux neurones n e i, n β2 , n e 3 à n en d'une couche précédente, de valeurs de sortie respectives x-i, X2, X3 à X n . Le neurone n s est relié aux neurones n θ i, n e2 , n θ 3 à n en par autant de liens appelés synapses, auxquels sont associés des poids wi, W 2 , W3 à W n . Le neurone n s a également un biais de valeur b 0 . Les valeurs de biais et de poids sont apprises par le réseau de neurones pendant la phase d'apprentissage φ1. La valeur de sortie y du neurone n s est déduite des valeurs de sortie des neurones n θ i, n e2 , n β 3 à n en après passage dans une fonction de sommation σ et d'une fonction d'activation φ, de la manière suivante:

où p est un indice variant de 1 à n, n étant le nombre de neurones de la couche précédent le neurone n Si

Wp est le poids de la synapse entre le neurone n ep et le neurone n s , Xp est la valeur de sortie du neurone n ep , bo est la valeur du biais associée au neurone n s , et φ est la fonction d'activation du neurone n s .

Les neurones des couches C 1 et C 3 ont une fonction d'activation linéaire, définie par l'équation:

φ( χ ) = x , où x est la variable de la fonction d'activation φ.

Les neurones des couches S 2 , N 4 et S ont quant à eux une fonction d'activation sigmoïde définie par l'équation:

φ(x) = tanh(jc) ,

où x est la variable de la fonction d'activation φ, et tanh est la fonction tangente hyperbolique.

La première couche cachée de convolution Ci est constituée de 40 cartes de 40*50 neurones correspondant à 40 images résultant de la convolution de l'image appliquée en entrée avec 40 noyaux de convolution, qui sont des matrices de 7*7 valeurs de poids. Cela revient à dire que chacun des neurones de la couche Ci n'est connecté qu'à 7*7 neurones de la couche E, et non à tous les neurones de la couche E comme cela serait le cas si la couche Ci était une couche de type MLP. De plus les 7*7 synapses de cette connexion et un même biais sont partagés par tous les neurones d'une carte de la couche d. Par exemple sur la figure 1, qui ne montre pour simplifier que quatre cartes de 40*50 neurones dans la couche Ci, le neurone Cκι de la carte Cn est connecté à tous les pixels du carré W^ de neurones de la couche E. Plus précisément, la valeur de sortie du neurone c k ι de la carte Cn est donnée par la formule:

e k+u,l+v ^ W kl où

y kl est la valeur de sortie du neurone C k i, les indices k et I sont les indices de ligne et de colonne du neurone C k i dans la carte C 11 , wii(u,v) est la valeur de poids située à l'indice de ligne u et à l'indice de colonne v de matrice 7 * 7 formant le noyau de convolution associé à la carte

C 11 , les indices u et v étant des entiers variant de 0 à 6, β k+u.i+v est la valeur d'entrée du neurone situé à l'indice de ligne k+u et à l'indice de colonne k+v de la matrice de 56*46 neurones de la couche d'entrée

E, et b-n est le biais partagé par tous les neurones de la carte C 11 .

La première couche cachée de Ci de convolution est assimilable à un détecteur de certaines formes de bas niveaux dans la carte d'entrée comme des coins, ou des lignes de contraste orientées. Les 40 cartes de neurones de la couche C 1 sont de hauteur réduite Hi avec Hi = H-7+1 , et de largeur réduite Li avec Li= L-7+1 , afin d'empêcher les effets de bord de la convolution.

En variante, si les images utilisées sont codées par exemple suivant le système RGB, la couche d'entrée E est composée de trois cartes de 56 * 46 neurones, chacune d'elles codant une variable de couleur de l'image appliquée en entrée du réseau de neurones RES. Chacune de ces cartes d'entrée est reliée aux cartes de la couche Ci de la même manière que dans la variante principale de réalisation de l'invention, dans laquelle la couche d'entrée E ne comporte qu'une seule carte de 56 * 46 neurones. Autrement dit chacun des neurones de la couche Ci est connecté à trois carrés de 7 * 7 neurones de la couche E. Le fonctionnement des autres couches est alors identique à celui de la variante principale de réalisation, que nous considérons de nouveau maintenant.

La seconde couche cachée d'échantillonnage est constituée de 40 cartes de 20*25 neurones correspondant à 40 images résultant d'un sous- échantillonnage des 40 images de sortie des 40 cartes de neurones de la couche d. Ce sous-échantillonnage est effectué en connectant un neurone de la couche S 2 à quatre neurones de la couche Ci . Les cartes de la couche S2 sont donc de hauteur H 2 ==Hi/2, et de largeur L 2 =Lι/2. Le poids des synapses correspondant à ces connexions est identique pour tous les neurones d'une carte de la couche S 2 . Tous les neurones d'une carte de la couche S 2 ont également un biais partagé. Par exemple sur la figure 1, qui ne montre pour simplifier que quatre cartes de 20*25 neurones dans la couche S 2 , le neurone s mn de la carte S 22 est connecté à tous les pixels du carré F de 2 * 2 neurones de la couche Ci. Plus précisément, la valeur de sortie du neurone s mn de la carte S 22 est donnée par la formule:

OU

y mn est la valeur de sortie du neurone s m n, les indices m et n sont les indices de ligne et de colonne du neurone s mn dans la carte S 2 2. , .12

/2m+ M ,2n+v est la valeur de sortie du neurone situé à l'indice de ligne 2m+u et à l'indice de colonne 2n+v de la carte On de 40*50 neurones de la couche

C 1 , w 22 est la valeur du poids partagé des synapses connectant les neurones de la carte C 12 avec les neurones de la carte S22, tanh est la fonction tangente hyperbolique, et D 22 est le biais partagé par tous les neurones de la carte S22-

La troisième couche cachée de convolution C 3 est constituée de 39 cartes de 16*21 neurones correspondant à 39 images résultant chacune de la somme des convolutions de deux images. Ces deux images correspondent aux sorties de deux cartes de 20 * 25 neurones de la couche S 2 , qui sont convoluées chacune avec un noyau de convolution, formé d'une matrice de 5 * 5 valeurs de poids. Cela revient à dire que chacun des neurones de la couche C 3 est connecté à deux carrés de 5*5 neurones de la couche S 2 . De plus les neurones d'une même carte de la couche C 3 ont tous le même biais. Par exemple sur la figure 1 , qui ne montre pour simplifier que trois cartes de 16 * 21 neurones dans la couche C 3 , le neurone Zq r de la carte C 31 est connecté à tous les pixels des carrés G qr et H qr de neurones de la couche S 2 . Plus précisément, la valeur de sortie du neurone Zq r de la carte C 31 est donnée par la formule:

>V est la valeur de sortie du neurone Zqr, les indices q et r sont les indices de ligne et de colonne du neurone Zq r dans la carte C 3 i,

W 3 ii(u,v) est la valeur de poids située à l'indice de ligne u et à l'indice de colonne v de matrice 5*5 formant le noyau de convolution associé à la convolution de la carte C 31 de la couche C3 avec la carte S21 de la couche S 2 , les indices u et v étant des entiers variant de 0 à 4, w 3 i 2 (u,v) est la valeur de poids située à l'indice de ligne u et à l'indice de colonne v de matrice 5*5 formant le noyau de convolution associé à la convolution de la carte C 31 de la couche C 3 avec la carte S 22 de la couche S 2 , les indices u et v étant des entiers variant de 0 à 4,

s v q 2 + 1 u, r+v est la valeur de sortie du neurone situé à l'indice de ligne q+u et à l'indice de colonne r+v de la carte S21 de 20 * 25 neurones de la couche S 2 , i; 22 s q+u,r+v est la valeur de sortie du neurone situé à l'indice de ligne q+u et à l'indice de colonne r+v de la carte S 22 de 20*25 neurones de la couche S 2 , et D 31 est le biais partagé par tous les neurones de la carte C 31 .

La troisième couche cachée C3 de convolution permet d'extraire des caractéristiques de l'image appliquée en entrée de plus haut niveau que la couche Ci en combinant des extractions des cartes des couches précédentes.

Les 39 cartes de neurones de la couche C 3 sont de hauteur réduite Hz= H 2 -

5+1 , et de largeur réduite L 3 =L 2 -5+1 , afin d'empêcher les effets de bord de la convolution. La quatrième couche cachée N 4 correspond à une couche de neurones de réseau MLP classique. Elle contient 39 neurones, chacun d'entre eux ayant

son propre biais et étant connecté à chacun des neurones de la couche C3. Les synapses correspondant à ces connexions ont chacune leur propre poids. Enfin la dernière couche de sortie S contient un neurone par coefficient de transformation, c'est-à-dire dans cet exemple de réalisation, quatre neurones donnant les coefficients de transformation T r x, T r y, α r et S r c. Chaque neurone de la couche S est connecté à tous les neurones de la couche N 4 , et a son propre biais. De même les synapses correspondant à ces connexions ont chacune leurs propres poids.

Cette architecture neuronale agit donc comme une cascade de filtres permettant d'estimer, pour une image de visage appliquée en entrée du réseau de neurones RES, des valeurs numériques au niveau de la couche de sortie correspondant aux coefficients de transformation T r x, T r y, <x r et S&.

Il est à noter que les choix de nombres de cartes de neurones ou de neurones dans chaque couche du réseau de neurones RES, ainsi que les choix des tailles des noyaux de convolution, qui ont été faits dans ce mode de réalisation, correspondent à un fonctionnement optimal du procédé de cadrage selon l'invention. Cependant d'autres choix permettent d'aboutir également à un fonctionnement satisfaisant du procédé de cadrage selon l'invention.

La phase d'apprentissage φ1 est maintenant détaillée en relation avec la figure 9.

La phase d'apprentissage nécessite la création préalable d'une base d'images d'apprentissage BDD qui contiennent des visages. Pour cela on utilise des photos en niveaux de gris de bases d'images, et on extrait manuellement des boîtes englobantes contenant chacune un visage bien centré, bien orienté et à une même échelle dans sa boîte. Puis on les redimensionne avec leurs images initiales respectives afin que les boîtes englobantes aient une taille de hauteur H et de largeur L correspondant à l'entrée du réseau de neurones RES.

Dans ce mode de réalisation du procédé selon l'invention on extrait ainsi 1500 boîtes englobantes contenant des visages d'apparences variées.

On applique ensuite à ces boîtes englobantes redimensionnées une ou plusieurs transformations géométriques dans leurs images initiales également redimensionnées, parmi lesquelles:

- une translation horizontale Tx variant de 6 pixels vers la gauche à six pixels vers la droite,

- une translation verticale Ty variant de 6 pixels vers le haut à six pixels vers le bas, - une rotation par rapport au centre de l'image par un angle α variant de -30 degrés à +30 degrés,

- un zoom arrière ou avant d'un facteur Sc allant de 90% à 110% de la taille du visage.

On obtient ainsi une base d'images d'apprentissage BDD de deux millions d'images de visages, ou boîtes englobantes, correspondant à un mauvais cadrage. Chacune des images de visages ainsi obtenue est annotée des valeurs des coefficients de transformation qui ont été effectuées pour l'obtenir.

La phase d'apprentissage φ1 consiste ensuite à utiliser cette base d'images d'apprentissage BDD pour entraîner le réseau de neurones RES à fournir en sortie des coefficients de transformation correspondant à des transformations devant être effectuées sur une boîte englobante bien cadrée pour aboutir à la boîte englobante mal cadrée correspondant à l'image appliquée en entrée du réseau de neurones. On n'utilise en fait qu'un sous- ensemble de 30000 images tirées au hasard de la base de deux millions d'images de visages précédemment obtenues.

Pour cela, les biais et les poids synaptiques du réseau de neurones sont inîtialisés aléatoirement à de faibles valeurs comprises entre 0 et 1 mais différentes de zéro.

Dans la première étape ai, on sélectionne au hasard un sous- ensemble de 1000 images des 30000 images d'apprentissage sélectionnées au départ. Cette sélection sert de base à une itération de l'algorithme de rétro- propagation du gradient, qui converge à une solution stable après environ 200 itérations. Une itération consiste à exécuter les étapes ai à a4, autrement dit les étapes ai à a4 de la figure 9 sont réitérées 200 fois. L'algorithme de rétro- propagation du gradient, utilisé pendant la phase d'apprentissage, est connu de l'homme du métier.

Dans une deuxième étape a2, on présente à l'entrée du réseau de neurones RES, une image tirée aléatoirement du sous-ensemble de 1000 images précédemment sélectionné. On applique également à la sortie du réseau de neurones des valeurs désirées, qui sont les valeurs réduites T r x, T r y, α r et S r c correspondant aux coefficients de transformation Tx 1 Ty, α et Sc annotés à cette image, afin que ces valeurs désirées soient comprises entre - 1 et 1 : i

- D m est une valeur désirée égale à une valeur réduite de coefficient de transformation T r x, T r y, a, ou S r c, - P n est le coefficient de transformation non réduit Tx, Ty, α ou Sc correspondant à la valeur désirée D 1n ,

- ^ n Mi» est le minimum permis pour le paramètre P m correspondant, soit -6 pixels pour Tx ou Ty, -30 degrés pour α ou 90% pour Sc,

- et P m ,Maχ est le maximum permis pour le paramètre P m correspondant, soit 6 pixels pour Tx ou Ty, 30 degrés pour α ou 110% pour Sc.

Dans une troisième étape a3, on effectue une propagation du réseau de neurones RES à partir de l'image appliquée en entrée du réseau de neurones RES, et on obtient les réponses de sortie des neurones du réseau RES, permettant d'appliquer l'algorithme de rétro-propagation du gradient. Dans une quatrième étape a4, on effectue une rétro-propagation du réseau de neurones RES, permettant de mettre à jour les poids synaptiques et les biais du réseau RES. On utilise par exemple dans cet algorithme de rétro- propagation du gradient les paramètres suivants:

- un pas d'apprentissage de 0.003 pour les neurones des couches Ci et S 2 ,

- un pas d'apprentissage de 0.002 pour les neurones de la couche C3,

- un pas d'apprentissage de 0.0005 pour les neurones de la couche N 4

- un pas d'apprentissage de 0.0001 pour les neurones de la couche S,

- et un momentum de 0.2 pour tous les neurones du réseau RES. Le but de cet algorithme de rétro-propagation du gradient est classiquement de minimiser la fonction objectif suivante:

O est la fonction objectif à minimiser sur l'ensemble des 1000 images présentées à l'entrée du réseau de neurones RES lors d'une itération, chaque présentation d'image correspondant à l'indice de sommation k dans cette formule, et sur l'ensemble des 4 coefficients de transformation en sortie du réseau de neurones RES, représentés chacun par un indice de sommation m variant de 1 à 4, D m est une valeur désirée appliquée en sortie du réseau de neurones, correspondant à l'un des coefficients de transformation T r x, T r y, α r et S r C, et S m est la valeur correspondante obtenue en sortie du réseau de neurones après la phase de propagation.

Lors d'une itération, les étapes a2 à a4 sont répétées cycliquement sur l'ensemble des 1000 images sélectionné à l'étape ai, à la différence près qu'au deuxième passage à l'étape a2, on sélectionne aléatoirement une image des 999 images non encore appliquées à l'entrée du réseau de neurones RES, puis au troisième passage par l'étape a2, on sélectionne aléatoirement une image des 998 images non encore appliquées à l'entrée du réseau de neurones RES, et ainsi de suite.

Il est à noter que d'autres variantes de réalisation du procédé selon l'invention sont envisageables, avec des coefficients de transformation définis différemment. Par exemple en variante, la phase d'apprentissage entraîne le réseau de neurones RES à fournir, à partir d'une boîte englobante mal cadrée sur un visage, des coefficients de transformation permettant d'effectuer des transformations sur cette boîte englobante afin d'aboutir à une boîte englobante bien cadrée sur ce visage. Ainsi les coefficients de transformation obtenus en sortie du réseau de neurones RES n'ont pas besoin d'être inversés pendant la phase d'utilisation.