Etude de méthodes de Clustering pour la segmentation d’images faciales
Abderraouf Boukhatem [email protected]
Alexandre Duhamel [email protected]
David-Alexandre EKLO [email protected]
Université Paris-Dauphine
Abstract
La clustering est un domaine du Machine Learning ap-
partenant à l’apprentissage non supervisé. Le clustering est
principalement utilisé pour regrouper des populations en
communautés disposant de critères communs proches. La
population peut être de nature très diverse : objets, image,
musique, attributs, etc. . . Cette article présente une solu-
tion pour résoudre un problème de clustering appliqué à
des images provenant d’une série télévisée, le but étant de
rassembler les mêmes personnages au sein de cluster com-
mun. Le sujet principal de cette article est de présenter
notre première approche pour résoudre ce problème, cela
inclura : l’algorithme de clustering utilisé, la notion de dis-
tance entre images, les distances intra et inter cluster, de
la réduction d’attributs et de la réduction/valorisation de
données.
Mot-clefs : Clustering, Segmentation d’images, Ex-
traction d’attribut, Reconnaissance faciale, Apprentissage
non supervisé.
1. Introduction
Le sujet est proposé par la société Reminiz sur challenge-
data.ens.fr. La problématique principale est d’effectuer une
clustering (clustering) des images de personnages de séries
télévisées à partir d’images extraites de scènes où ils appa-
raissent. Le but étant de regrouper les images d’un même
personnage de différentes scènes au sein d’un même clus-
ter. Nous disposons d’un ensemble de données comportant
une partie d’entraînement et d’une autre partie de test, qui
servira pour évaluer la qualité finale de notre modèle. Dans
le cadre d’apprentissage non supervisé, la partie entraîne-
ment permettra de définir un ordre de grandeur des mé-
triques décisives aux choix du nombre de cluster. En effet
des mesures comme la distance inter/intra cluster sont des
mesures importantes dans le choix du nombre de clusters.
La distance intra cluster représente la distance maximale
entre deux points d’un même cluster, plus cette distance
est grande, plus le cluster est hétérogène. La distance inter
cluster représente la distance minimale entre deux points
de clusters différents, plus cette distance est grande, plus
les clusters sont différents. L’idéal est donc de maximiser
la distance inter cluster et de minimiser la distance intra
cluster. Concernant notre problématique, une distance intra
cluster trop grande aura tendance à regrouper deux person-
nages différents au sein d’un même cluster, c’est un faux
positif ,à l’inverse, une distance intra cluster trop petite fera
différencier deux mêmes personnages, il s’agit d’un faux
négatif. Dans notre problème, un faux positif et un faux né-
gatif sont traités similairement, il suffit donc de minimiser
notre erreur. La partie entraînement est donc essentielle car
elle donne un ordre de grandeur des distances à trouver et
par comparaison, nous pouvons ajuster le nombre de clus-
ters prédéfinis.
Les données sont sous format d’images regroupées en
“tracks” correspondant à des scènes, nous disposons de
12267 tracks (9349 en entraînement et 2918 en test) avec
environ 10 images par track (soit 122670 images). Sachant
que les images d’un track sont très proches, voire iden-
tiques, nous avons à disposition une grande masse de don-
nées apportant un gain d’information minime. Dans cette
première approche, nous avons décidé de sélectionner une
image par track permettant au mieux de représenter le track.
Une partie de cet article traitera de la sélection d’images
et de la réduction des ensembles de données mais l’idée
générale est de comparer ces images pour choisir la repré-
sentative d’un point de vue qualité et visibilité. Toutes les
images sont uniformisées dans un format 224 x 224 pixels,
dans une approche naïve, chaque pixel représente un attri-
but, une image est donc représentée par 50176 attributs,
mais d’un point de vue pratique seul le visage de l’image
compte, l’idée est donc d’extraire les attributs (donc des
pixels) les plus importants pour alléger la charge de cal-
cul et éviter de réunir des images possédant le même fond
de scène. La partie traitant de ce sujet présentera deux mé-
thodes d’extraction d’attributs : la reconnaissance de visage
et l’ACP (Analyse en composantes principales). Après ces
prétraitements indispensables pour l’efficacité et la cohé-
rence du modèle, nous présenterons notre approche algo-
1
rithmique pour résoudre ce problème par l’intermédiaire de
notre premier modèle et par l’analyse de nos résultats. Pour
ce premier modèle, nous avons opté pour une implémenta-
tion du k-means adapté à notre problématique et sa partie
dédiée présentera nos adaptations et sa singularité.
2. Distribution des données
Un des aspects importants des données est la distribution
des personnages présents. Dans un ensemble de données
équilibrées, nous aurions une distribution des images des
personnages uniformes chaque personnage auraitle même
nombre d’images mais dans ce challenge, les données étant
issues d’une série télévisée, la fréquence d’apparition des
personnages principaux est évidemment plus élevée que les
personnages secondaires.
FIGURE 1. Distribution des acteurs dans le jeu d’entraînement
On observe donc une distribution assez hétérogène, on
peut donc distinguer deux types de population :
Les personnages principaux (environ plus de 500 oc-
currences)
Les personnages secondaires (moins de 500 occur-
rences)
On suppose donc que la population des personnages
principaux a de forte chance d’apparaître dans les données
de test (correspondant à la fin de la série).
3. Réduction du volume des données
Comme évoquée auparavant, la première étape de notre
approche à été de nettoyer notre ensemble de données pour
alléger son volume sans réduire sa qualité. L’intérêt de pos-
séder plusieurs images proches dans un cas de clustering est
de généraliser et d’hétérogénéiser le cluster. Dans notre cas,
les images entre deux tracks sont très différentes compa-
rées aux images du même track, en prenant en compte cette
échelle, toutes les images d’un track sont assimilables à un
point, on a donc un volume de données conséquent avec un
gain d’informations presque nul.
Notre problématique a donc été de trouver la meilleure
image de chaque track. Pour quantifier la qualité d’une
image, nous prenons en compte trois critères principaux :
FIGURE 2. Exemple des différentes images au sein d’un track
La qualité du rendu de l’image, privilégier des
images nettes aux images floues.
La luminosité du visage, le nombre de pixels du vi-
sage visible.
L’orientation du visage, privilégier les visages vus de
face par rapport aux vues latérales.
FIGURE 3. Exemple d’un choix d’image au sein d’un track
2
Nous avons donc réduit l’ensemble de données de
122670 images (environ 1.5 GB) à 12267 images (environ
170 MB).
4. Extraction d’attributs
En plus de réduire l’ensemble des données, il nous faut
aussi extraire les attributs (ici les pixels) les plus importants
pour le choix de la clustering. Dans un contexte de recon-
naissance faciale, la partie de l’image la plus importante est
évidemment le visage. Notre but dans cette partie est d’ex-
pliquer nos deux différentes méthodes pour extraires les at-
tributs important de l’image.
4.1. Extraction de visage
Tout d’abord l’approche naïve, l’extraction de visage.
Considérant que sur chaque image, il existe un visage, nous
apprenons via un classificateur à reconnaître et à délimi-
ter un visage. Nous n’entraînons pas ce classificateur, nous
utilisons une librairie appelé OpenCV. Son algorithme se
base sur la méthode de détection Viola et Jones. Pour résu-
mer globalement cette algorithme, le classificateur Viola et
Jones se construit par deux composants principaux : une re-
cherche exhaustive par des matrices de convolutions et une
clustering basée sur un modèle en cascade créé par des clas-
sificateurs boostés.
FIGURE 4. Schéma représenantant la méthode de Viola et Jones
Cette méthode est globalement efficace sur notre jeu
de données malgré qu’il existe quelques erreurs provenant
d’images contenant des spécificités.
Même si la plupart des faces latérales sont suppri-
mées via la sélection faite au préalable, certains tracks ne
contiennent que des faces vues de profil.
4.2. Formatage des images
Après avoir quadrillé la zone faciale, l’idée principale est
d’isoler ces attributs, deux possibilités s’offrent à nous :
Créer à partir du rectangle une nouvelle image.
Remplacer l’arrière plan par un fond noir.
FIGURE 5. Exemple d’extraction de visage provenant d’images de
plusieurs tracks
FIGURE 6. Exemple d’extraction de visage de profil
FIGURE 7. Exemple d’extraction de visage d’image excentrique
La première option entraîne la création d’images de taille
possiblement différente ce qui rend toute modélisation fu-
ture impossible. La seconde option permet de garder une
uniformité du format des données mais les rectangles pou-
vant être de tailles différentes, le calcul de distance entre
deux images sera forcément surévalué.
La réduction de l’image peut aller de 3/4jusqu’à
1/4dans les images excentriques. On estime la réduction
moyenne à 2/3, ce qui fait passer un problème à 50 176
attributs à 22 500.
3
FIGURE 8. Résultat du formatage des images initiales
4.3. Analyse en composantes principales (ACP)
4.3.1 Idée générale
L’analyse en composantes principales a pour but de
convertir des données qui sont représentées grâce à des va-
riables (possiblement corrélées) vers une autre représenta-
tion avec un nombre moindre de variables qui ne sont pas
corrélées et qui assurent de garder les principales spécifi-
cités de ces données. Nous devons donc composer avec les
variables que nous avons (de façon linéaire) pour obtenir les
quelques propriétés qui représentent le mieux une observa-
tion, c’est-à-dire qui nous permettent de les différencier le
mieux par rapport aux autres observations.
4.3.2 Définition mathématique
Soit Xune matrice de données de taille lmavec l
le nombre d’observations, et mle nombre de variables uti-
lisées pour représenter les données. L’analyse en compo-
santes principales est une transformation linéaire orthogo-
nale qui va permettre de faire la projection de Xdans un
nouveau système de coordonnées qui permet de maximiser
la variance. Nous devons donc trouver une matrice Ptelle
que XP =Y, avec Yla matrice de la nouvelle représenta-
tion des données
4.3.3 Procédure de calcul de la projection
Intuitivement nous allons essayer de trouver les com-
binaisons linéaires de variables qui vont maximiser la va-
riance, et cela en trouvant les directions dans lesquelles les
données varient le plus.
1. Nous devons en premier calculer la matrice de
variance-covariance
C=
V ar(X1)... Cov(X1, Xp)
... ... ...
Cov(Xp, X1)... V ar(Xp)
2. Nous calculons le vecteur propre avec la plus grande
valeur propre
w1=argmax(wtCw
wtw)
3. Nous calculons ensuite les kvecteurs propres avec
les valeurs propres les plus élevées, soit :
Xk=X
k1
X
s=1
XwswT
s
On a alors :
wk=argmax(wt
X
T
k
Xkw
wtw)
5. Modèle KNN + KMeans
5.1. Score et mesure de performance
Pour quantifier la réussite des propositions faites, le chal-
lenge a décidé d’utiliser la V-Measure comme score.
La V-Measure est la moyenne harmonique entre deux
critères :
l’homogénéité : critère permettant de savoir si les
clusters prédits ne contiennent que des points appar-
tenant à la même classe.
la complétude : critère permettant de savoir si les
points ayant la même classe sont contenus dans le
même cluster.
La V-Measure est souvent utilisée dans les problèmes de
clustering car elle permet de quantifier correctement la co-
hérence des clusters prédits.
5.2. Choix de la distance
Avant d’appliquer un algorithme de clustering à nos don-
nées, il nous faut définir une distance permettant d’estimer
la dissemblance entre deux images. Il existe des distances
usuelles, l’objectif est donc de choisir dans ces distances,
celle qui est la plus adéquate au problème. Dans notre cas,
nous avons utilisé la distance euclidienne classique :
v
u
u
t
n
X
i=1
(xiyi)2
Pour notre problème, utiliser la distance euclidienne est
intéressant car elle met en évidence la dissemblance des élé-
ments du visage (couleur de peau, contraste des yeux, etc...)
par rapport à une distance de Manhattan.
5.3. Décomposition du problŁme
Le premier modèle étudié se base sur des algorithmes
usuels de clustering, le KNN (plus proches voisins) et
4
KMean. Comme dit précédemment, la fréquence d’appari-
tion d’un personnage n’est pas uniforme, on distingue deux
types de personnages :
Les personnages principaux : présents abondamment
dans le jeu d’entraînement
Les personnages secondaires
Il est tout à fait possible qu’un personnage estimé prin-
cipal soit en réalité secondaire mais l’estimer nous paraît
très difficile. Compte tenu de ces deux populations, on sup-
pose donc que le noyau des personnages principaux sera
présent dans le jeu de test contrairement aux personnages
secondaires. On transforme donc une partie du problème de
clustering en problème de classification classique.
FIGURE 9. Décomposition du problème
5.4. Modele de classification : KNN
La partie classification aura donc pour but d’utiliser les
données d’entraînement pour créer les clusters principaux
du jeu de test. Pour déterminer si une image représente un
personnage du noyau, on utilise un seuil choisi arbitraire-
ment, si la distance moyenne dépasse ce seuil, on considère
celui-ci comme hors du noyau et sera traité par le kmean
ultérieurement.
5.4.1 Espace de représentations
Lors de l’application du KNN, il nous faut un ensemble
de représentations des matrices images pour avoir la dis-
tance de chaque image avec son plus proche voisin. A pe-
tite échelle cela est traité par brute force, chaque élément
est stocké dans une liste, où chacun calcule sa distance avec
les autres éléments puis la liste est triée. Dans notre cas, la
quantité de données ne permet pas de faire du brute force,
nous utilisons donc une structure appelée KDTree.
Le KDTree un est arbre binaire utilisé pour stocker des
éléments dépendamment de leurs caractéristiques, l’idée
générale est de regrouper les éléments proches dans la
même branche.
Cette représentation permet d’accéder aux plus proches
voisins avec une complexité logarithmique.
FIGURE 10. Représentation d’un KDTree
5.4.2 Paramétrage
Les paramètres importants dans ce modèle sont le
nombre de voisins choisis pour le vote, pour le déterminer,
nous testons ce paramètre empiriquement (voir partie résul-
tats) mais l’idée générale est d’avoir un k assez élevé pour
avoir un vote de qualité et un k assez raisonnable pour ne
pas avoir l’influence du cluster le plus peuplé, ceci est dé-
terminable par analyse de la distribution des personnages
dans les données.
Pour le seuil, il nous faut déterminer quelle proportion le
noyau des personnages représente vis-à-vis du jeu de test.
Si nous estimons que le noyau représente 50 % des données
de test, on paramètre le seuil comme la distance moyenne
de la matrice cible avec ses plus proches voisins.
Pour notre part, nous avons estimé empiriquement cette
proportion de 25 % . Soit un personnage sur quatre est déjà
présent dans le jeu d’entraînement.
5.5. Modele de classification : KMeans
La seconde partie est donc d’appliquer un algorithme de
clustering sur les données considérées comme représentant
un personnage nouveau. On utilise un algorithme Kmean
comme modèle. Il nous reste donc à déterminer le nombre
de cluster k à construire.
Nous avons à disposition le nombre de personnages pré-
sents dans chaque épisode. Après analyse des jeux d’entraî-
nement, on observe que peu de personnages n’apparaissent
uniquement dans un épisode. Par simplification, on suppose
donc que chaque personnage apparaît au moins dans deux
épisodes. On estime donc le nombre de personnages total
comme le maximum du nombre de personnages présents
dans un épisode (22 dans le jeu de test). Comme dit pré-
cédemment, on estime qu’un personnage sur quatre est un
personnage principal ce qui ramène le paramètre k à 16.
5.6. Résultats et discussion
Cette partie permet de visualiser les différents résultats
obtenus par le modèle.
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !