Vous êtes sur la page 1sur 89

Ministère de l'Enseignement Supérieur, de la Recherche Scientifique et de la

Direction Générale des Etudes Technologiques Institut Supérieur des Etudes


Technologiques de Rades
Département Technologies de l’Informatique

Rapport de
PROJET DE FIN D’ETUDES
En vue de l’obtention de : Licence Appliquée en Systèmes
Embarqués Et Mobiles

Contrôle d'accès intelligent


Effectué à :
Office de l'aviation civile et des aéroports
(OACA)

Elaboré par :
Houssine ben arouss
&
Baha eddine dridi

Encadrés par :
Mr SAADAOUI Abdelkader (ISET)
Mr SAADA Houssem (OACA)

Année universitaire : 2022-2023


Dédicaces

À nos chers parents nous voulions prendre un moment pour vous remercier du fond du cœur pour
votre soutien inébranlable tout au long de notre projet de fin d'études. Votre soutien indéfectible,
vos encouragements constants et votre confiance en nous ont été d'une valeur inestimable.

Nous voulons exprimer notre gratitude pour votre amour, votre patience et votre compréhension
pendant les moments stressants et exigeants de notre rapport de projet. Votre soutien indéfectible
nous a donné la force de persévérer et de donner le meilleur de nous-mêmes.

Nous dédions ce travail à tous ceux qui ont cru en nous et nous à donner un mot d’espoir et une
main de soutien.

Votre présence, vos mots d'encouragement et votre motivation ont été une véritable source
d'inspiration pour nous. Vous avez cru en nous quand nous doutions de nous-mêmes, vous nous
avez poussés à donner le meilleur de nous-mêmes et vous nous avez soutenus à chaque étape du
chemin.

De tout cœur, nous vous dédions notre rapport de projet de fin d'études en signe de reconnaissance
et de gratitude pour tout ce que vous avez fait pour nous. Merci encore pour votre encouragement
continu et votre amour inconditionnel.

Avec tout notre amour et notre reconnaissance.

Baha-Houssine

1
Remerciements

Au terme de notre projet de fin d'études, nous tenons à exprimer notre respect et nos sincères
remerciements à Monsieur SAADA Houssem, Chef de service chez office de l'aviation civile et
des aéroports (OACA) en Tunisie, pour son suivi, son soutien, ses précieux conseils et sa
disponibilité tout au long de notre stage.

Nous souhaitons également exprimer notre gratitude à notre cher professeur et encadrant,
Monsieur SAADAOUI Abdelkader, de l'Institut Supérieur des Etudes Technologiques de Radès,
pour son encadrement et son soutien constant durant toute la période du stage.

Nous n'oublions pas de remercier tous les enseignants et le personnel de l'Institut Supérieur des
Etudes Technologiques de Rades, notamment nos enseignants du département Technologies de
l’Informatique , pour leurs aide et leurs précieux conseils.

Nous tenons également à adresser notre reconnaissance à tous ceux qui nous ont apporté leur
soutien pendant cette période afin de nous permettre de réaliser notre projet dans des conditions
favorables.

Enfin, nous sommes pleinement conscients de l'honneur que les membres du jury nous ont fait en
acceptant d'examiner notre travail, et nous leur exprimons notre profonde gratitude.

Nos remerciements vont à toutes les personnes qui ont contribué de près ou de loin à la réussite de
ce projet de stage. Votre soutien et vos encouragements ont été essentiels tout au long de ce
parcours. Merci infiniment pour votre précieuse aide.

2
Table des matières

Introduction générale................................................................................................................................. 10
CHAPITRE 1 : ÉTUDE PRÉLIMINAIRE ....................................................................................................... 11
I. Introduction ................................................................................................................................ 12
II. Présentation de l’organisme d’accueil ................................................................................... 12
1. Les missions de l’OACA ........................................................................................................... 12
1.1 Sur le plan de l’aviation civile ......................................................................................... 12
1.2 Sur le plan de l’exploitation et du développement des aéroports....................................... 13
1.3 Sur le plan commercial ......................................................................................................... 13
1.4 Sur le plan des études et de l’environnement ..................................................................... 13
2. L’organigramme de l’OACA .................................................................................................... 14
III. Présentation du projet ........................................................................................................... 14
1. Objectifs et définition du projet ............................................................................................. 15
2. Enveloppe budgétaire ............................................................................................................ 16
3. Délais ...................................................................................................................................... 16
4. Planning du projet .................................................................................................................. 16
IV. La Reconnaissance Faciale ...................................................................................................... 17
1. Introduction ............................................................................................................................ 17
2. Les techniques de la reconnaissance faciale .......................................................................... 17
2.1 Les approches classiques ................................................................................................ 18
A. Méthodes globales : ....................................................................................................... 19
B. Méthodes locales ........................................................................................................... 20
C. Méthodes hybrides......................................................................................................... 22
2.2 Les approches utilisant l'intelligence artificielle................................................................... 22
2.3 Les quatre intelligences artificielles de la reconnaissance faciale ....................................... 22
A. Détection du visage ........................................................................................................ 23
B. Découpage et déformation ............................................................................................ 23
C. Analyse de visage ........................................................................................................... 24
D. La Reconnaissance Faciale .............................................................................................. 25
3. Reconnaissance faciale dans Raspberry Pi ............................................................................. 25
V. Conclusion .................................................................................................................................. 26
CHAPITRE 2 : ÉTUDE THÉORIQUE ........................................................................................................... 27
I. Introduction ................................................................................................................................ 28
II. Internet des Objet (IOT) ......................................................................................................... 28

3
III. Matériels utilisés .................................................................................................................... 29
1. Etude de la carte Raspberry pi3 ............................................................................................. 29
1.1 Origine du nom « Raspberry Pi 3 » ....................................................................................... 29
1.2 Lancement de la Raspberry Pi .............................................................................................. 30
1.3 Equipement essentiel ........................................................................................................... 30
1.4 Equipement divers................................................................................................................ 30
1.5 Tour d’horizon du Raspberry Pi 3 ......................................................................................... 31
1.6 Les spécifications Entrées / Sorties ...................................................................................... 31
1.7 Les Ports GPIO ...................................................................................................................... 32
1.8 Les différentes utilisations du Raspberry Pi 3 ...................................................................... 32
1.9 Les avantages et les inconvénients de Raspberry Pi 3 ......................................................... 34
2. Camera Raspberry .................................................................................................................. 34
3. Module de relais ..................................................................................................................... 35
4. Écran LCD ................................................................................................................................ 36
5. Serrure électrique................................................................................................................... 37
6. Configuration de la carte Raspberry Pi 3 en mode graphiques .............................................. 37
6.1 Matériels nécessaires ........................................................................................................... 37
6.2 Réhabilitation de la carte SD ................................................................................................ 38
6.3 Installer Raspberry Pi Imager ............................................................................................... 39
7. Configuration Wi-Fi de la carte Raspberry Pi ......................................................................... 42
8. VNC Viewer ............................................................................................................................. 42
9. IDE Raspberry Pi 3 .................................................................................................................. 43
IV. Conclusion .............................................................................................................................. 44
CHAPITRE 3 : SPÉCIFICATIONS ................................................................................................................ 45
I. Introduction ................................................................................................................................ 46
II. Spécification des besoins ........................................................................................................... 46
1. Description fonctionnelle des besoins ................................................................................... 46
2. Description non fonctionnelle des besoins ............................................................................ 47
III. Conception ............................................................................................................................. 48
1. Langage UML .......................................................................................................................... 48
2. Identification des acteurs et des cas d’utilisation .................................................................. 49
a. Diagramme de cas d’utilisation .................................................................................. 49
b. Diagramme de séquence ............................................................................................ 51
IV. L’architecture du système ...................................................................................................... 63
V. Conclusion .................................................................................................................................. 63
CHAPITRE 4 : RÉALISATION..................................................................................................................... 64

4
I. Introduction ................................................................................................................................ 65
II. Infrastructure et outils de développement ................................................................................ 65
1. L’environnement de développement ..................................................................................... 65
2. Les langages utilisés................................................................................................................ 66
3. Environnement de gestion du dépôt de données .................................................................. 67
4. Les bibliothèques utilisées...................................................................................................... 68
5. Plate-forme et section mobile ................................................................................................ 71
5.1 Partie mobile .................................................................................................................. 71
5.2 Partie web....................................................................................................................... 78

5
Table des figures
Figure 1: Logo OACA................................................................................................................................ 12
Figure 2: Organigramme de l'OACA ......................................................................................................... 14
Figure 3: Planning du projet ....................................................................................................................... 16
Figure 4: Les techniques de la reconnaissance faciale ............................................................................... 18
Figure 5: Méthodes locales......................................................................................................................... 20
Figure 6: les 4 IA de la reconnaissance faciale .......................................................................................... 22
Figure 7: Découpage et déformation .......................................................................................................... 24
Figure 8: Analyse de visage ....................................................................................................................... 25
Figure 9: Écosystème de l'IoT .................................................................................................................... 28
Figure 10: Raspberry Pi 3 ........................................................................................................................... 29
Figure 11: Les parties d'un Raspberry pi 3 ................................................................................................. 31
Figure 12: Les ports GPIO ......................................................................................................................... 32
Figure 13: Caméra Raspberry..................................................................................................................... 35
Figure 14: Relais ........................................................................................................................................ 35
Figure 15: Écran LCD ................................................................................................................................ 36
Figure 16: Serrure électrique ...................................................................................................................... 37
Figure 17: Formatter carte sd 1 .................................................................................................................. 38
Figure 18: Formatter carte sd 2 .................................................................................................................. 38
Figure 19: Installation du Raspberry Pi Imager.......................................................................................... 39
Figure 20: Choix du système ...................................................................................................................... 40
Figure 21: Sélection de carte sd.................................................................................................................. 40
Figure 22: Écriture des données ................................................................................................................. 41
Figure 23: Lancement d'écriture ................................................................................................................. 41
Figure 24: Wi-Fi ......................................................................................................................................... 42
Figure 25: VNC Viewer ............................................................................................................................. 42
Figure 26: IDE Raspberry Pi 3 ................................................................................................................... 43
Figure 27: Fenêtre d'IDE ............................................................................................................................ 43
Figure 28: Cas d'utilisation admin .............................................................................................................. 50
Figure 29: Cas d'utilisation utilisateur ........................................................................................................ 51
Figure 30: Interface Authentification admin ............................................................................................. 52
Figure 31: Interface Authentification utilisateur ........................................................................................ 53
Figure 32: Interface Inscription Admin ...................................................................................................... 54
Figure 33: Interface Inscription Utilisateur ................................................................................................ 55
Figure 34: Interface Historique d’accès utilisateur .................................................................................... 56
Figure 35: Interface utilisateurs autorisés (Admin) .................................................................................... 57
Figure 36: Interface Ajouter un nouvel utilisateur ..................................................................................... 58
Figure 37: Interface Autorisations/Blocages .............................................................................................. 59
Figure 38: Interface Historique d'accès (Admin) ....................................................................................... 60
Figure 39: Interface Historique d'accès des inconnus ................................................................................ 61
Figure 40: Interface liste des utilisateurs .................................................................................................... 62
Figure 41: Architecture du système............................................................................................................ 63
Figure 42: PhpMyAdmin............................................................................................................................ 67
Figure 43: XAMPP..................................................................................................................................... 68
Figure 44: Bibliothèque GPIO ................................................................................................................... 68
Figure 45: Bibliothèque OpenCV............................................................................................................... 69
Figure 46: Bibliothèque face_recognition .................................................................................................. 70

