PHAN Viet Anh – Promotion 12 Page 17 J'ai développé un nouveau module de segmentation pour améliorer le résultat de celui-ci dans le système d'OSIRIS.. PHAN Viet Anh – Promotion 12 Page
Trang 1Institut de la Francophonie
pour l’Informatique
Institut National des Télécommunications
Mémoire de fin d’étude
Développement d’un module de segmentation pour un système de reconnaissance biométrique
basé sur l’iris
Réalisé par : PHAN Viet Anh
Responsable du stage : Bernadette Dorizzi
Trang 2PHAN Viet Anh – Promotion 12 Page 2
Table des matières
Remerciements 4
Résumé 5
Abstract 6
Liste des figures 7
Liste des tableaux 9
Introduction 10
I - Contexte du stage 10
II - Objectif du stage 10
III - Plan du document 11
Système de reconnaissance biométrique 12
I - Introduction 12
II - Architecture d’un système de reconnaissance biométrique 12
III - Évaluation d’un système de reconnaissance biométrique 13
IV - Système de référence 16
Techniques utilisées 18
I - Transformée de Hough 18
1 Détection de droite 18
2 Détection de cercle 21
II - Contour actif (Snake contour en anglais) 23
1 Principe 23
2 L’énergie interne 24
3 L’énergie externe 25
Segmentation 26
I - Obstacles 26
1 Les bases de données 26
2 Les difficultés 27
II - Solutions proposées 27
III - Localisation de la pupille 30
Trang 3PHAN Viet Anh – Promotion 12 Page 3
1 Algorithme 30
2 Expériences 33
IV - Segmentation de la pupille 34
1 Recherche du contour initial 34
2 Application du contour actif 41
V - Segmentation de l’iris 46
1 Recherche du contour initial 46
2 Application du contour actif 53
VI - Génération du masque 56
1 Recherche du cercle le plus proche du contour final 56
2 Génération du masque 60
Évaluations 62
I - Préparation des évaluations 62
II - La catégorie « facile » 63
III - La catégorie « difficile » 65
Conclusion et perspectives 67
Références 68
Trang 4PHAN Viet Anh – Promotion 12 Page 4
Remerciements
Je commence par adresser mes remerciements à Madame Bernadette DORIZZI, directrice du département EPH (Électronique et Physique) de l’Institut National des Télécommunications (INT), à mon responsable de stage pour m’avoir accueilli dans cet équipe et de m’avoir aidé durant ce stage
Je voudrais aussi remercier Madame Sonia GARCIA-SALICETTI pour les conseils précieux qu’elles m’a fournis pendant les 8 mois de stage
Je tiens également à remercier Emine, Aurélien, Anouar, Walid et les autres membres de l’équipe INTERMEDIA du département EPH pour leur aide et leur gentillesse pendant mon séjour en France
Enfin, je voudrais exprimer mon entière reconnaissance envers ma famille, mes amis et mes professeurs de l’IFI pour leurs soutiens, leurs aides et leurs encouragements
Trang 5PHAN Viet Anh – Promotion 12 Page 5
Résumé
Ce document décrit mon travail durant mon stage de fin d’étude de Master 2 d’informatique au sein du département Électronique et Physique de l’Institut National des Télécommunications (INT) Le but principal de mon stage est de développer un nouveau module de segmentation pour un système de reconnaissance biométrique basé sur l’iris J’ai utilisé la transformée de Hough pour rechercher le contour initial de l’iris et de la pupille après avoir localisé la région de la pupille Puis, j’ai appliqué une recherche du contour actif
en me servant des contours initiaux de l’étape précédente J’ai fait plusieurs tests dans chacune des étapes afin d'analyser les erreurs et de proposer des améliorations Pour finir, j’ai ajouté une petite phase de génération de masque ayant pour but l’adaptation avec les autres modules du système d’OSIRIS
Enfin, j’ai utilisé les modules de normalisation et de classification du système OSIRIS pour évaluer la performance de ce nouveau module de segmentation Ainsi, pour ce faire j'ai tracé les courbes DET pour chacun des différents types de segmentation à savoir celui de référence, d'Hough seul, d'Hough avec contour actif et celui du système d’OSIRIS On constate que la combinaison de la transformée de Hough avec le contour actif nous donne de meilleurs résultats que la segmentation utilisant la transformée de Hough seule De plus, les résultats de cette nouvelle segmentation sont toujours meilleurs que ceux du système d’OSIRS
Trang 6PHAN Viet Anh – Promotion 12 Page 6
Abstract
This document describes my work during a training course of my study Master 2 computer in the Electronics and Physics department of the National Institute of Telecommunications (INT) My mission is to develop a new segmentation module for biometric recognition system based on iris
I used the Hough transform to find the initial contour of the iris and the pupil after locating the pupil's region Then I apply a phase of seeking the active contour using the initials contours of the previous step I have already done several testing in each phase to analyze errors and propose improvements I added a small phase to generate one mask designed to adapt it with other modules of the system OSIRIS
In the end, I used the normalization module and the classification module of the OSIRIS system to evaluate the performance of this new module Base on the curve DET which represent performances of the OSIRIS system using different segmentation results (reference, Hough only, Hough with the active contour and the result of segmentation module of the system OSIRIS), we can see that combining the Hough transform with the active contour has given us the best result than the segmentation using the Hough transform only Furthermore, the result of this new segmentation module is always better than the latter of the system Osiris
Trang 7PHAN Viet Anh – Promotion 12 Page 7
Liste des figures
Figure 1 : Architecture d'un système de reconnaissance biométrique 13
Figure 2: Taux de vraisemblance des utilisateurs légitimes et des imposteurs dans un système de vérification biométrique 14
Figure 3: La courbe ROC 15
Figure 4: La courbe DET 15
Figure 5: Les modules différents du système d'OSIRIS 16
Figure 6: Transformation d'une ligne est un point dans l'espace de paramètre 18
Figure 7: Chercher la ligne qui passe par deux points en utilisant la transformée de Hough 19
Figure 8: Présentation de ligne en système polaire 21
Figure 9: Un cercle transformé de l'espace (x,y) à l'espace de paramètre avec le rayon fixé 22
Figure 10: La transformée de Hough pour un cercle dans l'espace de paramètre 22
Figure 11: L'énergie interne 24
Figure 12: Illustration de la force élastique et la force de courbure 25
Figure 13: Illustration de l'effet de l'énergie externe 25
Figure 14: Une image dans la base de données CASIA v1.0 26
Figure 15: Des exemples d'images de la base de données ICE 2005 27
Figure 16: La région du cil est plus grande que celle-là de la pupille 32
Figure 17: Quelques images binaires de la zone de la pupille 35
Figure 18: La pupille est bien centrée dans la zoneP 38
Figure 19: Le résultat du contour actif en utilisant les paramètres optimaux 45
Figure 20: Le niveau de gris de l'iris est très varié 46
Figure 21: Le contour des cils est plus fort que celui-ci de l'iris 49
Figure 22: Quelques types d'erreur du premier test 50
Figure 23: Les contraintes rajoutées pour améliorer le résultat 50
Figure 24: Quelques types d'erreur dans le deuxième test 53
Figure 25: Les images avant et après application des prétraitements 54
Figure 26: Une image normalisée d'iris 56
Figure 27: Exemple d’entrée et résultat du module de normalisation 56
Trang 8PHAN Viet Anh – Promotion 12 Page 8
Figure 28: Les images du contour final après suppression des parties supérieures et inférieures
58
Figure 29: Génération d'une image normalisée de l'iris 61
Figure 30: Génération du masque 61
Figure 31: Exemple d'images de la classe facile (a) et la classe difficile (b) 62
Figure 32: La courbe DET de la segmentation de référence (rouge), Hough seule (vert), Hough avec contour actif (bleu) et Osiris (magenta) (Catégorie « facile ») 63
Figure 33: La distribution des scores intra-classe et inter-classe pour chaque type de segmentation (Catégorie « facile ») 64
Figure 34: La courbe DET de la segmentation de référence (rouge), Hough seul et (vert), Hough avec contour actif (bleu) et Osiris (magenta) (Catégorie « difficile ») 65
Figure 35: La distribution de score intra-classe et inter-classe pour chaque type de segmentation (Catégorie « difficile ») 66
Trang 9PHAN Viet Anh – Promotion 12 Page 9
Liste des tableaux
Tableau 1: Accumulateur 19
Tableau 2: Accumulation après calcul pour le point A(2,4) 20
Tableau 3: Accumulation après calcul pour le point A(2,4) et le point B(1,1) 20
Tableau 4: Exemple du résultat de localisation de la pupille 31
Tableau 5: Une partie du tableau de comparaison entre le cercle obtenu avec le cercle référence 36
Tableau 6: Le résultat de la comparaison entre le cercle obtenu et le cercle de référence après ajout de la condition 39
Tableau 7: Les 7 cas d'erreur de la phase de recherche du contour initial de la pupille 41
Tableau 8: Les résultats de prétraitements avant application du contour actif pour la pupille 43 Tableau 9: Effet du paramètre alpha 44
Tableau 10: Effet du paramètre bêta 44
Tableau 11: Effet du paramètre gamma 45
Tableau 12: Tableau de comparaison du premier test pour la phase de recherche du contour initial de l'iris 48
Tableau 13: Tableau de comparaison de la segmentation de référence pour le deuxième test 51 Tableau 14: Quelques erreurs qui sont corrigées grâce aux nouvelles conditions 52
Tableau 15: Les résultats des deux tests pour trouver le contour final 55
Tableau 16: Des exemples de résultat de la première méthode (la première ligne) et ceux correspondant à la deuxième méthode (la deuxième ligne) 57
Tableau 17: En comparaison avec les autres méthodes, le résultat de la dernière méthode est toujours meilleur 59
Tableau 18: Le résultat de la dernière méthode peut améliorer le résultat du contour actif 60
Trang 10PHAN Viet Anh – Promotion 12 Page 10
Introduction
I - Contexte du stage
GET – le groupe des Écoles des Télécommunications sont plusieurs grandes écoles d'ingénieurs et de management Il possède des centres de recherche notamment à Paris (ENST Paris – École National Supérieure des Télécommunications Paris), à Brest (ENST Bretagne)
et Évry (INT – Institut National des Télécommunications)
L'équipe INTERMEDIA (Interface pour le multimédia) est une équipe du département EPH (Électronique et Physique) de l'INT qui fait beaucoup de recherche dans le domaine de
la biométrie Elle travaille sur l'élaboration de système de reconnaissance biométrique basé sur la signature, l'iris, le visage, et etc OSIRIS est un système de reconnaissance basé sur la texture de l'iris développé par cette équipe
Il (OSIRIS) a été développé et optimisé en 2007 pour la base CASIA v1 C'est un système modulaire inspiré par les travaux de Daugman Il y a deux grands modules dans ce système : le module de segmentation et le module de classification Le module de segmentation utilise la transformée de Hough pour détecter le contour de la pupille et le contour de l'iris Il est inspiré du module de segmentation développé par Masek Ce module n'est pas portable, c'est-à-dire qu'on ne peut pas l'utiliser avec les autres bases de données, car
il a été optimisé sur CASIA v1 Le module de classification applique le filtre de Gabor sur une image normalisée et ensuite calcule le score de similarité entre deux images en utilisant la distance de Hamming
II - Objectif du stage
Dans le cadre du projet MBGC (Multiple Biometric Grand Challenge) organisé par le NIST (National Institute of Standards and Technology), l'équipe INTERMEDIA a eu besoin d'améliorer le système OSIRIS Le but de mon stage a donc été de construire un autre module
de segmentation en C++ sous Linux en utilisant les bibliothèques d’open-source (par exemple l’OpenCV) et une bibliothèque développé par cette équipe Ce module devra utiliser la transformée de Hough pour chercher le contour initial, puis appliquer le contour actif sur ce contour initial pour obtenir un contour plus net Ce module sera exécuté sur la base de données ICE_2005 qui contient divers types et variétés de bruits tels que le flou, l'occlusion,
le reflet, la rotation etc
Trang 11PHAN Viet Anh – Promotion 12 Page 11
III - Plan du document
Dans le chapitre I, je présenterai de manière brève et quelque introduction et les travaux réalisés de mon stage Dans le deuxième chapitre, je parlerai du système de reconnaissance biométrique, de l'outil commun pour évaluer la performance d'un système de reconnaissance biométrique À la fin de ce chapitre, je présenterais de manière plus détaillée le système OSIRIS Une discussion sur les techniques utilisées sera présentée dans le troisième chapitre Les difficultés et la solution proposées seront décrites dans le quatrième chapitre Je détaillerai et présenterai les expériences pour chacun des sous modules dans ce même chapitre Enfin dans le chapitre V, nous analyserons les résultats d'évaluation obtenus pour ce module, je tirerai quelques conclusions et pour finir j'aborderai quelques perspectives pour l'avenir
Trang 12PHAN Viet Anh – Promotion 12 Page 12
Système de reconnaissance biométrique
I - Introduction
De nos jours, la prolifération des terminaux d'accès et la croissance des moyens de communications tels que les déplacements physiques, les transactions financières, l'accès aux services et bien d'autres encore impliquent le besoin de s'assurer de l'identité des individus Les moyens classiques de vérification d'identité comme le mot de passe, une pièce d'identité, une clef, ou un badge ont chacun des faiblesses respectives Par exemple, le mot de passe peut être oublié par son utilisateur Le badge (la clef ou la pièce d'identité) peut-être perdu ou volé
La biométrie peut ainsi permettre d'éliminer certains de ces inconvénients en basant la vérification sur des caractéristiques propres de chaque individu
On peut donc définir la biométrie comme étant la technique qui nous permet de reconnaître des personnes à partie de leurs caractéristiques physiques (comme le visage, les empreintes digitales, l'iris, etc.) et comportementales (comme la voix, l'écriture, etc.) Les champs et domaines d'application de la biométrie sont larges Elle peut être appliquée dans le système de contrôle d'accès physique à des sites sensibles (entreprises, aéroports, ou banques)
ou bien dans le système de contrôle d'accès logique à un ordinateur, ou site web Dans l'avenir, elle pourra être appliquée dans le domaine de la vidéo surveillance qui utilise les technologies de l'identification à distance et en mouvement
II - Architecture d’un système de reconnaissance biométrique
Globalement, un système biométrique se compose de deux phases : une phase d'apprentissage et une phase de reconnaissance
Tout d'abord, la caractéristique biométrique (l'empreinte digital, l'iris, ou la signature, etc.) est enregistrée à l'aide un capteur Généralement, on ne travaille pas directement sur ces données brutes car elles contiennent des informations inutiles à la reconnaissance En effet, on n'en extrait que les paramètres dit «pertinents», ce qui permet de réduire significativement la taille des données à sauvegarder De plus, à partir de ces paramètres, il est impossible de revenir au signal original
Trang 13PHAN Viet Anh – Promotion 12 Page 13
La phase d'apprentissage permet de constituer le modèle d'une personne donnée à partir d'un ou plusieurs enregistrements de la caractéristique biométrique considérée Ces modèles sont ensuite enregistrés dans une base de données ou sur une carte de type de carte à puce
Au cours de la phase de reconnaissance, la caractéristique biométrique est capturée et les paramètres pertinents sont extraits comme dans la phase d'apprentissage La suite de la reconnaissance dépend du mode opératoire du système Si on est en mode identification, le système va comparer le signal capturé avec tous les modèles contenus dans la base de données Puis, il va tirer le modèle le plus proche du signal pour répondre à la question du
type : «Qui suis-je?» C'est une tâche très difficile car la base de données peut contenir des
milliers d'individus On perd beaucoup de temps pour calculer toutes les comparaisons possibles Par contre, en mode vérification, le système va comparer ce signal avec un seul des modèles dans la base de données (par exemple une carte à puce) avec pour but de répondre à
la question : « Suis-je bien la personne que je prétends être? »
III - Évaluation d’un système de reconnaissance biométrique
Dans le cas d'un système de vérification, on évalue deux types de taux d'erreur : le taux
de faux rejet FRR (False Rejection Rate) et le taux de faux acceptation FAR (False
Base de donnée
ID
Figure 1 : Architecture d'un système de reconnaissance biométrique
Trang 14PHAN Viet Anh – Promotion 12 Page 14
Acceptance Rate) FRR est le taux de faux de rejet d'un utilisateur légitime (un client) et FAR est le taux de fausse acceptation lorsqu' on accepte un imposteur
Soient H0 l'hypothèse que la capture C provienne d'un imposteur et H1 l'hypothèse que la capture C provienne d'un client Alors, on considère que la capture C provient d'un client si P(H1|C)>P(H0|C) En appliquant la loi de Bayes on obtient :
Le taux P(C|H1)/P(C|H0) est le taux de vraisemblance Il est comparé à un seuil de décision Plus ce seuil est grand, plus le système rejettera d'imposteur, mais plus aussi il rejettera de client Par contre, plus ce seul est bas, plus le système acceptera de client, mais plus aussi il acceptera d'imposteur Donc, il faut choisir un compromis entre le FRR et FAR [1]
L’utilisation de la courbe ROC (Receiver Operating Characteristic) est un outil très fréquent lorsqu'on veut évaluer un système de vérification biométrique Elle représente la variation du taux de vérification (100-FAR(%)) en fonction du taux de FRR(%) La figure 3 montre un exemple de courbe ROC
Figure 2: Taux de vraisemblance des utilisateurs légitimes et des imposteurs dans un système de
vérification biométrique
Trang 15PHAN Viet Anh – Promotion 12 Page 15
Cependant une courbe ROC possède des limites Elle devient asymptotique à partir d'une certaine valeur du FRR lorsque celui-ci est très fort ou très faible De manière générale, seulement 10% de cette courbe est utile et informative C'est pourquoi on utilise les courbes DET (Detection Error Trade-off) qui représentent directement le taux FAR (%) en fonction du taux FRR (%) par rapport aux courbes ROC Plus la courbe DET est asymptotique aux grandes valeurs des deux axes et proche de l’origine, plus le système considéré a de bonnes performances Concernant celle-ci le point le plus intéressant est l’EER (Equal Error Rate) qui correspond au point ó les taux FRR et FAR sont égaux Il correspond aussi à un choix de seuil qui est indépendant de l'utilisation du système On utilise souvent ce point pour comparer la performance des différents systèmes biométriques même s'ils ont été évalués sur des bases de données différentes La figure ci-dessous montre un exemple de courbe DET avec une zone de haute sécurité, une zone de basse sécurité et une de zone de compromis
FRR(%)
100 - FAR(%)
Figure 3: La courbe ROC
Figure 4: La courbe DET
Trang 16PHAN Viet Anh – Promotion 12 Page 16
IV - Système de référence
Il est question dans cette partie de présenter le système OSIRIS (Open Source for Iris), système de vérification biométrique développé par l'équipe INTERMEDIA du département EPH (Électronique et Physique) de l'Institut National des Télécommunications dans le cadre
du projet BioSecure Il est spécifique à la reconnaissance par l'iris et développé en C++ sous Linux
Il se compose de plusieurs sous modules :
• Module de segmentation : ce module sert à segmenter l'iris Il cherche le contour de la
pupille et de l'iris pour isoler la région contient la texture
• Module de normalisation : En utilisant le résultat du module de segmentation, le
module de normalisation va transformer le disque de l'iris à une image normalisée de
la même taille
• Module d’extraction des paramètres : Appliquer les filtres définis par l'utilisateur à
des points particuliers de l'image qui sont fixés par l'utilisateur
• Module d’extraction des gabarits : Chaque coefficient est codé en un bite selon son
signe Le résultat de ce module est un code binaire (iris code) La taille de ce code est égale au nombre de point multiplié par le nombre de filtres utilisés
• Module d’extraction de masque : Ce module calcule le code masque en utilisant
l'image prétraitée et les points d'analyse afin d'indiquer les bits erronés
• Module de classification : On calculer le score de comparaison entre deux iris codes
en appliquant les codes masques correspondants Ce score représente la similarité des iris codes
Figure 5: Les modules différents du système d'OSIRIS
Trang 17PHAN Viet Anh – Promotion 12 Page 17
J'ai développé un nouveau module de segmentation pour améliorer le résultat de celui-ci dans le système d'OSIRIS Les modules de normalisation et de classification vont être utilisés pour évaluer le résultat de ce nouveau module
Trang 18PHAN Viet Anh – Promotion 12 Page 18
Techniques utilisées
I - Transformée de Hough
Un problème commun à la biométrie et celui du domaine de la vision par ordinateur est
de déterminer la localisation et l'orientation des objets dans l'image Plusieurs objets se composent de lignes, de courbes, de cercles Par exemple une maison, un bâtiment, ou un vélo dans une image Ainsi, on peut donc obtenir des informations sur un objet si on connaît les composantes de cet objet dans image Ce problème peut-être résolu en utilisant la transformée de Hough
La transformée de Hough est une technique de reconnaissance de formes inventée en
1962 par Paul Hough Cette technique nous permet de reconnaître les lignes (droite), les cercles ou n'importe quelle forme présente dans une image
1 Détection de droite
1.1 La transformée classique de Hough
La formule la plus simple représentant une droite est :
Soient
a est la pente de droite
b est l’interception de cette droite sur l’axe y
Figure 6: Transformation d'une ligne est un point dans l'espace de paramètre
Trang 19PHAN Viet Anh – Promotion 12 Page 19
Chaque droite dans l'espace (X,Y) sera transformée en un point dans l'espace de (A,B) Pour chaque point (x,y), on a une famille de droite (a,b) qui le traverse Ces droites vont êtres représentées par une droite dans l'espace (A,B) Alors, pour trouver la droite passant par deux points A et B, on cherche pour commencer une droite dans l'espace des (a,b) qui présente toutes les droites passant par le point A dans l'espace des (x,y) On l'appelle droite d1 Puis, on cherche une deuxième droite d2 dans l'espace des (a,b) représentant les droites qui passent par
le point B L'intersection de deux droites d1 et d2 donne le point contenant les paramètres de
la droite recherchée
Par exemple, soient deux points A(2,4) et B(1,1) L'ensemble des droites passant par le point A est y=ax+b avec b=4-2a (1) L'ensemble des droites passant par le point B est y=ax+b avec b=1-a (2) Alors pour chaque coupe (a,b) satisfaisant la condition (1) (ou 2) on a une droite qui traverse le point A (ou le point B) Ainsi, pour détecter la droite qui traverse les deux points A et B, on utilise un accumulateur (sous forme de tableau) Chaque ligne
correspond à une valeur possible du paramètre a et chaque colonne correspond à une valeur possible du paramètre b Chaque «case» du tableau représente une droite de paramètres a et b
Trang 20PHAN Viet Anh – Promotion 12 Page 20
Initialement, toutes les valeurs du tableau (accumulateur) sont mises à zéro Puis la valeur d'une «case» va s'incrémenter lorsque la droite correspondante traversera le point concerné En prenant notre exemple, on peut considérer en premier le point A Pour chaque
valeur du paramètre a, on calcule la valeur du paramètre b et on ajoute 1 à la valeur de la
«case» correspondante aux valeurs a et b
Tableau 2: Accumulation après calcul pour le point A(2,4)
Puis, on fait la même chose avec le point B et on obtient le tableau suivant :
À la fin du processus (d'accumulation), la «case» ayant obtenu la valeur la plus élevée correspond à la droite qui traverse le plus nombres grand nombre de point Dans notre
exemple, on peut constater que 2 est la valeur la plus élevée du tableau La position de la
«case» contenant cette valeur nous permet de déterminer les paramètres (a=3 et b=-2) de la droite passant par les points A et B Ces paramètres trouvés, satisfont les deux conditions (1)
et (2) ci-dessus
Pourtant, il survient un problème quand on représente une droite par un point dans l'espace des (a, b) ceci lorsque l'un des deux paramètres a ou b devient infini: la droite recherchée est de plus en plus verticale, ce qui implique que l'espace des paramètres a et b devienne de plus en plus large Dans ce cas, on ne peut donc pas trouver la droite en question
Trang 21PHAN Viet Anh – Promotion 12 Page 21
de cette manière On a besoin d'utiliser une autre représentation pour limiter un des deux paramètres
1.2 Généralisation de la transformée de Hough
Le problème rencontré dans la section précédente peut être résolu par l'utilisation de la représentation en système polaire d'une droite
Dans ce système, une droite est représentée par
la formule suivant :
Où
est la distance entre l’origine à cette ligne
est l’angle entre l’axe x et le vecteur
Le domaine de variation de est [0 180] en
degré (ou entre [0 PI] en radian) On suppose que D est la diagonale de l'image Alors, les valeurs possible des sont comprises entre -D et D Une droite dans l'espace de (X,Y) sera transformée en un seul point dans l'espace des (l'espace de Hough) L'ensemble des droites passant par un point dans l'espace euclidien, sera transformé en un unique couple de sinusọde dans l'espace de contrairement à une droite dans la technique précédente Toutefois, on applique la même méthode pour trouver la droite reliant deux points : On cherche deux courbes dans l'espace de représentant la famille de droite passant par les points A et B Puis, on cherche l'intersection des deux courbes Ce point nous donne les paramètres de la droite passant par A et B
En utilisant de cette manière la représentation de droite on peut trouver toutes les droites présentes dans l'image
2 Détection de cercle
Plusieurs objets particuliers se composent de cercle comme un coin, une balle, ou un iris dans le cas de mon travaille Ces objets ont des contours sous forme de cercle Donc, nous avons besoin de trouver les cercles dans l'image
L'équation d’un cercle est:
Figure 8: Présentation de ligne en
système polaire
Trang 22PHAN Viet Anh – Promotion 12 Page 22
Soit
r est le rayon du cercle
(a,b) est le centre du cercle
Ainsi donc l'espace des paramètres d'un cercle est de dimension 3 c'est à dire R3 par rapport à R2 pour une droite Par ailleurs, plus la dimension de l'espace des paramètres est grande, plus la complexité de la transformée de Hough augmente Pour diminuer les calculs,
on peut limiter la valeur du rayon du cercle recherché dans un domaine de valeur connue
Un cercle est représenté par 3 paramètres (a,b,r) Si on fixé le rayon, le cercle dépend seulement des coordonnées du centre Dans ce cas, l'ensemble des centres des cercles qui ont
un même rayon R et passe par le point (x0,y0) dans l'espace (X,Y) désigne un cercle avec le même rayon dans l'espace de paramètre Donc, si on fait varier le rayon on a un volume de cône dans l'espace de paramètre
Figure 9: Un cercle transformé de l'espace (x,y) à l'espace de paramètre avec le rayon fixé
Figure 10: La transformée de Hough pour un cercle
dans l'espace de paramètre
Trang 23PHAN Viet Anh – Promotion 12 Page 23
De la même façon, on peut utiliser un accumulateur comme précédemment dans la détection de droite Cette fois-ci, ce dernier possède trois dimensions Voici l'algorithme de la transformée de Hough pour la détection de cercle :
Pour chaque point de contour
1 Pour chaque rayon r
1 Dessiner un cercle en prenant ce point comme le centre
2 incrémenter la valeur de tous les points qui est passé par ce cercle dans
Le paramètre s représente le point de contrôle Ces valeurs prises entre 0 et 1 donnent lieu à la courbe (courbe paramétrée).Cette méthode ne peut pas détecter automatiquement des contours dans une image Elle a besoin d'une position initiale pour les points de contrôle L'idée principale de cette méthode est de déplacer les points de contrôle pour les rapprocher le plus possible des contours d'intérêt Elle est basée sur les notions d'énergies interne et externe dont le but est de minimiser l'énergie totale présente le long de la courbe La fonction d’énergie rattachée au contour actif se compose de trois éléments :
Les deux premiers éléments de cette équation forment l'énergie interne de la courbe: la
tension et la rigidité Elles sont contrôlées par cette force Le dernier élément représente
l'énergie externe de la courbe On peut alors reformuler l'équation ci-dessus par :
Trang 24PHAN Viet Anh – Promotion 12 Page 24
Avec
2 L’énergie interne
Dans l'équation (9), l'énergie interne est divisée en deux sous énergies : la force d'élasticité et la force de courbure La fonction d'énergie est représentée par :
Le premier terme de l'équation (11) représente la force élasticité Elle contrôle la tension
du contour actif: elle empêche le contour de se rétracter mais aussi l'extension de ce dernier
Le deuxième terme représente la force de courbure: cette force contrôle la rigidité du contour Pendant le processus de déformation, elle essaye de lisser le contour
Les paramètres α et β devant chaque terme sont les poids de la fonction Généralement, la valeur de ces poids est constante pour tous les points de contrôle Ils sont fixés au début du processus de déformation Ces paramètres ont un grand impact sur la performance de ce processus Si on choisi les bons paramètres, le processus de déformation va finir vite et on aura un bon résultat Par contre, ce processus est très long à s'exécuter et l'algorithme peut s'arrêter avant d'avoir trouver le contour optimal car on a limité le nombre d'itérations Chaque objet dans image a besoin de ses propres paramètres pour que l'algorithme puisse
Figure 11: L'énergie interne
Trang 25PHAN Viet Anh – Promotion 12 Page 25
trouver son contour optimal Donc, il faut tenter plusieurs valeurs différences de chaque paramètre pour trouver les bonnes valeurs qui nous donnent le meilleur résultat
Figure 12: Illustration de la force élastique et la force de courbure
3 L’énergie externe
L'énergie externe est la dérivée de l'intensité de l'image Son but est d'attirer la courbe au plus prêt du contour d'intérêt Cette énergie peut-être définie par l'équation suivant :
représente le gradient de l'intensité de l'image qui est calculé à point de contrôle
s dans le contour actif
Cette énergie est la nature de l'attraction vers les contours intéressants Une illustration en est faite à la figure (13) :
Force élastique
Force de courbure
Figure 13: Illustration de l'effet de l'énergie externe
Trang 26PHAN Viet Anh – Promotion 12 Page 26
Segmentation
I - Obstacles
1 Les bases de données
Avant l'an 2000, il n'existait pas de base de données publique pour la vérification par l'iris CASIA (Chiness Academy of Science Institute of Automation) est la première base de données publique La première version de cette base (CASIA v1.0) a été demandée par plus
de 1500 chercheurs et groupes de 70 pays et régions Cette version contient 756 images d'iris
de 108 personnes La région de la pupille de chaque image a été détectée automatiquement et remplacée par une région circulaire dont l'intensité est constante (noir) Les images dans cette base sont toutes nettes et les iris sont faiblement couverts de paupières et de cils La résolution
de chaque image est 320*280 pixels (http://www.sinobiometrics.com/)
Une autre base de données est ICE qui a été publiée par le NIST (National Insitute of Standards and Technology) La base ICE_2005 se compose de 2953 images en niveau de gris
de 132 personnes Elles sont acquisses par une caméra dédiée LG2200 Chaque image ayant une taille de 640x480 pixels capture un œil Cette base a été divisée en deux sous bases : une pour les images de l'iris droit (1425 image d'iris de 124 personnes) et une autre pour les images de l'iris gauche (1528 image d'iris de 120 personnes) Dans la plupart de cas, les images de l'iris droit et gauche sont acquises en même temps Les images dans cette base contiennent des reflets lumineux, du flou et du bougé De plus, les iris dans cette base peuvent être recouverts par les paupières et par les cils (http://iris.nist.gov/ice/)
Figure 14: Une image dans la base de données CASIA v1.0
Trang 27PHAN Viet Anh – Promotion 12 Page 27
Figure 15: Des exemples d'images de la base de données ICE 2005
2 Les difficultés
Les expériences ont été réalisées sur la base ICE_2005 Après analyse de cette base, les difficultés rencontrées sont les suivantes :
⁃ Présence du mascara : le mascara regroupe les cils et ceux-ci deviennent encore plus
noirs comme la pupille Parfois la région des cils fusionne avec celle de la pupille Il devient alors difficile de les séparer
⁃ Reflet : Il s’agit du reflet de la lumière dans les yeux Il y a des reflets dans toutes les
images dans la base de données Il est présent sur la pupille, l'iris Dans certains cas il est présent sur le bord de la pupille (ou de l'iris), il peut ainsi poser quelques difficultés lorsqu'on cherche des contours
⁃ Les contours de la pupille et de l'iris ne sont pas vraiment circulaires : Alors, si on
cherche des contours circulaires dans l'image on aura toujours des erreurs De plus, les paupières couvrent régulièrement une partie de l'iris Donc, dans la plupart des cas, on n'obtient pas un contour complet de l'iris
⁃ Image capturée est flou : Les yeux bougent quand on capture l'image
⁃ Il y a des bruits dans l'image : La qualité de l'image n'est pas bonne
II - Solutions proposées
L'Objectif de mon stage est le développement d'un module pour trouver les contours de la pupille et de l'iris dans les images de l'œil Ces contours sont semblables à des cercles Donc, l'idée principale est qu'on va utiliser la transformée de Hough pour chercher les cercles dans l'image Cependant dans le chapitre III, on a montré que l'espace de paramètres pour les cercles est R3 Alors, l'exécution de transformée de Hough dans ce cas sera très longue Il faut limiter la région de recherche et le rayon du cercler dont on a besoin de trouvé pour diminuer
le temps d'exécution et les erreurs aussi
Trang 28PHAN Viet Anh – Promotion 12 Page 28
Après analyse des images de la base de données utilisée, j'ai pu constater que le niveau
de gris de l'iris se situe dans une zone très grande (à partir de 27 jusqu'à 195) Pour les images ayant le niveau de gris de l'iris le plus bas, on peut distinguer facilement ó est l'iris dans cette image car le niveau de gris du blanc de l'œil est plus important Pourtant, dans le cas ó le niveau de gris de l'iris est important aussi, il est très difficile de distinguer la région de l'iris et
la région du blanc de l'œil Par contre, le niveau de gris de la pupille est quant à lui toujours plus bas dans l'image (entre zéro et 25) La région de l'iris est entourée de la pupille et on peut trouver un seuil pour les séparer Si on connaỵt ó se situe la pupille dans image, on peut déterminer la région de l'iris en concentrant les recherches autour de cette région pour trouver les contours de l'iris
De plus, j'ai pu obtenir des informations sur le rayon maximal et le rayon minimal de la pupille et de l'iris Se sont:
− Le rayon minimal de la pupille (LOWER_PUPIL_RADIUS) est d’environ 26 pixels
− Le rayon maximal de la pupille (UPPER_PUPIL_RADIUS) est d’environ 77 pixels
− Le rayon minimal de l'iris (LOWER_IRIS_RADIUS) est d’environ 92 pixels
− Le rayon maximal de l'iris (UPPER_IRIS_RADIUS) est d’environ 140 pixels
On peut utiliser ces informations pour limiter le domaine de variation des valeurs du rayon lorsqu'on applique la transformée de Hough
À partir de ces connaissances, j'ai proposé une solution qui se décompose en 6 grandes étapes:
1 Localisation de pupille : Le but de cette première étape est de localiser la région de la
pupille Cette information est très utile Grâce à elle, on a pu réduire la taille de la zone
de recherche dont on a besoin pour trouver le contour
2 Recherche du contour initial de la pupille : Dans cette étape, j'ai utilisé la transformée
de Hough pour chercher les cercles présents dans la région pupille qu'on a obtenu dans l'étape ci-dessus
3 Recherche du vrai contour de la pupille : On cherche le «vrai» contour de la pupille en
utilisant la méthode du contour actif et se servant du contour initial de l'étape précédente
4 Recherche du contour initial de l'iris : En utilisant la «région» pupille, je j'estime la
région de l'iris Puis, comme dans la troisième étape, j'utilise la transformée de Hough
Trang 29PHAN Viet Anh – Promotion 12 Page 29
pour chercher le contour initial de l'iris
5 Recherche du vrai contour de l'iris : On utilise le contour initial et applique le contour
actif pour trouver le «vrai» contour de l'iris
6 Génération du masque : Cette dernière étape permet de générer un masque qui nous
indique quelle région va être utilisée pour l'analyse de la texture de l'iris
Dans les sections suivantes, je parlerai de manière plus détaillée ces six étapes
Trang 30PHAN Viet Anh – Promotion 12 Page 30
III - Localisation de la pupille
1 Algorithme
Comme j'ai pu le souligner dans la section précédente, la localisation de la pupille dans l'image est une phase très importante Si on la connaỵt, on peut diminuer la taille de la zone de recherche et donc augmenter la vitesse d'exécution et diminuer l'erreur De plus, le niveau de gris de la pupille est le plus bas dans image et ne varie pas beaucoup Donc, la région de la pupille est la plus facile à détecter dans l'image On peut faire un simple seuillage pour obtenir cette région
Pourtant, lorsque j'ai appliqué le seuillage, j'ai rencontré un problème J'ai obtenu dans l'image binaire non seulement la région de la pupille mais aussi celle des cils Chaque cil est svelte Normalement, on pourrait faire une érosion pour supprimer ou séparer les régions présentant des cils dans image binaire Mail il existe beaucoup de cas ó on ne peut pas supprimer tous les cils dans image ou au minium les séparer d'avec la pupille En réalité, les femmes aiment bien utiliser du mascara pour bien marquer leurs cils En utilisant cet outil, les cils se regroupent et deviennent encore plus noir Dans les images capturées des yeux utilisant
du mascara, la région des cils est très «prononcée» Et parfois elle fusionne avec la région de
la pupille, et donc rend difficile la détection exacte de la région «pupille»
Dans le tableau suivant, je montre trois exemples La première colonne représente l'image d'origine et la deuxième colonne contient l'image binaire après application d'une érosion Dans le premier cas, la région des cils est très prononcée et elle fusionne avec la région «pupille» On ne peut pas alors les séparer Dans le deuxième cas, les cils sont aussi prononcés Mais ils sont séparés d'avec la pupille Le dernier cas, on n'obtient que la pupille dans l'image binaire
239411.tiff
La région de la pupille
et la région des cils sont mélangées C'est très difficile de les séparer
Trang 31PHAN Viet Anh – Promotion 12 Page 31
239728.tiff
La région des cils et la région de la pupille sont séparées Dans ce cas, on peut détecter
représente la pupille
239229.tiff
Dans ce cas, on n'obtient que la région
de la pupille
Tableau 4: Exemple du résultat de localisation de la pupille
Alors, pour résoudre ces problèmes, j'ai proposé l'algorithme adaptatif suivant :
− Étape 0 : Donner un seuil initial S Le niveau de gris de la pupille est très bas (à partir de zéro à 25) Donc j'ai choisi le seuil initial S égal à 22
⁃ Étape 1 : (Binarisation) On crée une image binaire (imb) en utilisant le seuil S Les points ayant le niveau de gris supérieur du seuil S vont être noir (niveau de gris égale zéro)
Donc les régions blanches dans l'image imb seront les régions de la pupille et les régions
des cils
⁃ Étape 2 : Faire une érosion avec une fenêtre en forme de « croix » et de taille 15x15 Le
but de cette étape est de distinguer les régions dans l'image imb
⁃ Étape 3 : Chercher les régions les plus grandes dans imb Dans cette étape, on recherche
une liste des 10 régions (au maximum) les plus grandes dans imb Chaque dimension de
chaque région dans cette liste doit être supérieur de LOWER_PUPIL_RADIUS*2-13
− Étape (4-a) : S’il n'y a aucune région qui est satisfaite avec la condition du dessus, on
augmente le seuil S de 10 et on retourne à l'étape 1 (Dans ce cas, cela veut dire que le
seuil qu’on a utilisé, est trop petit On n'obtient que de petites régions (les cils ou une
partie de la pupille) Donc il faut augmenter la valeur du seuil S et recommencer)
− Étape (4-b) : Si les deux dimensions de toutes les régions dans la liste que on a obtenu, ne
sont pas comparables (c'est à dire que la différence entre les deux dimensions est
Trang 32PHAN Viet Anh – Promotion 12 Page 32
inférieure à 50 pixels), on diminue le seuil de 5 et retourne à l'étape 1 (Dans ce cas, cela veut dire que le seuil utilisé est trop grand Les régions de la pupille et des cils sont
mélangées On ne peut pas les distinguer Alors il faut diminuer la valeur du seuil S et
recommencer)
− Étape (4 -c) : Pour les régions satisfaisantes toutes les conditions ci-dessus ont
été respectées, on les compare alors avec un modèle de région «rond» de même
taille pour en déduire la région la plus proche de ce modèle
Condition d'arrêt de l'algorithme : Cet algorithme va terminer si on a trouvé une
région plus proche du modèle (région «rond» de l'étape 4-c) Sinon, il va s'arrêter lorsque le seuil devient inférieur de zéro ou supérieur à 255 ou après 20 boucles Dans ce cas, on va chercher les contours dans toute image
Il faut maintenir la liste des régions les plus grandes dans imb car la région la plus grande dans image peut-être celles des cils À cause du bruit et du spotlight, après l'étape (2), la région de la pupille peut-être plus faible que celle-là des cils La deuxième condition dans l'étape (3) a pour but d’éliminer les régions trop petites dans image
Dans les étapes (4-a) et (4-b), si le seuil qu'on a utilisé n'est pas approprié alors, il faut le corriger et recommencer Si on tombe sur le cas (4-c), on obtient la liste des régions les plus grandes dans image Ces régions ont leurs deux dimensions comparables Elles sont des candidates pour examiner la présence de la pupille Je trouve que toutes les régions de la pupille dans image binaire ont une forme ronde Donc, pour déterminer quelle région représente la pupille, j'ai comparé les régions obtenues avec un modèle d'une région ronde de même taille J'ai décidé que la région la plus proche de ce modèle est la région de la pupille
Figure 16: La région du cil est plus grande que
celle-là de la pupille
Modèle
Trang 33PHAN Viet Anh – Promotion 12 Page 33
2 Expériences
Au départ, j'ai fait plusieurs tests sur la base de données ICE_2005 Elle est composée de
2953 images en niveau de gris Pour évaluer les résultats de ma méthode de segmentation, je
me suis servi d'une base d'images déjà segmentées dite de «référence» Cette base de référence a été créée par les autres membres l'équipe: Ils ont déterminé les contours en utilisant la transformée de Hough et ensuite les ont corrigés à la main Ainsi, les contours de référence sont très bien situés
Concernant le travaille de localisation proprement dit, il n'y a pas eu d'itération au départ dans cette phase J'ai fixé un seul seuil pour créer les images binaires dans l'étape 1 Pourtant,
on ne peut pas utiliser un même seuil pour toutes les images de la base de données car le niveau de gris de la pupille et de l'iris de chaque image varié Dans un premier temps, j'ai d'abord essayé de chercher un seuil qui fonctionne bien sur la plupart des cas La meilleure valeur de seuil que j'ai obtenue est 22 Avec cette valeur (et sans itération), j'ai pu déterminer
la position de la pupille dans 2855 images soit dans 96,68% des cas Dans les autres cas, je n'ai pas pu localiser la pupille car elle s'était regroupée avec la région des cils; ce qui laissait supposer que cette valeur du seuil (s=22) n'était pas appropriée pour ces images en question Les résultats de cette phase sont très importants La qualité de la localisation de la pupille influe sur la vitesse et l’efficacité de la segmentation C’est la raison pour laquelle j’ai proposé et pris beaucoup de temps pour améliorer cette phase La meilleure amélioration que j'ai obtenue est l'ajout d'une boucle Au lieu d'exécuter une seule fois, j'ai essayé de l'exécuter plusieurs fois À la fin de chaque fois, si je ne peux pas localiser la pupille, j'essaye de déterminer quel est le problème Dans les épates (4-a) et (4-b), j’ai cité les deux cas les plus rencontrés Le problème de ces deux cas est que le seuil utilisé était non convenable (soit trop petit soit trop grand) Après avoir repérer le problème, j'ai essayé de modifier le seuil puis de recommencer Grâce à cette amélioration, j'ai réussi à localiser la pupille dans 2948 cas (soit 99,83% des cas) Il restait alors seulement 5 images pour lesquelles je ne suis pas arrivé à localiser la pupille
Trang 34PHAN Viet Anh – Promotion 12 Page 34
À cet instant, on suppose qu'on connait la zone contenant la pupille dans l'image Par ailleurs dans l'étape précédente on a utilisé une érosion Résultat: la région obtenue est plus petite que la région réelle De plus, la région obtenue contient peut-être seulement une partie
de la pupille Alors, il faut agrandir cette région pour avoir la zone complète de la pupille Suivant diverses mes expériences, j'ai constaté que si on considérait pour chaque dimension
de la zone trouvée un au diamètre supérieur au maximum possible de la pupille (à savoir UPPER_PUPIL_RADIUS*2), on couvrait toute la pupille Ainsi, La taille de la zone pupille après l'agrandissement est environ 100 pixels Elle est beaucoup plus petite que celle de l'image totale (640x480 pixels) On constate alors qu'on peut améliorer de beaucoup la vitesse d'exécution si on utilise seulement cette zone comme entrée de la transformée de Hough L'algorithme réalisé est le suivant :
− Étape 1 : Agrandir la région contenant la pupille (Chaque dimension est égale à
UPPER_PUPIL_RADIUS*2+20) On l'appelle la zoneP
− Étape 2 : Chercher les cercles dans la zoneP en utilisant la transformée de Hough
− Étape 3 : Normalisation du nombre de vote pour chaque cercle obtenu en utilisant la
formule suivant :
nVoteNorm = nVote / rayon
Avec
nVote : le nombre de vote de ce cercle
rayon : le rayon de ce cercle
nVoteNorm : le nombre de vote normalisé
− Étape 4 : On ne compte que les cercles qui sont bien centré dans la zoneP (La distance entre le centre de ces cercles et le centre de la zoneP doit être inférieure ou égale à ¼ de
la dimension la plus petite de la zoneP) On prend le cercle ayant nVoteNorm le plus
grand comme étant le cercle initial de la pupille