Brevet FR2875322A1 — publié le 20060317

PROCEDE D'AIDE A LA RECONNAISSANCE DE VISAGE L'invention concerne la reconnaissance de visage humain. La reconnaissance de visage est une des techniques biométriques permettant d'identifier une personne ou de vérifier l'identité d'une personne pour autoriser ou interdire un accès à des informations ou des locaux. Elle peut nécessiter d'une part une prise d'image instantanée du visage, un traitement de cette image et une comparaison avec une image préenregistrée ou plusieurs images préenregistrées d'une base de données de personnes autorisées ou non autorisées. Plus généralement, la reconnaissance comprend d'abord une étape d'enrôlement dans laquelle on io enregistre certaines caractéristiques du visage d'un individu, ces caractéristiques constituant en quelque sorte une signature de l'individu, et ensuite une étape d'authentification (comparaison avec une seule signature) ou d'identification (comparaison avec plusieurs signatures et décision). Quelle que soit la signature utilisée pour l'opération de reconnaissance, l'opération de comparaison de signatures ne peut se faire correctement que si l'image instantanée est prise dans des conditions suffisamment semblables à celles qui ont servi au moment de l'enrôlement pour la détermination de la signature enregistrée. Parmi ces conditions il y a le cadrage du visage en position et en dimensions dans l'image. On peut faire l'hypothèse que l'orientation du visage est définie par l'utilisateur: le plus souvent on demandera à la personne dont l'identité doit être vérifiée de se placer face à l'objectif d'un appareil photographique ou d'une caméra. Mais il est plus difficile d'imposer à l'utilisateur de fixer très exactement la position de son visage et ses dimensions dans l'image, même si ce positionnement est aidé par un retour d'image numérique fourni par la caméra. L'invention a notamment pour but de faciliter l'obtention d'une image instantanée de visage correctement positionnée et dimensionnée en vue d'une analyse et d'une comparaison ultérieure avec une image ou une signature d'image préenregistrée. Cette obtention passe par la localisation du visage à l'intérieur de l'image prise par une caméra. Une fois le visage localisé, l'image peut être modifiée par des opérations simples de rotation, agrandissement/réduction et recadrage pour obtenir une image ou imagette dimensionnée de la même manière que l'image préenregistrée ou que l'image qui a servi à définir une signature préenregistrée. La présente invention part de l'observation qu'on pourrait utiliser les centres des yeux de l'image instantanée comme repères de la position du visage dans l'image prise, en vue de transformer cette image par rotation, agrandissement/réduction, et translation, pour établir une image dont les centres des yeux sont à des positions prédéterminées dans l'image. Ces positions prédéterminées facilitent ainsi la phase d'extraction de la signature de l'individu. 1 o Selon l'invention on propose donc, en vue d'aider à la reconnaissance de visage, un procédé de localisation du visage d'une personne dans une image fournie par une caméra numérique, comprenant les opérations suivantes: recueillir par la caméra des images successives du visage à un moment où la personne cligne des yeux, produire une image numérique différence résultant de la soustraction point à point entre deux images successives dont l'une est une image de référence prise avant ou après le clignement et l'autre est une image prise pendant le clignement, détecter dans cette image différence la présence des yeux constitués par deux taches séparées, déterminer un centre approximatif de chaque tache, les coordonnées des deux centres constituant des repères de position du visage dans l'image de référence. En d'autres mots, on demande à la personne de cligner volontairement des yeux devant la caméra (mais un clignement involontaire peut également fonctionner). Le clignement est bref (ordre de grandeur 100 à 200 millisecondes). Les images prises d'une part juste avant ou juste après le clignement et d'autre part pendant le clignement sont identiques point par point, ou presque, à l'exception des yeux que les paupières viennent masquer pendant le clignement. Quand on fait la différence des images, on trouve une image entièrement noire (pas de différence entre les pixels des deux images), sauf à l'endroit des yeux où il y a une différence entre les deux images. L'image différence est une image représentant deux yeux virtuels qui ressemblent en forme et position aux yeux réels. Par une succession de traitements numériques de l'image, on détermine les coordonnées d'un point représentant le centre de chaque de 35 chaque oeil virtuel. L'image prise avant ou après le clignement peut alors être modifiée de manière à être localisée, orientée et dimensionnée en fonction de la position prédéfinie pour les yeux. La reconnaissance de visage en est facilitée. Pour cela les coordonnées des centres des yeux de l'image de référence sont confrontées à des coordonnées de deux points prédéfinis, pour en déduire une transformation d'image à effectuer pour faire coïncider les centres des yeux de l'image de référence avec les points prédéfinis. La transformation est appliquée à l'image de référence avant extraction d'une signature de cette image. On peut alors, lors d'une opération d'authentification ou d'identification, comparer la signature avec une signature préenregistrée; l'hypothèse est que la signature préenregistrée a été élaborée lors de l'étape d'enrôlement, à partir de l'image d'un visage ayant les yeux placés aux points prédéfinis. D'ailleurs, le procédé selon l'invention peut être utilisé pour calculer les coordonnées des centres des yeux de l'image lors de l'étape d'enrôlement, et pour transformer l'image, avant extraction d'une signature à enregistrer, en une image ayant les yeux aux points prédéfinis, afin que la signature soit extraite de cette image et non d'une image qui aurait les yeux mal placés. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels: - la figure 1 illustre, sous forme d'une succession d'images, les étapes de procédé conduisant à la détermination d'une position des yeux dans l'image du visage d'une personne; les images se lisent de gauche à droite sur la première ligne d'images puis de gauche à droite sur la deuxième ligne; - la figure 2 illustre l'utilisation de la détermination de position qui a 3o été faite; les images se lisent de gauche à droite. Des images successives M(k-1), M(k), M(k+1) sont prises par la caméra à une cadence qui est par exemple de l'ordre de 15 images par seconde de sorte que deux images successives sont séparées par environ 65 millisecondes. Deux images successives sont montrées sur la figure 1, l'image M(k-1) avant clignement et l'image M(k) pendant un clignement des paupières. Leur différence Diff(k) = M(k-1)-M(k) ou M(k)-M(k-1) est calculée en faisant point par point la différence de luminosité entre les deux images. La différence est calculée en valeur absolue point par point, de sorte qu'une différence, quel que soit son sens sera représentée par un niveau de luminosité positif. En principe, en l'absence de clignement d'yeux, les images successives sont quasi-identiques, et, au bruit près, leur différence est nulle, de sorte que l'image différence est entièrement noire. Mais en présence d'un clignement pendant l'image k, une différence existera au niveau des yeux et des taches apparaîtront dans l'image différence à l'emplacement des yeux. Sur la figure 1, par souci de faciliter la représentation sur papier, on a représenté en quelque sorte le négatif de la différence pour faire apparaître des taches noires à la place des yeux, alors qu'en pratique l'image Diff(k) analysée sera plutôt une image noire avec des taches blanches à la place des yeux. La troisième image de la figure 1 représente, en négatif, la différence Diff(k) = M(k)- M(k-1). L'image différence Diff(k) est stockée et traitée dès lors que son contenu dépasse un seuil moyen de luminosité (moyenne de luminosité de tous les pixels de l'image) dû à la présence de taches blanches sur un fond noir; on conserve en même temps l'image M(k-1) sans clignement qui constituera une image de référence et qui sera utilisée (après traitement adéquat) pour la comparaison avec une image préenregistrée; l'image de référence sans clignement qui est conservée peut être l'image M(k-1) ou de préférence l'image M(k+1) après clignement, voire des images telles que M(k-2) ou M(k+2) plus éloignées de l'image M(k) avec clignement. Dans la suite on considère que c'est l'image M(k-1). Deux images successives qui ne présentent pas une différence suffisante ne donnent pas lieu à une image différence dont la luminosité moyenne dépasse le seuil et le traitement de recherche de position d'yeux n'est pas poursuivi. On peut aussi fixer un plafond de différence au delà duquel on ne traite pas l'image car la différence ne serait pas due à un clignement d'yeux mais à un mouvement de la tête ou une autre cause. Si la cadence de prise de vue est rapide par rapport à la vitesse de clignement, on peut envisager de faire la différence entre deux images non adjacentes pour être sûr de faire la différence entre une image prise incontestablement en dehors du clignement et une image prise incontestablement pendant le clignement. On effectue ensuite de préférence une opération de "binarisation" de l'image différence, c'est-à-dire qu'on convertit en noir tous les points de luminosité inférieure à un certain seuil et en blanc tous les points de luminosité supérieure à ce seuil. Le seuil peut être fixe ou variable, par exemple variable en fonction de caractéristiques de distribution de lumière dans l'image M(k-1), ou variable en fonction du niveau de bruit du capteur: en éclairage faible, le gain est augmenté et le bruit augmente, et il est alors 1 o utile d'augmenter le seuil en même temps que le gain. L'étape suivante consiste de préférence à effectuer une opération de filtrage médian: pour chaque bloc de pixels (par exemple des blocs de 5x5 pixels) on remplace le pixel central du bloc par un pixel noir ou un pixel blanc selon que la majorité des pixels du bloc est noire ou blanche. On élimine ainsi des pixels blancs ou noirs isolés ou des taches de très petites dimensions. L'image qui résulte de cette binarisation suivie de ce filtrage est une image DiffB(k), quatrième image de la figure 1, représentée toujours en négatif sur le dessin. On effectue ensuite sur l'image différence de préférence un traitement mathématique d'érosion: les zones blanches continues de taille inférieure à une dimension prédéterminée sont éliminées. Cela rend plus nette la constitution de deux taches blanches (noires sur les dessins) représentant les yeux. Une dilatation des zones blanches restantes peut être effectuée pour rendre aux tâches des dimensions représentant mieux la taille des yeux. Cette étape n'est pas représentée. L'image qui résulte de ces traitements ne comprend en principe plus que deux taches claires dont il convient de déterminer les centres qui représenteront le centre des yeux. La cinquième image de la figure 1 représente la détermination des centres des yeux; il est facile de déterminer par une analyse en ligne et en colonne de l'image des zones rectangulaires délimitant chaque tache; le centre du rectangle représente le centre de l'ceil virtuel. La sixième image de la figure 1 représente les points A et B correspondant aux centres des yeux ainsi trouvés, de coordonnées (Xa, Ya) et (Xb, Yb) respectivement dans l'image globale de référence, relativement à un centre O de l'image. Ces coordonnées vont être utilisées pour transformer l'image de référence (hors clignement) d'un visage pour caler la position et la dimension 5 du visage de cette image sur des positions d'yeux prédéfinies. Si on suppose que la position des yeux prédéfinie est AO pour l'ceil droit, BO pour l'oeil gauche, on calcule alors les transformations d'image qu'il faut faire subir à l'image de référence M(k-1) ou M(k+1) en cours d'analyse pour que les yeux de l'image de référence analysée se trouvent en position A0, BO après transformation plutôt qu'en position A et B. La septième image de la figure 1 représente, agrandie par rapport à la sixième image, la position respective des points A et B et des points AO et BO. Généralement il faudra d'abord envisager une rotation d'image pour aligner les yeux de l'image de référence M(k-1) dans le même sens que les yeux de l'image préenregistrée: rotation d'un angle alpha qui est l'angle entre les droites AB et AOBO. Sur la septième image de la figure 1 on a fait l'hypothèse que la droite AOBO est orientée selon une ligne horizontale de l'image et par conséquent l'angle alpha est l'angle qui ramène la droite AB à une ligne horizontale de la matrice. Cette hypothèse n'est pas obligatoire: l'image préenregistrée, ou sa signature si c'est la signature qui est enregistrée, pourrait avoir les centres des yeux non situés sur une même ligne horizontale; dans tous les cas, l'angle de rotation alpha est l'angle entre AB et AOBO. Pour simplifier les traitements, on peut supprimer l'opération de rotation et imposer à l'utilisateur de se présenter avec une tête non penchée (ligne d'yeux horizontale). On impose alors au système de détecter deux taches alignées horizontalement, ce qui fait que si l'utilisateur penche trop la tête les yeux ne seront pas détectés. La rotation d'angle alpha de toute l'image, autour du centre O de l'image, amène les centres A et B des yeux en des points A' et B' visibles sur la septième image de la figure 1 et les coordonnées de A' et B' peuvent donc être calculées à partir de l'angle alpha. La distance entre A' et B' est la même que la distance D entre A et B, la rotation n'ayant pas d'influence sur les distances. Mais la distance DO entre AO et BO peut être différente de D. On calcule le rapport d'agrandissement ou réduction d'image DO/D nécessaire pour que l'image agrandie ait des centres d'yeux séparés de la même distance DO que l'image qui a servi à enregistrer une signature lors de l'enrôlement. Si on applique cette transformation d'agrandissement (ou de réduction) de l'image par homothétie à partir du centre O de l'image dans le rapport DO/D, la transformation des centres A' et B' amène à des centres A" et B" avec une distance DO entre A" et B". La huitième image de la figure 1 1 o montre les points A" et B" résultant de cette homothétie. La connaissance du rapport DO/D permet de calculer les coordonnées des points A" et B". L'homothétie conserve la direction de la droite A'B'. La droite A"B" est donc parallèle à A'B' et de ce fait à AOBO. On peut si on le désire imposer des contraintes sur le rapport DO/D, une réduction ou un agrandissement excessif de l'image de référence pouvant entraîner une image du visage trop dégradée. De plus, un traitement de réduction étant plus facile à réaliser qu'un traitement d'agrandissement, on peut imposer que le rapport DO/D soit inférieur à 1 pour valider une détection d'yeux. Enfin, la connaissance des coordonnées de A" et B" permet de déterminer le vecteur A"AO (ou B"BO) de translation nécessaire pour passer de A" à AO et de B" à BO. Par translation on entend d'une manière générale une translation de tous les points d'image par rapport au cadre initial de l'image, ou plus simplement et ce qui revient au même, une translation inverse du cadre de l'image par rapport à l'image, c'est-à-dire un recadrage de l'image sur un rectangle prédéterminé dont la position est définie par rapport aux points AO et BO. Par conséquent, en résumé, une fois qu'on a déterminé les coordonnées des centres A et B des yeux détectés grâce à l'image Diff(k), on 30 effectue les opérations suivantes: Calcul de la distance D entre les centres A et B identifiés dans l'image de référence; détermination de la distance DO entre les centres AO et BO de l'image préenregistrée; calcul du rapport DO/D; calcul de l'angle alpha entre la ligne AB et la ligne AOBO; calcul des coordonnées des points A' et B' qui résultent d'une rotation des points A et B d'un angle alpha autour d'un centre qui est en principe le centre O de l'image; calcul des coordonnées des points A" et B" résultant de l'homothétie de A' et B' dans le rapport D0/D (O, A', A" alignés et OA"/OA' = D0/D; O, B', B" alignés et OB"/OB'=DO/D) ; enfin, calcul des vecteurs de translation A"AO et B"BO (ces vecteurs sont identiques) servant au recadrage. Ces calculs effectués, on reprend l'image de référence à analyser, M(k-1) ou M(k+1) en principe mais ce peut être une image un peu avant M(k) ou une image un peu après M(k+1) pour prendre une image dans laquelle on est raisonnablement sûr que le clignement d'yeux n'a pas commencé. La première image de la figure 2 représente cette image de référence. Deuxième image de la figure 2: on fait tourner l'image de référence de l'angle alpha calculé ci-dessus (rotation autour du centre de l'image). Troisième image de la figure 2: on agrandit l'image dans le rapport D0/D (agrandissement par homothétie à partir du centre de l'image). Quatrième image de la figure 2: on effectue une translation d'image selon le vecteur précédemment calculé (le vecteur A"AO dans le calcul donné cidessus). L'image de référence ainsi transformée peut alors être analysée 20 pour en extraire une signatue qui est comparée avec une signature préenregistrée. II est possible d'intervertir l'ordre des opérations de transformation de l'image sans changer le principe de l'invention: par exemple l'agrandissement dans le rapport D0/D peut être effectué avant la rotation, faisant passer des points A et B à des points A'1 et B'1 d'abord puis aux points A" et B" ; la translation qui suit est la même que précédemment; on pourrait même envisager une translation avant la rotation ou avant l'agrandissement ou avant les deux, mais dans ce cas le vecteur de translation n'a pas la même valeur que si la translation est effectuée comme dernière opération de la transformation. Le calcul du vecteur de translation doit donc tenir compte de l'ordre dans lequel sera fait la transformation ultérieure de l'image de référence. Pour constituer la base de données de signatures préenregistrés, on peut utiliser l'invention en demandant à la personne de cligner des yeux et en traitant l'image de la manière indiquée précédemment avant de l'analyser 2875322 9 et d'en déterminer une signature à enregistrer dans une base de données, de manière que la signature soit définie pour une position d'yeux bien déterminée même si les yeux ne sont pas à cette position dans l'image prise par la caméra. Parmi les avantages de l'invention, outre la simplification de la reconnaissance, on peut citer aussi le fait que l'opération de reconnaissance ne peut pas être frauduleusement contournée par la présentation d'une photographie devant la caméra, car le clignement d'yeux, nécessaire à l'opération, ne peut pas être simulé par une simple photographie. REVENDICATIONS 1. Procédé de localisation du visage d'une personne dans une image fournie par une caméra numérique, comprenant les opérations suivantes: recueillir par la caméra des images successives du visage à un moment où la personne cligne des yeux, produire une image numérique différence résultant de la soustraction point à point entre deux images successives dont l'une est une image de référence prise avant ou après le clignement et l'autre est une image prise pendant le clignement, détecter dans cette image différence la présence des yeux constitués par deux taches séparées, déterminer le centre approximatif de chaque tache, les coordonnées des deux centres constituant des repères de position du visage dans l'image de référence. 2. Procédé selon la revendication 1, caractérisé en ce que les coordonnées des centres des yeux de l'image de référence sont confrontées à des coordonnées de deux points prédéfinis, pour en déduire une transformation d'image à effectuer pour faire coïncider les centres des yeux de l'image de référence avec les points prédéfinis. 3. Procédé selon la revendication 2, caractérisé en ce qu'on calcule la distance D entre les centres A et B identifiés dans l'image de référence; on détermine la distance DO entre les points prédéfinis AO et BO; on calcule le rapport DO/D; on calcule l'angle (alpha) entre la ligne AB et la ligne AOBO; on calcule les coordonnées des points A' et B' qui résultent d'une rotation des points A et B d'un angle alpha autour d'un centre O de l'image; on calcule des coordonnées des points A" et B" résultant d'une homothétie de A' et B' dans le rapport DO/D; et on calcule des vecteurs de translation A"AO et B"BO. 4. Procédé selon la revendication 2, caractérisé en ce que la 30 transformation d'image inclut une rotation d'un angle alpha qui est l'angle entre la droite joignant les centres des yeux de l'image de référence et la droite joignant les points prédéfinis, et un agrandissement qui est le rapport entre la distance DO entre les points prédéfinis et la distance D entre les centres des yeux de l'image de référence. 5. Procédé selon la revendication 4, caractérisé en ce que la transformation d'image inclut également une translation. 6. Procédé selon la revendication 2, caractérisé en ce que la transformation est appliquée à l'image de référence avant extraction d'une io signature de cette image. 7. Procédé selon la revendication 6, caractérisé en ce qu'on compare la signature avec une signature préenregistrée lors d'une opération d'authentification ou d'identification. 8. Procédé selon la revendication 6, caractérisé en ce qu'on stocke la signature dans une base de données de signatures préenregistrées lors d'une opération d'enrôlement.