6
Figure 47: Page Welcome .......................................................................................................................... 71
Figure 48: Page login admin ...................................................................................................................... 72
Figure 49: Page inscription admin.............................................................................................................. 72
Figure 50: Page login utilisateur ............................................................................................................. 73
Figure 51: Page inscription utilisateur ....................................................................................................... 73
Figure 52: Page historique d'accès (utilisateur) .......................................................................................... 73
Figure 53: Tableau de bord ........................................................................................................................ 74
Figure 54: Page utilisateurs autorisés ......................................................................................................... 74
Figure 55: Page ajouter nouvel utilisateur .................................................................................................. 75
Figure 56: Page utilisateurs....................................................................................................................... 75
Figure 57: Page autorisations ..................................................................................................................... 76
Figure 58: Page historique d'accès (admin) ................................................................................................ 76
Figure 59: Voir les informations ................................................................................................................ 77
Figure 60: Page historique d'accès des inconnus ........................................................................................ 77
Figure 61: Interface login (web) ................................................................................................................. 78
Figure 62: Interface inscription (web) ........................................................................................................ 78
Figure 63: Interface utilisateurs autorisés(web) ......................................................................................... 79
Figure 64: Interface ajouter nouvel utilisateurs(web)................................................................................. 79
Figure 65: Interface admines ...................................................................................................................... 80
Figure 66: Interface utilisateurs (web) ....................................................................................................... 80
Figure 67: Interface autorisations/blocages (web)...................................................................................... 81
Figure 68: Interface historique d'accès (web) ............................................................................................. 81
Figure 69: Interface voir les informations (web) ........................................................................................ 82
Figure 70: Historique d'accès Baha ............................................................................................................ 82
Figure 71: Interface historique accès des inconnus(web) ........................................................................... 83

7
Liste des tableaux
Tableau 1: Budget ...................................................................................................................................... 16
Tableau 2: Reconnaissance faciale............................................................................................................ 17
Tableau 3: Les méthodes locales............................................................................................................... 21
Tableau 4: Avantages/inconvénients......................................................................................................... 34
Tableau 5: Les acteurs du projet ............................................................................................................... 49
Tableau 6: Administrateur ........................................................................................................................ 50
Tableau 7: Utilisateur ................................................................................................................................ 51
Tableau 8: Diagramme de séquence authentification admin .................................................................... 52
Tableau 9: Diagramme de séquence authentification utilisateur .............................................................. 53
Tableau 10: Diagramme de séquence inscription admin .......................................................................... 54
Tableau 11: Diagramme de séquence inscription utilisateur .................................................................... 55
Tableau 12: Diagramme de séquence d'historique d'accès (utilisateur) .................................................... 56
Tableau 13: Diagramme de séquence consulter les utilisateurs ................................................................ 57
Tableau 14: Diagramme de séquence d'ajouter un nouvel utilisateur ....................................................... 58
Tableau 15: Diagramme de séquence d'autorisations/blocages ................................................................ 59
Tableau 16: Diagramme de séquence de consulter l'historique d'accès (admin) ...................................... 60
Tableau 17: Diagramme de séquence d'historique d'accès des inconnus .................................................. 61
Tableau 18: Diagramme de séquence de consulter la liste des utilisateurs ............................................... 62
Tableau 19: les logiciels utilisés ............................................................................................................... 65
Tableau 20: Les langages de programmation............................................................................................ 66

8
9
INTRODUCTION GENERALE

Introduction générale

Les systèmes de reconnaissance faciale sont devenus une méthode couramment utilisée pour
l'identification humaine en raison de leur capacité à mesurer les points du visage et à identifier
les individus de manière discrète. Ils trouvent de nombreuses applications dans la surveillance
de maisons, de lieux de travail et de campus, notamment pour assurer des fonctions de contrôle,
de sécurité et de surveillance. Cependant, les systèmes de reconnaissance faciale existants
reposent souvent sur des points clés et des repères faciaux ou des images faciales pour la
reconnaissance, ce qui peut poser des défis en termes de fiabilité et d'efficacité.

Dans ce contexte, notre projet de fin d'études s'est concentré sur l'utilisation des systèmes de
reconnaissance faciale comme outil d'identification pour déclencher l'ouverture de portes, dans
le but de sécuriser l'accès à des zones sensibles. Pour cela, nous avons mis en place un système
où le visage de chaque utilisateur est préalablement enregistré sur un appareil, avec un
identifiant unique associé à chaque visage. Lorsqu'une personne présente son visage à l'appareil,
l'identifiant enregistré est transmis à un logiciel de contrôle d'accès. Si l'identifiant est reconnu,
la porte s'ouvre, sinon elle reste fermée, empêchant ainsi l'accès aux personnes non autorisées.

Pour implémenter ce système, nous avons utilisé une carte Raspberry Pi 3 sous le système
d'exploitation Linux Raspbian, en exploitant les ressources gratuites et open source disponible,
notamment le langage de programmation Python, pour créer un serveur local et implémenter la
commande d'ouverture/fermeture de la porte via un relais. Cependant, il convient de noter que
ce système peut présenter un certain délai de communication entre le serveur contenant
l'algorithme de commande et l'application de la porte, ce qui le classe comme un système à
retard. Nous aborderons plus en détail ces aspects dans la suite de notre rapport.

10
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

CHAPITRE 1 : ÉTUDE PRÉLIMINAIRE

Sommaire
I. Introduction ........................................................................................................................... 12
II. Présentation de l’organisme d’accueil .............................................................................. 12
1. Les missions de l’OACA....................................................................................................... 12
1.1 Sur le plan de l’aviation civile ..................................................................................... 12
1.2 Sur le plan de l’exploitation et du développement des aéroports .................................. 13
1.3 Sur le plan commercial ..................................................................................................... 13
1.4 Sur le plan des études et de l’environnement ................................................................. 13
2. L’organigramme de l’OACA ................................................................................................ 14
III. Présentation du projet ....................................................................................................... 14
1. Objectifs et définition du projet ......................................................................................... 15
2. Enveloppe budgétaire ........................................................................................................ 16
3. Délais .................................................................................................................................. 16
4. Planning du projet .............................................................................................................. 16
IV. La Reconnaissance Faciale.................................................................................................. 17
1. Introduction........................................................................................................................ 17
2. Les techniques de la reconnaissance faciale ...................................................................... 17
2.1 Les approches classiques............................................................................................ 18
A. Méthodes globales : ................................................................................................... 19
B. Méthodes locales ....................................................................................................... 20
C. Méthodes hybrides .................................................................................................... 22
2.2 Les approches utilisant l'intelligence artificielle .............................................................. 22
2.3 Les quatre intelligences artificielles de la reconnaissance faciale ................................... 22
A. Détection du visage .................................................................................................... 23
B. Découpage et déformation ........................................................................................ 23
C. Analyse de visage ....................................................................................................... 24
D. La Reconnaissance Faciale.......................................................................................... 25
3. Reconnaissance faciale dans Raspberry Pi ......................................................................... 25
V. Conclusion .............................................................................................................................. 26

11
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

I. Introduction
Dans ce chapitre, nous débutons en introduisant l'organisme d'accueil ainsi que le service au
sein duquel nous avons réalisé notre projet de fin d'études. Ensuite, nous exposons le sujet de
notre projet et décrivons la méthodologie que nous avons adoptée pour son élaboration. Enfin,
la dernière partie de ce chapitre sera dédiée à l'étude et au diagnostic de la situation existante.

II. Présentation de l’organisme d’accueil


L’Office de l'Aviation Civile et des Aéroports (OACA) est un établissement public chargé de
la gestion, du développement et de l'exploitation des sept aéroports internationaux de la Tunisie.
Il a remplacé l'OPAT en 1998 et est sous la tutelle du ministère du Transport. L'objectif
principal de l'OACA est d'offrir aux visiteurs un accueil de qualité et de confort irréprochable
en veillant à l'aménagement et à l'équipement de nouvelles plateformes aéroportuaires selon les
zones touristiques stratégiques, ainsi qu'à l'extension de ses aérogares passagères. Les sept
aéroports internationaux de la Tunisie sont l'aéroport de Monastir Habib Bourguiba, Tunis
Carthage, DJerba-Zarzis, Sfax-Thyna, Tozeur-Nafta, 7 Novembre Tabarka et Gafsa-Ksar.

Figure 1: Logo OACA

1. Les missions de l’OACA


L’OACA a plusieurs missions sur le plan : de l’aviation civile, de l’exploitation
et du développement des aéroports, commercial et celui des études et de
l’environnement.

1.1 Sur le plan de l’aviation civile


• Le contrôle régional et local de : la navigation aérienne dans l’espace
aérien tunisien, l’atterrissage, le décollage, le stationnement et le transit
des aéronefs (les avions).

12
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

• La réalisation des opérations de contrôle prévues par la législation et la


réglementation en vigueur.
• La participation à l’élaboration et à l’exécution des plans de recherche et
de sauvetage.
• La délivrance de tous les documents requis pour le personnel
aéronautique, les aéronefs et la navigation aérienne conformément à la
législation en vigueur.

1.2 Sur le plan de l’exploitation et du développement des aéroports


• L’aménagement, l’exploitation, l’entretien et le développement des
aéroports internationaux et de leurs équipements.
• L’embarquement, le débarquement, le transit et l’acheminement à terre
des voyageurs, des marchandises et du courrier transportés par air.
• La fourniture de diverses facilités aux usagers et concessionnaires des
aéroports tels que l’information, l’accueil, les chariots à bagages, la
propreté des zones vertes...et des prestations industrielles telles que l’eau,
l’électricité, le téléphone, et la climatisation.

1.3 Sur le plan commercial


• La concession des installations, des surfaces, des terrains et locaux
à usage commercial.
• La location d’espaces publicitaires dans les zones publiques et sous
douane au sein des aéroports.

1.4 Sur le plan des études et de l’environnement

• L’élaboration et la réalisation des études techniques et économiques


d’aménagement et d’extension des infrastructures aéroportuaires.
• La maintenance, l’entretien et le renouvellement des installations.
• L’amélioration des conditions de travail.
• L’amélioration de l’environnement interne et externe des aéroports et la
recherche de solutions aux problèmes acoustiques.

13
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

2. L’organigramme de l’OACA

Figure 2: Organigramme de l'OACA

III. Présentation du projet


Ce travail définit la problématique des méthodes de contrôle d'accès traditionnelles telles que
l'utilisation de badges et de codes PIN peuvent être contournées, ce qui peut entraîner des
risques pour la sécurité. En outre, ces méthodes peuvent être fastidieuses et entraîner des temps
d'attente élevés pour les employés et les visiteurs. On aborde ce projet du point de vue de
l’innovation pour améliorer la sécurité et la commodité de l'Office de l'aviation civile et des
aéroports à travers une solution IOT. Donc, notre mission est de fournir une solution fiable,
durable et évolutive pour répondre à cette problématique réelle, en prenant en compte les

14
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

besoins spécifiques de l'Office de l'aviation civile et des aéroports, et en utilisant les


technologies de l'IoT pour garantir une intégration harmonieuse avec l'infrastructure existante.

1. Objectifs et définition du projet

La mise en place d'une solution innovante de contrôle d'accès par reconnaissance faciale pour
l'Office de l'aviation civile et des aéroports est une étape importante pour répondre aux besoins
de sécurité et de commodité des employés et des visiteurs. Les méthodes de contrôle d'accès
traditionnelles peuvent présenter des failles de sécurité et des inconvénients pour les
utilisateurs, tels que des temps d'attente prolongés et des risques de fraude ou d'usurpation
d'identité. En optant pour une solution de reconnaissance faciale, l'accès aux zones sensibles
devient plus facile et plus rapide, tout en garantissant un niveau de sécurité élevé grâce à
l'authentification biométrique. Notre solution permet également de réduire les risques de fraude
et d'usurpation d'identité, contribuant ainsi à renforcer la confiance dans le système de contrôle
d'accès. On utilise une caméra et une technologie avancée de reconnaissance faciale pour
identifier les personnes autorisées à accéder aux zones sensibles. Le système fonctionne de
manière simple : les employés et les visiteurs s'enregistrent au préalable dans la base de données
du système en fournissant une photo de leur visage. Lorsqu'ils se présentent devant la caméra
de reconnaissance faciale, le système vérifie leur identité en temps réel et leur accorde ou non
l'accès. La solution permet également la gestion des autorisations d'accès selon les profils des
employés et des visiteurs. Les personnes autorisées peuvent accéder à des zones spécifiques en
fonction de leur rôle et de leur niveau d'autorisation. En cas de problème ou d'urgence, le
système est équipé d'une fonction d'alerte pour permettre une intervention rapide et efficace des
services de sécurité.

