SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
UNIVERSITE MOHAMMED V de Rabat
Faculté des Sciences
Département d'Informatique
Filière Licence fondamentale
en Sciences Mathématiques et Informatique
PROJET DE FIN D'ETUDES
intitulé : Detection de visage avec OpenCv
Présenté par : BORJI Anasse et CHOUKRI Amine
Encadrée par : Mme. EL KHATTABI Noussaima
soutenu le 19 Juin 2016 devant le Jury
M. AHIOD Belaîd Professeur de la Faculté des Sciences - Rabat
Mme. El Khattabi Noussaima Professeur de la Faculté des Sciences - Rabat
M. EL BENANI Bouazza Professeur de la Faculté des Sciences - Rabat
Année universitaire 2016-2017
Remerciements
Nous remercions le bon Dieu qui nous a donné le courage et la volonté d'élaborer ce
travail.
Nous remercions aussi nos parents et nos familles qui nous ont soutenus tout au long de
notre cursus.
Avant d'entamer ce projet, nous protons de l'occasion pour remercier tout d'abord notre
encadrante Madame Noussaima El khettabi, enseignante á la Faculté des sciences de
Rabat qui nous a fait l'honneur de nous encadrer durant la réalisation de ce projet, qu'elle
trouve ici toute notre gratitude pour l'aide, l'enthousiasme et la disponibilité qu'elle a
manifesté tout au long de ce travail.
Ainsi, nos remerciements sont adressés aux jurys et toute l'équipe pédagogique de la
Faculté des Sciences de Rabat et particuliérement les intervenants dans le département
informatique.
Finalement, nous tenons á remercier toute personne qui, d'une façon ou d'une autre,
de prés ou de loin, ayant apporté son aide en nous permettant de réaliser ce projet de n
d'études dans des conditions favorables.
i
Résumé
L'objectif de ce projet consiste en l'établissement et l'implantation d'une application
permettant la détection, l'extraction puis la capture des visages.
Le projet est réalisé en java et utilise la bibliothèque de traitement d'images OpenCv
an de bénécier de primitives de base pour la manipulation d'images.
Le projet consiste en gros à la surveillance à travers une caméra qui va détecter les
visages des individus et les capturer. Ce rapport se décompose ainsi en deux parties.
La premiére partie a été l'étude préalable du sujet, c'est à dire qu'il fallait dénir
l'image et la vidéo, ses types, ses formats, l'outil avec lequel on va travailler, ainsi les
fonctionnalités attendues de ce projet. Nous nous sommes donc concentrés sur l'OpenCv
qui nous a aider a savoir beaucoup de choses sur le traitement d'image et de vidéo. Dans
ce contexte, le principal résultat attendu est de savoir tout ce qui concerne l'image ainsi
de développer une application pour pratiquer nos connaissance.
Dans un second temps, nous avons choisi un sujet pour en travailler qui se base sur
la détection de visage, détection de contour et la reconnaissance de visage. La solution
retenu a été en une application avec le langage de programmation :java.
Enn, il faut remarquer que nos applications sont vouées á évoluer : il serait par
exemple souhaitable que les applications assure le systéme de sécurité d'un établissement
á travers bien-sûr les images capturées.
Mots clés : OpenCv, JAVA, TRAITEMENT, IMAGE.
ii
Abstract
We made our project of the end of studies under the frame(supervision) of madam El
Khettabi Noussiama. The subject was the study and the development of an application
of image processing and video with OpenCv.
The rst stage was the preliminary study of the subject, that is it was necessary to
dene the image and the video, his types, its formats, the tool with which we are going
to work, so the features were expected from this project. We concentrated on OpenCv
which has help us to know a lot of things on the image processing and of video. In this
context, the main expected result is to know all about the image and to develop an
application to practise our knowledge.
Secondly, we chose a subject to work on it which bases on face detection, contour
detection and face recognition. The solution is for an application with the programming
language JAVA.
We developed our JAVA application, and in parallel, we opted for another mobile
application with the langaqe Android and which rests naturally on our subject which
is : the image processing.
Finally, it is necessary to notice that our applications are dedicated to evolve : it
would be for example desirable that the applications assures the security system of an
establishment through the captured images.
Keywords : Image processing, OpenCv, Java.
iii
Table des matières
Remerciements i
Résumé ii
Abstract iii
Introduction vii
1 Detection de visage 1
1.1 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Pré-traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Amélioration de la qualité de l'image . . . . . . . . . . . . . . . . 2
1.3 Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Detection de contours . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Les opérateurs morphologiques . . . . . . . . . . . . . . . . . . . 3
1.3.3 Filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Detection de visage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Soustraction et réduction de bruit . . . . . . . . . . . . . . . . . . 5
1.4.3 Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.4 Detetction des formes . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.5 La détection de visage . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.6 Viola et Jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Généralités sur l'analyse d'image 10
2.1 Traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Dénition d'image . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Dénition d'image numérique . . . . . . . . . . . . . . . . . . . . 11
2.1.4 Types d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.5 Formats d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.6 Propriétés des images . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.7 Traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Traitement des vidéos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Dénition de la vidéo . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Traitement des vidéos . . . . . . . . . . . . . . . . . . . . . . . . 13
iv
3 Réalisation 14
3.1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 Langages utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.4 OpenCv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Implémentation et déploiment . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 Déscription du projet . . . . . . . . . . . . . . . . . . . . . . . . . 15
Conclusion 21
Annexe 25
v
Table de gure
 Figure 2.3.1 - Contour
 Figure 3.2.1 - sans visage
 Figure 3.2.2 - dossier vide
 Figure 3.2.3 - un seul visage
 Figure 3.2.4 - dossier de stockage des captures 1
 Figure 3.2.5 - plusieurs visage 2
 Figure 3.2.6 - dossier de stockage des captures 2
 Figure 3.2.7 - La une
 Figure 3.2.8 - Eets
