Détection des contours de la pupille à l`aide des transformées de

publicité
Département de Production Automatisée
École de technologie supérieure
Montréal
Détection des contours de la pupille
à l’aide des transformées de Hough
Jérôme Schmaltz
Rapport de projet de session
Projet de session – SYS844 Vision par ordinateur
à l’École de Technologie Supérieure (ETS).
2006
Professeur M. Richard Lepage
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Table des matières
Table des matières ............................................................................................................................................ 2
Liste des figures ................................................................................................................................................ 3
Liste des tableaux.............................................................................................................................................. 4
1. Introduction................................................................................................................................................... 5
1.1 Travail proposé ....................................................................................................................................... 6
2. Caractéristiques biologiques de l’œil............................................................................................................ 7
3. Caractéristiques d’une image de l’œil acquise avec une caméra traditionnelle............................................ 9
3.1 Ombres.................................................................................................................................................. 10
3.2 Reflets ................................................................................................................................................... 10
3.3 Pupilles.................................................................................................................................................. 11
3.4 Luminosité ............................................................................................................................................ 11
3.5 Contrainte additionnelle : lunettes et lentilles....................................................................................... 12
4. Traitement de l’image pour la détection de la pupille ................................................................................ 13
4.1 Image source ..................................................................................................................................... 13
4.2 Suppression du surplus de contours.................................................................................................. 14
4.3 Conversion en niveaux de gris.......................................................................................................... 15
4.4 Détection des contours...................................................................................................................... 16
4.5 Directions des contours..................................................................................................................... 18
4.6 Détection des centres ........................................................................................................................ 19
4.7 Seuillage............................................................................................................................................ 20
4.8 Isoler les centres potentiels ............................................................................................................... 21
4.9 Recherche des cercles ....................................................................................................................... 22
5. Présentation du projet ................................................................................................................................. 24
5.1 Architecture du programme .................................................................................................................. 24
5.2 Présentation des l’interfaces usager ...................................................................................................... 27
6. Résultats obtenus ........................................................................................................................................ 29
6.1 Vitesse de l’algorithme ......................................................................................................................... 33
7. Conclusion et améliorations possibles ........................................................................................................ 35
Références....................................................................................................................................................... 36
ETS SYS-844
Jérôme Schmaltz
Page 2 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Liste des figures
Figure 2.1 Les différentes parties externes de l’œil humain............................................................................. 7
Figure 2.2 Les différentes parties internes de l’œil humain.............................................................................. 8
Figure 2.3 Représentation des cônes et des bâtonnets. ..................................................................................... 8
Figure 3.1 Contenu spectral de la lumière. ....................................................................................................... 9
Figure 3.2 Image capturée avec une caméra traditionnelle............................................................................... 9
Figure 3.3 Formation d’ombre dans une image de l’œil................................................................................. 10
Figure 3.4 Types de reflets dans un œil. (a) Reflet de fenêtre dans l’œil. (b) Reflet d’une lampe dans l’œil. (c) Reflet d’un néon dans l’œil. ............... 11
Figure 4.1 Différentes étapes de traitement de l’image afin de localiser la pupille dans une image.............. 13
Figure 4.2 Spécification d’une région d’intérêt pour traitements ultérieurs................................................... 13
Figure 4.3 Application du filtre moyenneur sur la région d’intérêt................................................................ 14
Figure 4.4 Exemple d’un filtre moyenneur de dimension 3x3. ...................................................................... 14
Figure 4.5 Conversion de la région d’intérêt en niveaux de gris. ................................................................... 15
Figure 4.6 Détection des contours de la région d’intérêt. ............................................................................... 17
Figure 4.7 Noyaux de convolution de Sobel................................................................................................... 18
Figure 4.8 Déterminer les directions des gradients à partir de l’application des filtres de Sobel................... 18
Figure 4.9 Traçage d’une droite en fonction d’un contour. ............................................................................ 19
Figure 4.10 Traçage d’une droite dans l’accumulateur. ................................................................................. 19
Figure 4.11 Centre d’un cercle dans un accumulateur.................................................................................... 20
Figure 4.12 Traçage de lignes dans l’accumulateur en fonction de l’image de Canny et de la matrice de directions. 20
Figure 4.13 Application d’un seuil dans l’accumulateur. ............................................................................... 21
Figure 4.14 Représentation graphique d’un Laplacien de Gaussien. ............................................................. 21
Figure 4.15 Application d’un chapeau mexicain dans l’accumulateur........................................................... 21
Figure 4.16 Accumulateur de Hough en trois dimensions.............................................................................. 22
Figure 4.17 Traçage des cercles avec l’image de contours............................................................................. 22
Figure 4.18 Flux d’opérations pour localiser les pupilles............................................................................... 23
Figure 5.1 Architecture de haut niveau........................................................................................................... 24
Figure 5.2 Diagramme de classes. .................................................................................................................. 26
Figure 5.3 Écran principal de l’application .................................................................................................... 27
Figure 5.4 Établissement de la région d’intérêt. ............................................................................................. 27
Figure 5.5 Écran de configuration des paramètres.......................................................................................... 28
Figure 6.1 Éclairage de forte intensité dans l’axe de la caméra. Scène arrière éclairée. ................................ 29
Figure 6.2 Sous exposition de la lumière. Scène arrière éclairée. .................................................................. 29
Figure 6.3 Éclairage normal, scène arrière sous éclairée................................................................................ 30
Figure 6.4 Sur éclairage sur la gauche, scène arrière sous éclairée. ............................................................... 30
Figure 6.5 Sur éclairage sur la droite, scène arrière sous éclairée. ................................................................. 30
Figure 6.6 Éclairage normal, plan de loin....................................................................................................... 31
Figure 6.7 Plan de proche, éclairage normal, ajustement de paramètres. ....................................................... 31
Figure 6.8 Temps de calculs en fonction des dimensions de la région d’intérêt. ........................................... 33
Figure 6.9 Temps de calculs en fonction des coefficients de Gaussien.......................................................... 34
ETS SYS-844
Jérôme Schmaltz
Page 3 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Liste des tableaux
Tableau 5.1 Spécifications techniques............................................................................................................ 24
Tableau 5.2 Description des classes. .............................................................................................................. 27
Tableau 6.1 Liste des valeurs pour les différents paramètres. ........................................................................ 29
Tableau 6.2 Valeurs des paramètres utilisés pour la figure 6.7 ...................................................................... 31
Liste des formules
Formule 4.1 Exprimant la moyenne d’un pixel d’intérêt................................................................................ 14
Formule 4.2 Conversion en niveau de gris d’un pixel RGB........................................................................... 15
Formule 4.3 Conversion en niveau de gris d’un pixel RGB en prenant en compte la perception de l’œil humain. ... 15
Formule 4.3 Représentation du filtre gaussien. .............................................................................................. 16
Formule 4.4 Convolution d’un filtre gaussien sur une image......................................................................... 16
Formule 4.5 Amplitude d’un gradient et obtention de sa direction. ............................................................... 16
Formule 4.6 Arc tangente des filtres de Sobel................................................................................................ 18
Formule 4.7 Équation de la droite................................................................................................................... 19
Formule 4.8 Représentation d’un Laplacien de Gaussien. ............................................................................. 21
ETS SYS-844
Jérôme Schmaltz
Page 4 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
1. Introduction
Le traitement d’images digitales n’est pas nouveau en soi. Depuis les trente dernières années, des
applications concrètes naissant du traitement d’images, ont trouvé une place importante dans plusieurs
domaines scientifiques et mêmes domestiques. Ainsi, la domotique, la robotique et la biométrie sont des
exemples de champs d’applications reposant toutes sur le traitement d’images [EFF00].
Quelques applications de la robotique arborent un système de vision exploitant le traitement d’images
digitales afin d’analyser un stimulus et d’en extraire une représentation symbolique [LEP05]. C’est souvent
le cas de robots autonomes dotés d’une intelligence artificielle. D’autres cas concrets d’applications directes
du traitement d’images se retrouvent aussi en biométrie, afin de produire un modèle mathématique de
l’identité d’un sujet en fonction des caractéristiques physionomiques d’une partie quelconque de son corps
(emprunte, iris, main, etc.).
Puisque ces milieux sont en constantes évolutions du fait qu’ils sont directement influencés par une
croissance technologique continue, la recherche en traitement d’images et en vision par ordinateur demeure
un point chaud en ingénierie.
Depuis quelques années déjà, on assiste à une panoplie de recherches concernant des algorithmes et
protocoles visant la caractérisation, la quantification, la qualification et la discrétisation des attributs l’œil
humain [ZHU02, DAU04]. On peut maintenant voir une correspondance directe de ces recherches dans le
milieu de la biométrie, dans celui de la commande et même dans les domaines médicaux.
Plusieurs de ces applications nécessitent une interaction entre l’œil et la machine, où l’œil sert de dispositif
de pointage afin que la machine puisse capturer les mouvements et repérer le point de la scène vers lequel
l’œil de l’utilisateur pointe.
De tels dispositifs sont appelés Eye Trackers. On en distingue deux catégories. Ceux qui requièrent un
contact direct avec l’utilisateur, par le port de lunettes ou de lentilles spéciales, et ceux qui n’en n’imposent
pas. Ces derniers sont généralement statiques et moins adaptés à la mobilité du sujet [KRO01].
Parmi les travaux consultés [KRO01, BRO00] et les ressources d’Internet abondantes sur le sujet, bon
nombre d’entre eux reposent sur une détection soit de l’iris ou de la pupille par les transformées de Hough
(voir section correspondante).
Le travail présenté dans ce rapport se penchera sur la détection de la position des pupilles à partir d’images
diffusées en continu (vidéo) arborant la figure d’un utilisateur à partir d’une zone d’intérêt pré déterminé, et
ce, avec l’aide des transformées de Hough.
ETS SYS-844
Jérôme Schmaltz
Page 5 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
1.1 Travail proposé
Le travail proposé consiste en l’implémentation de divers algorithmes de traitement d’images dans le but
d’identifier avec le plus d’acuité possible, la position des deux iris dans un visage humain. Ce traitement
devra se faire dans un temps respectable puisque les images à traiter seront en flot continu (vidéo).
Une région d’intérêt pré établie servira de base au traitement. Cette région pourra être définie
dynamiquement par l’utilisateur lorsque le programme sera en exécution à même l’interface graphique.
Plusieurs considérations architecturales seront prises en compte afin d’optimiser le temps de traitement de
chacune des images. Ces considérations et choix architecturaux seront décrits dans la section 5 du rapport.
La détection des contours des iris proposé dans ce travail, est composée de plusieurs filtres et algorithmes
vus en classe. Une description sommaire du protocole de détection sera proposée à la section 4.
La réalisation d’un tel projet se fera en langage Java™, qui comprend de nombreuses bibliothèques pour
faciliter la capture et le traitement d’images. Le projet ne se veut pas d’être en temps réel puisque la
limitation matérielle empêche d’acquérir une performance suffisante.
Le travail se divisera de manière à présenter en premier lieu quelques notions fondamentales de biologie
afin d’identifier les caractéristiques de l’œil humain. Par la suite, une brève discussion sera faite sur les
principaux attributs que l’on peut observer dans une image d’œil. Nous discuterons ensuite de l’algorithme
utilisé pour détecter les iris sur une image puis enfin, nous ferons part des résultats obtenus par le biais de
l’implémentation de notre algorithme.
ETS SYS-844
Jérôme Schmaltz
Page 6 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
2. Caractéristiques biologiques de l’œil
Il est important de familiariser préalablement le lecteur à acquérir certaines notions de base concernant l’œil
humain afin de le confronter aux diverses problématiques engendrées par les caractéristiques biologiques
présentées dans cette section.
Distinguons en premier lieu, trois parties externes de l’œil : la partie centrale appelée la pupille. La pupille
est un orifice laissant passer la passer la lumière afin de faire réagir des photorécepteurs. La bande colorée
entourant la pupille, appelée iris est protégée par une structure transparente appelée cornée. L’iris agit
comme un muscle sur la pupille la contractant ou la dilatant, réglant ainsi le niveau de lumière entrant dans
l’œil. Enfin la zone blanche s’étalant sur le reste de l’aire non comblée de l’oeil est nommée sclérotique. La
figure 2.1 peut servir de référence.
Sclérotique
Pupille
Iris
Figure 2.1 Les différentes parties externes de l’œil
humain1.
L’orbite de l’œil, formant une sphère quasi parfaite, contient des cellules photosensibles permettant de
capter la lumière ainsi que toutes les cellules nerveuses permettant la transmission de ces informations au
cerveau.
Les rayons lumineux émanant d’une source quelconque traversent la pupille afin d’exciter les
photorécepteurs de la rétine. La rétine couvre une zone interne de l’œil faisant face à la pupille. Les
photorécepteurs qui composent la rétine sont appelés cônes et bâtonnets, chacun possédant ses propres
propriétés.
Les cônes se diversifient en trois catégories, chacune permettant d’absorber une longueur d’onde
particulière. Contrairement aux cônes, les bâtonnets ne comptent qu’une seule. La disposition des
photorécepteurs sur la rétine n’est pas uniforme et est fonction de l’angle formé entre le centre de l’œil
(fovéa) et le rayon lumineux entrant. Dans la zone fovéale, illustrée dans la figure 2.2, les cônes y sont en
plus grande concentration que les bâtonnets, en périphérie c’est carrément l’inverse.
1
Source : http://www.pole-diderot.com/~diderot/images/Oeil%202G.jpg
ETS SYS-844
Jérôme Schmaltz
Page 7 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Figure 2.2 Les différentes parties internes de l’œil humain2.
Considérant ces faits, notons que les cônes servent à la vision diurne en couleur (capacité trichromatique)
dans la zone fovéale (un objet situé dans l’axe de la pupille) et que les bâtonnets voient leur utilité
uniquement lors de la vision nocturne en noir et blanc (du fait que l’on retrouve un seul type de bâtonnets
traitant une seule sorte de longueur d’onde) en zone périphérique. La figure 2.3 illustre le trichromatisme
des cônes et le monochromatisme des bâtonnets.
Figure 2.3 Représentation des cônes et des bâtonnets.
Connaissant un peu mieux les caractéristiques biologiques de l’œil humain, il est maintenant temps de
s’attarder aux attributs d’une photographie le représentant afin d’identifier les possibles contraintes à
considérer lors de la capture et du traitement d’images.
2
Source : http://fr.wikipedia.org/wiki/Image:Coupe_oeil.jpg
ETS SYS-844
Jérôme Schmaltz
Page 8 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
3. Caractéristiques d’une image de l’œil acquise avec une caméra
traditionnelle
Les images peuvent être recueillies à partir de deux types de caméras : la caméra traditionnelle et la caméra
infrarouge. La caméra traditionnelle capte les longueurs d’onde du spectre visible que l’œil humain sait
reconnaître. La caméra infra rouge de son côté, saisit les ondes infrarouges dans la lumière naturelle. (Voir
figure 3.1). La lumière naturelle comprenant très peu de composantes infrarouges, la luminosité des images
produites avec ce type de caméra en est atteinte de telle sorte que l’on doit les soumettre à une source
infrarouge supplémentaire afin d’en améliorer la qualité.
Figure 3.1 Contenu spectral de la lumière.
La majorité des reflets sont occasionnés par la lumière naturelle et ainsi, la caméra infrarouge permet de
former des images moins sujettes aux réflexions de la lumière et de la scène ambiante.
Même en considérant les aspects positifs de l’utilisation de la caméra infrarouge, le choix de ce projet s’est
arrêté sur la caméra traditionnelle, puisque plus accessible. Les prochaines sections traiteront des
caractéristiques des images obtenues par le biais de caméras traditionnelles. À ce fait, on notera les quatre
caractéristiques suivantes qui seront exposées plus en détail [KRO01].
1.
2.
3.
4.
Ombrages
Reflets
Pupille
Luminosité
Voici un exemple d’image capturée avec une caméra traditionnelle. Elle servira de point de comparaison et
d’exemple à travers les commentaires et explications émis lors de la présentation des caractéristiques.
Figure 3.2 Image capturée avec une caméra traditionnelle.
ETS SYS-844
Jérôme Schmaltz
Page 9 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
3.1 Ombres
Les ombres se forment lorsque qu’il y a présence d’un corps entre une source lumineuse et l’œil. Ainsi, les
cils de la paupière peuvent former une zone d’ombrage sur l’œil à la suite d’un angle trop grand entre la
source lumineuse et la caméra. La figure 3.3 illustre ce fait.
Figure 3.3 Formation d’ombre dans une image de l’œil.
La figure précédente met en évidence l’ombrage sur l’œil lorsque la source lumineuse forme un angle trop
grand considérant le fait que la lentille de la caméra se confond avec l’axe de la pupille.
Afin de réduire les zones d’ombrages, une attention particulière sera apportée au positionnement de la
source lumineuse.
3.2 Reflets
Puisque la surface d’un œil s’apparente grandement à un type spéculaire, les reflets émanant de l’œil sont
considérables. Ces reflets sont en fait produits par la cornée, cette structure transparente recouvrant et
protégeant l’iris. Étant complètement lisse elle a tendance à refléter la scène tel un miroir convexe.
Dans l’optique du traitement d’image, on peut considérer la réflexion de la scène sur l’œil en fonction de la
distance qui sépare l’œil et la scène ainsi que l’intensité lumineuse dégagée par la scène.
L’intensité lumineuse dégagée par la scène cumule toutes les sources lumineuses. Par exemple, les lampes
ou la lumière traversant une fenêtre. Plus la scène sera lumineuse, plus elle sera reflétée dans l’œil.
En ce qui concerne la distance œil scène, notons que plus un objet est proche de l’œil, plus le reflet
correspondant sera grand et davantage visible que s’il était éloigné.
Reprenons maintenant la figure 3.2 proposée au début de cette section. Tel que l’on peut observer, divers
types de reflets s’y joignent et masquent des parties importantes de l’œil.
Parmi les types de réflexions lumineuses ambiantes, on retrouve principalement celles causées par les
fenêtres, lampes et néons. Les figures 3.4a, 3.4b et 3.4c [KRO01] présentent ces différents types de
réflexions.
ETS SYS-844
Jérôme Schmaltz
Page 10 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
(a)
(b)
Rapport
(c)
Figure 3.4 Types de reflets dans un œil. (a) Reflet de fenêtre
dans l’œil. (b) Reflet d’une lampe dans l’œil. (c) Reflet d’un
néon dans l’œil.
Il sera dès lors, très important, de contrôler la scène environnante afin de réduire le plus possible ces types
de réflexion afin d’obtenir des résultats précis. Réduire l’intensité des sources lumineuses n’est en fait pas la
solution exacte au problème proposé. En effet, assombrir l’environnement diminuerait le nombre de
caractéristiques observables. Il s’agirait donc d’uniformiser l’éclairage afin de ne pas créer de zones de
réflexions à la surface de l’œil, proportionnelles à la taille de sources lumineuses.
Afin de pallier à ce problème, plusieurs approches sont possibles. Soit par l’application d’opérateurs
morphologiques en dilatant puis en érodant la zone atteinte par une réflexion d’une source lumineuse, soit
en considérant que la source lumineuse possède des caractéristiques contraires à la pupille. Considérant le
fait qu’une source lumineuse est très claire, on peut déterminer des bornes de niveaux de gris à partir
l’histogramme de l’image et effectuer par la suite une segmentation. Le seuillage de l’image originale
représentant la pupille ainsi que l’image arborant les zones de réflexions seront par la suite combinés afin de
former une image où les trous provoqués par les sources lumineuses seront remplis3.
Le projet ne tiendra pas compte des algorithmes proposés et se risquera de contrôler uniquement
l’environnement afin de diminuer les réflexions.
3.3 Pupilles
Le fait que la pupille soit translucide empêche la réflexion de la lumière. Elle apparaît par conséquent d’une
couleur sombre ou noire sur les images captées. Cet état, jumelé à une source lumineuse se trouvant dans
l’axe de la pupille, occasionnera un effet d’yeux rouges. Cette caractéristique circonstancielle doit être prise
en compte pour d’éventuelles approches. Il est à noter qu’elle est utilisée par quelques dispositifs de
détection de mouvement d’œil présentement.
Sachant que la taille de la pupille varie avec l’intensité lumineuse4 (par rétroaction de l’iris : réflexe
pupillaire), il sera crucial d’ajuster la luminosité de l’environnement afin de s’assurer que nous traiterons
des tailles de pupilles respectables, donc pas trop petites.
3.4 Luminosité
La luminosité de l’image devra être ajustée afin de s’assurer que le contraste est correct afin de détacher la
pupille du reste de l’image.
3
4
L’algorithme est proposé par [KRO01]
Source : http://fr.wikipedia.org/wiki/Pupille
ETS SYS-844
Jérôme Schmaltz
Page 11 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
3.5 Contrainte additionnelle : lunettes et lentilles
Les lentilles modifient virtuellement la courbure de la cornée, ce qui permet la correction visuelle. La
modification de cette courbure ainsi que le port de lunettes occasionnent une majoration de la réflexion de la
scène ambiante.
Le projet s’assurera que les utilisateurs ne porteront pas de lentilles ni de lunettes lors de la détection de la
pupille.
ETS SYS-844
Jérôme Schmaltz
Page 12 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
4. Traitement de l’image pour la détection de la pupille
La figure 4.1 met en lumière l’approche empruntée afin de localiser les pupilles d’un sujet sur une image
digitale. La présente section tentera de décrire de façon détaillée chacune des étapes présentées en y
exposant les différents algorithmes rattachés.
Figure 4.1 Différentes étapes de traitement de l’image afin de localiser la pupille dans une image.
4.1 Image source
L’image source provient d’une caméra traditionnelle. Cette caméra est simplement connectée au port USB
de l’ordinateur. Elle fournit des images en format RGB de dimension 640x480 pixels. Chaque pixel est donc
représenté en 24bits. Il est important de noter que les futures opérations seront appliquées sur une région
d’intérêt déterminée dynamiquement par l’utilisateur.
Figure 4.2 Spécification d’une région d’intérêt pour traitements ultérieurs.
ETS SYS-844
Jérôme Schmaltz
Page 13 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
4.2 Suppression du surplus de contours
La première étape de pré traitement consiste à réduire le bruit occasionné par le capteur et à toute
l’électronique de transfert. Pour ce faire, on appliquera un filtre moyenneur sur l’image. L’application d’un
tel filtre entraînera malheureusement l’altération des contours de l’image.
Figure 4.3 Application du filtre moyenneur sur la région d’intérêt.
Le filtre moyenneur est un filtre passe-bas. Un filtre passe bas à la propriété de laisser passer les fréquences
spatiales faibles, mais supprime les fréquences hautes. L’analogie la plus simple à faire pour ce type de filtre
est la diminution du niveau des hautes fréquences (treble) sur une chaîne stéréo. On peut aussi constater que
les filtres passe-bas possèdent des noyaux de convolution dont tous les coefficients sont positifs.
Son application réside à l’attribution, au pixel d’intérêt, d’une valeur moyenne en considérant le voisinage
du pixel. La valeur de gris d’un pixel est modifiée en tenant compte des valeurs de gris des pixels voisins.
Cela est obtenu en appliquant une matrice de calcul appelée noyau de convolution qui définit le nombre de
voisins concernés et la pondération à appliquer sur leur valeur de gris.
La figure 4.4 illustre un filtre moyenneur simple de noyau de convolution 3x3 qui implique les 8 voisins
immédiats d’un pixel d’intérêt et permet d’affecter au pixel concerné le neuvième de la somme des valeurs
de gris de lui-même ainsi que de ses voisins.
Figure 4.4 Exemple d’un filtre moyenneur de dimension 3x3.
Donc, pour un noyau de convolution de grandeur nxn, le pixel concerné prendra la valeur de
n
∑x
i
i=1
n
Formule 4.1 Exprimant la moyenne
d’un pixel d’intérêt.
ETS SYS-844
Jérôme Schmaltz
Page 14 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Où xi représente le ième voisin du pixel.
Il est à noter que plus la dimension du noyau de convolution est élevée, plus l’adoucissement engendré par
le traitement sera prononcé.
Dans notre implémentation, le choix de dimension du noyau de convolution du filtre moyenneur a été fixé à
3x3 dans la plupart des cas.
4.3 Conversion en niveaux de gris
La seconde étape de pré traitement est nécessaire afin de convertir l’image adoucit RGB en image en
niveaux de gris. Cette conversion permet de tirer profit de la rapidité des différents algorithmes subséquents,
car ils ne sont pas basés sur la couleur, mais bien sur les niveaux de gris.
Puisque qu’un pixel de teinte grise quelconque possède ses trois composantes RGB de même valeur, une
manière simple de convertir chaque pixel couleur en niveaux de gris serait simplement d’appliquer une
moyenne sur la somme des composantes RGB du pixel, comme ceci :
Gris =
R+G+ B
3
Formule 4.2 Conversion en niveau
de gris d’un pixel RGB.
Or, d’après les recommandations de la commission internationale de l’éclairage, la conversion devrait plutôt
se faire en utilisant la formule suivante.
Gris = 0.299R + 0.587G + 0.114B
Formule 4.3 Conversion en niveau de
gris d’un pixel RGB en prenant en
compte la perception de l’œil humain.
Cette formule tient compte de la correction du gamma ainsi que la manière dont l’œil humain perçoit les
trois composantes.
Figure 4.5 Conversion de la région d’intérêt en niveaux de gris.
ETS SYS-844
Jérôme Schmaltz
Page 15 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
4.4 Détection des contours
L’étape de détection des contours est une étape cruciale lors de la détection de la pupille. À cet effet, un des
meilleurs détecteurs de contours sera utilisé, le filtre de Canny. Ce filtre est complexe puisqu’il offre le
meilleur compromis possible entre la réduction de bruit et la localisation de contours. À titre indicatif,
notons qu’une réduction de bruit abusive masque certains contours intéressants, mais qu’une sous-utilisation
en résulterait par la localisation de contours qui ne sont pas significatifs.
Théoriquement, le détecteur de contours de Canny est optimal lorsque les contours sont sous la forme de
marches (step) et que l’image est soumise à du bruit gaussien, ce qui n’est évidemment pas toujours le cas.
L’algorithme de Canny se sectionne en plusieurs phases. Premièrement, la phase de réduction de bruits
s’effectue par la convolution d’un filtre passe-bas Gaussien, qui permet ainsi de tamiser les contours. Le
filtre gaussien est de la forme suivante.
Formule 4.3 Représentation du filtre
gaussien.
L’échelle spatiale, ou la résolution à laquelle une image peut être observée, dépend du paramètre σ. La
convolution du noyau gaussien de résolution σ sur une image I peut être obtenue de la façon suivante.
Formule 4.4 Convolution d’un filtre
gaussien sur une image.
Par la suite, la deuxième étape consiste à éclaircir les contours. Pour ce faire, on utilise les valeurs des
amplitudes des gradients ainsi que leurs directions, en utilisant les formules suivantes :
g = g x2 + g y2
θ = arctan(
gy
gx
)
Formule 4.5 Amplitude d’un gradient
et obtention de sa direction.
L’amplitude est directement proportionnelle aux composantes gx et gy. Ainsi, si gx ou gy possèdent de
grandes valeurs, cela est témoin d’un changement considérable du niveau de gris dans un voisinage de 3x3
pixels. Donc, l’amplitude du gradient mesure en fait la force d’un contour indépendamment de sa direction.
ETS SYS-844
Jérôme Schmaltz
Page 16 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Une fois les amplitudes des gradients calculés, on procède à l’avant-dernière étape : la suppression des non
maximaux. Cette étape réduit la largeur des arêtes détectées à un pixel.
L’algorithme suivant décrit la façon d’y arriver.
Soit gs une image de mêmes dimensions que l’image source g.
Pour toutes les coordonnées des pixels x et y,
Approximer ? (x, y) par 0, 45, 90 ou 135 degrés.
Si g (x, y) < g dans un voisinage de direction approximée ou que
g (x, y) < g dans un voisinage de directionθ + 180 alors
gs(x, y) = 0
Sinon
gs(x, y) = g (x, y)
Fin si
Fin pour
Finalement, l’étape de localisation repose sur l’identification des contours significatifs à partir des
amplitudes des gradients précédemment calculés. Une approche typique, qui n’est pas nécessairement
correcte, stipule que les contours significatifs donnent lieu à des gradients encore plus prononcés.
L’approche triviale consiste à appliquer un seuillage auprès des gradients calculés. Malheureusement, cette
démarche occasionne son lot de problèmes. D’une part, l’application d’un seuil faible nous assure de
considérer tous les contours, incluant ceux qui sont non significatifs, c’est-à-dire de considérer les gradients
maximaux engendrés par le bruit et non les contours décrivant des objets de la scène.
D’autre part, un seuillage trop haut engendre automatiquement une fragmentation des chaînes de pixels qui
forment des contours significatifs de notre image. Le seuillage par hystérésis offre une solution à ce
problème en utilisant deux valeurs de seuils. Le seuil le plus élevé a comme fonction d’identifier les pixels
des meilleurs candidats de contours. On essaie par la suite, de prolonger les contours en cherchant des
voisins avec une amplitude de gradient supérieure à la valeur du seuil le plus faible. La recherche de ces
voisins est effectuée dans huit directions possibles.
Cette technique permet donc de réduire le nombre de localisation de faux contours significatif par le fait que
les contours sont identifiés et qu’au moins un pixel les composants offre une amplitude de gradient
supérieure à la valeur de seuil maximale. La figure 4.6 illustre l’idée en arrière de la détection de contours
par le filtre de Canny dans le projet présenté.
Figure 4.6 Détection des contours de la région d’intérêt.
ETS SYS-844
Jérôme Schmaltz
Page 17 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
4.5 Directions des contours
La direction des contours est tout à fait analogue à ce que l’on ait pu voir dans une des sous étapes de
détection des contours par l’algorithme de Canny. Nous pourrions reprendre directement les résultats
obtenus ou pourrions simplement utiliser les filtres de Sobel pour en arriver au même point.
La direction des gradients est obtenue en calculant l’arc tangente entre la matrice des points atteints par la
convolution du filtre de Sobel en Y ainsi que la matrice des points touchés par le filtre de Sobel en X. Il est
important de garder le résultat des convolutions dans une matrice afin de s’assurer de conserver la possible
négativité des opérations. À l’instar de la matrice, conserver les résultats dans une structure de type image5,
ramènerait les valeurs des opérations entre 0 et 255 ce qui ne décrit pas la réalité de ce filtre.
θ = arctan(
Sobel y
Sobel x
)
Formule 4.6 Arc tangente des filtres
de Sobel.
L’opérateur de Sobel produit la magnitude du gradient. Comme tous les opérateurs de gradients, le calcul de
la magnitude des gradients peut être calculé à partir de masques de convolutions.
Figure 4.7 Noyaux de convolution de Sobel.
La figure 4.8 illustre les propos précédemment exposés.
Figure 4.8 Déterminer les directions des gradients à partir de l’application des filtres de Sobel.
5
Le type image est un type de donnée en Java™ qui permet de conserver l’information d’une image digitale.
ETS SYS-844
Jérôme Schmaltz
Page 18 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
4.6 Détection des centres
La détection des centres repose sur les résultats des deux dernières étapes. Pour chaque point de contours de
l’image de Canny, on trace une droite en fonction de la direction calculée par le biais de l’application des
filtres de Sobel à l’étape précédente.
Ainsi par la simple application de la formule de la droite
y = mx + b
Formule 4.7 Équation de la droite.
On trace une droite dans l’accumulateur en fonction des points de contours de l’image de Canny tel
qu’exposé dans la figure 4.9.
Figure 4.9 Traçage d’une droite en fonction d’un contour.
Tracer une droite dans un accumulateur revient à incrémenter chaque cellule d’une matrice de un aux
endroits (discrétisés par rapport à la formule 3.7) où elle passe.
Figure 4.10 Traçage d’une droite dans l’accumulateur.
Le fait de tracer deux droites en fonction des directions des gradients dans l’accumulateur incrémente de un
chacune des cellules touchées. Ainsi, comme on peut le voir dans la figure 4.10, la rencontre de deux droites
produit un résultat supérieur à un (1 +1).
ETS SYS-844
Jérôme Schmaltz
Page 19 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
L’utilisation de cette méthode est très utile dans notre cas puisque les valeurs maximales dans
l’accumulateur identifieront les centres des cercles potentiels. Ainsi, si on trace des droites perpendiculaires
au contour d’un cercle, le point de rencontre de ces droites identifiera nécessairement le centre de celui-ci.
La figure6 4.11 illustre ce propos.
Figure 4.11 Centre d’un cercle dans un accumulateur.
La figure 4.12 synthétise la théorie énoncée.
Figure 4.12 Traçage de lignes dans l’accumulateur en
fonction de l’image de Canny et de la matrice de
directions.
4.7 Seuillage
L’application d’un seuil permet de se désencombrer de toutes les informations superflues qui engorgent
notre accumulateur. Ainsi, pour une valeur de seuil donnée, tous les pixels ayant une valeur inférieure seront
mis à zéro pour préserver uniquement l’information d’intérêt, soit les centres potentiels.
L’application d’un tel seuil a été automatisée de façon à la fixer à la moitié de la valeur maximale d’une
cellule dans l’accumulateur.
(valeur (pixel actuel) > 0.5 * max(valeur (pixels de l'image)))
6
Source : http://www.vieartificielle.com/article/index.php?action=article&id=188
ETS SYS-844
Jérôme Schmaltz
Page 20 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Donc, à partir de l’accumulateur, l’application d’un seuil aura pour effet de conserver uniquement les
cellules comportant des valeurs maximales, tel qu’indiqué par la figure 4.13.
Figure 4.13 Application d’un seuil dans l’accumulateur.
4.8 Isoler les centres potentiels
Afin d’isoler les points correspondants le plus au centre des cercles, une convolution d’un chapeau mexicain
est effectuée sur l’accumulateur. Il est le résultat de la combinaison d’un filtre Gaussien (formule 4.3) avec
un filtre Laplacien. C’est grâce à la linéarité ainsi que l’invariabilité de ces filtres qu’une combinaison est
possible.
Formule 4.8 Représentation d’un
Laplacien de Gaussien.
Sa représentation symbolise une sorte de chapeau d’où l’appellation, « chapeau mexicain ».
Figure 4.14 Représentation graphique d’un Laplacien de Gaussien.
L’application d’un chapeau mexicain sur l’accumulateur conservera uniquement les points les plus propices
d’être des centres de cercles potentiels en décrémentant les valeurs des cellules entourant les centres. La
figure 4.15 trace le portrait de ces propos.
Figure 4.15 Application d’un chapeau mexicain dans l’accumulateur.
ETS SYS-844
Jérôme Schmaltz
Page 21 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
4.9 Recherche des cercles
La dernière étape repose sur les coordonnées des cercles potentiels identifiés dans l’accumulateur ainsi que
les contours localisés par l’application du filtre de Canny. Pour ce faire, l’utilisation des transformées de
Hough a été jumelée avec les informations dont nous disposions sur les coordonnées des centres potentiels.
La transformée de Hough s’appuie sur un principe d’accumulateurs, analogue à l’étape de détection des
centres potentiels des cercles. Pour un cercle de rayon inconnu, l’utilisation d’accumulateurs en trois
dimensions sera de mise. Les deux premières dimensions expriment les coordonnées du cercle tandis que la
troisième lie ces coordonnées à un rayon r. La figure 4.16 nous donne un exemple.
Figure 4.16 Accumulateur de Hough en trois dimensions.
Si nous voulons trouver des cercles de rayons de 8, 9 et 10 unités, nous aurons à construire un accumulateur
comprenant trois niveaux, chacun en deux dimensions.
Une fois nos accumulateurs de Hough initialisés, à partir de l’image de contours de Canny, on trace
littéralement des cercles dans un des accumulateurs en faisant coïncider le centre du cercle avec les
coordonnées du pixel de contour pour un rayon donné. Afin de tracer les cercles le plus efficacement
possible dans l’accumulateur de Hough, l’utilisation de la méthode de Bresenham a été employée.
Comme on peut le voir dans l’image 4.17, plusieurs cercles sont tracés (dans un accumulateur de rayon r) en
suivant les contours (cercle gris foncé) de l’image de Canny. Une fois tous les cercles tracés dans les
accumulateurs, on réalise que les cellules qui contiennent des valeurs maximales, sont des centres potentiels.
Figure 4.17 Traçage des cercles avec l’image de contours.
ETS SYS-844
Jérôme Schmaltz
Page 22 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Enfin, on divise la tâche finale en deux parties. Cette fission est établie en fonction des dimensions de la
région d’intérêt à analyser. Cette région d’intérêt représente une partie du visage qui arbore les yeux du
sujet. Afin de localiser le mieux possible les iris et pupilles du sujet, on divise cette région en deux parties
égales dans le but de trouver les cercles les plus potentiels de représenter l’iris et la pupille gauche et ceux
de la partie droite du visage de l’individu.
Pour chacune de ces parties, on applique un seuil permettant de conserver uniquement les coordonnées et
rayons de centres potentiels de cercle et on s’assure en même temps qu’ils font parti de l’accumulateur de
cercles potentiels identifiés à une étape antérieure.
En terminant, on fait la moyenne des positions et des rayons des cercles restants et on identifie, à gauche et
à droite, les cercles entourant les iris et pupilles. On isole les cercles les plus petits qui s’avèrent être les
pupilles.
Figure 4.18 Flux d’opérations pour localiser les pupilles.
ETS SYS-844
Jérôme Schmaltz
Page 23 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
5. Présentation du projet
Le projet repose sur les algorithmes précédemment exposés. Ils ont été implémentés dans le langage Java™,
permettant ainsi d’utiliser bon nombre de bibliothèques facilitant la manipulation et le traitement d’images.
Les images ont été capturées à l’aide d’une caméra web traditionnelle de modèle Intel USB Camera III. Les
résultats ont été obtenus sur un ordinateur PC de type AMD Athlon™ 1.4Ghz avec 448 Mo RAM. Le
tableau 5.1 présente le détail des spécifications techniques.
Propriété
Processeur
Mémoire
Système d’exploitation
Environnement Java™
Caméra
Description
AMD Athlon™ 1.4 Ghz
448 Mo RAM DIMM
Windows XP PRO SP2
JRE 1.5.2
Intel USB Camera III
Tableau 5.1 Spécifications techniques
5.1 Architecture du programme
Cette section expose la conception du projet en prenant le soin de présenter les différentes composantes qui
forment le programme. Commençons par un diagramme de type Components & Connectors qui nous
permet d’exposer l’architecture de haut niveau du projet.
Figure 5.1 Architecture de haut niveau.
ETS SYS-844
Jérôme Schmaltz
Page 24 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
La figure 5.1 nous permet de voir l’interaction existante entre l’utilisateur et le système. L’utilisateur peut
gérer dynamiquement la région d’intérêt qu’il veut traiter ainsi que les paramètres de certains filtres. Le
programme prendra en compte les changements effectués par l’utilisateur lors de la prochaine capture
d’image.
Cette vue architecturale permet de constater que l’implémentation du projet est divisée en deux
composantes majeures : la Camera Image Grabber ainsi que la Image Effect Processor. La CIG (Camera
Image Grabber) repose sur les bibliothèques de Java™ Media Framework qui permettent de communiquer
avec des périphériques multimédias tels que les cartes de son ou les caméras par exemple. La IEP quant à
elle utilise des fonctionnalités plus générales de traitement d’images englobée dans Java AWT.
La CIG à comme principale responsabilité de capturer les images provenant de la caméra web en format
YUV de dimensions 640x480 pixels en RGB. Chaque image capturée est envoyée à la composante IEP
(Image Effect Processor) qui se charge de les traiter en considérant dynamiquement la région d’intérêt
définit par l’utilisateur ainsi que les paramètres des différents filtres préalablement configurés.
Les flèches grises connectant les composantes IEP et CIG à elles-mêmes témoignent du fait qu’elles sont
identifiées comme étant des singletons (une seule composante de chaque type par application) et qu’elles
sont toutes les deux des fils d’exécution (thread). De cette manière, les opérations ne sont pas séquentielles,
mais parallèles augmentant ainsi la vitesse d’exécution. La communication entre ces deux composantes
s’effectue par invocation implicite reproduisant ainsi une sorte de système de messagerie par
programmation événementielle. Ainsi, chaque fois que CIG capture une nouvelle image, il avertit (ou
envoie un message) IEP qu’il possède une image pour lui et continue en même temps de capturer d’autres
images sans avoir à attendre qu’IEP termine son travail.
Lorsqu’IEP reçoit une image de CIG, il considère la région d’intérêt défini par l’utilisateur et applique les
filtres séquentiellement sur la région d’intérêt uniquement et non sur l’image complète, accélérant ainsi
l’acuité et la rapidité du processus.
Une fois le dernier filtre appliqué, les cercles déterminés sont dessinés à même l’image d’entrée et envoyée
à l’écran à titre de résultat.
ETS SYS-844
Jérôme Schmaltz
Page 25 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Rentrons maintenant dans les détails techniques de l’implémentation de l’architecture présentée en langage
Java™. Pour ce faire, consultons la figure 5.2 qui illustre le diagramme de classes du programme.
Figure 5.2 Diagramme de classes.
Comme nous pouvons le voir, huit classes ont été créées pour localiser les pupilles dans une image. À ce
fait, une brève description suivra pour chacune d’elles dans le tableau suivant.
Nom de la classe
AppParameterDialog
ApplicationParameter
JDPInterface
CameraImageGrabber
ImageEffectProcessor
ETS SYS-844
Description/Responsabilités
Interface graphique permettant de contrôler les
différents paramètres de l’application.
Classe qui contient tous les paramètres de
l’application, c’est-à-dire les paramètres des filtres,
les coordonnées de la région d’intérêt ainsi que
l’identificateur de la caméra à utiliser.
Interface graphique principale permettant d’afficher
les images capturées par la classe
CameraImageGrabber ainsi que la région d’intérêt
traité par la classe ImageEffectProcessor.
Permet de récupérer les images provenant d’une
caméra web.
Contient tous les filtres permettant de traiter la
région d’intérêt sélectionné par l’utilisateur.
Jérôme Schmaltz
Page 26 sur 36
SYS844-RPS
Nom de la classe
HoughTransform
ImageUtils
ArrayUtils
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Description/Responsabilités
Contient l’algorithme de traitement de la région
d’intérêt afin de détecter les cercles potentiels dans
l’image en prenant en compte les accumulateurs de
cercles potentiels.
Classe qui contient de multiples fonctionnalités de
base pour le traitement d’images.
Classe qui contient plusieurs méthodes différentes
pour transformer des tableaux.
Tableau 5.2 Description des classes.
5.2 Présentation des interfaces usagées
Cette section présente les diverses interfaces qui font partie de l’application issue du projet. Pour chacune
d’elle, une description sommaire y sera jointe.
La première interface présentée est l’écran principal de l’application. Elle permet à l’utilisateur de voir le
résultat du traitement de l’algorithme sur la région d’intérêt. De plus, c’est par le biais de cette interface que
l’utilisateur peut définir dynamiquement une région d’intérêt à traiter.
La figure 5.3 illustre l’écran principal. La figure 5.4 représente l’interaction entre l’utilisateur et le
programme lors de l’établissement de la région d’intérêt.
Figure 5.3 Écran principal de l’application
Figure 5.4 Établissement de la région d’intérêt.
Tel qu’on peut le voir, une région d’intérêt caractérisée par une bordure rouge indique que le programme est
présentement en train d’interpréter cette aire comme région d’intérêt. Une bordure verte indique que
l’utilisateur est présentement en train de réallouer une nouvelle région d’intérêt. Cette réassignation est
possible en appliquant un drag & drop sur l’interface graphique avec l’aide du curseur de la souris.
Voyons maintenant le deuxième écran, celui qui permet de contrôler les paramètres des effets en temps réel.
L’affichage de cet écran est simplement possible en appuyant la touche «c» pour « configure». L’utilisateur
peut ainsi y avoir accès et paramétrer tous les filtres par simple sélection de boîtes à cocher ou de barres de
défilements à fixer.
ETS SYS-844
Jérôme Schmaltz
Page 27 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
La figure 5.5 présente l’écran de configuration du programme.
Figure 5.5 Écran de configuration des paramètres.
Comme on peut le voir, les différents paramètres configurables (car ils ne le sont pas tous) peuvent être en
fonction ou suspendu temporairement en cochant les boîtes appropriées.
ETS SYS-844
Jérôme Schmaltz
Page 28 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
6. Résultats obtenus
Force est de constater que durant la phase de tests, la précision de nos instruments et les conditions très
délicates d’éclairage ne permettaient pas de localiser avec précision les contours de la pupille. Par contre, les
divers tests présentaient avec succès la localisation du contour de l’iris. Cette section présente donc les
différents résultats obtenus lors de la localisation de l’iris pour des éclairages et paramètres différents de
filtres. Voici les paramètres par défaut qui ont été utilisés pour tous les résultats présentés. Les résultats qui
prennent en compte des valeurs différentes que celles par défaut seront identifiés.
Paramètre
Filtre Moyenneur
Canny (Filtre Gaussien)
Canny (Seuil minimal)
Canny (Seuil maximal)
Gaussien de Laplacien
Valeur
3x3
Sigma : 1.2
18
41
En fonction
Tableau 6.1 Liste des valeurs pour les différents paramètres.
Les figures 6.1 et 6.2 illustrent les résultats recueillis pour des cas où le plan arrière présentait une fenêtre
laissant entrer la lumière du jour. La figure 6.1 met en évidence un sur éclairage tandis que la figure 6.2 un
sous éclairage.
Figure 6.1 Éclairage de forte intensité dans l’axe de la
caméra. Scène arrière éclairée.
Figure 6.2 Sous exposition de la lumière. Scène arrière
éclairée.
Comme on peut le voir, la figure 6.1 présentant un éclairage de forte intensité à tendance à produire un
meilleur résultat que dans le cas d’un éclairage de faible intensité. Cela est dû au fait que le détecteur de
contours de Canny doit moins bien identifier les contours de l’image. Si moins de contours sont détectés
alors les probabilités seront plus faibles de trouver avec précision le pourtour de la pupille ou de l’iris. Nous
allons voir dans les figures subséquentes que le fait d’avoir une source lumineuse (fenêtre) en arrière-plan à
une influence directe sur l’acuité des résultats. La figure 6.3 illustre justement ces propos en présentant un
ETS SYS-844
Jérôme Schmaltz
Page 29 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
éclairage normal, mais avec une arrière-scène moins éclairée. L’arrière-scène étant moins éclairée, moins de
reflets sont donc produits et les résultats s’y trouvent légèrement améliorés.
Figure 6.3 Éclairage normal, scène arrière sous éclairée.
Les figures 6.4 et 6.5 montrent l’effet d’un sur éclairage sur la gauche et la droite. Les éclairages intensifs
d’un côté particulier produisent un effet d’ombrage sur l’autre face. Notons la précision encore ici des côtés
sur exposés versus les côtés sous exposés par la lumière. À ce fait, la figure 6.4 témoigne de la précision du
résultat sur le côté gauche du sujet (sur exposition à gauche) tandis que la figure 6.5 démontre l’acuité des
résultats sur le côté droit.
Figure 6.4 Sur éclairage sur la gauche, scène arrière sous
éclairée.
Figure 6.5 Sur éclairage sur la droite, scène arrière sous
éclairée.
Malgré un éclairage contrôlé et une scène arrière ne produisant pas trop de luminosité, on constate que
l’algorithme implémenté ne produit pas les résultats escomptés pour des images présentant des sujets qui
sont éloignés de l’objectif de la caméra. L’image 6.6 en témoigne.
ETS SYS-844
Jérôme Schmaltz
Page 30 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
Figure 6.6 Éclairage normal, plan de loin.
Après l’ajustement de certains paramètres et un réglage de la luminosité de la scène, nous avons pu accroître
la précision du programme. La figure 6.7 présente le résultat obtenu. On y voit la précision avec laquelle le
programme est capable de localiser les iris. Le tableau 6.2 présente les valeurs de paramètres utilisés pour ce
résultat.
Paramètre
Filtre Moyenneur
Canny (Filtre Gaussien)
Canny (Seuil minimal)
Canny (Seuil maximal)
Valeur
3x3
Sigma : 0.2
15
50
Tableau 6.2 Valeurs des paramètres utilisés pour la figure 6.7
Figure 6.7 Plan de proche, éclairage normal, ajustement de
paramètres.
ETS SYS-844
Jérôme Schmaltz
Page 31 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
On se rend compte rapidement qu’avec les différents résultats récoltés, ce problème de vision est complexe.
Sa complexité provient en majeure partie de l’environnement dans lequel nous opérons les tests. Ainsi, pour
des cas présentant des luminosités différentes, on a pu voir que l’acuité des résultats en était directement
reliée. Pour essayer de contrôler les effets négatifs tels que les ombrages, reflets ou luminosité (présentés à
la section 2), il faut s’assurer d’éclairer la scène le mieux possible tout en s’assurant de ne pas occasionner
de reflets. Le problème est complexe. Afin de garder une constance dans les résultats, il vaudrait mieux
exécuter les tests dans une pièce fermée sans fenêtre où l’éclairage serait intensif, mais dont les sources ne
seraient pas rapprochées du sujet.
La deuxième difficulté rencontrée est sans contredit le paramétrage des filtres. Comme on a pu le voir lors
de la présentation des différents résultats, les valeurs que prennent certains filtres ont une incidence directe
sur la précision des résultats. Il ne faut surtout pas oublier, qu’il existe en plus un compromis à faire entre la
rapidité du traitement ainsi que l’acuité des résultats. La section suivante nous présente la vitesse
d’exécution de l’algorithme en fonction des tailles de régions d’intérêts ainsi qu’en fonction de certaines
valeurs de filtres.
ETS SYS-844
Jérôme Schmaltz
Page 32 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
6.1 Vitesse de l’algorithme
Tel que signalé précédemment, il existe un compromis à faire entre la précision et l’acuité des résultats. Si
notre application se veut en temps réel, il sera préférable de choisir des algorithmes moins précis ou de se
limiter dans nos recherches de solutions. Par exemple, le fait de choisir un algorithme de type Monte-Carlo
à 1000 itérations serait avantageux que de calculer avec précision une solution optimale pour des
programmes opérant à temps réel. L’acuité des résultats peut aussi être contrôlée en limitant la précision de
données numériques. Ainsi, pour tout ce qui concerne les intégrateurs numériques par exemple, un pas de
temps constant fera l’affaire dans la plupart des cas.
Cette section nous présente les différents temps de calcul obtenus pour le traitement de la région d’intérêt de
dimension variantes et de valeurs de paramètres de filtres différents.
La première figure illustre ici les temps de calcul moyens obtenus pour des tailles de régions d’intérêts
variant de 80x60 à 640x480.
Temps de calculs en fonction des dimensions de
ROI
Temps de calculs en
millisecondes
10000
8000
Temps de calculs
6000
Expon. (Temps de
calculs)
4000
2000
y = 32986e
0
-1,3401x
2
640x480 320x240
160x120
80x60
R = 0,9934
Dimensions
Figure 6.8 Temps de calcul en fonction des dimensions de la région d’intérêt.
Comme on peut le voir, le traitement d’une région dont l’aire est quatre fois moins grande, donc lorsque les
dimensions sont deux fois plus petites, entraîne un décroissement exponentiel. Le graphique de la figure 6.8
montre le comportement du temps de calcul en millisecondes en fonction des dimensions de la région
d’intérêt. De plus, une régression exponentielle a été ajoutée au graphique afin de comparer le
comportement des résultats.
On voit par ce graphique, l’incidence de la taille de la région d’intérêt sur les performances du programme.
Ainsi, pour opérer le programme en un temps acceptable, une région d’intérêt de petite taille (entre 160x120
et 80x60) est de mise.
Comparons maintenant les différents temps de calcul obtenus pour une dimension fixe de la région d’intérêt,
mais en augmentant le nombre de contours détectés par Canny. Pour ce faire, une diminution progressive du
coefficient de Gaussien (lié au filtre de Canny) a été effectuée. La diminution de ce coefficient a comme
ETS SYS-844
Jérôme Schmaltz
Page 33 sur 36
Détection de la pupille à l’aide des
transformées de Hough
SYS844-RPS
Rapport
impact direct la non-suppression de certains contours superflus et donc un traitement plus lourd des filtres
subséquents.
La figure 6.9 illustre les temps de calculs obtenus pour différents coefficients de Gaussien.
Temps de calculs en
millisecondes
Temps de calculs en fonction du coefficient de
Gaussien
4000
3500
3000
2500
2000
1500
1000
500
0
Temps de calculs
0,1
0,3
0,5
1
1,5
2
2,5
Coefficients de Gaussien
Figure 6.9 Temps de calcul en fonction des coefficients de Gaussien.
Le graphique ci haut nous indique que plus le coefficient gaussien augmente, moins de détails sont présents
dans l’image et par conséquent moins d’opérations sont engendrées.
Le paramétrage des filtres influence aussi la performance du programme. Il faut donc s’assurer encore une
fois, de trouver un compromis entre vitesse et fiabilité. Cela ne veut pas dire nécessairement que les
résultats obtenus avec des temps de calcul élevés ont été les meilleurs. Rappelons que le fait de trouver des
contours superflus par le manque d’adoucissement de l’image entraîne son lot d’erreurs. Il faut donc
expérimentalement déterminer les valeurs des différents paramètres dans le but d’obtenir les meilleurs
résultats possibles dans un temps acceptable.
ETS SYS-844
Jérôme Schmaltz
Page 34 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
7. Conclusion et améliorations possibles
La détection de la pupille s’est avérée un projet non trivial. Les conditions environnantes et le paramétrage
des filtres n’avaient pas été considérés lors de l’analyse sommaire du projet, elles ont pourtant joué un rôle
déterminant en constatant les résultats. Le fait d’utiliser Java™ comme outil principal de développement a
affecté directement les performances globales du système. Il est impensable de considérer une
implémentation en temps réel sur cette plateforme. Il aurait été particulièrement agréable de voir la
différence avec une implémentation en C++.
Les résultats obtenus ont témoigné aussi du manque de précision du capteur (caméra web) utilisé. Le
manque de définition et le bruit produit par l’électronique de transfert ont certainement été des facteurs
ayant des impacts sur l’algorithme employé. À ce fait, il aurait été intéressant d’employer une caméra
infrarouge de bonne qualité afin de réduire le nombre de reflets et augmenter la résolution des images
captées.
Les conditions d’éclairage précédemment mentionnées ont été déterminantes pour les résultats que nous
avons obtenus. Ainsi par manque d’éclairage, il était impossible pour le détecteur d’arêtes (Canny) de
correctement identifier les contours de l’image. Une solution plausible aux problèmes environnementaux
aurait été d’exécuter les tests dans un milieu stable. Par stable, on considère la position de l’utilisateur
(hauteur et distance œil caméra) constante ainsi que l’éclairage non variant (pas de sources d’éclairage près
de la cornée).
De simples recherches sur Internet ont permis de trouver l’implémentation de tous les algorithmes employés
en C++. Ce regroupement d’algorithmes a le nom d’OpenCV et réside maintenant sous le titre de projet
ouvert. L’implémentation du projet avec cette librairie aurait certainement permis d’obtenir des
performances proches du temps réel.
Beaucoup de recherches sont encore effectuées aujourd’hui dans ce domaine. Plusieurs d’entre elles
utilisent moins d’étapes (donc moins de temps de calcul) que l’algorithme présenté. L’intégration de cellesci au projet présenté permettrait sûrement une nette amélioration de la précision et performance.
ETS SYS-844
Jérôme Schmaltz
Page 35 sur 36
SYS844-RPS
Détection de la pupille à l’aide des
transformées de Hough
Rapport
Références
Nick Efford, Digital Image Processing: a practical introduction using Java, Addison-Wesly, 2000.
Richard Lepage, La vision par ordinateur, Presses de l’École de Technologie Supérieure, 2005.
Zhiwei Zhu, Kikuo Fujimura, Qiang Ji , Proceedings of the symposium on Eye tracking research &
applications, ACM Press, March 2002.
Gintautas Daunys, Nerijus Ramanauskas , Proceedings of the third Nordic conference on Human-computer
interaction NordiCHI '04, ACM Press, October 2004.
Julien Kronegg, Dispositif de capture des mouvements oculaires pour un simulateur de vision, Université de
Gèneve, Juin 2001.
Claude-Alain Brohy, Détection des yeux, École polytechnique fédérale de Lausanne, Juin 2000.
Radio Canada, L’après 11 septembre, Radio Canada, http://archives.radio-canada.ca/IDC-0-16-13378010/sciences_technologies/videosurveillance/clip8, Septembre 2003.
Alexandre Bargeton, Détection des cercles dans une image,
http://www.vieartificielle.com/article/index.php?action=article&id=188, Janvier 2006.
ETS SYS-844
Jérôme Schmaltz
Page 36 sur 36
Téléchargement