15
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

2. Enveloppe budgétaire
Le tableau suivant présente l’enveloppe budgétaire de notre travail.

Tableau 1: Budget
Composants d’électroniques Caractéristiques Prix unitaire

Carte Raspberry pi 3 Mini-ordinateur polyvalent 210,000 TND

Caméra Raspberry pi Compacte et polyvalente. 45,000 TND

Relais Contrôlable et commutable. 15,000 TND

Serrure électrique Automatisée. 45,000 TND

Pile rechargeable Pour l’alimentation 16,000 TND

3. Délais
Ce projet doit être réalisé durant une période ne dépassant pas les 4 mois.

4. Planning du projet
Afin d'assurer le bon déroulement de cette phase, un planning prévisionnel a été mis en place.
La phase de recherche a été privilégiée car elle joue un rôle crucial dans l'établissement de l'état
actuel du projet

Figure 3: Planning du projet

16
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

IV. La Reconnaissance Faciale

1. Introduction
La reconnaissance automatique des visages est un défi pour les machines malgré la facilité avec
laquelle les humains peuvent identifier une personne à partir de son visage. Les visages sont
considérés comme des données biométriques car ils permettent d'identifier une personne en
fonction de ses caractéristiques physiologiques ou comportementales. Les données
biométriques sont devenues essentielles pour résoudre les problèmes d'identification et de
sécurité humaine. Comparées aux méthodes traditionnelles de sécurité, telles que les mots de
passe et les codes PIN, les méthodes biométriques ont plusieurs avantages. Tout d'abord, les
données biométriques sont personnelles et ne peuvent être utilisées que par des utilisateurs
autorisés. De plus, ces méthodes sont pratiques car elles ne nécessitent rien à porter ou à retenir.
Enfin, la technologie biométrique est de plus en plus précise et abordable. Les données faciales
et vocales sont des exemples de caractéristiques physiologiques et comportementales utilisées
pour la biométrie. Les données faciales sont particulièrement utiles car elles sont naturelles et
faciles à obtenir, et elles sont souvent utilisées par les humains pour reconnaître d'autres
personnes dans leur vie quotidienne.

Tableau 2: Reconnaissance faciale


Biométries physiologiques ADN, visage, empreinte, forme de la main,
rétine, odeur, voix
Biométries comportementales Démarche, visage, voix, écriture, signature

2. Les techniques de la reconnaissance faciale


Au cours des trente dernières années, de nombreuses méthodes ont été proposées pour la
reconnaissance faciale automatique, un défi si important qu'il a motivé de nombreuses
recherches dans diverses disciplines, telles que la psychologie, la neurologie, les
mathématiques, la physique et l'informatique, y compris la reconnaissance de formes, les
réseaux de neurones et la vision par ordinateur. Cela explique pourquoi la littérature sur la
reconnaissance faciale est riche et variée.

Les systèmes de reconnaissance faciale sont généralement classés en fonction de la recherche


psychologique sur la manière dont les êtres humains utilisent les traits du visage pour identifier

17
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

les autres. Dans cette perspective, on peut distinguer trois catégories de méthodes : les méthodes
globales, qui traitent le visage dans son ensemble, les méthodes locales, qui se concentrent sur
des caractéristiques spécifiques du visage, et les méthodes hybrides qui combinent les deux
approches.

Figure 4: Les techniques de la reconnaissance faciale

2.1 Les approches classiques


Ces méthodes consistent à représenter une image de visage sous la forme d'un seul vecteur de
grande taille qui contient les niveaux de gris de tous les pixels du visage, ce qui est appelé «
description basée sur l'aspect général ». Cette méthode offre deux avantages. Tout d'abord, elle
préserve implicitement toutes les informations de texture et de forme qui permettent de
distinguer les visages. Ensuite, elle peut tenir compte de la structure globale et de l'organisation
du visage. Cependant, son principal inconvénient est qu'elle nécessite un grand espace d'image,
ce qui rend la classification très difficile. Pour résoudre ce problème, des techniques de
réduction de dimensionnalité peuvent être utilisées. L'une des techniques les plus courantes de
reconnaissance faciale est la méthode de nettoyage de visage basée sur l'analyse en composantes
principales (ACP).

18
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

A. Méthodes globales :

Le principe de ces méthodes est d'exprimer une image de visage à travers un seul vecteur
de grande taille en cascadant les niveaux de gris de tous les pixels du visage. Cette forme de
représentation est appelée « description basée sur l'apparence générale » et présente deux
avantages. Premièrement, il conserve implicitement toutes les informations de texture et de
forme qui aident à distinguer les visages. Deuxièmement, il peut prendre en compte la
structure globale et l'organisation du visage. Cependant, son principal inconvénient est que
l'espace image requis est important, ce qui rend la classification très difficile. Afin de traiter
le problème des données de grande taille, des techniques de réduction de dimensionnalité
peuvent être utilisées. L'une des techniques les plus courantes de reconnaissance faciale est
la description du nettoyage du visage basé sur l'analyse en composantes principales (ACP).

• Analyse en Composantes Principales (ACP) :

La méthode de l'ACP est une technique de réduction de dimensionnalité qui permet de


représenter une image de visage par un vecteur de grande taille. Le processus commence par la
création d'un ensemble d'images de visage échantillons. Ensuite, la méthode consiste à trouver
les principaux composants de ces visages, en déterminant les vecteurs propres de la matrice de
covariance formée par toutes les images d'exemple. Chaque image faciale est ensuite convertie
en un vecteur qui correspond à l'intensité lumineuse de chaque pixel. Ensuite, chaque face
d'exemple peut être décrite par une combinaison linéaire de ces vecteurs de caractéristiques.
Cette méthode est populaire car elle permet de conserver les informations de texture et de forme
des visages, tout en prenant en compte la structure globale et l'organisation du visage.

• Analyse Discriminante Linéaire (ADL) :

La méthode de l'ADL est une technique de classification qui permet de trouver la direction de
projection la plus distinctive dans l'espace propre pour maximiser le rapport de changement
interpersonnel et interpersonnel. L'objectif de la plupart des algorithmes basés sur l'ADL est de
maximiser la différence entre les classes, c'est-à-dire d'optimiser la séparabilité de classe. Cette
méthode peut être utilisée pour la reconnaissance faciale en combinant l'ADL avec l'ACP pour
maximiser la séparabilité de classe tout en conservant les informations de texture et de forme
des visages. L'algorithme de Fisherfaces est une méthode populaire qui utilise d'abord l'ACP
pour réduire la dimensionnalité des données, puis l'ADL pour maximiser la séparabilité de
classe. Cette méthode est efficace lorsqu'il y a beaucoup d'images de chaque personne, mais

19
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

moins efficace lorsqu'il n'y a pas beaucoup d'images de chaque personne, car la méthode de
l'ADL est moins performante dans ce cas.

B. Méthodes locales

Les méthodes locales peuvent être divisées en deux catégories, l'une basée sur les points
d'intérêt et l'autre basée sur l'apparence du visage.

• Méthodes locales basées sur les points d’intérêts


Tout d'abord, nous identifions les points d'intérêt, puis nous extrayons les caractéristiques
spécifiques situées sur ces points d'intérêt pour reconnaître les visages humains. Les méthodes
traditionnelles de reconnaissance des visages reposent sur l'extraction de caractéristiques
géométriques, telles que la distance entre les yeux ou la largeur de la tête. Cependant, cela peut
être difficile dans certaines situations, comme lorsqu'il y a des masques ou des changements
d'expression faciale. De plus, se concentrer uniquement sur les caractéristiques géométriques
peut ne pas être suffisant pour représenter de manière précise un visage humain, car d'autres
informations importantes telles que la valeur de gris de l'image sont ignorées.

Deux axes de recherche ont émergé pour pallier à ces limites. Le premier consiste à améliorer
les performances du détecteur de points caractéristiques du visage en utilisant des algorithmes
de corrélation pour détecter la position des yeux et d'autres parties du visage. Malgré ces efforts,
il n'existe pas encore de détecteur de points caractéristiques suffisamment précis. La seconde
direction de recherche se concentre sur une représentation plus fine des informations véhiculées
par les points caractéristiques du visage, en utilisant par exemple des ondelettes de Gabor pour

extraire les caractéristiques des points de détection. Des méthodes telles que Elastic Bundle

Graph Matching (EBGM) ont été proposées pour modéliser la relation entre les points
caractéristiques sur une carte topologique. Ces approches sont plus robustes aux changements
d'éclairage, de distorsion et d'échelle.

Figure 5: Méthodes locales

20
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

• Les méthodes locales basées sur l’apparence du visage


La méthode locale basée sur l'apparence du visage implique la division du visage en petites
régions ou blocs, à partir desquels les caractéristiques locales sont directement extraites.
Martinez a proposé une méthode de probabilité locale pour reconnaître les expressions faciales
partiellement couvertes et les changements d'expression en utilisant une seule image de
référence. Pour ce faire, l'image est d'abord divisée en six régions partielles d'une ellipse et tous
les patchs locaux à la même position de chaque visage sont regroupés dans le sous-espace de
visage, formant ainsi six sous-espaces au total. Dans la phase de reconnaissance, l'image de test
est également divisée en six zones locales et projetée sur l'espace des caractéristiques calculé
précédemment. Les méthodes probabilistes sont ensuite utilisées pour mesurer la similitude
entre une paire d'images. Les résultats des expériences menées sur un ensemble de 2 600 images
montrent que la méthode des probabilités locales peut reconnaître les expressions faciales même
lorsque 1/6 du visage est couvert. Cependant, la méthode est complexe en termes de calcul et
de stockage, ainsi que de génération d'échantillons virtuels (6 615 échantillons par personne),
surtout si la base de référence est grande. Le changement de posture est l'un des problèmes les
plus importants et les plus difficiles de la reconnaissance automatique des visages, en particulier
lorsqu'une seule image de référence est disponible. Pour y remédier, Kanade et Yamada ont
proposé une méthode probabiliste similaire à celle de Moghaddam et Pentland.

Tableau 3: Les méthodes locales

Variations Caractéristiques locales Caractéristiques globales


Petites variations Pas sensible Sensible
Grandes variations Sensible Très sensible
Illuminations Pas sensible Sensible
Expressions Pas sensible Sensible
Pose Sensible Très sensible
Bruit Très sensible Sensible
Occultations Pas sensible Très sensible

Les méthodes décrites précédemment ne prennent pas en considération les relations entre les
différentes caractéristiques du visage, ce qui pourrait pourtant améliorer la précision du système
de reconnaissance. Pour remédier à cela, il est envisageable de créer un modèle géométrique
flexible basé sur les caractéristiques locales, comme c'est le cas avec la méthode EBGM.

21
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

C. Méthodes hybrides

Les méthodes hybrides, également appelées méthodes de fusion, combinent à la fois des
caractéristiques globales et locales pour améliorer les performances de reconnaissance. Pour
optimiser ces méthodes, il est important de choisir les caractéristiques à combiner et de
déterminer la manière de les fusionner afin de tirer parti de leurs avantages et d'éviter leurs
inconvénients. Les caractéristiques locales et globales sont différentes et peuvent fournir des
informations supplémentaires pour les tâches de classification. En outre, il est à noter que les
méthodes locales peuvent être considérées comme des méthodes hybrides car elles incluent
généralement également des informations globales. Par exemple, dans la méthode de
probabilités locales, un nouvel échantillon d'apprentissage est d'abord généré pour chaque
individu en utilisant la méthode globale, puis la méthode locale est utilisée pour la
reconnaissance.

2.2 Les approches utilisant l'intelligence artificielle