vi
Introduction
Le domaine de l'informatique est une discipline très importante à nos jours car on
l'utilise pour tout que ce soit à titre personnel ou professionnel.
L'informatique rend tout type de travail plus facile, plus précis et surtout bien géré et
provoque une nouvelle vision.
Depuis quelques années, les innovations dans le domaine de développement des applica-
tions java se multiplient et évoluent. Parmi les majeurs évolutions dans ce domaine gure
le développement orientée objet qui est présenté par exemple par JAVA qui consiste à
développer des applications à travers des classes et des fonctions et les méthodes.
Notons également que l'informatique occupe une grande place dans tout ce qui relève
le traitement notamment le traitement des images et des videos qui constitue le noyau
de notre travail et qui consiste à la detection de visage qui représente une technique in-
novante pour des mesures de sécurité dans tout les domaine.En eet, le présent travail
vise la création d'une application que nous avons appelés : Système de sécurité ; et qui a
comme principal objectif la surveillance à travers la camera.
Pour ce faire, nous avons décomposé notre travail en deux grandes parties : la première
consiste à décrire le sujet de notre projet et la seconde pose sur la phase pratique de l'ap-
plication. En eet, dans la première partie, nous présentons la faculté des sciences Rabat,
son organigramme et ses principales activités. Nous dénissons les diérents points im-
portants et tous les mots clés de notre projet. Ensuite nous décrivons notre projet. Et
nalement, dans la seconde partie nous détaillons la réalisation de notre application et
l'environnement logiciel utilisé ainsi que les diérentes techniques de réalisation, nous
présentons également ses interfaces.
vii
Chapitre 1
Detection de visage
1.1 Présentation du projet
De nos jours on parle de plus en plus de l'insécurité dans divers secteurs ainsi que
des moyens informatiques à mettre en oeuvre pour contrer cette tendance : le contrôle
d'accés aux ordinateurs, l'e-commerce ...
Parlant des orphelinat, des hôpitaux psychiatriques, et même des prisons, tout ces éta-
blissements ont besoin d'un système d'information qui peut contrôler tous les individus
d'établissement.
Notre investissement dans le domaine de la reconnaissance de visages est sans doute
motivé par la multiplicité et la variété des champs d'application entre-autre : haute
sécurité, télésurveillance et contrôle d'accés, etc.
Parmi ses applications les plus concrètes rencontrées dans la vie courante, peut-on citer
à titre d'exemple : authentication de visage d'un utilisateur d'un compte de Windows
pour accéder à ses données personnelles dans ce dernier, recherche des individus dans
une foule par reconnaissance de leur visage par des cameras de surveillance, étude des
émotions par analyse des expressions faciales, protection d'identité des personnes pour
livrer les cartes d'identités surs et ables mais aussi de permis de conduire.
Notre sujet porte sur un système de sécurité avec une caméra qui va deétecter les visages
de tous les individus, comme on a développer une autre application qui sera mentionnée
en annexe et qui porte sur l'identication des personnes par reconnaissance de visage
pour l'utiliser dans un domaine de sécurité. Apres l'étude que nous avons eectuée, et
selon les besoins, nous opterons pour une applications qui va à son tour assurer la sécurité
d'un espace dans un établissement avec un alerte sonore en stockant les visages d'intrus.
1.2 Pré-traitement d'image
Le prétraitement d'images est l'ensemble des opérations eectuées sur une image,
soit pour l'améliorer, soit pour la restaurer, c'est-à-dire pour restituer aussi dèlement
que possible le signal d'origine. D'une manière générale, les méthodes de prétraitement
visent soit à renforcer la ressemblance des pixels d'une même région, soit au contraire à
accentuer les diérences de pixels provenant de régions diérentes.
1
Les techniques utilisées apparaissent dans le traitement des images pour des applications
scientiques (ou de renseignement), plutôt que pour les applications de divertissement ou
de décoration.
1.2.1 Amélioration de la qualité de l'image
Il existe diérentes méthodes an d'améliorer la qualité d'une image. Il y a des mé-
thodes qui passe par le ltrage, d'autre par le calcul d'histogramme ou encore par l'amé-
lioration du rapport image/bruit. Ces méthodes doivent être utilisées en fonction de ce
que l'on veut obtenir. En eet chacune de ces méthodes aurait un eet bien spécique
sur l'image que se soit pour augmenter les contrastes ou bien mettre en avant des petits
détails de l'image ainsi pour rendre les images plus aptes à l'interprétation humaine ou à
celle de la machine et la distribution des niveaux de gris.
1.3 Les opérateurs
1.3.1 Detection de contours
Le but de la détection de contours est de repérer les points d'une image numérique
qui correspondent à un changement brutal de l'intensité lumineuse. Ces changements de
propriétés de l'image traduisent en général des événements importants ou des change-
ments dans les propriétés du monde. Ils incluent des discontinuités dans la profondeur,
dans l'orientation d'une surface, dans les propriétés d'un matériau et dans l'éclairage
d'une scène. La détection de contour est un champ de la recherche qui appartient au
traitement d'image et à la vision par ordinateur, particulièrement dans le domaine de
l'extraction de caractéristiques.
La détection des contours d'une image réduit de manière signicative la quantité de don-
nées et élimine les informations qu'on peut juger moins pertinentes, tout en préservant les
propriétés structurelles importantes de l'image. Il existe un grand nombre de méthodes
de détection de l'image mais la plupart d'entre elles peuvent être regroupées en deux
catégories. La première recherche les extremums de la dérivée première, en général les
maximums locaux de l'intensité du gradient. La seconde recherche les annulations de la
dérivée seconde, en général les annulations du laplacien ou d'une expression diérentielle
non linéaire.
2
[h]
Figure 1.3.1  Contour
Dans une image en niveaux de gris, un contour est caractérisé par un changement
brutal de la valeur. Le but de l'opération est de transformer cette image en une autre
dans laquelle les contours apparaissent par convention en blanc sur fond noir.
Dans une section horizontale (ou verticale) de l'image rectangulaire, les variations de la
valeur sont décrites par une courbe. Sur celle-ci, un point d'un contour est associé à un
maximum de la pente, c'est-à-dire à un extremum (maximum ou minimum) de la dérivée
première. Cet extremum peut aussi s'interpréter comme un zéro de la dérivée seconde.
Dans une image numérisée, à chaque pixel est associée une valeur qui est en général dif-
férente de la valeur des pixels voisins. La notion de dérivée correspondant à une variation
inniment petite doit donc être remplacée par l'approximation diérence nie utilisée en
calcul numérique. Le problème est simplié car on ne s'intéresse ici qu'aux comparaisons
entre dérivées indépendamment de leurs valeurs. Ainsi la dérivée premiére au niveau d'un
pixel se réduit à la diérence entre les valeurs des deux pixels voisins, la dérivée seconde
étant la diérence entre les dérivées moyennées aux frontières des pixels.
1.3.2 Les opérateurs morphologiques
La morphologie mathématique ore des opérateurs non linéaires particulièrement
utiles pour ltrer, segmenter et quantier des images. Initialement destinée au traite-
ment des images binaires, elle a très vite été généralisée aux images à niveaux de gris,
puis aux images en couleurs et multi-spectrales. Elle fournit en particulier des outils de
ltrage, segmentation, quantication et modélisation d'images.
1.3.3 Filtres
L'opérateur de Roberts décrit dans une image rectangulaire, ayant un contour rampe,
les dérivées premières elles-mêmes sont d'un intérêt limité car la pente maximale a peu
de chances de se trouver sur l'une des deux directions considérées. Ce qui importe c'est la
3
longueur du vecteur gradient dont elles sont les composantes. Cette longueur se calcule
en principe par le théorème de Pythagore au prix d'un calcul sur les réels et on l'accélère
considérablement en utilisant une approximation entière :
|G| = |E - W | + |N - S|
Indépendamment de la précision du calcul, il faut transformer ce résultat en un ltre
numérique. La notion physique de ltre correspond à la notion mathématique de
convolution. Lorsqu'il s'agit de données numérisées comme dans le cas du traitement
d'images, la relation entre les valeurs des pixels de sortie et celle des pixels d'entrée est
décrite par un tableau de nombres appelé matrice de convolution.
Filtre median-moyen
Le ltre médian est un ltre numérique non linéaire, souvent utilisé pour la réduction
de bruit. La réduction de bruit est une étape de pré-traitement classique visant à améliorer
les résultats de traitements futurs (détection de bords par exemple). La technique de
ltre médian est largement utilisée en traitement d'images numériques car il permet sous
certaines conditions de réduire le bruit tout en conservant les contours de l'image.
Filtre de Prewitt
sert à calculer le gradient d'intensité lumineuse de l'image à chaque point, donnant la
direction et le taux de la plus grande décroissance. Le résultat nous indique les change-
ments abrupts de luminosité de l'image et donc exhibe les contours probables de celle-ci,
en pratique cette technique est plus able et facile à mettre en Å“uvre qu'un algorithme
plus direct.
Filtre de Sobel
calcule le gradient de l'intensité de chaque pixel. Ceci indique la direction de la plus
forte variation du clair au sombre, ainsi que le taux de changement dans cette direc-
tion. On connaît alors les points de changement soudain de luminosité, correspondant
probablement à des bords, ainsi que l'orientation de ces bords.
Filtre de Canny
Le ltre de Sobel est apprécié pour sa simplicité et sa rapidité d'exécution. Ces qualités
osent des problèmes lorsqu'il s'agit de traiter une image complexe. Le ltre de Canny a
été bâti autour de l'algorithme de Sobel pour améliorer ses résultats.
D'une part, les ltres triangulaires utilisés par Sobel étant peu ecaces face à une image
fortement bruitée, un ltre gaussien est utilisé.
D'autre part, c'est là l'originalité de la méthode, elle permet d'éliminer des faux contours.
En considérant non seulement l'intensité du gradient mais aussi sa direction, il est possible
d'éliminer un pixel qui pointe vers deux pixels de valeur supérieure car ce n'est pas un
maximum local. Il faut ensuite eectuer un seuillage par hystérésis. Pour cela on xe
deux seuils, un seuil haut s(h) et un seuil bas s(h). On commence par sélectionner les
points qui dépassent le seuil haut et on applique ensuite le seuil bas en ne conservant
4
que les composantes connexes qui contiennent un point au-dessus de s(h). En d'autres
termes à partir de chaque point au-dessus de s(h) on  suit  un chemin constitué de
points au-dessus de s(h), ce chemin est le contour recherché.
1.4 Detection de visage
1.4.1 Bruit
En traitement d'image, toute brusque uctuation d'un pixel par rapport à ses voisins
étant considéré comme un bruit provoquant ainsi la dégradation de la qualité d'image
que se soit de luminance ou de contraste. Ses sources les plus fréquentes sont :
 Bruit lié aux dispositifs d'acquisition
 Bruit lié à la scène
 Bruit lié à la transmodulation
 Bruit lié à l'échantillonnage
1.4.2 Soustraction et réduction de bruit
Cette méthode permet de diminuer le bruit dans une image. La technique consiste à
prendre plusieurs fois l'image d'un même point de vue. On obtient donc (n)l'image avec
(n)du bruit.
Ensuite il sut d'appliquer un algorithme qui supprime les pixels diérents entre chaque
image et qui garde les pixels identiques. En eet, ces algorithmes se base sur le fait que
le bruit est diérent à chaque prise tandis que l'image est identique.
1.4.3 Filtrage
Un ltre est souvent une transformation mathématique (appelée produit de convo-
lution) permettant pour chaque pixel de la zone à laquelle il s'applique de modier sa
valeur en fonction des valeurs des pixels avoisinants, aectées de coecients.
Principe de ltrage
Le ltrage consiste à modier la valeur des pixels de tout ou partie d'une image
numérique, généralement dans le but d'améliorer son aspect lorsque l'image ne peut pas
être exploitée directement. En pratique, il s'agit de créer une nouvelle image en se servant
des valeurs des pixels de l'image d'origine entièrement ou partiellement.
5
Type de ltrage
On distingue généralement les types de ltres suivants :
Les ltres passe-bas Consistant à atténuer les composantes de l'image ayant une
fréquence haute (pixels foncés). Ce type de ltrage est généralement utilisé pour atténuer
le bruit de l'image, c'est la raison pour laquelle on parle habituellement de lissage,
débruitage ou encore ltre antibruit. Les coecients du masque sont positifs et leur
somme est égale à 1.
Les ltres passe-haut Á l'inverse des passe-bas, atténuent les composantes de basse
fréquence de l'image et permettent notamment d'accentuer les détails et le contraste,
et donc les diérences entre les pixels voisins. C'est la raison pour laquelle le terme de
ltre d'accentuation est parfois utilisé. Les coecients du masque peuvent être de signe
quelconque mais leur somme est égale à 0.
Technique de ltrage
Il en existe plusieurs, Chaque ltre cherche à atténuer un type de défaut bien précis.
Il n'y a pas de ltre universel capable de corriger tous les défauts. Il faut choisir les bons
ltres suivant les défauts que nous désirons corriger.
1.4.4 Detetction des formes
La reconnaissance des formes est un ensemble de techniques et méthodes visant à
identier des motifs informatiques à partir de données brutes an de prendre une déci-
sion dépendant de la catégorie attribuée à ce motif. On considère que c'est une branche
de l'intelligence articielle qui fait largement appel aux techniques d'apprentissage auto-
matique et aux statistiques.
Le mot forme est à comprendre dans un sens très général, pas seulement celui de  forme
géométrique  mais plutôt de motifs qui peuvent être de natures très variées. Il peut
s'agir de contenu visuel (code barre, visage, empreinte digitale...) ou sonore (reconnais-
sance de parole), d'images médicales (rayon X, EEG, IRM...) ou multispectrales (images
satellitaires) et bien d'autres.
1.4.5 La détection de visage
Sans aucune hésitation, l'homme est capable de distinguer les visages de tout autre
objet. Mieux, il est capable d'en reconnaître des centaines, malgré de très faibles
diérences structurelles. Mais qu'est ce qu'un visage ? Ceci pourrait constituer un
exemple de dénition :
Un visage est une structure tridimensionnelle possédant une conguration externe, le
contour de la face modelé par les saillis osseuses et souligné par les cheveux oú s'inscrit
une conguration interne formé par l'assemblage des traits. Certaines particularités s'y
ajoutent comme la pilosité, les lunettes, la texture, la coloration de la peau etc.
La détection de visages dans une image sans hypothèse préalable est un problème très
dicile à résoudre en raison de la très grande variabilité de la forme et la couleur
6
à détecter (Orientation et tailles quelconques, éclairage variable, couleur de peau
diérente).
Il existe trois types de modélisation pour détecter les visages :
La première dite bas niveau : consiste à suivre par exemple des objets de teinte chair
en mouvement dont on analyse la forme globale Blob Analysis, la seconde structurelle
où des primitives tels que les yeux, le nez et la bouche sont détectés et associés à des
modèles de visages. La dernière globale dans laquelle une image est assimilée à un
vecteur (luminance, moment, codage).
Une base d'exemples est constituée, à partir de laquelle on peut extraire des vecteurs
propres eigen-faces ou congurer les poids d'un réseau de neurones.
Une grande variété de méthodes de détections de visages a été proposée ces dernières
années. Cependant, la plupart d'entres elles s'attardent à répondre aux questions Y
a-t-il des visages dans cette image ? Si oui, où sont-ils ?.
Sans toutefois extraire les caractéristiques du visage. Les méthodes basées sur des réseaux
de neurones se résument à l'utilisation d'un classieur à deux sorties représentant la
présence ou l'absence de l'objet recherché dans une sous-région de l'image.
Le principe de base consiste à balayer l'image avec une fenêtre d'attention de dimensions
xes et de réaliser la détection sur les sous-images.
Néanmoins, il est encore une fois nécessaire d'eectuer plusieurs balayages à diérentes
résolutions pour ainsi réaliser une détection susamment robuste.
L'inconvénient majeur de cette méthode est que la phase d'apprentissage nécessite un
redimensionnement des images pour être compatibles avec les dimensions requises par
le nombre d'entrées du réseau aussi cette phase est très gourmande en temps. Un autre
problème peut nuire aux résultats des RNA c'est la rotation de la tête et le changement
d'échelle.
D'autres méthodes s'intéressent aux parties caractéristiques du visage comme le nez,
la bouche et les yeux. Les positions relatives des diérentes composantes du visage sont
étudiées après avoir été détectées. La diculté dans cette approche est de traduire par
des règles strictes, à dénir, la manière dont le chercheur représente le visage. Si ces
régles sont trop précises, elles n'identient pas certains visages (false negative). Dans le
cas contraire, elles provoquent de fausses alertes (false positive). Il est évident qu'il est
impossible de dénir des règles qui tiennent compte de toutes les variabilités comme la
position du sujet, par exemple. Le taux de réussite de cette méthode reste faible avec
surtout un grand nombre de fausses alertes et ne peut donc se sure à elle-même.
En revanche, elle permet une focalisation rapide sur les parties intéressantes de l'image.
1.4.6 Viola et Jones
De nombreuses techniques de détections existent et dièrent aussi bien par les
approches qu'elles emploient que par les techniques d'apprentissages qu'elles utilisent.
L'approche proposée est basée sur l'utilisation de la méthode Viola et Jones sous OpenCv.
L'algorithme de Viola et Jones est une méthode de détection d'objet dans une image
numérique. Elle est largement utilisées pour la détection de visage, mais peut aussi être
utilisée pour la détection de personne, d'avion, de voiture, etc.
7
La méthode de Viola et Jones est basé sur un apprentissage supervisé. Des exemples
d'objets doivent être analysés à l'avance, pour être classiés. Par la suite, pendant
l'analyse de l'image, des caractéristiques sont choisies par boosting, qui permet de
classier les caractéristiques, et de séparer les exemples positifs des exemples négatifs
par cascade de décision.
Cette méthode permet d'analyser une image, sans avoir besoin d'étudier chaque pixel
la constituant. En eet, la notion d'image intégrale permet de dénir plusieurs zones
rectangulaire au sein d'une image. L'intérêt de cette technique réside dans le fait qu'elle
ore la possibilité d'accéder à la valeur des autres zones à gauche et au dessus de la zone
sur laquelle nous sommes.
Ces zones permettent de créer des caractéristiques pseudoHaar, qui sont en fait des
masques permettant de déterminer plusieurs pattern : Ces caractéristiques permettent
de détecter des motifs.
Par exemple, la reconnaissance des visages est rendue possible par :
 la variation de l'intensité de la lumière entre les yeux et le nez.
 la variation de l'intensité de la lumière entre les yeux et les pommettes.
La méthode repose donc sur l'utilisation de ces caractéristiques pseudoHaar et des
images intégrales, améliorant ainsi la vitesse de traitement. Deux autres mécanismes
interviennent : le classieur et le boosting.
Le classieur permet de déterminer l'ensemble des zones rentrant sous la coupe d'une
caractéristique pseudoHaar, en déterminant les seuils pouvant déterminer les exemples
positifs des négatifs. Ceci demande donc une phase d'apprentissage, qui permet de dénir
les seuils utilisés.
Au nal, un classieur est une association entre une caractéristiques pseudoHaar et un
seuil. C'est ce qu'on appelle un classieur faible.Cette méthode se révèle très coûteuse.
An de gagner en temps d'exécution on utilise une cascade de classieur, qui peut être
vue comme étant un arbre où les feuilles sont des classieurs peu complexes (faible). Plus
on remonte dans l'arbre, plus les classieurs sont complexes.
A chaque remontée de noeud, une décision est prise (on accepte ou non). Si on accepte,
c'est que l'objet est présent dans l'image, et dans ce cas, on remonte l'objet au noeud
suivant. Sinon, la branche est dénitivement abandonnée.
Les étapes
Apprentissage L'apprentissage consiste à analyser un très grand nombre d'images
positives et négatives. Plusieurs milliers d'exemples sont néccéssaires, et leur analyses
prend plusieurs semaines. L'apprentissage comprend :
 Le calcul des caractéristiques pseudoHaar (positifs et négatifs).
 L'entraînement de la cascade : pour chaque étage, on créé un classieur fort, par
