Aiguille dans botte de foin: scikit-learn et joblib
Une solution de vérification de visage basée sur l’extraction
1. Intl. Conf. RIVF’04
February 2-5, Hanoi, Vietnam
61
Résumé — L’extraction des caracté-ristiques visuelles joue un
rôle très important pour la détection de visage. Plusieurs
approches ont été proposées, mais une méthode efficace pour
la détection de visage reste encore un problème de recherche.
Dans ce papier nous présentons une solution de vérification
de visage basée sur l’extraction des caractéristiques locales de
type ‘pic et ‘crête’ qui sont considérés comme les
caractéristiques locales de la forme du visage. Cette solution
se compose de deux étapes : l’étape de l’extraction des ‘pic’ et
des ‘crêtes’ fondée sur la méthode géométrie différentielle et
l’étape de vérification réalisée par un réseau de neurones
Perceptron multicouche. Les résultats expérimentaux seront
présentés.
Mot clé — Détection de visage, Extraction des caractéristiques
locales, Géométrie différentielle, Vérification de visage.
I. INTRODUCTION
Les méthodes de vérification de visage en vision par
ordinateur sont basées sur l’extraction des caractéristiques
faciales de l’image. Les caractéristiques visuelles de visage
sont considérées comme les yeux, le nez, la bouche, les
oreilles. Cependant ces caractéristiques peuvent être
variées, elles dépendent encore de la position du caméra
pour la prise de l’image. Par conséquent, la détection de
visage est un problème complexe et vague. Plusieurs
approches et méthodes ont été proposées pour la détection
de visage et la détection des caractéristiques faciales de
visage [9]. Yang et Huang [10] proposent l’usage de
niveaux gris de l’image en structure pyramidale pour
détecter le visage. M. Hunke et A. Waibel [2] déterminent
des zones des points de l’image dont ses couleurs
ressemblent à la couleur de peau. Kotropoulos et Pitas [4]
utilisent une règle basée sur localisation pour détecter les
caractéristiques faciales par une projection fructueuse. Soit
I(x,y) une valeur d'intensité d'une image numérique mxn
en position (x,y), les projections verticales et horizontales
de l'image sont définies comme :
∑=
=
n
y
yxIxHI
1
),()( (1)
∑=
=
n
x
yxIyVI
1
),()( (2)
Les caractéristiques faciales correspon-dent aux
minimums locaux où les changements abrupts d'intensité
survien-nent de HI(x) et de VI(y).
On s’intéresse au problème de la vérification de visage
à base des images de visages seuls. Les images entrées sont
des images de visage d’identité. Elles sont normalisées à la
NGUYEN Thanh Phuong, NGUYEN Thi Hoang Lan : Institut
Polytechnique de Hanoi, Institut de la Francophonie pour l’Informatique
taille 55x70. Nous proposons une solution de la
vérification de visage basée sur l’extraction des
caractéristiques locales de type “crête” et “blob”. Les
caractéristiques faciales de visage sont détectées dans
des fenêtres définies par une méthode basée sur la
géométrie différentielle [7]. Chaque image de visage
peut être caractérisée par un vecteur des caractéristiques
faciales qui est construit par des caractéristiques locales
de type “crête” et “blob”. L’image de visage est vérifiée
par un réseau perceptron multicouche. Après la phase
d’apprentissage du réseau, les formes du visage des
personnes connues sont archivées dans une base de
donnée des caractéristiques faciales. Une image de
visage entrée sera classifiée, soit similaire ou non
similaire à une des images personnes connues. Ce papier
s’organise en 5 parties, après l’introduction, la 2è partie
présente l’algorithme de l’extraction des blobs et des
crêtes basées sur la méthode géométrie différentielle et
propose de construire le vecteur des caractéristiques
faciales de visage, la 3è partie concerne la construction
d’un réseau perceptron multicouche (MLP) pour
vérification de visage, la 4è partie se focalise sur
l’implémentation du programme et les résultats
expérimentaux, la dernière partie est une conclusion du
papier.
II. L’EXTRACTION DES ‘BLOBS’ ET DES ‘CRÊTE’
DE VISAGE
A. Notion de“Blob” et “Crête”
Nous proposons d'utiliser les caractéristiques
locales telles que les blobs et les crêtes pour la
modélisation de l'objet l’image de visage. Intuitivement,
la notion de crête nous fait penser au chemin que l'on
suit sur la montagne où il y a deux côtés descendants, un
blob est considère comme une boule [7].
Un “blob” est un ensemble des points voisins qui a
un point sommet et une zone des points en dessous.
Dans l’image d’intensité, un “blob” ressemble à une
“montagne” isolée et assez ronde. Une “crête” est un
ensemble des points voisins qui a un groupe des points
sommets en ligne avec 2 bandes des points contigus en
dessous. On peut imaginer la “crête” comme un chemin
qu’on peut suivre à dos de la montagne où il y a deux
côtés descendants. On observe que dans une image, une
“crête” est une ligne qui se trouve au milieu d’une tache
allongée, un “blob” est une tache plutôt ronde.
Une Solution de Vérification de Visage basée sur l’Extraction
des Caractéristiques de Type ‘pic’ et ‘crête’ de l’Image.
Thanh-Phuong Nguyen, Thi-Hoang-Lan Nguyen
2. 62
Une définition mathématique de “blob” et de “crête”
est présentée par le modèle mathématique. Une conique du
centre M (ou du sommet M en cas de parabole) est
caractérisée par les quatre coefficients de la matrice
Hessienne [7]:
∂
∂
∂∂
∂
∂∂
∂
∂
∂
=
2
22
2
2
2
y
f
yx
f
yx
f
x
f
H (3)
Le point M au sommet de surface est un pic. Nous
intéressons particulièrement à deux types de surfaces
présentés dans la figure suivante.
B. Méthode de L’Extraction de Pics et de Crête
1) Présentation Générale de la Méthode:
Plusieurs méthodes ont été proposées pour détecter les
“crêtes” et les “blobs” de l’image. Dans [6], Steger utilise
la méthode basée sur la détection de contours. Le principe
de cette méthode considère une crête comme une ligne qui
se trouve au milieu de deux contours parallèles. Saint-
Venant [5] utilise méthode basée sur le signal de l’image
où les points de crête sont considérés comme des
minimums de la magnitude du gradient dans la direction
perpendiculaire à la direction de la crête. Crowley & A.
Parker identifient un pic aux endroits où la réponse de
différence de Gaussiennes est un extremum local dans
l’ensemble d’images aux passe-bandes. Cet ensemble
d’images est calculé par une transformation ‘DOLP’ en
utilisant des filtres passe-bande bk.
Pour détecter les “crêtes” et les “blobs”, nous
intéressons à une approche développée par T. Hai Tran
et A. Lux [7, 8]. Cette méthode est basée sur la
géométrie différentielle. La surface locale à chaque
point de l’image est étudiée, les types de surface locale
sont caractérisés par les valeurs propres de la matrice
Hessienne. Tout d’abord, l’image est filtrée par le filtre
laplacien à une échelle appropriée δ. On cherche un
extremum local dans une direction perpendiculaire à la
direction de la crête sur des caractéristiques de type
crête et dans toutes les directions sur des caractéristiques
de type blob. Ensuite, deux valeurs propres de la matrice
Hesseine à chaque point de l’image sont calculées. La
surface locale à un point dans l’image est donc
caractérisée par la matrice Hessienne. Deux vecteurs
propres correspondent aux deux directions principales
de la surface. Pour détecter des points de crête ou de
blob à l’échelle δ, on utilise critère suivant [7]:
Point M est un pic si :
λ1 λ2 > 0 et bs<
2
1
λ
λ
(4)
Point M est un point de crête si :
λ1 λ2 > 0 et cs>
2
1
λ
λ
(5)
Ou λ1 et λ2 sont des deux valeurs propres, les sb
et sc sont des seuils.
2) Algorithme d'Extraction des Caractéristiques de
‘Pic’ et de ‘Crête’ :
a) Algorithme :
Le principe de l'algorithme d'extraction de
caractéristiques locales de l'objet est de segmenter
l'image pour déterminer une région couvrant l'objet
d'intérêt et ensuite détecter les crêtes à plusieurs échelles
et les blobs à leurs échelles caractéristiques dans cette
région L'algorithme se compose des étapes suivantes [7]
:
• Calcul d'ensemble de réponses de laplacien
normalisé sur des points de l'image.
• Détermination d'échelles caractéristiques pour
chaque point de l'image.
• Calcul des deux valeurs propres λ1, λ2 et deux
vecteurs propres correspondant w1, w2 de la
matrice Hessienne pour chaque point de
l'image à une résolution. Parmi les deux
valeurs propres on prend un vecteur propre w2
correspondant à une valeur propre plus faible
λ2, on attache au point une direction du vecteur
propre w2.
• Pour la détection des points de blobs et de
crêtes dans l'image à l'échelle, chaque point (x,
y) est classifié par une règle suivante:
+ Il est un pic si l’on a 0. 21 >λλ et
seuilB<
2
1
λ
λ
à une de ses échelles
caractéristiques δ, alors son laplacien est
extremum local dans toutes les directions de
l'image.
Fig.1. L’image de visage en vue 3D de
laplacien et les régions de blobs et de crêtes.
Fig.2. (a) La surface est un paraboloïde elliptique, le point
M au sommet de la surface est un pic. (b) La surface est
un paraboloïde cylindrique. Tous les points au sommet de
la surface sont des points de crête (les points la ligne noire
foncée).
3. 63
+ Il est un point de crêtes si, son laplacien est
extremum local dans sa direction w1.
+ Il n’est pas de point de blobs et de crêtes si
0. 21 <λλ , son laplacien est extremum local dans
les deux directions de w1 et w2.
• Enchaînement de points des blobs et des crêtes en
utilisant la méthode de modélisation de blob et de
crêtes présente dans [7].
• Segmentation de l’image pour déterminer des
régions couvrant l'objet d'intérêt correspondant
aux blobs et crêtes
• Pour chaque région, on calcule son centre de
gravité et ses axes d'inertie...
• Combinaison de toutes les caractéristiques dans la
région de l’objet à plusieurs échelles. Les seuilB,
seuilC sont choisis expérimentalement.
b) Détection d'extremum de Laplacien :
Théoriquement, un point pic ou un point de crêtes est
détecté à une échelle donnée δ, il doit être extremum dans
un cercle (pour le pic) ou dans un intervalle (pour le point
de crête) de taille proportionnelle à l'échelle. En pratique,
l'image peut être mauvaise qualité, le nombre de points de
blobs et de crête soit faible. Pour éviter ce problème dans
l'implémentation, nous déterminons les extrêmes locaux du
laplacien seulement dans des fenêtres de petite taille fixe
(par exemple la taille 3 ou 5 pour une dimension, (3x3) ou
(5x5) pour 2 dimensions) pour toutes les échelles.
L'utilisation d'une fenêtre de petite taille pour détecter les
caractéristiques à une grande échelle peut entraîner
plusieurs réponses.
C. Caractéristiques Faciales de Type “Pic” et “Crête”
de l’Image de Visage
1) Les Caractéristiques Faciales de Type “Pic” et
“Crête” :
Les caractéristiques visuelles de visage sont considérées
comme les yeux, le nez, la bouche et les oreilles [9, 10].
Comme on a vu dans le paragraphe II, l’extraction des
caractéristiques de type “pic” et “crête” peut nous
permettre de détecter les positions des yeux, du nez, de la
bouche de la forme du visage. Dans ce paragraphe nous
discutons d’abord sur le problème c’est que comment peut-
on détecter automatiquement les positions des yeux, du
nez, de la bouche et des oreilles par l’extraction des “pic”
et des “crête”, ensuite nous proposons d’extraire des
caractéristiques visuelles.
En supposant que l’image du visage est prise en droite,
les caractéristiques du visage peuvent être effectivement
considérées comme les yeux, le nez, la bouche et les
oreilles. En plus si l’image est photographiée proche, les
pupilles peuvent être accusées, nous considérons que les
pupilles sont rondes et sombres. Donc les pics sont détectés
à des positions des pupilles. Si nous ne pouvons pas
observer exactement les pupilles des yeux, les yeux sont
considérés comme une forme des bande sombres. Par
conséquent, nous proposons de détecter les deux yeux
comme les deux “crêtes”. Dans nombreux de cas des
images de front, le nez est en forme de “blob”. C’est
pourquoi, le nez est détecté comme un pic. En pratique, les
“crêtes”courant apparaîtront à la position ce qu’on extrait
un “blob”situé. Donc, nous pouvons détecter le nez comme
le centre de gravité des “crêtes”. La bouche apparaître
toujours en forme de bande. C’est pourquoi, la bouche
peut être détectée comme une “crête”. Dans nombreux
cas, des oreilles n’ont pas rôle important dans la
construction d’une forme du visage. Normalement un de
deux oreilles ne peut être pas apparaît dans l’image de
visage [9].
2) Vecteur de caractéristiques faciales:
Notre approche montre que les caractéristiques
visuelles de visage peuvent être détectées en utilisant
méthode de la détection des caractéristiques locales de
type “crête” et “blob”. A partir des crêtes et des blobs
détectés, nous proposons ensuite de construire un
vecteur de caractéristiques faciales de 6 composants qui
peuvent caractériser chaque image de visage par les 6
distances géométriques suivantes :
- la distance entre l’œil à gauche et l’œil à droite,
- la distance entre l’œil à gauche et le nez,
- la distance entre l’œil à droite et le nez,
- la distance entre l’œil à gauche et la bouche,
- la distance entre l’œil à droite et la bouche,
- la distance entre le nez et la bouche.
Ces distances géométriques sont calculées par les
positions des caractéristiques visuelles détectées par des
crêtes et des pics.
III. VÉRIFICATION DE VISAGE PAR UN RÉSEAU
PERCEPTRON MULTICOUCHE
Chaque image de visage est donc caractérisée par un
vecteur de caractéristiques faciales de 6 composants
définis ci-dessus. Un réseau perceptron multicouche
MLP [3] est construit pour vérifier une image de visage
entrée et décider qu’elle sera similaire ou non similaire à
un des visages connus. Ce réseau est entraîné par des
vecteurs de caractéristiques faciales des visages connus.
Nous construisons un réseau neuronal Perceptron en 3
couches. Pour vérifier un visage, la couche entrée se
compose de 6 neurones, la couche cachée contient les 6
neurones, la couche sortie est un seul neurone. Nombre
d’entrée du réseau correspond à 6 composants du
vecteur de caractéristiques faciales de visage. Le
processus de vérification de visage est réalisé par les 2
phases: phase d’apprentissage et phase de vérification.
• Phase d’apprentissage
Une base de données d’apprentissage du réseau
Perceptron est construite par l’ensemble des vecteurs de
caractéristiques faciales des visages connus.
Fig.3. Structure du réseauperceptron multicouche
4. 64
L’algorithme d’apprentissage est de type de l’algorithme
rétro-propagation [3]. Dans la phase d’apprentissage, tous
les vecteurs de caractéristiques faciales des images d’une
personne connue sont introduits au réseau perceptron
multicouche comme des données entrées. Le résultat
d’apprentissage fournit les poids et les biais du réseau
correspondant à une forme du visage de cette personne
connue. Ce vecteur des paramètres est archivé dans une
base de données des formes de visages.
Il est évident que, plus nombre des images entrées d’une
personne connue est augmenté, plus la forme du visage de
cette personne est effectivement représentée.
• Phase de vérification
Dans cette phase, une image de visage est entrée au
système de vérification de visage. D’abord un vecteur de
caractéristiques faciales de cette image de visage est
calculé par la détection des caractéristiques de type ‘pics’
et crêtes’. Puis, ce vecteur est entré au réseau neuronal
Perceptron. En utilisant une base de données construite, le
réseau classifie et vérifie ce visage. Une seule classe est
choisie. La réponse sera “Oui” si ce visage est similaire à
un visage d’une personne connue dans la base de données.
Inversement, la réponse sera “Non”, et le vecteur de
caractéristiques faciales de cette personne est archivé dans
une base de données comme une nouvelle personne.
.
IV. I MPLÉMENTATION ET RÉSULTATS
EXPRÉMENTAUX
A. Implémentation du Programme
Nous avons implémenté le système de vérification de
visage dans l’environnement de programmation
MatLab6.1. Ce système est divisé en 2 modules.
Module 1 effectue l’extraction des caractéristiques de
blobs et de crêtes à partir de l’image de visages d’entrée,
calcule les 6 composants du vecteur de caractéristiques
faciales de chaque image de visage. L’algorithme de
l’extraction des ‘blobs’ et de ‘crêtes par une méthode
basée sur la géométrie différentielle présenté dans le
paragraphe II.2, le vecteur de caractéristiques faciales
est proposé dans le paragraphe II.3. Module 2 est une
mise en œuvre d‘un réseau de neurones Perceptron
présenté dans paragraphe III. Apres la phase
d’apprentissage, ce réseau fournit la réponse de la
vérification des images de visage.
B. Résultats Exprémentaux
Les figures 6 et 7 montrent les caractéristiques des
visages en forme de type ‘crête’ et ‘pic’ extraites par
notre système.
L’algorithme de l’extraction de crêtes et de pics du
module 1 fournit des formes de crêtes et de pics
correspondant à des positions de la forme de l’objet du
visage. Pour le réseau Perceptron, en ce moment la taille
de la base de données d’apprentissage est encore faible
avec quelques images par personne, l’ordre d’une
dizaine personnes. Le taux de vérification dans ce cas
est obtenu de l’ordre 60%. Ce taux sera augmente si
nombre des images d’apprentissage est satisfaisant
grand. Cependant, il y a encore autres facteurs qui
influencent sur le résultat final.
En pratique les caractéristiques faciales de visage ne
sont pas souvent apparaît en forme de type “crête” et
“blob” comme le type désiré, les positions des
caractéristiques visuelles de visage peuvent être situées
non exactement. Pour améliorer ce problème, nous
normalisons la taille de l’image et nous cherchons les
caractéristiques du visage dans des fenêtres déterminées.
V. CONCLUSION
La vérification de visage et la détection de visage
restent encore un des problèmes complexes de recherche
[1, 2, 3, 9, 10], notre travail contribue une solution du
problème en combinant une approche traditionnelle de
réseau. Perceptron multicouche avec la notion des
caractéristiques locales de type ‘pic et ‘crête’. Dans ce
papier nous avons présenté une méthode de vérification
de visage basée sur l’extraction des caractéristiques
locales de type ‘pic et ‘crête’ par une méthode
géométrie différentielle. Nous proposons de construire
un vecteur de caractéristiques faciales qui peut
caractériser une image de visage à partir des ‘blobs’ et
des ‘crête’ détectés. Un réseau Perceptron multicouche
est construit et entraîné pour vérifier des images de
visages. Nous avons trouve les premiers résultats dans
une condition limitée. Les résultats expérimentaux
montre que cette méthode peut fournir des résultats
intéressants avec des images claires.
Fig.4. Phase d’apprentissage
Fig.5. Phase de vérification
5. 65
Dans la suite nous continuerons à étudier et à améliorer
l’algorithme pour obtenir des résultats meilleurs dans
différents cas de l’image de visage.
RÉFÉRENCE
[1] J.L. Crowley and A.C. Parker, "A Representation for Shape Based
on Peaks and Ridges in the Difference of Low-Pass Transform",
IEEE Transactions on Pattern Analysis and Machine Intelligence ,
Vol. 6, pp. 156-169, March 1984.
[2] M. Hunke and A. Waibel, “Face locating and tracking for human-
computer interaction”, in 28th Asilomar Conference on Signals,
Systems and Computers, Monterey, CA, 1994.
[3] Hagan, Dewutn and Beale, “Neural Network Design”, PWS
puslishing company, 20 Park Plaza, Boston, US
[4] C. Kotropoulos and I. Pitas, “Rule-Based Face Detection in Frontal
Views” Proc. Int Conf. Acoustics, Speech and Signal Processing,
[5] M. De Saint-Venant. “Surface à plus grande pente constitué sur les
lignes courbes”. Bulletinde la Soc. Philomath de Paris, pp. 24-30,
1852
[6] C. Steger. “An unbiased detector of curvilinear structures”. IEEE
Transactions on Pattern Analysis and Machine Intelligence, 20(2):
113-119, February 1998
[7] TRAN Thi Thanh Hai et Augustin LUX, “Extraction de
caractéristiques locales: Crêtes et Pics”, Proceeding of RIVF’03,
Février 2003, Hanoi.
[8] Thanh Hai TRAN THI and Augustin LUX, “Experimenting with
ridge extraction at characteristic scales”, Projet PRIMA, INRIA
Rhone-Alpes, FRANCE, 2002.
[9] Ming-Hsuan Yang, Member, IEEE, David J. Kriegman, Senior
Member, IEEE, andNarendra Ahuja, Fellow, IEEE, “Detecting
Faces in Human Image – A Survey”, IEEE Transactions on pattern
analysis and machine intelligence, vol 24,no 1, January 2002.
[10] G. Yang and T. S. Huang, “Human face detection in a complex
background”, Pattern Recog. 27, 1994, p.53–63.
Fig.6. Le visage observé et ses deux yeux détectés
comme les deux crêtes.
Fig.7. Le visage observé et son nez détecté comme un
pic ‘blob’