L'intelligence artificielle (IA) est un système qui imite l'action humaine en utilisant un
algorithme principal continuellement et de manière fiable. Cette boîte noire peut être considérée
comme magique par certaines personnes non pas parce que son fonctionnement est inconnu,
mais plutôt en raison du grand nombre de calculs qu'elle effectue en temps réel, ce qui est
impossible pour un être humain.

2.3 Les quatre intelligences artificielles de la reconnaissance faciale


La reconnaissance faciale implique l'utilisation de quatre types d'intelligences artificielles,
chacune ayant un rôle spécifique à jouer. Ces intelligences artificielles sont utilisées
successivement pour obtenir des résultats. Voici comment le processus se déroule :

Figure 6: les 4 IA de la reconnaissance faciale

22
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

A. Détection du visage

Ce processus se divise en deux étapes distinctes. Tout d'abord, pour détecter les visages, l'IA
doit surmonter le défi de traiter des données redondantes qui peuvent affecter négativement ses
prédictions. Pour y remédier, nous convertissons l'image originale en une version en noir et
blanc, puis appliquons un algorithme simple pour créer un nouvel histogramme des gradients
directionnels. Pour chaque bloc de 16 × 16 pixels, l'algorithme ne conserve que le sens de
l'évolution des couleurs dans l'image pour créer un vecteur plus ou moins lumineux / long (trait
blanc) selon la structure des blocs. Cette nouvelle image simplifiée facilite la détection des
visages tout en éliminant les bruits inutiles.

La deuxième étape consiste à utiliser l'IA basée sur l'algorithme Haar Cascade pour la détection
de visages. Comme un navire naviguant dans un torrent rempli de récifs, l'IA doit répondre à
une question sur chaque nouvelle ligne de récifs : y a-t-il une ligne blanche ressemblant à un
œil dans la zone verte sélectionnée pour la descente ? Si la réponse est oui, l'IA poursuit sa
descente, sinon, elle revient au début avec une nouvelle zone verte différente. Lorsqu'il y a
plusieurs récifs coralliens sur la même ligne, l'IA répond à plusieurs questions et pondère leurs
réponses. Si un seuil déterminé par l'IA est atteint, elle peut continuer. Par exemple, l'IA se
demande si la zone verte contient un menton, une bouche, des oreilles, etc.

L'IA Haar Cascade est entraînée à l'avance pour trouver les caractéristiques pertinentes pour
détecter les visages, comment les organiser, comment les pondérer, etc. Ainsi, elle peut être
utilisée pour détecter un ou plusieurs visages dans n'importe quelle image. Enfin, l'IA examine
la zone verte restante pour identifier les contours des visages et éliminer les répétitions. Les
intersections et les rencontres sont utilisées pour déterminer les vrais contours de chaque visage
dans l'image.

B. Découpage et déformation

Nous allons procéder à la déformation du visage afin qu'il soit orienté face à la caméra. Cette
étape est nécessaire car dans notre base de données, nous souhaitons conserver des photos du
visage dans une position droite et centrée, ce qui permet de garantir l'équivalence de toutes les
photos. Nous voulons éviter d'identifier les personnes en fonction de la position de leur visage,
car une personne peut être la seule à avoir une photo de profil avec un angle particulier.

Pour atteindre cet objectif, nous devrons déformer légèrement toutes les parties du visage, en
les inclinant légèrement vers le bas et en déformant environ 3/4 du visage. Pour ce faire, notre

23
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

deuxième IA en reconnaissance faciale place 68 points de repère sur le visage, tels que les yeux,
le nez, la bouche, les sourcils et les contours du visage, peu importe l'orientation du visage.

Ensuite, nous utilisons des techniques de distorsion d'image pour déplacer chacun de ces 68
points et les superposer à la position finale souhaitée, ce qui implique la déformation des pixels
environnants. Cette méthode permet d'orienter le visage directement vers l'objectif de la caméra,
centré et droit, même s'il est légèrement déformé. Il est important de souligner que l'algorithme
utilisé pour placer ces marqueurs de reconnaissance faciale est basé sur le Dlib Shape Predictor,
qui est similaire à la Cascade de Haar dans la partie précédente car il utilise un ensemble d'arbres
de régression pour identifier les traits du visage avant de tirer une conclusion.

Figure 7: Découpage et déformation

C. Analyse de visage

Le successeur de l'IA en algèbre linéaire va extraire les informations les plus pertinentes d'une
image pour identifier une photo de nous plutôt que des autres personnes.

Cette étape est la plus importante de notre IA de reconnaissance faciale. Elle consiste à
remplacer l'image complète par seulement 128 chiffres, qui seront déterminés de manière à
distinguer facilement les individus. Par exemple, certaines mesures telles que l'écart entre les
yeux, la hauteur du front et l'angle de la mâchoire peuvent être uniques pour chaque personne
et permettre leur identification.

Cette méthode était à l'origine l'idée derrière la première IA de reconnaissance faciale, mais
depuis, nous avons redécouvert le deep learning. Les réseaux de deep learning peuvent
apprendre de manière autonome en analysant des milliers d'exemples. Les 128 valeurs à retenir
pour chaque photo sont différentes pour chaque visage, mais chaque visage est très proche de
la même personne.

24
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

Un réseau neuronal convolutif appelé VGG a appris à générer un vecteur de 128 nombres à
partir d'une image d'entrée. Par conséquent, nous prenons la photo recadrée et déformée et nous
renvoyons notre vecteur unique.

Figure 8: Analyse de visage

D. La Reconnaissance Faciale

Enfin, l'étape finale de notre IA de reconnaissance faciale consiste à chercher dans notre base
de données les photos les plus similaires à la photo en entrée. Nous allons identifier la personne
en question, puis la vérifier immédiatement. Dans notre base de données, nous ne stockerons
pas les photos elles-mêmes, mais plutôt un vecteur (128 dimensions) qui représente chaque
photo. Lorsque les vecteurs de la caméra arrivent, il suffit de les comparer aux vecteurs stockés
dans la base de données pour trouver celui qui est le plus proche. Selon l'algorithme de similarité
sélectionné, le terme peut avoir plusieurs significations. Par exemple, si nous utilisons la
distance cosinus pour trouver le vecteur le plus proche, nous mesurons en fait l'angle entre les
deux vecteurs. Si l'angle est petit, cela signifie que la distance entre les vecteurs est proche. Si
nous utilisons la distance euclidienne, nous mesurons la longueur séparant les extrémités des
deux vecteurs. Enfin, nous pouvons également utiliser des algorithmes d'apprentissage
automatique tels que "support vector machines" pour déterminer les images les plus similaires
dans notre base de données, que ce soit à partir d'exemples en phase d'apprentissage ou obtenus
automatiquement par clustering.

3. Reconnaissance faciale dans Raspberry Pi


Les premières études sur la reconnaissance faciale remontent au domaine de la psychologie
dans les années 1950, mais c'est à partir des années 1970 que le véritable travail sur la
reconnaissance automatique des visages par machine a commencé.

Il existe deux types de méthodes de reconnaissance faciale : la reconnaissance faciale basée sur
l'image et la reconnaissance vidéo. La reconnaissance faciale basée sur la vidéo consiste en la

25
CHAPITRE 1 ÉTUDE PRÉLIMINAIRE

recherche d'une image 3D à partir d'une image 2D, tandis que la méthode de reconnaissance
basée sur l'image est un processus dans lequel un humain utilise une caméra pour conduire une
machine en affichant un groupe d'images fixes de caméras. Le système de reconnaissance
faciale est un cadre qui peut identifier et vérifier l'identité de la personne à partir de l'aperçu
vidéo de l'image numérique ou de la source vidéo.

De nombreux chercheurs ont choisi d'utiliser un appareil intégré appelé Raspberry Pi pour la
formation et l'identification. La raison principale pour laquelle ils ont choisi ce composant
particulier est qu'il a une capacité de traitement plus élevée, un coût inférieur et peut être ajusté
dans divers modes de programmation. En utilisant Raspberry Pi, ils ont résolu les limitations
du PC, telles que le poids, la taille et la consommation d'énergie élevée. Raspberry Pi est un
appareil qui permet de diviser la partie logicielle en trois parties : enregistrement d'images,
formation et reconnaissance faciale. Par conséquent, lorsqu'ils ont déployé le Raspberry Pi pour
le système de capture d'images, le système est devenu plus petit, plus léger et a consommé
moins d'énergie, ce qui le rend plus pratique que le système de reconnaissance faciale PC.

V. Conclusion
Après avoir présenté l'Office de l'Aviation Civile et des Aéroports (OACA) ainsi que ses
missions, nous avons pu nous plonger dans le sujet de notre projet qui consiste en un système
de contrôle d'accès par reconnaissance faciale. Nous avons étudié les différentes techniques et
technologies utilisées pour mettre en place ce système de sécurité.

26
CHAPITRE 2 ÉTUDE THÉORIQUE

CHAPITRE 2 : ÉTUDE THÉORIQUE

Sommaire
I. Introduction ........................................................................................................................... 28
II. Internet des Objet (IOT) ..................................................................................................... 28
III. Matériels utilisés ................................................................................................................ 29
1. Etude de la carte Raspberry pi3 ......................................................................................... 29
1.1 Origine du nom « Raspberry Pi 3 »................................................................................... 29
1.2 Lancement de la Raspberry Pi .......................................................................................... 30
1.3 Equipement essentiel ....................................................................................................... 30
1.4 Equipement divers ........................................................................................................... 30
1.5 Tour d’horizon du Raspberry Pi 3 ..................................................................................... 31
1.6 Les spécifications Entrées / Sorties .................................................................................. 31
1.7 Les Ports GPIO .................................................................................................................. 32
1.8 Les différentes utilisations du Raspberry Pi 3 .................................................................. 32
1.9 Les avantages et les inconvénients de Raspberry Pi 3 ..................................................... 34
2. Camera Raspberry .............................................................................................................. 34
3. Module de relais................................................................................................................. 35
4. Écran LCD............................................................................................................................ 36
5. Serrure électrique .............................................................................................................. 37
6. Configuration de la carte Raspberry Pi 3 en mode graphiques ......................................... 37
6.1 Matériels nécessaires ....................................................................................................... 37
6.2 Réhabilitation de la carte SD ............................................................................................ 38
6.3 Installer Raspberry Pi Imager ........................................................................................... 39
7. Configuration Wi-Fi de la carte Raspberry Pi ..................................................................... 42
8. VNC Viewer......................................................................................................................... 42
9. IDE Raspberry Pi 3 .............................................................................................................. 43
IV. Conclusion .......................................................................................................................... 44

27
CHAPITRE 2 ÉTUDE THÉORIQUE

I. Introduction
Dans ce chapitre, nous allons aborder les notions de l'IoT, étudier les différents modes de
communication disponibles, examiner la carte électronique que nous allons utiliser, ainsi que
l'interface homme-machine qui sera utilisée pour réaliser notre projet.

II. Internet des Objet (IOT)


L'écosystème de l'Internet des Objets (IoT) est un réseau étendu d'appareils et de technologies
connectés et interdépendants qui sont utilisés par des spécialistes pour atteindre des objectifs
précis, tels que la création de villes intelligentes. Les applications de l'IoT sont illimitées, ce
qui signifie que plusieurs écosystèmes IoT coexistent.

Cependant, si nous résumons l'essentiel de ce qui se passe dans l'écosystème IoT, cela peut être
simplifié en un schéma simple : un dispositif collecte des données et les envoie à travers le
réseau à une plateforme qui agrège les données pour une utilisation future par l'agent. Les
composants clés de l'écosystème IoT sont donc les appareils, les réseaux, les plateformes et les
agents. La figure suivante représente ces éléments clés de manière graphique.

C'est tout ce que vous devez savoir sur l'écosystème de l'Internet des Objets.

Figure 9: Écosystème de l'IoT

28
CHAPITRE 2 ÉTUDE THÉORIQUE

III. Matériels utilisés


1. Etude de la carte Raspberry pi3