ajout successif de classieur faibles entraînés sur la même caractéristique. On
ajoute ces classicateurs faibles jusqu'à obtenir un classieur fort possédant la
8
performance souhaité (taux de détection/faux positifs) pour l'étage.
Detection est l'étape qui s'applique sur l'image dans laquelle on souhaite déceler la
présence d'objet.
On parcours l'ensemble de l'image à toutes les positions et échelles, avec une sousfenêtre
de 24x24 pixels. On applique la cascade à chaque sousfenêtre :
Calcul des caractéristiques pseudoHaar.
Calcul de la réponse du classieur.
Passage à l'étage supérieur si la réponse est positive (sousfenêtre suivante sinon) Si on a
traversé tous les étages successivement, l'exemple est déclaré positif.
Enn, on fusionne les détections multiples qui se chevauchent.
Applications La méthode de Viola et Jones est principalement utilisés dans la dé-
tection de visage et la détection de personnes. Les systèmes de vidéosurveillance, d'ihm
multimodales sont des exemples d'applications concrète. Dans le grand public, les appa-
reils photos numériques utilisent cette méthode pour détecter les visages sur une pho-
tographie, et eectuer un autofocus sur les visages. La méthode a également été utilisés
pour la détection des mains dans la gestion de commandes IHM, la détection de voiture
par satellite, ou pour l'évaluation du trac sur autoroute.
9
Chapitre 2
Généralités sur l'analyse d'image
2.1 Traitement d'image
Le XXIe siècle est celui de l'image numérique, vecteur d'information pour la presse,
les artistes, le monde médical mais aussi celui de l'industrie. Le traitement d'images est
une science récente qui a pour but d'orir aux spécialistes de diérents domaines, comme
au grand public, des outils de manipulation de ces données digitales issues du monde
réel.
Dans le présent chapitre, nous allons discuter des diérents points de notre application
an de mieux comprendre le projet.
Traiter une image c'est apporter des modications sur une image, par exemple : chan-
ger la couleur, ajouter ou supprimer des élements, modier la taille...
Avant de parler sur le traitement d'image il faut tout d'abord dénir l'image, ses types,
ses formats.
2.1.1 Dénition d'image
Une image est une fonction de deux variables, par exemple I(x,y) représentera une
fonction d'amplitude (l'intensité) de deux variables réelles de position (x,y) dans le plan
cartésien.
Par exemple, une photographie aérienne, un prol d'élévation d'un terrain, et une carte
topographique sont trois représentations diérentes d'un même objet, trois images.
Une image peut inclure des sous-images, communément appelées ROI (Régions d'Inté-
rêts,  Region Of Interest  en anglais), ou simplement régions.
Ce concept reète le fait qu'une image contient souvent une collection d'objets qui dé-
nissent autant de zones dans l'image.
Les amplitudes dans une image donnée sont ou des nombres réels, ou des nombres entiers,
ce dernier cas résultant simplement d'un processus de quantication des valeurs entre un
continuum (par exemple de 0 à 100 valeurs. Parfois, cependant, c'est le processus phy-
sique de formation des images qui conduit à cette quantication.
Enn, il arrive (par exemple en imagerie de résonance magnétique, ou IRM), que les
mesures physiques produise une image complexe, avec phase et amplitude.
10
2.1.2 Acquisition
c'est la transformation des rayons lumineux captés par l'appareil en une image numé-
rique.
2.1.3 Dénition d'image numérique
Une image numérique est une image sous forme binaire. Elle est donc composée de
0 et de 1 formant des octets. C'est donc en pratique une suite de valeurs. Cette suite
de valeurs est formatée en une matrice à plusieurs dimensions. Dans le cas d'une image
conventionnelle 2D, il s'agit d'une matrice à deux dimensions, un tableau oú chaque case
est un pixel. On peut ajouter une 3éme dimension pour représenter le temps (on parle
alors de vidéo) ou une dimension spatiale (photos 3D).
2.1.4 Types d'image
Les images matricielles
: il s'agit d'une représentation d'une image de la forme d'une matrice, d'un tableau
à deux dimensions, avec un certains nombre de lignes et un certains nombre de colonne,
chacune de ces cases va représenter une information graphique qu'on appele également
PixEl ( Picture Elements ), chacun de ces pixels peut avoir une couleur diérente.
Les images vectorielles
: il s'agit d'une image numérique composée d'objets géométriques individuels, des pri-
mitives géométriques (segments de droite, arcs de cercle, courbes de Bézier, polygones,
etc.), dénis chacun par diérents attributs (forme, position, couleur, remplissage, visi-
bilité, etc.) et auxquels on peut appliquer diérentes transformations (homothéties, rota-
tions, écrasement, mise à l'échelle, extrusion, inclinaison, eet miroir, dégradé de formes,
morphage, symétrie, translation, interpolation, coniques ou bien les formes de révolution.
Elle se diérencie en cela des images matricielles (ou images bitmap), qui sont constituées
de pixels.
2.1.5 Formats d'image
Les formats libres
GIF qui était au départ un format propriétaire, il permet de coder les images avec
256 couleurs, avec de la transparence, et qui permet également de faire des petites images
animées.
PNG peut gérer un nombre arbitraire de couleurs, par exemple (256c ou 16M) pour
le mode vrai couleur ; il permet de gérer les niveaux de transparences (256 niveaux) et il
ne perd pas de qualité au cas d'une compression.
11
SVG est un format d'images vectorielles basé sur le langage de balisage XML. Il
répond parfaitement à des besoins graphiques légers, qu'ils soient statiques, dynamiques
ou interactifs.
Les formats propriétaires
JPEG est un format propriétaire qui peut réstreindre sans utilisation, il est utiliser
pour la photographie, c'est un format d'image matricièlle et qui risque de perdre sa qualité
au cas d'une compréssion.
2.1.6 Propriétés des images
Lignage
phénomène d'altérnance des lignes claires (ou sombre) de même direction et qui
tranchent avec le reste de l'image.
Constrate
qualité de la dynamique des intensités de l'image.
Bruit
signale parasite dont la distribution des images est aléatoire et la plupart du temps
est inconnue.
Déformation géométrique
défauts dus à la diérence d'axe entre le capteur d'acquisition et le centre de la scène
obsérvée.
Texture
répartition statistique ou géométrique des intensités dans l'image.
Contour
limite entre deux ou un groupe de pixels dont la diérence de niveau de gris(couleur)
est signicative.
Region
groupe de pixels présentant des caractèristiques similaires(intensité, mouvements).
Objet
région entièrement délimitée par un contour, possèdent une indépendance dans
l'image.
12
2.1.7 Traitement d'image
Le traitement d'image consiste à améliorer le contenu d'une image pour en extraire
de l'information : par exemple identier une séquence de texte [OCR - Optical Character
Recognition] ou un chromosome, éviter un obstacle (robotique), détecter des zones sou-
mises à l'érosion (téléétection).
En bref traiter une image, c'est lui ajouter du sens par un procédé automatique.
Pour cela il peut être nécessaire de supprimer les facteurs de bruit, de rehausser les si-
gnaux utiles contribuant à une meilleure lisibilité. Nous examinerons donc diérentes
transformations. Certaines aectent tout (ou partie) des pixels de l'image sans qu'inter-
vienne la notion de position spatiale des pixels, ce sont des transformations globales. Les
opérations entre images permettent de traiter des séries d'images relatives à la même
scène. Enn des opérations plus élaborées, dites de convolution, portent sur plusieurs
pixels voisins et ont donc un caractère local.
2.2 Traitement des vidéos
2.2.1 Dénition de la vidéo
La vidéo numérique consiste à acher une succession d'images numériques. Puisqu'il
s'agit d'images numériques achées à une certaine cadence, il est possible de connaître le
débit nécessaire pour l'achage d'une vidéo, c'est-à-dire le nombre d'octets achés (ou
transférés) par unité de temps.
Le débit nécessaire pour acher une vidéo (en octets par seconde) est égal à la taille
d'une image que multiplie le nombre d'images par seconde.
2.2.2 Traitement des vidéos
Il s'agit d'une branche dérivée du traitement d'images, qui réutilise beaucoup de ses
concepts ; bien qu'il soit courant de  traiter  une vidéo en traitant en réalité chacune
de ses images (ou frames) indépendamment (comme c'est par exemple le cas pour les
corrections de colorimétrie, ou certains eets spéciaux comme l'incrustation), la théorie
du traitement vidéo consiste a priori à tirer également parti de la relation qui lie chacune
des images à ses précédentes et ses suivantes, par évolution de mouvements ou autres
modications graduelles dans le temps.
13
Chapitre 3
Réalisation
3.1 Environnement de développement
3.1.1 Environnement matériel
L'équipement mis à notre disposition pour la réalisation du projet se compose de deux
ordinateurs portables dont la conguration pour les deux ordinateurs est la suivante :
 Processeur : Intel Core(TM) i7-4700MQ.
 8 GO de mémoire vive.
 1T d'espace de disque.
3.1.2 Environnement logiciel
Aprés avoir présenté les moyens matériels mis à notre disposition dans le cadre de
réalisation de ce projet, nous abordons dans cette partie les moyens logiciels utilisés. Les
logiciels utilisés pour la réalisation de ce projet sont :
 Sublime texte qui est un éditeur de texte générique codé en C++ et Python,
il prend en charge un certain nombre de langages de programmation diérents
et assure la coloration syntaxique pour : Action Script, C, C++, java, Python,
HTML, PHP, JavaScript, SQL, etc.
 Netbeans est un IDE qui supporte une large variété de langages de programmation
et d'outils de collaboration, il propose des fonctions de complétement, de contrôles
syntaxiques et sémantiques, d'avertissements et de conseils, de reprises de code (
refactoring  : renommage, changement des méthodes, gestion des classes ...), de
sauvegarde et reprise.
Il supporte principalement les langages suivants : Java, Groovy, PHP, JavaScript,
Python, XML, HTML et bien d'autres langages de programmation.
3.1.3 Langages utilisés
Java est un langage de programmation qui reprend en grande partie la syntaxe du
langage C++, très utilisé par les informaticiens. Néanmoins, Java a été épuré des concepts
les plus subtils du C++ et à la fois les plus déroutants, tels que les pointeurs et références,
ou l'héritage multiple contourné par l'implémentation des interfaces. Les concepteurs
14
ont privilégié l'approche orientée objet de sorte qu'en Java, tout est objet à l'exception
des types primitifs (nombres entiers, nombres à virgule ottante, etc.).
3.1.4 OpenCv
OpenCV (pour Open Computer Vision) est une bibliothèque graphique libre, initia-
lement développée par Intel, spécialisée dans le traitement d'images en temps réel.
Elle met à disposition de nombreuses fonctionnalités très diversiées permettant de créer
des programmes partant des données brutes pour aller jusqu'à la création d'interfaces
graphiques basiques.
Elle propose la plupart des opérations classiques en traitement bas niveau des images :
 Lecture, écriture et achage d'une image.
 Calcul de l'histogramme des niveaux de gris ou d'histogrammes couleurs.
 Lissage, ltrage.
 segmentation (composantes connexes, GrabCut).
 Morphologie mathématique.
3.2 Implémentation et déploiment
3.2.1 Déscription du projet
Dans le présent chapitre, nous allons vous décrire le fonctionnement de notre
application java de détection de visage.
En premier lieu, on va décrire le cas oú il y a pas de visage á detecter dans la caméra,
donc le dossier de stockage des données sera bien évidemment vide.
Voila ci-dessous un essai pour une détection mais sans aucun visage :
[h]
Figure 3.2.1  sans visage
15
Ci-dessous, le dossier de stockage qui est bien-sûr vide parce que il y avait pas de
visage à capturer.
Figure 3.2.2  dossier vide
En deuxième lieu, on va traiter le cas où la caméra va détecter un seul visage, en
eet, tant que le visage est toujours présent dans la caméra, elle va le capturer avec
tous ses mouvements et le stocker sous forme des images en format JPG et avec un titre
contenant la date et l'heure du capture pour des raisons de sécurité.
Ci-dessous un essai pour une détection d'un seul visage :
[h]
16
Figure 3.2.3  un seul visage 1
Ci-dessous, le dossier de stockage qui contient les images capturées à un instant
(x) :
17
Figure 3.2.4  dossier de stockage des captures 1
Finalement, on pose le cas où la caméra va détecter plusieurs visages en même
temps.
Dans ce cas là, la caméra va capturer les visages détectés, elle va commencer par le
premier à détecter et faire la même procédure de stockage.
Ci-dessous un exemple du cas du plusieurs visages :
18
Figure 3.2.5  plusieurs visages 2
Ci-dessous, le dossier de stockage qui contient les images des diérents visages
capturés à un instant (x) :
19
Figure 3.2.6  dossier de stockage des captures 2
20
Conclusion
Ces dernières années,les applications java et la téléphonie mobile a été sans doute le
secteur le plus dynamique, le plus rentable et le plus innovant de toute l'Industrie des
applications.
Ce travail a été très bénéque et il était l'occasion d'appliquer dans un cadre professionnel
les connaissances acquises durant notre formation à la Faculté des Sciences Rabat. En
eet, il mêlait ensemble plusieurs disciplines et nous a permis de mettre à prot les études
des semestres précédents et de parfaire nos connaissances dans autres matières .
Dans ce travail, on s'est intéressé à deux des problèmes majeurs d'analyse de mouvement
dans une séquence d'images ; la détection et le suivi d'objets en mouvement dans des
scènes simples (caméra xe, fond statique).
Enn, les fonctionnalités oertes par cette application sont immenses, notamment en
matière d'aide à la detction des visages. Pour conclure, il existe toujours des améliorations
à envisager pour rendre une application encore plus performante.
21
.
22
Webographie
23
Bibliographie
[1] http ://thesis.univ-biskra.dz/944/4/Chap
[2] http ://aeip6.net/annales/
[3] http ://wikipedia.com/
[4] https ://cdn.uclouvain.be/public/Exports/
[5] https ://openclassroom.com/
[6] http ://opencv.org/
24
Annexe
Réalisation d'une application mobile
La programmation mobile
Les applications mobiles sont apparues dans les années 1990, elles sont liées aux déve-
loppements d'Internet et des télécommunications, des réseaux sans ls et des technologies
agents, et à l'apparition et la démocratisation des terminaux mobiles : smartphones, ta-
blettes tactiles ...
Chacun des OS mobile, dispose d'un langage de programmation à lui propre, permettant
le développement de ses applications. Les applications pour les terminaux Apple sont dé-
veloppées dans un langage principalement dédié à ces applications mobiles, l'Objective C.
Le système Android utilise, quant à lui, un langage universel, le Java5, langage pouvant
être utilisé pour les ordinateurs, le développement Web (JEE).
Outil de réalisation
Android Studio est un environnement de développement pour développer des appli-
cations Android. Il est basé sur IntelliJ IDEA.
Il permet principalement d'éditer les chiers Java et les chiers de conguration d'une
application Android.
Il propose entre autres des outils pour gérer le développement d'applications multilingues
et permet de visualiser la mise en page des écrans sur des écrans de résolutions variées
simultanément.
Présentation de l'application
Notre application bonus va assurer la sécurité au niveau de l'authetication de visage
d'un utilisateur, et qui va être développér par Android.
Conformément à ce que nous avons spécie nous n'abordons que la détection et la recon-
naissance du visage humain par accession dans des établissements. Nous nous arrêtons
qu'à capturer les visages et les stocker dans l'émulateur mais cette action est possible
à une seule condition : il faut que le visage capturé ne soit déja capturé une autre fois,
donc ne puisse pas exister dans la liste des visages prédénis (dans la base de données
des visages).
25
Réalisation
Vu le sujet de notre projet de n d'etude, nous avons pensé vivement à réaliser une
application mobile qui sert a traiter les images, et vu le temps qui nous a pas aidé à
naliser notre application, nous opterons pour une application mobile qui est vouée à
évoluer.
Interfaces
Ci-dessous, l'interface de l'application et qui contient plusieurs bouttons, si l'utili-
sateur clique sur le boutton UPDATE TRAINING, l'utilisateur va se rediriger vers la
caméra pour prendre une photo.
si l'utilisateur est le même en base de donné, un message de réussite d'athentication va
s'acher sur l'écran, si non un message d'erreur d'authentication va s'acher.
Figure 3.2.7  La une
En plus de cette fonctionnalitée, on a ajouté une autre qui fait le changement des
eets de la capture comme présenté ci-dessus.
26
Figure 3.2.8  Eets
27

Contenu connexe

Similaire à SDIC-PL0678.pdf

Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsUniversité de Rennes 1
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
Rapport Sdec Pi64
Rapport Sdec Pi64Rapport Sdec Pi64
Rapport Sdec Pi64guestf223f9
 
Rapport Sdec Pi64
Rapport Sdec Pi64Rapport Sdec Pi64
Rapport Sdec Pi64guestf223f9
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Android VoIP/SIP Softphone
Android VoIP/SIP SoftphoneAndroid VoIP/SIP Softphone
Android VoIP/SIP SoftphoneHamza Lazaar
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Adem Amen Allah Thabti
 
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...rim elaire
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifsSafaAballagh
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...mouafekmazia
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBottheoopparadigm
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testahmed oumezzine
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issameAMAL Issame
 
Rapport belgacem khaled
Rapport belgacem khaledRapport belgacem khaled
Rapport belgacem khaledBoughraraanis
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 

Similaire à SDIC-PL0678.pdf (20)

Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Report Master
Report MasterReport Master
Report Master
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Rapport Sdec Pi64
Rapport Sdec Pi64Rapport Sdec Pi64
Rapport Sdec Pi64
 
Rapport Sdec Pi64
Rapport Sdec Pi64Rapport Sdec Pi64
Rapport Sdec Pi64
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Android VoIP/SIP Softphone
Android VoIP/SIP SoftphoneAndroid VoIP/SIP Softphone
Android VoIP/SIP Softphone
 
Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...Conception et développement d'une marketplace basée sur l'architecture micros...
Conception et développement d'une marketplace basée sur l'architecture micros...
 
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...Mon Projet Fin d'étude: Conception et développement d'une application de géol...
Mon Projet Fin d'étude: Conception et développement d'une application de géol...
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifs
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Tpe nguyen tien-thinh
Tpe nguyen tien-thinhTpe nguyen tien-thinh
Tpe nguyen tien-thinh
 
Rapport projet UniceBot
Rapport projet UniceBotRapport projet UniceBot
Rapport projet UniceBot
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
rapport_stage_issame
rapport_stage_issamerapport_stage_issame
rapport_stage_issame
 
Deploy automatic in the cloud
Deploy automatic in the cloudDeploy automatic in the cloud
Deploy automatic in the cloud
 
Rapport belgacem khaled
Rapport belgacem khaledRapport belgacem khaled
Rapport belgacem khaled
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 

SDIC-PL0678.pdf

  • 1. UNIVERSITE MOHAMMED V de Rabat Faculté des Sciences Département d'Informatique Filière Licence fondamentale en Sciences Mathématiques et Informatique PROJET DE FIN D'ETUDES intitulé : Detection de visage avec OpenCv Présenté par : BORJI Anasse et CHOUKRI Amine Encadrée par : Mme. EL KHATTABI Noussaima soutenu le 19 Juin 2016 devant le Jury M. AHIOD Belaîd Professeur de la Faculté des Sciences - Rabat Mme. El Khattabi Noussaima Professeur de la Faculté des Sciences - Rabat M. EL BENANI Bouazza Professeur de la Faculté des Sciences - Rabat Année universitaire 2016-2017
  • 2. Remerciements Nous remercions le bon Dieu qui nous a donné le courage et la volonté d'élaborer ce travail. Nous remercions aussi nos parents et nos familles qui nous ont soutenus tout au long de notre cursus. Avant d'entamer ce projet, nous protons de l'occasion pour remercier tout d'abord notre encadrante Madame Noussaima El khettabi, enseignante á la Faculté des sciences de Rabat qui nous a fait l'honneur de nous encadrer durant la réalisation de ce projet, qu'elle trouve ici toute notre gratitude pour l'aide, l'enthousiasme et la disponibilité qu'elle a manifesté tout au long de ce travail. Ainsi, nos remerciements sont adressés aux jurys et toute l'équipe pédagogique de la Faculté des Sciences de Rabat et particuliérement les intervenants dans le département informatique. Finalement, nous tenons á remercier toute personne qui, d'une façon ou d'une autre, de prés ou de loin, ayant apporté son aide en nous permettant de réaliser ce projet de n d'études dans des conditions favorables. i
  • 3. Résumé L'objectif de ce projet consiste en l'établissement et l'implantation d'une application permettant la détection, l'extraction puis la capture des visages. Le projet est réalisé en java et utilise la bibliothèque de traitement d'images OpenCv an de bénécier de primitives de base pour la manipulation d'images. Le projet consiste en gros à la surveillance à travers une caméra qui va détecter les visages des individus et les capturer. Ce rapport se décompose ainsi en deux parties. La premiére partie a été l'étude préalable du sujet, c'est à dire qu'il fallait dénir l'image et la vidéo, ses types, ses formats, l'outil avec lequel on va travailler, ainsi les fonctionnalités attendues de ce projet. Nous nous sommes donc concentrés sur l'OpenCv qui nous a aider a savoir beaucoup de choses sur le traitement d'image et de vidéo. Dans ce contexte, le principal résultat attendu est de savoir tout ce qui concerne l'image ainsi de développer une application pour pratiquer nos connaissance. Dans un second temps, nous avons choisi un sujet pour en travailler qui se base sur la détection de visage, détection de contour et la reconnaissance de visage. La solution retenu a été en une application avec le langage de programmation :java. Enn, il faut remarquer que nos applications sont vouées á évoluer : il serait par exemple souhaitable que les applications assure le systéme de sécurité d'un établissement á travers bien-sûr les images capturées. Mots clés : OpenCv, JAVA, TRAITEMENT, IMAGE. ii
  • 4. Abstract We made our project of the end of studies under the frame(supervision) of madam El Khettabi Noussiama. The subject was the study and the development of an application of image processing and video with OpenCv. The rst stage was the preliminary study of the subject, that is it was necessary to dene the image and the video, his types, its formats, the tool with which we are going to work, so the features were expected from this project. We concentrated on OpenCv which has help us to know a lot of things on the image processing and of video. In this context, the main expected result is to know all about the image and to develop an application to practise our knowledge. Secondly, we chose a subject to work on it which bases on face detection, contour detection and face recognition. The solution is for an application with the programming language JAVA. We developed our JAVA application, and in parallel, we opted for another mobile application with the langaqe Android and which rests naturally on our subject which is : the image processing. Finally, it is necessary to notice that our applications are dedicated to evolve : it would be for example desirable that the applications assures the security system of an establishment through the captured images. Keywords : Image processing, OpenCv, Java. iii
  • 5. Table des matières Remerciements i Résumé ii Abstract iii Introduction vii 1 Detection de visage 1 1.1 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Pré-traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2.1 Amélioration de la qualité de l'image . . . . . . . . . . . . . . . . 2 1.3 Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3.1 Detection de contours . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3.2 Les opérateurs morphologiques . . . . . . . . . . . . . . . . . . . 3 1.3.3 Filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Detection de visage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.1 Bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.2 Soustraction et réduction de bruit . . . . . . . . . . . . . . . . . . 5 1.4.3 Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.4 Detetction des formes . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4.5 La détection de visage . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4.6 Viola et Jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Généralités sur l'analyse d'image 10 2.1 Traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.1 Dénition d'image . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.3 Dénition d'image numérique . . . . . . . . . . . . . . . . . . . . 11 2.1.4 Types d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.5 Formats d'image . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.6 Propriétés des images . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.7 Traitement d'image . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Traitement des vidéos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.1 Dénition de la vidéo . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2 Traitement des vidéos . . . . . . . . . . . . . . . . . . . . . . . . 13 iv
  • 6. 3 Réalisation 14 3.1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . 14 3.1.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.3 Langages utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.4 OpenCv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Implémentation et déploiment . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1 Déscription du projet . . . . . . . . . . . . . . . . . . . . . . . . . 15 Conclusion 21 Annexe 25 v
  • 7. Table de gure Figure 2.3.1 - Contour Figure 3.2.1 - sans visage Figure 3.2.2 - dossier vide Figure 3.2.3 - un seul visage Figure 3.2.4 - dossier de stockage des captures 1 Figure 3.2.5 - plusieurs visage 2 Figure 3.2.6 - dossier de stockage des captures 2 Figure 3.2.7 - La une Figure 3.2.8 - Eets vi
  • 8. Introduction Le domaine de l'informatique est une discipline très importante à nos jours car on l'utilise pour tout que ce soit à titre personnel ou professionnel. L'informatique rend tout type de travail plus facile, plus précis et surtout bien géré et provoque une nouvelle vision. Depuis quelques années, les innovations dans le domaine de développement des applica- tions java se multiplient et évoluent. Parmi les majeurs évolutions dans ce domaine gure le développement orientée objet qui est présenté par exemple par JAVA qui consiste à développer des applications à travers des classes et des fonctions et les méthodes. Notons également que l'informatique occupe une grande place dans tout ce qui relève le traitement notamment le traitement des images et des videos qui constitue le noyau de notre travail et qui consiste à la detection de visage qui représente une technique in- novante pour des mesures de sécurité dans tout les domaine.En eet, le présent travail vise la création d'une application que nous avons appelés : Système de sécurité ; et qui a comme principal objectif la surveillance à travers la camera. Pour ce faire, nous avons décomposé notre travail en deux grandes parties : la première consiste à décrire le sujet de notre projet et la seconde pose sur la phase pratique de l'ap- plication. En eet, dans la première partie, nous présentons la faculté des sciences Rabat, son organigramme et ses principales activités. Nous dénissons les diérents points im- portants et tous les mots clés de notre projet. Ensuite nous décrivons notre projet. Et nalement, dans la seconde partie nous détaillons la réalisation de notre application et l'environnement logiciel utilisé ainsi que les diérentes techniques de réalisation, nous présentons également ses interfaces. vii
  • 9. Chapitre 1 Detection de visage 1.1 Présentation du projet De nos jours on parle de plus en plus de l'insécurité dans divers secteurs ainsi que des moyens informatiques à mettre en oeuvre pour contrer cette tendance : le contrôle d'accés aux ordinateurs, l'e-commerce ... Parlant des orphelinat, des hôpitaux psychiatriques, et même des prisons, tout ces éta- blissements ont besoin d'un système d'information qui peut contrôler tous les individus d'établissement. Notre investissement dans le domaine de la reconnaissance de visages est sans doute motivé par la multiplicité et la variété des champs d'application entre-autre : haute sécurité, télésurveillance et contrôle d'accés, etc. Parmi ses applications les plus concrètes rencontrées dans la vie courante, peut-on citer à titre d'exemple : authentication de visage d'un utilisateur d'un compte de Windows pour accéder à ses données personnelles dans ce dernier, recherche des individus dans une foule par reconnaissance de leur visage par des cameras de surveillance, étude des émotions par analyse des expressions faciales, protection d'identité des personnes pour livrer les cartes d'identités surs et ables mais aussi de permis de conduire. Notre sujet porte sur un système de sécurité avec une caméra qui va deétecter les visages de tous les individus, comme on a développer une autre application qui sera mentionnée en annexe et qui porte sur l'identication des personnes par reconnaissance de visage pour l'utiliser dans un domaine de sécurité. Apres l'étude que nous avons eectuée, et selon les besoins, nous opterons pour une applications qui va à son tour assurer la sécurité d'un espace dans un établissement avec un alerte sonore en stockant les visages d'intrus. 1.2 Pré-traitement d'image Le prétraitement d'images est l'ensemble des opérations eectuées sur une image, soit pour l'améliorer, soit pour la restaurer, c'est-à-dire pour restituer aussi dèlement que possible le signal d'origine. D'une manière générale, les méthodes de prétraitement visent soit à renforcer la ressemblance des pixels d'une même région, soit au contraire à accentuer les diérences de pixels provenant de régions diérentes. 1
  • 10. Les techniques utilisées apparaissent dans le traitement des images pour des applications scientiques (ou de renseignement), plutôt que pour les applications de divertissement ou de décoration. 1.2.1 Amélioration de la qualité de l'image Il existe diérentes méthodes an d'améliorer la qualité d'une image. Il y a des mé- thodes qui passe par le ltrage, d'autre par le calcul d'histogramme ou encore par l'amé- lioration du rapport image/bruit. Ces méthodes doivent être utilisées en fonction de ce que l'on veut obtenir. En eet chacune de ces méthodes aurait un eet bien spécique sur l'image que se soit pour augmenter les contrastes ou bien mettre en avant des petits détails de l'image ainsi pour rendre les images plus aptes à l'interprétation humaine ou à celle de la machine et la distribution des niveaux de gris. 1.3 Les opérateurs 1.3.1 Detection de contours Le but de la détection de contours est de repérer les points d'une image numérique qui correspondent à un changement brutal de l'intensité lumineuse. Ces changements de propriétés de l'image traduisent en général des événements importants ou des change- ments dans les propriétés du monde. Ils incluent des discontinuités dans la profondeur, dans l'orientation d'une surface, dans les propriétés d'un matériau et dans l'éclairage d'une scène. La détection de contour est un champ de la recherche qui appartient au traitement d'image et à la vision par ordinateur, particulièrement dans le domaine de l'extraction de caractéristiques. La détection des contours d'une image réduit de manière signicative la quantité de don- nées et élimine les informations qu'on peut juger moins pertinentes, tout en préservant les propriétés structurelles importantes de l'image. Il existe un grand nombre de méthodes de détection de l'image mais la plupart d'entre elles peuvent être regroupées en deux catégories. La première recherche les extremums de la dérivée première, en général les maximums locaux de l'intensité du gradient. La seconde recherche les annulations de la dérivée seconde, en général les annulations du laplacien ou d'une expression diérentielle non linéaire. 2
  • 11. [h] Figure 1.3.1 Contour Dans une image en niveaux de gris, un contour est caractérisé par un changement brutal de la valeur. Le but de l'opération est de transformer cette image en une autre dans laquelle les contours apparaissent par convention en blanc sur fond noir. Dans une section horizontale (ou verticale) de l'image rectangulaire, les variations de la valeur sont décrites par une courbe. Sur celle-ci, un point d'un contour est associé à un maximum de la pente, c'est-à-dire à un extremum (maximum ou minimum) de la dérivée première. Cet extremum peut aussi s'interpréter comme un zéro de la dérivée seconde. Dans une image numérisée, à chaque pixel est associée une valeur qui est en général dif- férente de la valeur des pixels voisins. La notion de dérivée correspondant à une variation inniment petite doit donc être remplacée par l'approximation diérence nie utilisée en calcul numérique. Le problème est simplié car on ne s'intéresse ici qu'aux comparaisons entre dérivées indépendamment de leurs valeurs. Ainsi la dérivée premiére au niveau d'un pixel se réduit à la diérence entre les valeurs des deux pixels voisins, la dérivée seconde étant la diérence entre les dérivées moyennées aux frontières des pixels. 1.3.2 Les opérateurs morphologiques La morphologie mathématique ore des opérateurs non linéaires particulièrement utiles pour ltrer, segmenter et quantier des images. Initialement destinée au traite- ment des images binaires, elle a très vite été généralisée aux images à niveaux de gris, puis aux images en couleurs et multi-spectrales. Elle fournit en particulier des outils de ltrage, segmentation, quantication et modélisation d'images. 1.3.3 Filtres L'opérateur de Roberts décrit dans une image rectangulaire, ayant un contour rampe, les dérivées premières elles-mêmes sont d'un intérêt limité car la pente maximale a peu de chances de se trouver sur l'une des deux directions considérées. Ce qui importe c'est la 3
  • 12. longueur du vecteur gradient dont elles sont les composantes. Cette longueur se calcule en principe par le théorème de Pythagore au prix d'un calcul sur les réels et on l'accélère considérablement en utilisant une approximation entière : |G| = |E - W | + |N - S| Indépendamment de la précision du calcul, il faut transformer ce résultat en un ltre numérique. La notion physique de ltre correspond à la notion mathématique de convolution. Lorsqu'il s'agit de données numérisées comme dans le cas du traitement d'images, la relation entre les valeurs des pixels de sortie et celle des pixels d'entrée est décrite par un tableau de nombres appelé matrice de convolution. Filtre median-moyen Le ltre médian est un ltre numérique non linéaire, souvent utilisé pour la réduction de bruit. La réduction de bruit est une étape de pré-traitement classique visant à améliorer les résultats de traitements futurs (détection de bords par exemple). La technique de ltre médian est largement utilisée en traitement d'images numériques car il permet sous certaines conditions de réduire le bruit tout en conservant les contours de l'image. Filtre de Prewitt sert à calculer le gradient d'intensité lumineuse de l'image à chaque point, donnant la direction et le taux de la plus grande décroissance. Le résultat nous indique les change- ments abrupts de luminosité de l'image et donc exhibe les contours probables de celle-ci, en pratique cette technique est plus able et facile à mettre en Å“uvre qu'un algorithme plus direct. Filtre de Sobel calcule le gradient de l'intensité de chaque pixel. Ceci indique la direction de la plus forte variation du clair au sombre, ainsi que le taux de changement dans cette direc- tion. On connaît alors les points de changement soudain de luminosité, correspondant probablement à des bords, ainsi que l'orientation de ces bords. Filtre de Canny Le ltre de Sobel est apprécié pour sa simplicité et sa rapidité d'exécution. Ces qualités osent des problèmes lorsqu'il s'agit de traiter une image complexe. Le ltre de Canny a été bâti autour de l'algorithme de Sobel pour améliorer ses résultats. D'une part, les ltres triangulaires utilisés par Sobel étant peu ecaces face à une image fortement bruitée, un ltre gaussien est utilisé. D'autre part, c'est là l'originalité de la méthode, elle permet d'éliminer des faux contours. En considérant non seulement l'intensité du gradient mais aussi sa direction, il est possible d'éliminer un pixel qui pointe vers deux pixels de valeur supérieure car ce n'est pas un maximum local. Il faut ensuite eectuer un seuillage par hystérésis. Pour cela on xe deux seuils, un seuil haut s(h) et un seuil bas s(h). On commence par sélectionner les points qui dépassent le seuil haut et on applique ensuite le seuil bas en ne conservant 4
  • 13. que les composantes connexes qui contiennent un point au-dessus de s(h). En d'autres termes à partir de chaque point au-dessus de s(h) on suit un chemin constitué de points au-dessus de s(h), ce chemin est le contour recherché. 1.4 Detection de visage 1.4.1 Bruit En traitement d'image, toute brusque uctuation d'un pixel par rapport à ses voisins étant considéré comme un bruit provoquant ainsi la dégradation de la qualité d'image que se soit de luminance ou de contraste. Ses sources les plus fréquentes sont : Bruit lié aux dispositifs d'acquisition Bruit lié à la scène Bruit lié à la transmodulation Bruit lié à l'échantillonnage 1.4.2 Soustraction et réduction de bruit Cette méthode permet de diminuer le bruit dans une image. La technique consiste à prendre plusieurs fois l'image d'un même point de vue. On obtient donc (n)l'image avec (n)du bruit. Ensuite il sut d'appliquer un algorithme qui supprime les pixels diérents entre chaque image et qui garde les pixels identiques. En eet, ces algorithmes se base sur le fait que le bruit est diérent à chaque prise tandis que l'image est identique. 1.4.3 Filtrage Un ltre est souvent une transformation mathématique (appelée produit de convo- lution) permettant pour chaque pixel de la zone à laquelle il s'applique de modier sa valeur en fonction des valeurs des pixels avoisinants, aectées de coecients. Principe de ltrage Le ltrage consiste à modier la valeur des pixels de tout ou partie d'une image numérique, généralement dans le but d'améliorer son aspect lorsque l'image ne peut pas être exploitée directement. En pratique, il s'agit de créer une nouvelle image en se servant des valeurs des pixels de l'image d'origine entièrement ou partiellement. 5
  • 14. Type de ltrage On distingue généralement les types de ltres suivants : Les ltres passe-bas Consistant à atténuer les composantes de l'image ayant une fréquence haute (pixels foncés). Ce type de ltrage est généralement utilisé pour atténuer le bruit de l'image, c'est la raison pour laquelle on parle habituellement de lissage, débruitage ou encore ltre antibruit. Les coecients du masque sont positifs et leur somme est égale à 1. Les ltres passe-haut Á l'inverse des passe-bas, atténuent les composantes de basse fréquence de l'image et permettent notamment d'accentuer les détails et le contraste, et donc les diérences entre les pixels voisins. C'est la raison pour laquelle le terme de ltre d'accentuation est parfois utilisé. Les coecients du masque peuvent être de signe quelconque mais leur somme est égale à 0. Technique de ltrage Il en existe plusieurs, Chaque ltre cherche à atténuer un type de défaut bien précis. Il n'y a pas de ltre universel capable de corriger tous les défauts. Il faut choisir les bons ltres suivant les défauts que nous désirons corriger. 1.4.4 Detetction des formes La reconnaissance des formes est un ensemble de techniques et méthodes visant à identier des motifs informatiques à partir de données brutes an de prendre une déci- sion dépendant de la catégorie attribuée à ce motif. On considère que c'est une branche de l'intelligence articielle qui fait largement appel aux techniques d'apprentissage auto- matique et aux statistiques. Le mot forme est à comprendre dans un sens très général, pas seulement celui de forme géométrique mais plutôt de motifs qui peuvent être de natures très variées. Il peut s'agir de contenu visuel (code barre, visage, empreinte digitale...) ou sonore (reconnais- sance de parole), d'images médicales (rayon X, EEG, IRM...) ou multispectrales (images satellitaires) et bien d'autres. 1.4.5 La détection de visage Sans aucune hésitation, l'homme est capable de distinguer les visages de tout autre objet. Mieux, il est capable d'en reconnaître des centaines, malgré de très faibles diérences structurelles. Mais qu'est ce qu'un visage ? Ceci pourrait constituer un exemple de dénition : Un visage est une structure tridimensionnelle possédant une conguration externe, le contour de la face modelé par les saillis osseuses et souligné par les cheveux oú s'inscrit une conguration interne formé par l'assemblage des traits. Certaines particularités s'y ajoutent comme la pilosité, les lunettes, la texture, la coloration de la peau etc. La détection de visages dans une image sans hypothèse préalable est un problème très dicile à résoudre en raison de la très grande variabilité de la forme et la couleur 6
  • 15. à détecter (Orientation et tailles quelconques, éclairage variable, couleur de peau diérente). Il existe trois types de modélisation pour détecter les visages : La première dite bas niveau : consiste à suivre par exemple des objets de teinte chair en mouvement dont on analyse la forme globale Blob Analysis, la seconde structurelle où des primitives tels que les yeux, le nez et la bouche sont détectés et associés à des modèles de visages. La dernière globale dans laquelle une image est assimilée à un vecteur (luminance, moment, codage). Une base d'exemples est constituée, à partir de laquelle on peut extraire des vecteurs propres eigen-faces ou congurer les poids d'un réseau de neurones. Une grande variété de méthodes de détections de visages a été proposée ces dernières années. Cependant, la plupart d'entres elles s'attardent à répondre aux questions Y a-t-il des visages dans cette image ? Si oui, où sont-ils ?. Sans toutefois extraire les caractéristiques du visage. Les méthodes basées sur des réseaux de neurones se résument à l'utilisation d'un classieur à deux sorties représentant la présence ou l'absence de l'objet recherché dans une sous-région de l'image. Le principe de base consiste à balayer l'image avec une fenêtre d'attention de dimensions xes et de réaliser la détection sur les sous-images. Néanmoins, il est encore une fois nécessaire d'eectuer plusieurs balayages à diérentes résolutions pour ainsi réaliser une détection susamment robuste. L'inconvénient majeur de cette méthode est que la phase d'apprentissage nécessite un redimensionnement des images pour être compatibles avec les dimensions requises par le nombre d'entrées du réseau aussi cette phase est très gourmande en temps. Un autre problème peut nuire aux résultats des RNA c'est la rotation de la tête et le changement d'échelle. D'autres méthodes s'intéressent aux parties caractéristiques du visage comme le nez, la bouche et les yeux. Les positions relatives des diérentes composantes du visage sont étudiées après avoir été détectées. La diculté dans cette approche est de traduire par des règles strictes, à dénir, la manière dont le chercheur représente le visage. Si ces régles sont trop précises, elles n'identient pas certains visages (false negative). Dans le cas contraire, elles provoquent de fausses alertes (false positive). Il est évident qu'il est impossible de dénir des règles qui tiennent compte de toutes les variabilités comme la position du sujet, par exemple. Le taux de réussite de cette méthode reste faible avec surtout un grand nombre de fausses alertes et ne peut donc se sure à elle-même. En revanche, elle permet une focalisation rapide sur les parties intéressantes de l'image. 1.4.6 Viola et Jones De nombreuses techniques de détections existent et dièrent aussi bien par les approches qu'elles emploient que par les techniques d'apprentissages qu'elles utilisent. L'approche proposée est basée sur l'utilisation de la méthode Viola et Jones sous OpenCv. L'algorithme de Viola et Jones est une méthode de détection d'objet dans une image numérique. Elle est largement utilisées pour la détection de visage, mais peut aussi être utilisée pour la détection de personne, d'avion, de voiture, etc. 7
  • 16. La méthode de Viola et Jones est basé sur un apprentissage supervisé. Des exemples d'objets doivent être analysés à l'avance, pour être classiés. Par la suite, pendant l'analyse de l'image, des caractéristiques sont choisies par boosting, qui permet de classier les caractéristiques, et de séparer les exemples positifs des exemples négatifs par cascade de décision. Cette méthode permet d'analyser une image, sans avoir besoin d'étudier chaque pixel la constituant. En eet, la notion d'image intégrale permet de dénir plusieurs zones rectangulaire au sein d'une image. L'intérêt de cette technique réside dans le fait qu'elle ore la possibilité d'accéder à la valeur des autres zones à gauche et au dessus de la zone sur laquelle nous sommes. Ces zones permettent de créer des caractéristiques pseudoHaar, qui sont en fait des masques permettant de déterminer plusieurs pattern : Ces caractéristiques permettent de détecter des motifs. Par exemple, la reconnaissance des visages est rendue possible par : la variation de l'intensité de la lumière entre les yeux et le nez. la variation de l'intensité de la lumière entre les yeux et les pommettes. La méthode repose donc sur l'utilisation de ces caractéristiques pseudoHaar et des images intégrales, améliorant ainsi la vitesse de traitement. Deux autres mécanismes interviennent : le classieur et le boosting. Le classieur permet de déterminer l'ensemble des zones rentrant sous la coupe d'une caractéristique pseudoHaar, en déterminant les seuils pouvant déterminer les exemples positifs des négatifs. Ceci demande donc une phase d'apprentissage, qui permet de dénir les seuils utilisés. Au nal, un classieur est une association entre une caractéristiques pseudoHaar et un seuil. C'est ce qu'on appelle un classieur faible.Cette méthode se révèle très coûteuse. An de gagner en temps d'exécution on utilise une cascade de classieur, qui peut être vue comme étant un arbre où les feuilles sont des classieurs peu complexes (faible). Plus on remonte dans l'arbre, plus les classieurs sont complexes. A chaque remontée de noeud, une décision est prise (on accepte ou non). Si on accepte, c'est que l'objet est présent dans l'image, et dans ce cas, on remonte l'objet au noeud suivant. Sinon, la branche est dénitivement abandonnée. Les étapes Apprentissage L'apprentissage consiste à analyser un très grand nombre d'images positives et négatives. Plusieurs milliers d'exemples sont néccéssaires, et leur analyses prend plusieurs semaines. L'apprentissage comprend : Le calcul des caractéristiques pseudoHaar (positifs et négatifs). L'entraînement de la cascade : pour chaque étage, on créé un classieur fort, par ajout successif de classieur faibles entraînés sur la même caractéristique. On ajoute ces classicateurs faibles jusqu'à obtenir un classieur fort possédant la 8
  • 17. performance souhaité (taux de détection/faux positifs) pour l'étage. Detection est l'étape qui s'applique sur l'image dans laquelle on souhaite déceler la présence d'objet. On parcours l'ensemble de l'image à toutes les positions et échelles, avec une sousfenêtre de 24x24 pixels. On applique la cascade à chaque sousfenêtre : Calcul des caractéristiques pseudoHaar. Calcul de la réponse du classieur. Passage à l'étage supérieur si la réponse est positive (sousfenêtre suivante sinon) Si on a traversé tous les étages successivement, l'exemple est déclaré positif. Enn, on fusionne les détections multiples qui se chevauchent. Applications La méthode de Viola et Jones est principalement utilisés dans la dé- tection de visage et la détection de personnes. Les systèmes de vidéosurveillance, d'ihm multimodales sont des exemples d'applications concrète. Dans le grand public, les appa- reils photos numériques utilisent cette méthode pour détecter les visages sur une pho- tographie, et eectuer un autofocus sur les visages. La méthode a également été utilisés pour la détection des mains dans la gestion de commandes IHM, la détection de voiture par satellite, ou pour l'évaluation du trac sur autoroute. 9
  • 18. Chapitre 2 Généralités sur l'analyse d'image 2.1 Traitement d'image Le XXIe siècle est celui de l'image numérique, vecteur d'information pour la presse, les artistes, le monde médical mais aussi celui de l'industrie. Le traitement d'images est une science récente qui a pour but d'orir aux spécialistes de diérents domaines, comme au grand public, des outils de manipulation de ces données digitales issues du monde réel. Dans le présent chapitre, nous allons discuter des diérents points de notre application an de mieux comprendre le projet. Traiter une image c'est apporter des modications sur une image, par exemple : chan- ger la couleur, ajouter ou supprimer des élements, modier la taille... Avant de parler sur le traitement d'image il faut tout d'abord dénir l'image, ses types, ses formats. 2.1.1 Dénition d'image Une image est une fonction de deux variables, par exemple I(x,y) représentera une fonction d'amplitude (l'intensité) de deux variables réelles de position (x,y) dans le plan cartésien. Par exemple, une photographie aérienne, un prol d'élévation d'un terrain, et une carte topographique sont trois représentations diérentes d'un même objet, trois images. Une image peut inclure des sous-images, communément appelées ROI (Régions d'Inté- rêts, Region Of Interest en anglais), ou simplement régions. Ce concept reète le fait qu'une image contient souvent une collection d'objets qui dé- nissent autant de zones dans l'image. Les amplitudes dans une image donnée sont ou des nombres réels, ou des nombres entiers, ce dernier cas résultant simplement d'un processus de quantication des valeurs entre un continuum (par exemple de 0 à 100 valeurs. Parfois, cependant, c'est le processus phy- sique de formation des images qui conduit à cette quantication. Enn, il arrive (par exemple en imagerie de résonance magnétique, ou IRM), que les mesures physiques produise une image complexe, avec phase et amplitude. 10
  • 19. 2.1.2 Acquisition c'est la transformation des rayons lumineux captés par l'appareil en une image numé- rique. 2.1.3 Dénition d'image numérique Une image numérique est une image sous forme binaire. Elle est donc composée de 0 et de 1 formant des octets. C'est donc en pratique une suite de valeurs. Cette suite de valeurs est formatée en une matrice à plusieurs dimensions. Dans le cas d'une image conventionnelle 2D, il s'agit d'une matrice à deux dimensions, un tableau oú chaque case est un pixel. On peut ajouter une 3éme dimension pour représenter le temps (on parle alors de vidéo) ou une dimension spatiale (photos 3D). 2.1.4 Types d'image Les images matricielles : il s'agit d'une représentation d'une image de la forme d'une matrice, d'un tableau à deux dimensions, avec un certains nombre de lignes et un certains nombre de colonne, chacune de ces cases va représenter une information graphique qu'on appele également PixEl ( Picture Elements ), chacun de ces pixels peut avoir une couleur diérente. Les images vectorielles : il s'agit d'une image numérique composée d'objets géométriques individuels, des pri- mitives géométriques (segments de droite, arcs de cercle, courbes de Bézier, polygones, etc.), dénis chacun par diérents attributs (forme, position, couleur, remplissage, visi- bilité, etc.) et auxquels on peut appliquer diérentes transformations (homothéties, rota- tions, écrasement, mise à l'échelle, extrusion, inclinaison, eet miroir, dégradé de formes, morphage, symétrie, translation, interpolation, coniques ou bien les formes de révolution. Elle se diérencie en cela des images matricielles (ou images bitmap), qui sont constituées de pixels. 2.1.5 Formats d'image Les formats libres GIF qui était au départ un format propriétaire, il permet de coder les images avec 256 couleurs, avec de la transparence, et qui permet également de faire des petites images animées. PNG peut gérer un nombre arbitraire de couleurs, par exemple (256c ou 16M) pour le mode vrai couleur ; il permet de gérer les niveaux de transparences (256 niveaux) et il ne perd pas de qualité au cas d'une compression. 11
  • 20. SVG est un format d'images vectorielles basé sur le langage de balisage XML. Il répond parfaitement à des besoins graphiques légers, qu'ils soient statiques, dynamiques ou interactifs. Les formats propriétaires JPEG est un format propriétaire qui peut réstreindre sans utilisation, il est utiliser pour la photographie, c'est un format d'image matricièlle et qui risque de perdre sa qualité au cas d'une compréssion. 2.1.6 Propriétés des images Lignage phénomène d'altérnance des lignes claires (ou sombre) de même direction et qui tranchent avec le reste de l'image. Constrate qualité de la dynamique des intensités de l'image. Bruit signale parasite dont la distribution des images est aléatoire et la plupart du temps est inconnue. Déformation géométrique défauts dus à la diérence d'axe entre le capteur d'acquisition et le centre de la scène obsérvée. Texture répartition statistique ou géométrique des intensités dans l'image. Contour limite entre deux ou un groupe de pixels dont la diérence de niveau de gris(couleur) est signicative. Region groupe de pixels présentant des caractèristiques similaires(intensité, mouvements). Objet région entièrement délimitée par un contour, possèdent une indépendance dans l'image. 12
  • 21. 2.1.7 Traitement d'image Le traitement d'image consiste à améliorer le contenu d'une image pour en extraire de l'information : par exemple identier une séquence de texte [OCR - Optical Character Recognition] ou un chromosome, éviter un obstacle (robotique), détecter des zones sou- mises à l'érosion (téléétection). En bref traiter une image, c'est lui ajouter du sens par un procédé automatique. Pour cela il peut être nécessaire de supprimer les facteurs de bruit, de rehausser les si- gnaux utiles contribuant à une meilleure lisibilité. Nous examinerons donc diérentes transformations. Certaines aectent tout (ou partie) des pixels de l'image sans qu'inter- vienne la notion de position spatiale des pixels, ce sont des transformations globales. Les opérations entre images permettent de traiter des séries d'images relatives à la même scène. Enn des opérations plus élaborées, dites de convolution, portent sur plusieurs pixels voisins et ont donc un caractère local. 2.2 Traitement des vidéos 2.2.1 Dénition de la vidéo La vidéo numérique consiste à acher une succession d'images numériques. Puisqu'il s'agit d'images numériques achées à une certaine cadence, il est possible de connaître le débit nécessaire pour l'achage d'une vidéo, c'est-à-dire le nombre d'octets achés (ou transférés) par unité de temps. Le débit nécessaire pour acher une vidéo (en octets par seconde) est égal à la taille d'une image que multiplie le nombre d'images par seconde. 2.2.2 Traitement des vidéos Il s'agit d'une branche dérivée du traitement d'images, qui réutilise beaucoup de ses concepts ; bien qu'il soit courant de traiter une vidéo en traitant en réalité chacune de ses images (ou frames) indépendamment (comme c'est par exemple le cas pour les corrections de colorimétrie, ou certains eets spéciaux comme l'incrustation), la théorie du traitement vidéo consiste a priori à tirer également parti de la relation qui lie chacune des images à ses précédentes et ses suivantes, par évolution de mouvements ou autres modications graduelles dans le temps. 13
  • 22. Chapitre 3 Réalisation 3.1 Environnement de développement 3.1.1 Environnement matériel L'équipement mis à notre disposition pour la réalisation du projet se compose de deux ordinateurs portables dont la conguration pour les deux ordinateurs est la suivante : Processeur : Intel Core(TM) i7-4700MQ. 8 GO de mémoire vive. 1T d'espace de disque. 3.1.2 Environnement logiciel Aprés avoir présenté les moyens matériels mis à notre disposition dans le cadre de réalisation de ce projet, nous abordons dans cette partie les moyens logiciels utilisés. Les logiciels utilisés pour la réalisation de ce projet sont : Sublime texte qui est un éditeur de texte générique codé en C++ et Python, il prend en charge un certain nombre de langages de programmation diérents et assure la coloration syntaxique pour : Action Script, C, C++, java, Python, HTML, PHP, JavaScript, SQL, etc. Netbeans est un IDE qui supporte une large variété de langages de programmation et d'outils de collaboration, il propose des fonctions de complétement, de contrôles syntaxiques et sémantiques, d'avertissements et de conseils, de reprises de code ( refactoring : renommage, changement des méthodes, gestion des classes ...), de sauvegarde et reprise. Il supporte principalement les langages suivants : Java, Groovy, PHP, JavaScript, Python, XML, HTML et bien d'autres langages de programmation. 3.1.3 Langages utilisés Java est un langage de programmation qui reprend en grande partie la syntaxe du langage C++, très utilisé par les informaticiens. Néanmoins, Java a été épuré des concepts les plus subtils du C++ et à la fois les plus déroutants, tels que les pointeurs et références, ou l'héritage multiple contourné par l'implémentation des interfaces. Les concepteurs 14
  • 23. ont privilégié l'approche orientée objet de sorte qu'en Java, tout est objet à l'exception des types primitifs (nombres entiers, nombres à virgule ottante, etc.). 3.1.4 OpenCv OpenCV (pour Open Computer Vision) est une bibliothèque graphique libre, initia- lement développée par Intel, spécialisée dans le traitement d'images en temps réel. Elle met à disposition de nombreuses fonctionnalités très diversiées permettant de créer des programmes partant des données brutes pour aller jusqu'à la création d'interfaces graphiques basiques. Elle propose la plupart des opérations classiques en traitement bas niveau des images : Lecture, écriture et achage d'une image. Calcul de l'histogramme des niveaux de gris ou d'histogrammes couleurs. Lissage, ltrage. segmentation (composantes connexes, GrabCut). Morphologie mathématique. 3.2 Implémentation et déploiment 3.2.1 Déscription du projet Dans le présent chapitre, nous allons vous décrire le fonctionnement de notre application java de détection de visage. En premier lieu, on va décrire le cas oú il y a pas de visage á detecter dans la caméra, donc le dossier de stockage des données sera bien évidemment vide. Voila ci-dessous un essai pour une détection mais sans aucun visage : [h] Figure 3.2.1 sans visage 15
  • 24. Ci-dessous, le dossier de stockage qui est bien-sûr vide parce que il y avait pas de visage à capturer. Figure 3.2.2 dossier vide En deuxième lieu, on va traiter le cas où la caméra va détecter un seul visage, en eet, tant que le visage est toujours présent dans la caméra, elle va le capturer avec tous ses mouvements et le stocker sous forme des images en format JPG et avec un titre contenant la date et l'heure du capture pour des raisons de sécurité. Ci-dessous un essai pour une détection d'un seul visage : [h] 16
  • 25. Figure 3.2.3 un seul visage 1 Ci-dessous, le dossier de stockage qui contient les images capturées à un instant (x) : 17
  • 26. Figure 3.2.4 dossier de stockage des captures 1 Finalement, on pose le cas où la caméra va détecter plusieurs visages en même temps. Dans ce cas là, la caméra va capturer les visages détectés, elle va commencer par le premier à détecter et faire la même procédure de stockage. Ci-dessous un exemple du cas du plusieurs visages : 18
  • 27. Figure 3.2.5 plusieurs visages 2 Ci-dessous, le dossier de stockage qui contient les images des diérents visages capturés à un instant (x) : 19
  • 28. Figure 3.2.6 dossier de stockage des captures 2 20
  • 29. Conclusion Ces dernières années,les applications java et la téléphonie mobile a été sans doute le secteur le plus dynamique, le plus rentable et le plus innovant de toute l'Industrie des applications. Ce travail a été très bénéque et il était l'occasion d'appliquer dans un cadre professionnel les connaissances acquises durant notre formation à la Faculté des Sciences Rabat. En eet, il mêlait ensemble plusieurs disciplines et nous a permis de mettre à prot les études des semestres précédents et de parfaire nos connaissances dans autres matières . Dans ce travail, on s'est intéressé à deux des problèmes majeurs d'analyse de mouvement dans une séquence d'images ; la détection et le suivi d'objets en mouvement dans des scènes simples (caméra xe, fond statique). Enn, les fonctionnalités oertes par cette application sont immenses, notamment en matière d'aide à la detction des visages. Pour conclure, il existe toujours des améliorations à envisager pour rendre une application encore plus performante. 21
  • 30. . 22
  • 32. Bibliographie [1] http ://thesis.univ-biskra.dz/944/4/Chap [2] http ://aeip6.net/annales/ [3] http ://wikipedia.com/ [4] https ://cdn.uclouvain.be/public/Exports/ [5] https ://openclassroom.com/ [6] http ://opencv.org/ 24
  • 33. Annexe Réalisation d'une application mobile La programmation mobile Les applications mobiles sont apparues dans les années 1990, elles sont liées aux déve- loppements d'Internet et des télécommunications, des réseaux sans ls et des technologies agents, et à l'apparition et la démocratisation des terminaux mobiles : smartphones, ta- blettes tactiles ... Chacun des OS mobile, dispose d'un langage de programmation à lui propre, permettant le développement de ses applications. Les applications pour les terminaux Apple sont dé- veloppées dans un langage principalement dédié à ces applications mobiles, l'Objective C. Le système Android utilise, quant à lui, un langage universel, le Java5, langage pouvant être utilisé pour les ordinateurs, le développement Web (JEE). Outil de réalisation Android Studio est un environnement de développement pour développer des appli- cations Android. Il est basé sur IntelliJ IDEA. Il permet principalement d'éditer les chiers Java et les chiers de conguration d'une application Android. Il propose entre autres des outils pour gérer le développement d'applications multilingues et permet de visualiser la mise en page des écrans sur des écrans de résolutions variées simultanément. Présentation de l'application Notre application bonus va assurer la sécurité au niveau de l'authetication de visage d'un utilisateur, et qui va être développér par Android. Conformément à ce que nous avons spécie nous n'abordons que la détection et la recon- naissance du visage humain par accession dans des établissements. Nous nous arrêtons qu'à capturer les visages et les stocker dans l'émulateur mais cette action est possible à une seule condition : il faut que le visage capturé ne soit déja capturé une autre fois, donc ne puisse pas exister dans la liste des visages prédénis (dans la base de données des visages). 25
  • 34. Réalisation Vu le sujet de notre projet de n d'etude, nous avons pensé vivement à réaliser une application mobile qui sert a traiter les images, et vu le temps qui nous a pas aidé à naliser notre application, nous opterons pour une application mobile qui est vouée à évoluer. Interfaces Ci-dessous, l'interface de l'application et qui contient plusieurs bouttons, si l'utili- sateur clique sur le boutton UPDATE TRAINING, l'utilisateur va se rediriger vers la caméra pour prendre une photo. si l'utilisateur est le même en base de donné, un message de réussite d'athentication va s'acher sur l'écran, si non un message d'erreur d'authentication va s'acher. Figure 3.2.7 La une En plus de cette fonctionnalitée, on a ajouté une autre qui fait le changement des eets de la capture comme présenté ci-dessus. 26
  • 35. Figure 3.2.8 Eets 27