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
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
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
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
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