Le Raspberry Pi 3 est un nano-ordinateur monocarte basé sur ARM, conçu par David Braben,
créateur de jeux vidéo, et fait partie de la fondation Raspberry Pi. Sa taille équivaut à celle d'une
carte de crédit, et son but est d'encourager l'apprentissage de la programmation informatique.
Le Raspberry Pi 3 peut exécuter des systèmes d'exploitation GNU/Linux-Debian gratuits ainsi
que de nombreuses variantes de logiciels compatibles. De plus, il est compatible avec les
systèmes d'exploitation Microsoft Windows 10 et Android.

Le Raspberry Pi 3 est vendu sous forme de carte mère nue, ce qui signifie qu'il ne comprend
pas de boîtier, d'alimentation, de clavier, de souris ou d'écran, afin de réduire les coûts et de
permettre l'utilisation de matériel de récupération.

Figure 10: Raspberry Pi 3

1.1 Origine du nom « Raspberry Pi 3 »

Le nom "Raspberry Pi" a été choisi par ses créateurs, Eben Upton, Rob Mullins, Jack Lang et
Alan Mycroft, qui souhaitaient un nom qui rappelle les ordinateurs personnels des années 80
comme le Commodore 64 et l'Apple Macintosh. Ils ont choisi "Raspberry" car c'était leur fruit
préféré, et "Pi" car c'est une référence à la constante mathématique π (pi) qui est largement
utilisée en informatique. Le "3" dans le nom Raspberry Pi 3 fait référence à la troisième
génération de ce nano-ordinateur monocarte, tandis que le "a" dans Raspberry Pi 3a+ signifie
que c'est une version allégée avec des spécifications légèrement différentes.

29
CHAPITRE 2 ÉTUDE THÉORIQUE

1.2 Lancement de la Raspberry Pi

• Février 2012, Raspberry pi1 modèle A (basique)


• En avril 2014, Raspberry Pi1 Model B + (format carte de crédit)
• Des modèles A + et B + améliorés sont sortis un an plus tard.
• En février 2015, Raspberry Pi2 (plus de RAM ajoutée)
• Novembre 2015, Raspberry Pi Zéro (entrée / sortie à usage général (GPIO))
• Sortie du modèle Raspberry Pi3 en février 2016 (fonction de démarrage Wi -Fi, Bluetooth
et USB intégrée)
• Depuis le 28 février 2017, Raspberry Pi Zéro W

1.3 Equipement essentiel

Composé des périphériques indispensables pour l’installation d’un système d’exploitation :


• Chargeur Micro-USB
• Clavier et souris en USB
• Carte SD (8GB minimum)
• Câble HDMI
• La connexion à Internet
• Ecran avec port HDMI

1.4 Equipement divers

L'équipement sélectionné n'en est qu'une petite partie, rendant possible les dizaines
d'équipements déjà sur le marché.
• Un boîtier de protection
• Une clé Bluetooth
• Camera Pi
• Haut-Parleur

30
CHAPITRE 2 ÉTUDE THÉORIQUE

1.5 Tour d’horizon du Raspberry Pi 3


Les différentes parties d’un Raspberry Pi 3 :

Figure 11: Les parties d'un Raspberry pi 3

1.6 Les spécifications Entrées / Sorties

• 4 ports USB 2.0 : les ports USB sont des ports de communication universels permettant
la connexion de nombreux périphériques.
• Processeur ARM Cortex-A53 quadricœur à 1,2 GHz : les processeurs ARM sont des
processeurs à faible consommation d'énergie.
• Ports GPIO : le Raspberry Pi 3 Model B dispose de deux ports GPIO : un port de 40
broches et un port de 28 broches.
• 1 Go de RAM DDR2 SDRAM : la RAM est la mémoire dans laquelle le Raspberry Pi
stocke les données lors de son traitement.
• 1 port Ethernet 10/100 : le port Ethernet permet la connexion à un réseau local via le
protocole Ethernet.
• 1 port HDMI et 1 port composite : le port HDMI permet la transmission de vidéo et
d'audio haute définition vers un écran compatible, tandis que le port composite est utilisé
pour connecter des écrans plus anciens.
• Connecteur pour carte microSD : le Raspberry Pi 3 Model B dispose d'un connecteur
spécifique pour carte microSD, qui permet d'augmenter la mémoire de stockage de
l'appareil.

31
CHAPITRE 2 ÉTUDE THÉORIQUE

• Bluetooth/Wi-Fi 802.11 b/g/n


• 1 sortie audio jack 3,5 mm : cette sortie permet la connexion d'enceintes ou d'un casque
audio.

1.7 Les Ports GPIO


Le port GPIO (General Purpose Input / Output) est un port d'entrée / sortie largement utilisé
dans le domaine des microcontrôleurs, en particulier dans le domaine des équipements
électroniques embarquée.

Figure 12: Les ports GPIO

1.8 Les différentes utilisations du Raspberry Pi 3


Il est impossible de dresser une liste exhaustive des projets que l'on peut réaliser avec le
Raspberry Pi 3, tant les possibilités sont nombreuses et variées. Cependant, il est possible de
distinguer les différentes utilisations globales de ce nano-ordinateur.

a. Les serveurs

Pour un usage en tant que serveur, le Raspberry Pi est conçu pour fonctionner en continu sans
interruption et sera généralement installé près du boîtier internet. La gestion à distance via SSH
sera utilisée le moins souvent possible, car le besoin de prendre le contrôle du serveur est
souvent lié à un problème rencontré.

32
CHAPITRE 2 ÉTUDE THÉORIQUE

• Le serveur Web :

Il s'agit d'un serveur utilisé pour héberger un ou plusieurs sites Web et doit être accessible
de l'extérieur.

• Le serveur de stockage :

Ce type de serveur permet de stocker des fichiers accessibles depuis n'importe où. Il s'agit
généralement d'un serveur FTP, qui est une machine exécutant un logiciel permettant de gérer
le protocole de transfert de fichiers (FTP).

• Le serveur de service :

Ce type de serveur est conçu pour héberger des services et est généralement accessible à partir
de n'importe quel endroit. Un service désigne un logiciel, mais pas un client. Il s'agit d'un
logiciel qui s'exécute sur l'ordinateur d'un utilisateur et permet de communiquer avec une entité
centrale. Cette entité est responsable de l'exploitation, du calcul, de la coordination, etc. des
différents clients. Le serveur est légèrement indépendant et peut fonctionner de manière
autonome.

b. L’utilisation multimédia

C'est l'une des utilisations les plus développées de Raspberry Pi. En fait, sous l'idée de
MultiMedia, c'est principalement l'idée de centre multimédia.

c. La domotique
La domotique peut poser problème en raison du manque d'interfaces complètes et des coûts
élevés associés, mais le Raspberry Pi peut résoudre ces problèmes. De par sa petite taille, il peut
être facilement installé dans une pièce, tandis que ses nombreuses sorties, y compris GPIO,
permettent la connexion de divers modules pour communiquer avec des équipements
domotiques.

d. Les systèmes embarqués

Étant donné leur petite taille et leur capacité à accueillir des entrées GPIO, les Raspberry Pi
sont souvent utilisés dans des projets électroniques comme contrôleurs centraux de systèmes
informatiques, entre autres. De nombreux projets ont vu le jour, tels que l'utilisation de caméras

33
CHAPITRE 2 ÉTUDE THÉORIQUE

et de drones pour contrôler des voitures télécommandées, ainsi que des projets intéressants de
piratage de drones.

e. Un ordinateur, tout simplement

Le Raspberry Pi est souvent considéré uniquement comme un gadget électronique, mais en


réalité, il s'agit d'un véritable ordinateur. Bien qu'il soit petit et peu coûteux, il est capable de
réaliser diverses tâches. C'est d'ailleurs pour cela qu'il a été créé. De plus, il favorise
l'apprentissage de la programmation en offrant une plateforme accessible et abordable. En
outre, il constitue une option supplémentaire pour les personnes ne disposant pas des moyens
financiers pour acquérir un ordinateur standard.

1.9 Les avantages et les inconvénients de Raspberry Pi 3


Tableau 4: Avantages/inconvénients

Avantages Inconvénients

Pas cher / Faible coût Manque de connectivité


Open Source Nécessite un système d'exploitation
Petit en taille Besoin d'accessoires supplémentaires
Facilité d'utilisation Limitations graphiques
Grande communauté Limitations de la mémoire et du processeur

2. Camera Raspberry

La caméra Raspberry est une caméra haute qualité spécialement conçue pour être utilisée avec
les ordinateurs de la famille Raspberry Pi. Elle permet de capturer des images et des vidéos de
haute résolution, jusqu'à 12 mégapixels pour les photos et 1080p pour les vidéos. Elle est
équipée d'un objectif interchangeable et dispose d'un large éventail de fonctionnalités,
notamment la mise au point automatique, la réduction du bruit, la balance des blancs
automatique et la prise en charge de l'infrarouge. Grâce à son faible encombrement, elle est très
populaire pour les projets d'imagerie embarquée et les projets de surveillance à domicile.

• Le Raspberry Pi dispose d'un port dédié pour connecter des caméras compatibles.
Une fois connecté, il doit être activé sur l'OS Raspberry Pi via l'outil de
configuration :

34
CHAPITRE 2 ÉTUDE THÉORIQUE

-Raspi-config / Alternative graphique.

Figure 13: Caméra Raspberry

3. Module de relais
Un relais Arduino est un module électronique qui permet de contrôler des charges électriques
à partir d'un microcontrôleur Arduino. Il est souvent utilisé pour commuter des circuits
électriques haute tension ou haute puissance, en permettant à un circuit basse tension et basse
puissance de commander un circuit plus grand. Le relais Arduino est généralement composé
d'un interrupteur électromécanique commandé par un signal de commande provenant du
microcontrôleur Arduino. Il permet ainsi de réaliser des projets tels que la commande de
l'éclairage, la gestion d'appareils électroménagers, la commande de moteurs, etc. Les relais
Arduino sont disponibles en différentes configurations, avec des capacités de commutation
différentes en fonction des besoins spécifiques du projet.

Figure 14: Relais

35
CHAPITRE 2 ÉTUDE THÉORIQUE

4. Écran LCD

L'écran LCD (Liquid Crystal Display) est un type d'affichage électronique qui utilise la
technologie des cristaux liquides pour produire des images et des informations visuelles. Il est
largement utilisé dans de nombreux appareils électroniques tels que les téléviseurs, les
moniteurs d'ordinateur, les smartphones, les tablettes, les montres, les calculatrices, les
appareils de navigation GPS, etc.

Les écrans LCD offrent plusieurs avantages, notamment une faible consommation d'énergie,
une grande netteté d'image, un large angle de vision et une minceur, ce qui les rend populaires
dans de nombreux appareils électroniques grand public et industriels.

Figure 15: Écran LCD

36
CHAPITRE 2 ÉTUDE THÉORIQUE

5. Serrure électrique
Une serrure électronique Arduino est un dispositif de verrouillage qui utilise un microcontrôleur
Arduino pour contrôler l'accès à une porte ou un meuble. Elle est généralement composée d'un
actionneur motorisé qui permet de verrouiller ou déverrouiller la serrure en réponse à un signal
électrique provenant du microcontrôleur Arduino.

Dans notre cas, notre système peut être contrôlé et connecté à la carte Raspberry Pi 3 afin de
modifier les paramètres et de restreindre l'accès à l'ouverture de la porte uniquement aux
personnes autorisées.

Figure 16: Serrure électrique

6. Configuration de la carte Raspberry Pi 3 en mode graphiques


6.1 Matériels nécessaires
Pour installer Raspbian sur la carte SD du Raspberry Pi, vous aurez besoin des éléments
suivants :

• Un ordinateur fonctionnant sous Windows, MacOS ou Linux, de préférence avec une


distribution de type Debian ou dérivée.
• Une carte micro SD.
• Un lecteur de carte SD.

37
CHAPITRE 2 ÉTUDE THÉORIQUE

6.2 Réhabilitation de la carte SD


Il est recommandé d'utiliser l'application "SD Card Formatter" pour formater votre carte SD.

Figure 17: Formatter carte sd 1

Cette application a été spécialement conçue pour le formatage de cartes mémoire


SD/SDHC/SDXC standard et dispose d'une zone protégée dédiée à la sécurité de votre appareil.
En plus de formater la carte, vous pouvez également utiliser SD Card Formatter pour effacer
toutes les données stockées sur la carte SD en toute sécurité.

Figure 18: Formatter carte sd 2

38
CHAPITRE 2 ÉTUDE THÉORIQUE

6.3 Installer Raspberry Pi Imager

L'installation d'un système d'exploitation sur une carte microSD pour le Raspberry Pi est rapide
et facile grâce à un logiciel spécialisé. Une fois le logiciel installé, il suffit de mettre à jour la
carte SD avec le système d'exploitation Raspberry Pi de notre choix, car le Raspberry Pi
nécessite un système d'exploitation pour fonctionner. Le système d'exploitation Raspberry Pi,
anciennement appelé Raspbian, est le système d'exploitation officiellement pris en charge pour
le Raspberry Pi.

Figure 19: Installation du Raspberry Pi Imager

39
CHAPITRE 2 ÉTUDE THÉORIQUE

Pour installer le système d'exploitation sur votre Raspberry Pi, vous devrez suivre ces trois
étapes simples :

a. Choix du système

Choisir l’OS à installer :

Figure 20: Choix du système

b. Sélection de carte SD
Une fois que vous avez choisi le système à installer, vous devrez sélectionner l'emplacement de
l'installation. Pour ce faire, cliquez sur le deuxième bouton, ce qui affichera une liste des clés
USB ou des cartes SD connectées à votre ordinateur. Ensuite, vous pourrez choisir la carte
microSD qui sera utilisée pour installer le système d'exploitation sur votre Raspberry Pi.

Figure 21: Sélection de carte sd

40
CHAPITRE 2 ÉTUDE THÉORIQUE

c. Le lancement d’écriture sur la carte SD


Une fois que nous avons sélectionné le système à installer et l'emplacement d'installation, nous
pouvons commencer à écrire les données sur la carte microSD. Pour cela, nous cliquons sur le
bouton "Write" situé à l'extrême droite de l'interface. Le bouton qui était auparavant grisé sera
maintenant actif. Nous devons alors patienter jusqu'à la fin du processus d'écriture.

Figure 22: Écriture des données

Pendant l'écriture des données sur la carte microSD, une barre de progression indique l'état
d'avancement du processus. Une fois que l'écriture est terminée, il suffit de retirer la carte
microSD du lecteur de carte et de l'insérer dans le Raspberry Pi.

Figure 23: Lancement d'écriture

41
CHAPITRE 2 ÉTUDE THÉORIQUE

7. Configuration Wi-Fi de la carte Raspberry Pi


Pour activer la connectivité Wi-Fi sur la carte Raspberry Pi 3, cliquez sur l'icône Wi-Fi dans la
barre d'outils située en haut à droite de l'écran. Ensuite, activez le Wi-Fi en appuyant sur le
bouton correspondant, puis sélectionnez le réseau que vous souhaitez configurer.

Figure 24: Wi-Fi

8. VNC Viewer
La technologie Virtual Network Computing (VNC) permet une connexion à distance à un
ordinateur (serveur) via un réseau ou Internet à partir d'un autre ordinateur (client). Cette
technologie peut être utile pour contrôler des programmes et du personnel d'Entrée/Sortie
d'ordinateurs au travail, ou pour accéder à distance à un PC personnel. En installant le serveur
VNC sur le Raspberry Pi et en utilisant la visionneuse VNC sur l'ordinateur ou le téléphone
distant, vous pouvez contrôler votre Raspberry Pi à partir de n'importe où.

Figure 25: VNC Viewer

42
CHAPITRE 2 ÉTUDE THÉORIQUE

9. IDE Raspberry Pi 3
L'IDE Raspberry Pi3 est le logiciel qui permet de programmer la carte Raspberry Pi3. Dans
Raspbian, l'IDE est incluse non seulement pour Python, mais aussi pour d'autres langages, et
nous pouvons commencer à programmer immédiatement. Pour accéder à l'IDE, allez dans le
menu principal et sélectionnez "Programmation". Dans la liste des outils, vous devriez voir
l'option "IDLE pour Python 3", comme illustré dans la figure suivante.

Figure 26: IDE Raspberry Pi 3

Une fois l'IDE ouvert, la fenêtre suivante s’ouvrira :

Figure 27: Fenêtre d'IDE

43
CHAPITRE 2 ÉTUDE THÉORIQUE

• Le premier cadre contient les boutons qui nous seront utiles pour programmer notre
carte.
• Le deuxième cadre va contenir le programme que nous allons créer.
• Le troisième cadre est important, car il nous permet de corriger les erreurs dans notre
programme. C'est le débogueur.

IV. Conclusion
Ce chapitre est principalement axé sur la partie matérielle du projet, où nous avons présenté les
différents outils de développement tels que le Raspberry Pi3 ainsi que les composants
nécessaires à la réalisation du projet, tels que la caméra Pi et le relais électrique. Nous avons
également fourni des définitions détaillées pour chaque outil et composant, afin de mieux
comprendre leur rôle et leur importance dans le projet.

44
CHAPITRE 3 SPÉCIFICATIONS

CHAPITRE 3 : SPÉCIFICATIONS

Sommaire
I. Introduction ........................................................................................................................... 46
II. Spécification des besoins ....................................................................................................... 46
1. Description fonctionnelle des besoins ............................................................................... 46
2. Description non fonctionnelle des besoins ........................................................................ 47
III. Conception ......................................................................................................................... 48
1. Langage UML ...................................................................................................................... 48
2. Identification des acteurs et des cas d’utilisation .............................................................. 49
a. Diagramme de cas d’utilisation .............................................................................. 49
b. Diagramme de séquence........................................................................................ 51
IV. L’architecture du système .................................................................................................. 63
V. Conclusion .............................................................................................................................. 63

45
CHAPITRE 3 SPÉCIFICATIONS

I. Introduction
La phase d'incubation marque le début d'un processus cohérent pour étudier le contexte d'un
système. Elle a pour but de déterminer les fonctionnalités, les objectifs et les facteurs clés du
système. Pendant cette phase, les cas d'utilisation initiaux sont identifiés, de même que les
interactions entre les différents acteurs impliqués. Cette phase vise à élaborer les activités de la
première itération du système en décrivant les cas d'utilisation qui seront implémentés.

II. Spécification des besoins


La première étape de la conception consiste à analyser la situation pour prendre en compte les
contraintes, les risques et tout autre élément pertinent, afin de garantir que le produit ou le
processus final répond aux besoins requis.

1. Description fonctionnelle des besoins

• Identification faciale en temps réel

Le système est capable de reconnaître les visages en temps réel pour permettre un accès rapide
et efficace.

• Enregistrement de l'empreinte faciale

Le système permet l'enregistrement des empreintes faciales de chaque individu autorisé à


accéder aux zones restreintes de l'OACA.

• Vérification de l'identité

Le système vérifie l'identité de chaque personne qui tente d'accéder aux zones restreintes en
comparant son empreinte faciale à celles enregistrées.

• Notification d'accès non autorisé

Le système alerte les responsables de sécurité de l'OACA si une personne non autorisée tente
d'accéder à une zone restreinte.

• Visualisation de l’historique des accès avec le temps exacte

46
CHAPITRE 3 SPÉCIFICATIONS

Le système de contrôle d'accès par reconnaissance faciale doit permettre aux administrateurs
de visualiser l'historique des accès des personnes autorisées.

2. Description non fonctionnelle des besoins

• Sécurité

Le système garantit la sécurité des données enregistrées et assure la confidentialité des


informations personnelles des individus autorisés à accéder aux zones restreintes.

• Fiabilité

Le système offre une haute fiabilité et une disponibilité continue pour garantir un contrôle
d'accès sûr et sans interruption.

• Performance

Le système offre une performance rapide et précise pour une identification faciale efficace et
une vérification rapide de l'identité des individus.

• Facilité d'utilisation

Le système est convivial et facile à utiliser pour permettre une utilisation rapide et efficace par
les utilisateurs autorisés.

• Maintenance

Le système est facilement maintenable et évolutif pour garantir une gestion efficace du système
de contrôle d'accès à long terme.

• Scalabilité

Le système est extensible pour permettre une croissance future en termes de nombre
d'utilisateurs et de zones restreintes.

47
CHAPITRE 3 SPÉCIFICATIONS

III. Conception
1. Langage UML

L'UML est un langage de modélisation qui permet d'exprimer et de développer des modèles
objet, indépendamment de tout langage de programmation. L'OMG (Object Management
Group) est l'organisation responsable de l'UML. Ce langage a été conçu pour supporter une
analyse basée sur les concepts objet. Il se définit comme un langage de modélisation graphique
et textuel destiné à comprendre et décrire des besoins, à spécifier et documenter des systèmes,
à concevoir des solutions et à communiquer des points de vue.

L'UML unifie à la fois les notations et les concepts orientés objet. Ce n'est pas simplement une
notation graphique, car les concepts transmis par un diagramme ont une sémantique précise et
sont porteurs de sens au même titre que les mots d'un langage. L'UML est nécessaire pour les
différentes activités d'un processus de développement et offre ainsi un moyen d'établir le suivi
des décisions prises, depuis l'expression des besoins jusqu'au codage. C'est un langage formel
qui possède les caractéristiques suivantes :

• Un langage sans ambiguïté.


• Un langage universel pouvant servir de support pour tout langage orienté objet.
• Un moyen de définir la structure d'un programme.
• Une représentation visuelle permettant la communication entre les acteurs d'un même
projet.
• Une notation graphique simple, compréhensible même par des non-informaticiens.

L'UML s'articule autour de plusieurs types de diagrammes, chacun étant dédié à la présentation
de concepts particuliers d'un système logiciel. Nous allons représenter ceux qui sont utilisés
dans notre projet, notamment :

• Les diagrammes de cas d'utilisation.


• Les diagrammes de séquence.

48
CHAPITRE 3 SPÉCIFICATIONS

2. Identification des acteurs et des cas d’utilisation

Les cas d'utilisation ont pour objectif de répondre aux besoins des clients d'un système en
clarifiant, filtrant et organisant ces besoins. Ils ne cherchent pas à être exhaustifs, mais plutôt
à identifier les éléments essentiels. Les deux éléments clés des cas d'utilisation sont les
suivants :

• L'acteur : Il s'agit d'une entité externe au système qui agit sur celui-ci. L'acteur peut
consulter ou modifier l'état du système et le système fournit un service qui répond à son besoin.

• Le cas d'utilisation : Il peut être défini comme l'ensemble des actions effectuées par le
système en réponse à une action de l'acteur. L'ensemble des cas d'utilisation décrit les objectifs
du système, c'est-à-dire les buts qu'il doit atteindre pour répondre aux besoins de ses utilisateurs.

a. Diagramme de cas d’utilisation


L’ensemble des acteurs et des cas d’utilisation sont résumés dans le tableau suivant :

Tableau 5: Les acteurs du projet

Type acteur Acteur Descriptions

Acteur Principal Administrateur -S’authentifier/ Se connecter.


-Recevoir les notifications.
-Ajouter/Supprimer des
utilisateurs.
-Faire des mises à jour des
informations.
-Donner l’autorisation /
Blocage aux employées.
-Consulter les informations
des employées .
-Voir l’historique d’accès.

Acteur Secondaire Utilisateur -S’authentifier/ Se connecter.


-Voir l’historique d’accès.
-Se soumettre à une
Reconnaissance faciale.

49
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de cas d’utilisation pour l’administrateur

Figure 28: Cas d'utilisation admin

Tableau 6: Administrateur

Titre : Diagramme de cas d’utilisation pour le projet

Acteurs : Administrateur

Post conditions : Gérer les utilisateurs de l’application mobile

Description du scénario L'administrateur s'authentifie, puis peut recevoir des


principal :
notifications, ajouter/supprimer des utilisateurs, mettre à
jour des informations, donner l'autorisation/blocage aux
employés, et consulter les informations des employés
avant de se déconnecter.

50
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de cas d’utilisation pour les utilisateurs secondaires

Figure 29: Cas d'utilisation utilisateur

Tableau 7: Utilisateur

Titre : Diagramme de cas d’utilisation pour le


projet

Acteurs : Utilisateurs secondaires

Post conditions : Voir l’historique d’accès, Soumettre à une


reconnaissance faciale.

Description du scénario principal : Le visiteur s’authentifié.

b. Diagramme de séquence
Un diagramme de séquence est une représentation graphique qui décrit l'interaction entre les
objets et les acteurs d'un système pour un scénario donné. Il s'agit d'une séquence d'événements
et/ou d'échanges de messages qui se produisent pendant le déroulement de ce scénario.

51
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’authentification pour l’administrateur

Figure 30: Interface Authentification admin

Tableau 8: Diagramme de séquence authentification admin

Acteur : Administrateur

Objectif : La sécurité, et la confidentialité du système

Description de scenario principal : L’administrateur saisit son adresse e-mail et son mot
de passe dans les champs dédiés à l'authentification.
L'application envoie ensuite ces informations à un
serveur distant sécurisé. Le serveur vérifie la validité
de l'adresse e-mail et du mot de passe en les
comparant aux données stockées dans une base de
données sécurisée. Si les informations sont correctes,
l'administrateur est authentifié avec succès et l'accès
à l'application lui est accordé.
Description de scenario secondaire : En cas d'informations incorrectes, un message
d'erreur est affiché

52
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’authentification pour les utilisateurs

Figure 31: Interface Authentification utilisateur

Tableau 9: Diagramme de séquence authentification utilisateur

Acteur : Utilisateur
Objectif : Gérer efficacement ses tâches quotidiennes

Description de scenario principal : L'utilisateur saisit son adresse e-mail et son


mot de passe dans les champs dédiés à
l'authentification de l'application mobile.
Ensuite, l'application envoie ces
informations à un serveur distant sécurisé.
Le serveur vérifie la validité de l'adresse e-
mail et du mot de passe en les comparant
aux données stockées dans une base de
données sécurisée. Si les informations sont
correctes, l'utilisateur est authentifié avec
succès et obtient l'accès à l'application.

Description de scenario secondaire : En cas d'informations incorrectes, un


message d'erreur est affiché

53
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’inscription pour l’administrateur

Figure 32: Interface Inscription Admin

Tableau 10: Diagramme de séquence inscription admin

Acteur : Administrateur
Objectif : La confidentialité du système
Description de scenario principal : L’administrateur remplit les champs requis,
tels que son nom, son adresse e-mail et un
mot de passe sécurisé. Une fois les
informations saisies, il clique sur le bouton
d'inscription. L'application vérifie la validité
des données fournies, s'assure qu'aucun
compte similaire n'existe déjà, puis enregistre
les informations d'inscription dans sa base de
données (Table Users). L'administrateur
reçoit ensuite une confirmation d'inscription

Description de scenario secondaire : En cas d'existence de compte, il envoie un


message d'erreur

54
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’inscription pour les utilisateurs de l’application

Figure 33: Interface Inscription Utilisateur

Tableau 11: Diagramme de séquence inscription utilisateur

Acteur : Utilisateur
Objectif : La confidentialité du système
Description de scenario principal : L’utilisateur doit compléter les champs
obligatoires tels que son nom, son adresse e-
mail et un mot de passe sécurisé, il peut
cliquer sur le bouton d'inscription. À ce
moment-là, l'application vérifie la validité
des informations fournies, s'assure qu'aucun
compte similaire n'existe déjà, et enregistre
les données d'inscription dans sa base de
données (Table UsersSec). Une fois
l'inscription réussie, l'utilisateur reçoit une
confirmation de son inscription.

Description de scenario secondaire : En cas d'existence de compte, il envoie un


message d'erreur

55
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’historique d’accès pour les utilisateurs d’application

Figure 34: Interface Historique d’accès utilisateur

Tableau 12: Diagramme de séquence d'historique d'accès (utilisateur)

Acteur : Utilisateur
Objectif : Accéder à son historique d'accès

Description de scenario principal : L'utilisateur se connecte à l'application


mobile en utilisant ses informations
d'identification. L'application accède à la
base de données de l'historique d'accès (Table
Hist) pour afficher les données
correspondantes à l'utilisateur.
Description de scenario secondaire : En cas de l'inexistence d'historique un
message d'erreur sera affiché.

56
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence de consulter les utilisateurs autorisés pour l’administrateur

Figure 35: Interface utilisateurs autorisés (Admin)

Tableau 13: Diagramme de séquence consulter les utilisateurs

Acteur : Administrateur
Objectif : Consulter la liste des utilisateurs autorisés.

Description de scenario principal : L'administrateur se connecte à l'application


mobile en utilisant ses informations
d'identification. Ensuite, il accède à l'option
de consultation des utilisateurs autorisés.
Une fois cette option sélectionnée,
l'application affiche une liste des
utilisateurs autorisés, récupérée depuis la
base de données (Table Python).
L'administrateur peut parcourir la liste pour
consulter les informations pertinentes telles
que les noms d'utilisateur et leurs
historiques d'accès.

57
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’ajouter un nouvel utilisateur pour l’administrateur

Figure 36: Interface Ajouter un nouvel utilisateur

Tableau 14: Diagramme de séquence d'ajouter un nouvel utilisateur

Acteur : Administrateur

Objectif : Ajouter un nouvel utilisateur dans le système.

Description de scenario principal : L'administrateur accède à l'option d'ajout d'un


nouvel utilisateur. L'application affiche un
formulaire où l'administrateur peut saisir les
informations requises pour le nouvel utilisateur,
telles que le nom, l'adresse e-mail. Une fois les
informations renseignées, l'administrateur
valide et enregistre les données. L'application
vérifie la validité des informations et enregistre
le nouvel utilisateur dans la base de données.
(Table UsersSec) Un message de confirmation
est affiché pour indiquer que l'ajout a été réussi.

58
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence d’autorisations/blocages des employées pour l’administrateur

Figure 37: Interface Autorisations/Blocages

Tableau 15: Diagramme de séquence d'autorisations/blocages

Acteur : Administrateur
Objectif : Gérer les autorisations des utilisateurs.

Description de scenario principal : L'administrateur s’accède à l'option de


gestion des autorisations des utilisateurs. Une
liste des utilisateurs existants est affichée
avec des cases à cocher pour chaque
utilisateur. L'administrateur sélectionne les
utilisateurs et coche les cases appropriées
pour donner ou bloquer les autorisations. Les
mises à jour des autorisations sont ensuite
enregistrées dans la base de données. (Table
Python)

59
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence de consulter l’historique d’accès des employées pour


l’administrateur

Figure 38: Interface Historique d'accès (Admin)

Tableau 16: Diagramme de séquence de consulter l'historique d'accès (admin)

Acteur : Administrateur

Objectif : Consulter et obtenir des informations sur les


employées.
Description de scenario principal : L'administrateur se connecte à l'application
mobile et choisit l'option de consultation de
l'historique d'accès des utilisateurs. Il sélectionne
un utilisateur spécifique et consulte son historique
d'accès enregistré dans la base de données. (Table
HistUsers). L'administrateur peut également
accéder aux informations générales de chaque
utilisateur. Ensuite, il peut continuer à consulter
l'historique d'accès d'autres utilisateurs ou quitter
l'application.

60
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence de consulter l’historique d’accès des inconnus pour


l’administrateur

Figure 39: Interface Historique d'accès des inconnus

Tableau 17: Diagramme de séquence d'historique d'accès des inconnus

Acteur : Administrateur
Objectif : Assurer la sécurité du système

Description de scenario principal : L'administrateur se connecte à l'application et


consulte l'historique d'accès des utilisateurs
inconnus stockés dans la base de données
(Table images), lui permettant de surveiller les
activités suspectes et de prendre les mesures
nécessaires pour assurer la sécurité du
système.

61
CHAPITRE 3 SPÉCIFICATIONS

➔ Diagramme de séquence de consulter la liste des utilisateurs pour l’administrateur

Figure 40: Interface liste des utilisateurs

Tableau 18: Diagramme de séquence de consulter la liste des utilisateurs

Acteur : Administrateur
Objectif : Avoir une vue d'ensemble des utilisateurs
enregistrés dans le système.

Description de scenario principal : L'administrateur se connecte à l’application et


consulte la liste des utilisateurs, voit leurs
coordonnées, effectue des mises à jour si
nécessaire et a la possibilité de supprimer les
utilisateurs.

62
CHAPITRE 3 SPÉCIFICATIONS

IV. L’architecture du système


L'écosystème repose sur une configuration Raspberry Pi avec une caméra, un écran LCD et une
serrure électrique. Les composants sont connectés à une carte Raspberry Pi qui agit comme le
cerveau central. Les données sont envoyées à une application mobile et une application web via
une base de données MySQL. Cela permet aux utilisateurs de surveiller et de contrôler le
système à distance, en visualisant les images des inconnues, en recevant des notifications. En
résumé, cet écosystème Raspberry Pi offre une solution complète pour la capture, le traitement
et la transmission des données.

Figure 41: Architecture du système

V. Conclusion

Au cours de ce chapitre, nous avons présenté nos besoins, notre architecture ainsi que les
différents diagrammes développés lors de l'étude conceptuelle du projet. Cette étude servira de
base pour la conception qui sera abordée dans le prochain chapitre.

63
CHAPITRE 4 RÉALISATION

CHAPITRE 4 : RÉALISATION

64
CHAPITRE 4 RÉALISATION

I. Introduction
La phase de mise en œuvre est la dernière étape du processus de développement. Ce chapitre
décrit les étapes de conception de la station météorologique de manière détaillée.

II. Infrastructure et outils de développement


1. L’environnement de développement

Tableau 19: les logiciels utilisés

Nom de logiciel Description Logo de logiciel


Visual Studio Code Développé par Microsoft, Visual
Studio Code est un éditeur de code
extensible conçu pour Windows,
Linux et macOS. Parmi ses
fonctionnalités, on retrouve le support
du débogage, la mise en évidence de
la syntaxe, l'achèvement intelligent
du code, les extraits de code
prédéfinis, la possibilité de
refactoriser le code et une intégration
Git.
Thonny Thonny est un environnement de
développement intégré spécialement
conçu pour les débutants en Python. Il
offre une variété de fonctionnalités
telles que la navigation à travers le
code, l'évaluation pas à pas des
expressions, une visualisation
détaillée de la pile d'appels, ainsi
qu'un mode explicatif pour les
concepts de références et de tas.

65
CHAPITRE 4 RÉALISATION

Flutter Flutter est un kit de développement


logiciel d'interface utilisateur open-
source créé par Google. Il est utilisé
pour développer des applications pour
Android, iOS, Linux, Mac, Windows,
Google Fuchsia et le web à partir
d'une seule base de code.

2. Les langages utilisés


Tableau 20: Les langages de programmation

Nom du logiciel Description Logo de logiciel


Dart Dart, développé par Google, est un
langage de programmation optimisé
pour la création d'applications
multiplateformes. Il est utilisé pour
développer des applications mobiles,
de bureau, de serveur et web. Dart est
un langage orienté objet avec une
syntaxe similaire à celle du langage
C++. Il dispose d'un ramasse-miettes
intégré qui facilite la gestion de la
mémoire.

Python Python est un langage de


programmation interprété, multi-
paradigme et multiplateformes. Il
favorise la programmation impérative
structurée, fonctionnelle et orientée
objet.

66
CHAPITRE 4 RÉALISATION

PHP PHP est un langage de programmation


côté serveur couramment utilisé pour le
développement web. Il permet de créer
des sites web dynamiques en
interagissant avec des bases de
données. Sa syntaxe simple et sa
grande compatibilité en font un choix
populaire pour les projets web.

3. Environnement de gestion du dépôt de données


Une base de données est un ensemble qui permet de stocker des données de manière structurée.
Les données sont organisées en tables, où chaque donnée est enregistrée de manière distincte.

• MySQL

MySQL est un serveur de bases de données relationnelles SQL spécialement conçu pour offrir
des performances élevées en lecture. Son objectif principal est de répondre efficacement aux
besoins de récupération de données, plutôt que de se concentrer sur les mises à jour fréquentes
et sécurisées.

• PhpMyAdmin (PMA)

PhpMyAdmin (PMA) est une application Web conçue pour faciliter la gestion des systèmes de
gestion de bases de données MySQL. Elle offre une interface conviviale et accessible via un
navigateur, permettant aux utilisateurs de gérer leurs bases de données de manière efficace et
intuitive.

Figure 42: PhpMyAdmin

67
CHAPITRE 4 RÉALISATION

• XAMPP
XAMPP est un ensemble de logiciels qui permet de configurer facilement un serveur Web local,
un serveur FTP et un serveur de messagerie électronique. C'est une distribution de logiciels
libres très appréciée pour sa flexibilité et sa facilité d'installation, offrant ainsi aux utilisateurs
une solution pratique pour créer un environnement de développement local.

Figure 43: XAMPP

4. Les bibliothèques utilisées

• RPI GPIO
La bibliothèque RPi.GPIO permet d'accéder aux broches GPIO (General Purpose Input/Output)
de la carte Raspberry Pi, offrant ainsi la possibilité de contrôler et d'interfacer divers
périphériques externes. Elle permet de configurer les broches GPIO, de lire et d'écrire des
valeurs numériques, ainsi que de gérer les interruptions et d'autres opérations d'entrée/sortie.

Figure 44: Bibliothèque GPIO

68
CHAPITRE 4 RÉALISATION

• OpenCV

OpenCV (Open Source Computer Vision) est une bibliothèque open source spécialisée dans le
traitement d'images et la vision par ordinateur. Elle fournit une large gamme de fonctionnalités
et d'algorithmes pour effectuer des opérations telles que la capture d'images, la manipulation
d'images, la détection d'objets, la reconnaissance faciale, la segmentation d'image, le suivi
d'objets, et bien plus encore. OpenCV est largement utilisée dans le domaine de la recherche,
de l'industrie et de l'informatique vision. Elle prend en charge plusieurs langages de
programmation, y compris C++, Python et Java, offrant ainsi une flexibilité pour le
développement d'applications de vision par ordinateur.

Figure 45: Bibliothèque OpenCV

• Numpy

NumPy est une extension du langage de programmation Python qui a été développée pour
faciliter la manipulation de matrices et de tableaux multidimensionnels, ainsi que l'exécution
de fonctions mathématiques sur ces structures de données. En tant que bibliothèque open
source, NumPy offre une large gamme de fonctionnalités qui permettent de créer des tableaux
à partir de fichiers existants ou de les enregistrer dans des fichiers, ainsi que de réaliser des
opérations avancées sur des vecteurs, des matrices et des polynômes. Cette bibliothèque joue
un rôle essentiel dans le traitement numérique des données et est largement utilisée dans les
domaines scientifiques, de l'analyse de données et de l'apprentissage automatique.

Pour installer NumPy sur Raspberry Pi, il faut utiliser la commande suivante dans un terminal :

sudo apt-get install python-numpy

69
CHAPITRE 4 RÉALISATION

• Face_recognition
La bibliothèque face_recognition est une bibliothèque open source spécialisée dans la
reconnaissance faciale en utilisant des techniques d'apprentissage automatique. Elle offre des
fonctionnalités permettant de détecter et de reconnaître des visages dans des images ou des flux
vidéo. La bibliothèque face_recognition utilise des algorithmes avancés pour extraire des
caractéristiques faciales uniques et les comparer avec une base de données de visages connus,
permettant ainsi d'identifier des individus spécifiques. Cette bibliothèque facilite le
développement d'applications de reconnaissance faciale pour des cas d'utilisation tels que la
sécurité, l'authentification et la surveillance.

Figure 46: Bibliothèque face_recognition

• Mysql-connector

La bibliothèque mysql-connector-python est un module Python open source qui facilite la


connexion et l'interaction avec les bases de données MySQL. Elle permet d'exécuter des
requêtes SQL, d'insérer, de mettre à jour et de supprimer des données, ainsi que de récupérer
les résultats des requêtes. Grâce à son interface simple et pratique, cette bibliothèque simplifie
l'intégration de MySQL dans les applications Python. Pour installer la bibliothèque mysql-
connector-python, il faut utiliser la commande suivante dans un terminal :

pip install mysql-connector-python

70
CHAPITRE 4 RÉALISATION

5. Plate-forme et section mobile

Afin de réaliser notre objectif de développer un système de contrôle d'accès basé sur l'IoT, nous
avons mis en place une infrastructure robuste. Notre solution intègre une passerelle connectée
à Internet qui collecte des données cruciales provenant de diverses sources. Ces données sont
ensuite stockées dans une base de données centralisée.

5.1Partie mobile

En ouvrant l'application, on trouve cette interface « Welcome ». L'utilisateur doit choisir entre
ces deux boutons.

Figure 47: Page Welcome

S'il clique sur le premier bouton « Admin », il sera dirigé vers l’interface « login Admin »

où il pourra s’authentifier ou créer un nouveau compte en cliquant sur « Sign Up » d’une

manière très facile .

71
CHAPITRE 4 RÉALISATION

Figure 48: Page login admin

Figure 49: Page inscription admin

72
CHAPITRE 4 RÉALISATION

Sinon il sera dirigé vers l’interface « login Utilisateur ».

Figure 50: Page login utilisateur Figure 51: Page inscription utilisateur

Après l'authentification dans l'interface « Utilisateurs », l'interface de l'historique d'accès de


l'employé qui saisit ses coordonnées sera affichée.

Figure 52: Page historique d'accès (utilisateur)

73
CHAPITRE 4 RÉALISATION

Après s'être authentifié dans l'interface "Login", ce tableau de bord sera affiché, offrant à
l'utilisateur une sélection de choix qu'il peut utiliser.

Figure 53: Tableau de bord

S'il clique sur le bouton « utilisateurs autorisés » il sera dirigé vers cette interface ou il peut
faire des mises à jour et voir la liste de tous les utilisateurs avec la date et l’heure de dernier
accès.

Figure 54: Page utilisateurs autorisés

74
CHAPITRE 4 RÉALISATION

Le deuxième bouton correspond à l'interface « Ajouter un nouveau utilisateur ».

Figure 55: Page ajouter nouvel utilisateur

Le troisième bouton correspond à l'interface « Utilisateurs ». L'administrateur sera dirigé vers


cette interface où il peut voir la liste de tous les utilisateurs avec leurs coordonnées et faire des
modifications.

Figure 56: Page utilisateurs

75
CHAPITRE 4 RÉALISATION

Lorsqu'il clique sur le bouton « Autorisation », l'administrateur peut donner l'autorisation ou


bloquer l'accès aux utilisateurs.

Figure 57: Page autorisations

Le quatrième bouton correspond à l’interface « Historique d’accès », l’administrateur peut


consulter des informations sur les employées.

Figure 58: Page historique d'accès (admin)

76
CHAPITRE 4 RÉALISATION

Figure 59: Voir les informations

Le dernier bouton correspond à l’interface « Historique d’accès des inconnus », où on trouve


la liste des personnes inconnus capter par la caméra de reconnaissance faciale.

Figure 60: Page historique d'accès des inconnus

77
CHAPITRE 4 RÉALISATION

5.2 Partie web


L'application web offre une expérience similaire à celle de l'application mobile, avec une
interface identique. Cependant, son utilisation est réservée exclusivement aux administrateurs.

Figure 61: Interface login (web)

Figure 62: Interface inscription (web)

78
CHAPITRE 4 RÉALISATION

Figure 63: Interface utilisateurs autorisés(web)

Figure 64: Interface ajouter nouvel utilisateurs(web)

79
CHAPITRE 4 RÉALISATION

Figure 65: Interface admines

Figure 66: Interface utilisateurs (web)

80
CHAPITRE 4 RÉALISATION

Figure 67: Interface autorisations/blocages (web)

Figure 68: Interface historique d'accès (web)

81
CHAPITRE 4 RÉALISATION

Figure 69: Interface voir les informations (web)

Figure 70: Historique d'accès Baha

82
CHAPITRE 4 RÉALISATION

Figure 71: Interface historique accès des inconnus(web)

6. Explication des parties essentielles du code Python


• Ces lignes établissent une connexion à une base de données MySQL en utilisant les
paramètres fournis (nom d'hôte, nom d'utilisateur, mot de passe et nom de la base de
données).

• Cette ligne crée une instance d'un objet "display" qui permet de contrôler un écran LCD.

83
CHAPITRE 4 RÉALISATION

• Cette ligne crée un objet "cursor" qui permet d'exécuter des requêtes et de récupérer les
résultats de la base de données.

• Ces lignes initialisent le broche GPIO (entrée/sortie) sur le Raspberry Pi pour contrôler
un relais. Le broche RELAY_PIN est définie comme une sortie.

• Cette ligne initialise la capture vidéo à partir de la webcam (index 0) à l'aide de la


bibliothèque OpenCV.

84
CHAPITRE 4 RÉALISATION

• Ces lignes définissent le chemin d'accès aux images des personnes connues et
récupèrent les noms de fichier dans ce répertoire.

• Cette ligne appelle la fonction "findEncodeings" pour obtenir les encodages faciaux des
images des personnes connues.

• Ces lignes utilisent la bibliothèque "face_recognition" pour localiser et encoder les


visages dans l'image capturée.

• Cette boucle itère sur les encodages et les emplacements des visages détectés.

85
CHAPITRE 4 RÉALISATION

• Ces lignes comparent les encodages faciaux avec les encodages connus pour trouver des
correspondances et calculer les distances faciales.

• Ces instructions vérifient si la distance faciale minimale est inférieure à un seuil donné.
Si oui, le nom correspondant est identifié à partir de la liste des noms de classe. Sinon,
le nom est défini comme "Inconnu".

• La détection faciale est effectuée en utilisant les coordonnées des visages détectés
(faceLoc). Les coordonnées sont ensuite multipliées par 4 pour obtenir une taille de
rectangle plus grande. Des rectangles sont dessinés autour du visage et du nom de la
personne est affiché à côté du visage sur l'image capturée.

86
CHAPITRE 4 RÉALISATION

• Ces deux lignes extraient la région d'intérêt (ROI) de l'image capturée correspondant au
visage détecté. La variable roi gray est une version en niveaux de gris de la ROI, qui
sera utilisée pour la détection des yeux. La variable roi_color est la ROI en couleur, qui
sera utilisée pour dessiner les rectangles de détection des yeux.

• Cette ligne crée un objet CascadeClassifier en utilisant le fichier XML


haarcascade_eye.xml. Ce fichier contient les informations nécessaires pour détecter les
yeux à partir de motifs de Haar. Il est fourni avec la bibliothèque OpenCV.

• Cette ligne utilise le classificateur en cascade eyes pour détecter les yeux dans la ROI
en niveaux de gris. La méthode detectMultiScale retourne les coordonnées des
rectangles de détection des yeux.

87
CHAPITRE 4 RÉALISATION

• Cette boucle parcourt tous les rectangles de détection des yeux retournés par le
classificateur en cascade. Pour chaque rectangle, elle utilise la fonction cv2.rectangle
pour dessiner un rectangle vert autour des yeux détectés sur l'image en couleur
roi_color. Le rectangle est dessiné en utilisant les points (ex,ey) et (ex+ew,ey+eh), la
couleur (0,255,0) qui correspond au vert, et une épaisseur de trait de 2.

88

Vous aimerez peut-être aussi