Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Projet réalisé par ameny Khedhira & Arij Mekki
1. Ecole Nationale d’Ingénieurs de Tunis
Département Technologies de l’Information et de la Communication
Projet de Fin d’Année II
Implémentation d’un système de contrôle
d’accès sur une carte Raspberry
Réalisé par :
Mekki Arij
Khedhira Ameny
Classe :2ème
Année Télécommunications
Encadré par :
Mme Turki Monia
Année universitaire 2016/2017
2. Remerciement
C’est avec le plus grand honneur que nous avons réservé cette page en signe de grati-
tude et de reconnaissance à tous ceux qui nous a aidé de prés ou de loin , à réaliser ce
modeste projet.
On tient en premier lieu à remercier Mme Monia Turki d’avoir nous proposer le sujet
et nous encadrer tout au long de sa réalisation. Merci pour tout le temps que vous nous
avez consacré durant toute cette période et pour vos réponses à toutes nos interrogations.
On remercie également M. Samir Sakarani pour ses conseils et ses remarques enrichis-
santes qui nous ont permis d’améliorer la qualité du travail.
Enfin, nous adressons notre profonde gratitude à tous nos amis qui ont pris la peine
de relire le rapport et de porter à notre attention toutes critiques de forme ou de contenu.
3. Résumé
Les systèmes électroniques et les réseaux de télécommunication ne cessent de se
développer. Sur ce la surveillance surveillance des domiciles a connu son vrai essor luttant
contre tout type d’insécurité qui peut menacer les habitats. Toutefois, suite à la décou-
verte des nouvelles techniques de traitements dédiées essentiellement à la surveillance
intelligente les nouveaux systèmes de surveillance ont vécu un grand succès.
En se basant sur ces nouvelles techniques, ce projet vise à contribuer à l’amélioration du
sujet de PFE proposé l’année précédente concevant un système de contrôle d’accès intelli-
gent qui vise à lutter contre tout type d’intrusion suspecte. Et afin de donner un aspect de
portabilité au système déjà réalisé, nous avons exploité pour le noeud de traitement une
carte Raspberry Pi3. Dans notre projet nous avons réalisé le sous système extérieur qui est
composé de deux noeuds essentiels : un noeud installé au niveau de la porte d’entrée qui
sert à collecter les images des personnes demandant l’accès, et un centre de traitement qui
effectue la reconnaissance faciale. La communication entre les noeuds de notre système,
est assurée par un protocole ZigBee 802.15.4 caractérisé par sa faible consommation en
énergie et son faible coût.
Mots clés : Contrôle d’accès, algorithme de reconnaissance faciale,
Raspberry Pi3, ZigBee 802.15.4.
7. Liste des tableaux
1.1 Configuration du : XBee central et XBee extérieur . . . . . . . . . . . . . . 9
2.1 Comparaison des protocoles de communication sans fil : ZigBee, Bluetooth
et Wifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 Les paramètres de configuration d’un XBee[2] . . . . . . . . . . . . . . . . 22
3.2 Configuration du : XBee central et XBee extérieur . . . . . . . . . . . . . . 24
4
8. Introduction générale
Dans un monde qui pousse de plus en plus vers tout ce qui est sécurisé, surveillé et
protégé, nous nous voyons face à la nécessité de remplacer les anciennes techniques de sé-
curité des habitats assurées par les agents de surveillance, par des équipements intelligents
inter-connectés servant à contrôler nos domiciles. Étant donné que notre marché offre di-
vers systèmes de surveillance des domiciles et des établissements publiques, la concurrence
entre les vendeurs des solutions est devenue de plus en plus rude. Les systèmes de sécurité
disponibles sur le marché diffèrent selon les fonctionnalités offertes. En effet, la sécurité
des domiciles demeure un sujet ouvert que les chercheurs peuvent explorer pour concevoir
de nouvelles solutions innovantes qui séduisent les utilisateurs. Il existe diverses techniques
de sécurité qui assurent le contrôle d’accès et la surveillance des domiciles. Nous citons à
titre d’exemple la technique d’authentification via l’empreinte digitale, via la reconnais-
sance vocale et via la reconnaissance faciale. Cette dernière est l’une des techniques les
plus fiables et les plus robustes utilisées dans diverses applications liées à la sécurité.
Dans le cadre de ce projet de fin d’année II, nous nous intéressons à ce domaine pour
améliorer la conception d’un système de contrôle d’accès se basant sur la reconnaissance
faciale en utilisant comme noeud de traitement une carte Raspberry Pi3. Il s’agit de pal-
lier à la limite du système de surveillance réalisé l’année précédente dans le cadre d’un
PFE ENIT [2]. Dans ce PFE, il y a eu utilisation d’un PC jouant le rôle de l’unité de
traitement et donc mettant en jeu la portabilité du système. Dans le cadre de ce PFA
II, nous proposons de substituer le PC par une carte Raspberry Pi3 et on se limitera au
programme de contrôle d’accès extérieur. Ce manuscrit est composé de trois chapitres :
Dans le premier chapitre, nous présentons le PFE intitulé conception et réalisation d’un
système de contrôle d’accès et de surveillance intelligente en mettons l’accent sur les li-
mites de l’utilisation d’une unité de traitement fixe et nous introduisons par la suite l’unité
remplaçante qui assure la portabilité du système basé sur une carte Raspberry Pi3 .
Dans le deuxième chapitre, nous présentons l’unité de traitement et ses apports par rap-
port à l’utilisation d’un PC tout en introduisant la communication avec la carte arduino
et l’architecture finale de notre système d’accès.
Le dernier chapitre, sera consacré à la configuration des modules assurant la communi-
cation des noeuds du réseau de surveillance. Le test des fonctionnalités du système de
surveillance global sera présenté en fin du chapitre.
5
9. Chapitre 1
Présentation et limites du projet réalisé
précédemment
Introduction
Plusieurs études récentes prennent en considération le problème de sécurité et pré-
sentent le déploiement des nouvelles technologies en faveur de leurs solutions proposées.
Nous détaillerons tout au long de ce chapitre la solution de contrôle d’accès et de sur-
veillance des habitats déployée l’année précédente au sein de l’unité U2S et nous intro-
duisons par la suite le contexte de notre projet en vu de répondre aux limites du projet
déjà réalisé en mettant le point sur les fonctionnalités que notre système doit assurer.
1.1 Description générale du système
Ce système est un système multitâche qui assure à la fois le contrôle d’accès et la sur-
veillance indoor.
Le contrôle d’accès est basé sur la reconnaissance faciale. Il capte une image de la per-
sonne qui demande l’accès à l’habitat, l’envoie à une unité de traitement pour vérifier si
la personne est autorisée à entrer.
La surveillance indoor se base principalement sur le son et l’image. En effet, suite à la
détection d’un son correspondant à un évènement anormal, une caméra de surveillance se
déclenche. Le flux vidéo ainsi généré sera traité par une unité de traitement pour détecter
la présence d’une personne (un cambrioleur) dans la chambre. La détection d’un intrus
engendre la diffusion d’un émail d’alerte à tous les membres de la famille et le déclenche-
ment d’une alarme afin que les voisins réagissent.[2]
La Figure 1.1 représente l’architecture générale du système de contrôle d’accès et de sur-
veillance intelligente. Elle est composée de trois noeuds essentiels : un noeud de contrôle
d’accès, un noeud de surveillance intelligente et un noeud de traitement. Dans notre projet
de fin d’année II, nous allons ré-implémenter le système d’accès sur une carte Raspberry,
donc on s’intéressera essentiellement sur la partie outdoor du projet réalisé précédemment.
6
10. CHAPITRE 1. PRÉSENTATION ET LIMITES DU PROJET RÉALISÉ
PRÉCÉDEMMENT
Figure 1.1 – Architecture hardware du système d’accès[2]
1.2 Principaux modules constituant le système d’accès
Nous définissons le noeud de contrôle d’accès comme la combinaison d’une carte électro-
nique assurant la collecte des informations (les images des personnes demandant l’accès)
et d’un module de reconnaissance faciale assurant le traitement nécessaire. La Figure 1.2
présente les éléments de base du système.
Figure 1.2 – Architecture du système
1.2.1 Module d’accès
Le module du contrôle d’accès est un noeud composé d’un organe intelligent qui assure
la capture d’une image lors d’une demande d’accès. Cet organe peut être une carte élec-
tronique possédant une mémoire pour le stockage de l’image capturée par la caméra. Ce
noeud intelligent sert à contrôler l’accès à la maison en se basant sur la reconnaissance
faciale. Après avoir capturé une image de la personne demandant l’accès, le module doit
la transmettre à une unité de traitement effectuant la reconnaissance faciale.
7
11. CHAPITRE 1. PRÉSENTATION ET LIMITES DU PROJET RÉALISÉ
PRÉCÉDEMMENT
1.2.2 Module de traitement
Le module de traitement sert à effectuer les différents traitements nécessaires pour notre
système. C’est un centre qui collecte les informations issues des deux noeuds intelligents et
leur applique l’algorithme de reconnaissance faciale pour le contrôle d’accès. Après avoir
effectué les traitements nécessaires, Ce module renvoie des consignes au noeuds intelligents
pour ouvrir la porte ou déclencher l’alarme.
1.3 Description des composants de chaque module
1.3.1 La carte électronique et ses composants
Le noeud du système d’accès est à la base d’une carte électronique Arduino méga 2560
assurant l’acquisition des données, capable à la fois de rassembler les composants de la
figure 1.3 ci dessous :
Figure 1.3 – Carte électronique et composants nécessaires
8
12. CHAPITRE 1. PRÉSENTATION ET LIMITES DU PROJET RÉALISÉ
PRÉCÉDEMMENT
1.Une carte Arduino méga 2560 Cette carte répond au besoin de
16 entrées/sorties numériques.
2. Un bouton poussoir Ce bouton poussoir sert à déclen-
cher la capture d’image par le
module caméra. Son branchement
nécessite 4 pins.
3. Un module caméra Il s’agit d’un mini module ca-
méra Arducam OV2640 qui est de
haute résolution atteignant 2MP.
Pour son branchement, ce module
nécessite 6 entrées/sorties numé-
riques.[1]
4. Un servomoteur Ce servomoteur simule le rôle de
la porte d’entrée de la maison.
Son branchement nécessite 3 pins.
5. Un module XBee C’est un module radio permet-
tant de communiquer avec le pro-
tocole Zigbee 802.15.4 sert à la
transfert des données sans fil.
6. Un adaptateur shield Cet adaptateur sert à connecter
un module xbee ainsi qu’il offre
la possibilité d’y insérer une carte
mémoire.
7. Un avertisseur sonore Il sert à déclencher une alarme
suite la détection d’une personne
inconnue demandant l’accès à
l’habitat. Son branchement néces-
site deux ou trois pins selon le
type de l’avertisseur.
Table 1.1 – Configuration du : XBee central et XBee extérieur
1.3.2 Unité de traitement
L’unité de traitement sert à collecter les données issues des noeuds des sous-systèmes et
leur appliquer les algorithmes de reconnaissance faciale. Ces algorithmes sont complexes et
nécessitent une mémoire assez grande vu la taille de la base des données que l’algorithme
nécessite.
Pour assurer tous ces traitements, le PC a été choisi comme unité de traitement et le
MATLAB comme logiciel de développement des algorithmes.
9
13. CHAPITRE 1. PRÉSENTATION ET LIMITES DU PROJET RÉALISÉ
PRÉCÉDEMMENT
1.4 Limite du système et solution adoptée
1.4.1 Choix du PC comme une unité de traitement
Étant dans sa première ébauche, les algorithmes de détection faciale proposé dans le
PFE ENIT[2] a été implémenté sur un PC et s’exécute sous l’environnement MATLAB.
Afin d’améliorer la portabilité du système nous proposons d’utiliser une carte Raspberry
Pi3 pour unité de traitement.
.
1.4.2 La solution adoptée : Raspberry Pi3
Capable de faire tout ce que vous attendez d’un ordinateur à faire, beaucoup moins
chers, offrant les même opportunités de développement et d’exécution, la carte Raspberry
Pi3 nous a permis de développer un système de contrôle d’accès Fiable, de taux de fausse
alarme infiniment petit, de coût relativement abordable comparé aux systèmes disponibles
dans ce domaine et surtout 100% portable.
1.5 Cahier des charges du projet
Dans le cadre du projet de fin d’année II, notre objectif est de donner un aspect
de portabilité sur le PFE ENIT [2]. Pour ce faire, on doit implémenter l’algorithme de
reconnaissance faciale pour le contrôle d’accès sur une carte Raspberry Pi3.
La carte Raspberry doit communiquer avec le système d’accès externe basé sur une carte
Arduino. Ce sujet s’intitule « Implémentation d’un système de contrôle d’accès sur une
carte Raspberry ».
Conclusion
Dans ce chapitre, nous avons présenté le système de surveillance réalisé l’année pré-
cédente : un système basé sur la reconnaissance faciale en mettant l’accent sur la valeur
ajoutée par notre projet de cette année. Dans le chapitre suivant, nous présentons l’unité
de traitement et ses apports par rapport a l’utilisation d’un PC tout en introduisant sa
communication avec la carte arduino et l’architecture finale du notre système d’accès.
10
14. Chapitre 2
Présentation et communication
Raspberry-Arduino
Introduction
Ce chapitre sera consacré à la présentation de la carte Raspberry PI3 jouant le rôle
du notre unité de traitement. On verra par la suite, la connexion établie avec une carte
arduino et les différentes modules utilisées dans l’architecture finale du notre projet.Pour
présenter en finale, l’algorithme implémenté pour la reconnaissance faciale.
2.1 Découverte et première mise en œuvre de la
Raspberry Pi
La Raspberry Pi[7] est un nano-ordinateur inventé par le créateur de jeux vidéo David
Braben, destinée à encourager l’apprentissage de la programmation informatique et à
exécuter plusieurs distributions du système d’exploitation libre Linux. Depuis les années
2006 la fondation Raspberry pi cherche à disposer dans le marché des carte de plus en
plus performantes c’est pourquoi on trouve différentes modèles tel que A, A+, B, B+ et
B2... Dans notre projet on va s’intéressé à la carte Raspberry PI 3 modèle B.
2.1.1 La Raspberry Pi3 modèle B
Nous détaillerons dans la Figure 2.1 les différentes composantes d’une carte Raspberry
Pi3 modèle B :
11
15. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
Figure 2.1 – Raspberry Pi 3 modèle B[8]
2.1.1.1 Support du Wifi et du Bluetooth
Wi-Fi 802.11 vient d’être ratifié par l’organisme de certification IEEE. Les débits
théoriques maximals atteints par les réseaux wifi en utilisant cette norme allant dans
un intervalle de 72 à 288 Mbps, seulement en exploitant une bande de fréquence
égale à 2.4 GHz. Il est assuré par le chipset BCM43143 et l’antenne céramique sont
intégrés à la carte.
Le support Bluetooth est en version 4.1 (Bluetooth Low Energy).
2.1.1.2 Processeur
La Raspberry Pi3 est équipé d’un processeur SoC 64 bits Broadcom BCM2837 ARM
Cortex A53 avec quatre cœurs à 1,2 GHZ. On parle ici d’un doublement de performance
par rapport à la Pi2.
2.1.1.3 Modèle de connecteur MicroSD(max 128 Go)
Un connecteur push-pull qui tient simplement la carte par friction. Il faut tirer dessus
pour le ressortir.
2.1.1.4 Port Ethernet
La carte Raspberry contient un port Ethernet qui autorise un transfert de données avec
un débit de 100 Mbits/s.
2.1.1.5 RAM
Une mémoire RAM de 1GB, c’est-à-dire naviguer de façon plus fluide, tenir plus d’uti-
lisateurs sur nos serveurs ou également faire du multitâches. . .
12
16. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
2.1.1.6 HDMI : Interface Multimédia Haute Définition
Le High Definition Multimedia Interface est une interface numérique permettant le
transfert de données multimédias (audio et vidéo) non compressées en haute définition.
2.1.1.7 Interface camera
La Raspberry Pi a une Mobile Industry Processor Interface (MIPI) : appareil d’interface
série de type 2 (CSI-2). Ce qui facilite la connexion d’un petit appareil à processeur
principal Broadcom BCM2835.
2.1.1.8 Port MicroUSB
Utilisé essentiellement pour assurer l’alimentation de la carte avec un maximum de
2.4A d’ampérage.
2.1.1.9 Port DSI (Display Serial Interface)
Assurant la connexion entre un écran tactile et la carte Raspberry Pi.
2.1.1.10 Connecteur GPIO(General Purpose Input Output)
Disposant de 40 broches GPIO est considéré comme l’un des grands points intéressants
du Raspberry Pi3. En effet, ces connecteurs servent à connecter du matériel externe.
2.1.1.11 Ports USB
Les ports USB dont le nombre est quatre augmentent toutefois la possibilité de connec-
ter simultanément plus qu’un matériel via USB : souris, clavier, clé 4G, flash disque,
XBee, ... .
2.1.2 Préparation de la carte SD
La Raspberry Pi charge son système d’exploitation à partir du lecteur de carte micro
SD. Il est donc indispensable de préparer le système de manière appropriée pour que
le nano ordinateur puisse démarrer correctement. Tout d’abord, il faut commencer par
l’installation d’un logiciel qui s’appelle NOOBS (New Out Of Box Software) qui simplifie
le processus d’installation d’un système d’exploitation pour la carte. Une fois le Raspberry
Pi est démarrée avec NOOBS, une fenêtre s’affiche pour vous proposer différents systèmes
d’exploitations que vous pouvez l’installer. Vous aurez le choix entre :
Raspbian.
LibreElec.
OSMC.
Windows 10 IoT Core.
Dans notre projet, nous avons choisi d’installer Raspbian dans sa récente version Jessie.
13
17. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
2.1.3 Raspberry Pi sur le réseau
Le client DHCP est activé par défaut sur Raspbian. En effet, dés le moment où on
connecte la carte à un câble Ethernet murale disponible dans la salle (ou via un switch)
on profite du fait que le réseau utilise un service DHCP (Dynamic Host Configuration
Protocol) dont la fonction principale est de distribuer des adresses IP aux hôtes connectées.
Après la récupération d’une adresse IP dynamique en utilisant la commande ifconfig dans
le terminal du Raspberry on peut par la suite se connecter via cette adresse à partir
d’un autre poste informatique connecté sur le même réseau que notre carte, rien que pour
assurer certaines tâches à distance l’aide de deux fameux logiciels Putty et Vnc sans avoir
besoin de connecter la carte sur un écran. Cependant, il est vivement conseillé avant tout,
de rendre l’adresse statique afin de facilter la connexion à chaque fois. Tout est assuré
avec une simple modification au niveau des configurations en exécutant la commande :
sudo nano /etc/network/interfaces.
2.1.3.1 Putty
C’est un logiciel Windows qui permet de prendre le contrôle à distance du Raspberry
Pi en utilisant le protocole SSH (Secure Shell). Dans notre distribution Linux installer,
il faut tout d’abord activer le client SSH. Le dialogue s’effectue uniquement dans une
console en mode texte dans lequel on peut exécuter des commandes Linux, exécuter des
programmes Python, gérer des fichiers, ... . Mais ce dernier nous ne permet pas une prise
de contrôle avec l’environnement de bureau LXDE en mode graphique.
Figure 2.2 – Configuration Putty
14
18. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
2.1.3.2 VNC : Virtual Network Computer
C’est un système graphique de partage de bureau qui permet de contrôler à distance
l’interface de bureau d’un ordinateur. Tout en exécutant VNC Server à partir d’un autre
ordinateur ou d’un appareil mobile avec VNC Viewer.
VNC Viewer transmet le clavier et les événements de la souris ou de la touche au serveur
VNC et reçoit les mises à jour de l’écran en retour. Après l’activation de VNC dans le
Raspberry on va voir son bureau dans une fenêtre sur notre ordinateur ou notre appareil
mobile.
2.2 Communication Arduino-Raspberry Pi3
Pour assurer la communication entre une carte arduino et une carte Raspberry, nous
avons besoin d’un protocole de communication approprié qui garantit le transfert des
données. Nous distinguons divers protocoles de communication sans fil : chacun possède
des avantages et des inconvénients par rapport aux autres. Le choix du meilleur protocole
de communication diffère selon le type d’application en question et les exigences et les
contraintes qui s’imposent. ZigBee, Bluetooth et Wifi sont les protocoles de communica-
tions les plus utilisés dans le domaine de la surveillance des habitats. Nous comparons
dans le Tableau 2.1 ces trois protocoles en termes de critères.
Protocole ZigBee 802.15.4 Bluetooth Wifi
Distance 10 à 100 m 10 m >100 m
Extension Automatique Non Selon l’architecture
Autonomie Des années Des jours Des heurs
Complexité Simple Compliqué Très compliqué
Temps de transmission 250 Kbps 1 Mbps 54 Mbps
Fréquence 868/915 MHz 2.4 GHz 2.4 GHz 2.4 GHz
Nombre maximal des noeuds 65535 8 50
Temps de connexion 30 ms >10 s >3s
Cout Réduit Réduit Elevé
Sécurité 128 bit AES 64,128 AES SSID
Table 2.1 – Comparaison des protocoles de communication sans fil : ZigBee, Bluetooth et Wifi
[3]
Le Tableau ci-dessus montre que le protocole de communication ZigBee 802.15.4 est un
protocole de faible consommation d’énergie, de coût réduit et qui est simple à exploiter et
s’apprête à l’extension.[4] Malgré son faible débit, plusieurs études utilisent ZigBee pour
assurer l’envoi des données complexes comme l’image,le son et la vidéo. Notre système sera
installé au niveau des habitats pour assurer la surveillance. La consommation d’énergie
15
19. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
demeure une contrainte importante. Ainsi, notre système doit être totalement indépen-
dant de toute source d’énergie externe et ne doit être alimenté que par que sa batterie. Vu
son faible coût, sa simplicité, sa faible consommation d’énergie (une autonomie qui peut
atteindre des années) et son utilisation dans différents système de surveillance à base de
son et d’image, ZigBee nous semble le meilleur protocole de communication sans fil. Ce
choix est confirmé par le fait que les portées des liaisons ne sont pas importantes. Nous
allons donc utiliser le protocole de communication sans fil ZigBee pour assurer la commu-
nication entre le noeud de sous système extérieur et le centre de traitement (Raspberry).
Figure 2.3 – Connexion Arduino-Raspberry via XBee
2.3 OpenCV
OpenCV (Open Source Computer Vision Library) est une bibliothèque de logiciels d’ap-
prentissage libre par machine. [5]. OpenCV facilite aux entreprises d’utiliser et de modifier
le code. La bibliothèque dispose de plus de 2500 algorithmes optimisés, ce qui comprend
un ensemble complet d’algorithmes d’apprentissage par machine à la fois classique et à
la fine pointe de la technologie. Ces algorithmes peuvent être utilisés pour détecter et
reconnaître les visages, identifier les objets, classer les actions humaines dans les vidéos,
suivre les mouvements de la caméra, suivre les objets en mouvement, extraire des modèles
16
20. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
3D d’objets, produire des nuages de points 3D à partir de caméras stéréo, collecter les
images toutes ensemble pour produire une image d’une scène entière en haute résolution,
trouver des images similaires à partir d’une base de données d’images, enlever les yeux
rouges des images prises en utilisant le flash, suivre les mouvements des yeux, reconnaître
les paysages et établir des marqueurs pour la superposer avec une réalité augmentée, ... .
OpenCv nous facilite le développement de l’algorithme de reconnaissance faciale.
2.4 Algorithme de reconnaissance faciale
La reconnaissance faciale peut se définir comme étant l’identification ou la vérification
d’une personne à partir d’une image numérique ou d’une image vidéo à partir d’une source
vidéo. Une des façons de le faire est de comparer les caractéristiques faciales sélectionnées
de l’image et une base de données.
2.4.1 Description de l’algorithme LBP
L’algorithme de reconnaissance faciale que nous avons testé avec dans notre projet
requière trois grandes étapes :
Trouver une bonne base de données avec des images multiples de visages pour chaque
individu.
Un descripteur est calculé pour chaque image de la base.
Tester le descripteur sur les images de la base de données.
Cet algorithme est développé à la base du descripteur LBP.
2.4.1.1 Descripteur LBP
LBP est un descripteur de caractéristiques très important et qui est utilisé dans la
vision par ordinateur pour la correspondance de texture. Il a été publié pour la première
fois en 1990 et, par la suite, diverses versions modifiées ont été publiées.
2.4.1.2 Calcul du decripteur LBP
Tout d’abord, l’image couleur d’entrée doit être converti en niveaux de gris, puisque
LBP fonctionne sur des images en niveaux de gris. Pour chaque pixel dans l’image en
niveaux de gris, un quartier est sélectionné autour du pixel actuel, puis nous calculons la
valeur LBP pour le pixel à l’aide du voisinage. Après avoir calculé la valeur LBP du pixel
actuel, nous mettons à jour l’emplacement de pixel correspondant dans le masque LBP (il
est de même hauteur et largeur que l’image d’entrée.). Dans l’image, nous avons 8 pixels
voisins.[9]
Si la valeur de pixel actuelle est supérieure ou égale à la valeur de pixel voisine, le bit
correspondant dans le tableau binaire est réglé sur 1 autre sinon le bit correspondant dans
17
21. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
Figure 2.4 – Conversion d’une image en niveaux de gris en un masque LBP
le tableau binaire est réglé sur 0.
L’ensemble du processus est illustré dans la figure 2.5. Le pixel actuel (central) a la
valeur 7. Nous commençons à comparer le pixel voisin où l’étiquette 0. La valeur du pixel
voisin avec l’étiquette 0 est 2. Puisqu’il est inférieur à la valeur de pixel actuel qui est
7, on réinitialise le 0ème emplacement de bit dans le réseau binaire de 8 bits à 0. Nous
l’annulons ensuite dans le sens inverse des aiguilles d’une montre. Le prochain emplace-
ment d’étiquette 1 a une valeur 7 qui est égale à la valeur de pixel actuel. Nous définissons
donc l’emplacement du premier bit dans le binaire de 8 bits en 1. Nous continuons alors
à passer au prochain pixel voisin jusqu’à ce que nous atteignions le 8ème pixel voisin.
Ensuite, le motif binaire 8 bits est converti en un nombre décimal et le nombre décimal
est alors stocké dans l’emplacement de pixel correspondant dans le masque LBP.
Figure 2.5 – Calcul des valeurs de LBP[9]
Une fois que nous avons calculé le Masque LBP, nous calculons l’histogramme LBP. Les
valeurs du masque LBP vont de 0 à 255, donc notre descripteur LBP sera de taille 1x256.
Nous normalisons alors l’histogramme LBP. La figure ci-dessous montre le schéma de l’al-
gorithme.
18
22. CHAPITRE 2. PRÉSENTATION ET COMMUNICATION RASPBERRY-ARDUINO
Figure 2.6 – Calcul des valeurs de LBP[9]
Charger l’image couleur.
Convertir en image en niveaux de gris.
Calculer le masque LBP.
Calculer l’histogramme LBP et normalisez-le.
Conclusion
Dans ce chapitre, nous avons présenté notre unité de traitement, la Raspberry Pi3.
Nous avons établit par la suite sa connexion avec la carte arduino méga et les différentes
modules utilisées dans l’architecture finale du notre projet. Pour arriver enfin à présenter la
bibliothèque OpenCV qui nous facilite le développement de l’algorithme de reconnaissance
faciale. Dans le dernier chapitre, il nous reste à décrire les différentes étapes de réalisation
du notre système et à le tester.
19
23. Chapitre 3
Réalisation du système du contrôle
d’accès
Introduction
Nous présentons dans ce chapitre en détails les étapes de réalisation de notre système
et les fonctionnalités qu’il offre. Ensuite nous passons à la validation du système tout en
effectuant les tests nécessaires (contrôle d’accès).
3.1 Configuration des modules de communication XBee
Cette phase sert à configurer les modules XBee pour qu’ils puissent communiquer cor-
rectement. La configuration est fait via le module XBee Explorer : ce module montré par
la Figure 3.1 doit être relié à un ordinateur contenant un logiciel approprié responsable
de l’attribution des paramètres de configuration.
Figure 3.1 – XBee connecté au PC à travers un XBee Explorer
Pour assurer la configuration des modules XBee des noeuds de notre système, nous avons
20
24. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
téléchargé la version 6.3.0 du logiciel X-CTU que la compagnie Digi a développé avec les
modules qu’elle fabrique. Il s’agit d’une plateforme ouverte qui travaille sous plusieurs
systèmes d’exploitation tels que Linux, Windows et MacOs. Ce logiciel nous permet grâce
à son interface graphique (Figure 3.2) de détecter les modules insérés et les configurer
[10].
Figure 3.2 – Logiciel X-CTU
Le XCT-U commence à analyser le port COM auquel le module XBee Explorer est relié
au PC. Une fois trouvé et détecté, ce module sera ajouté à la liste des modules XBee. La
Figure 3.3 montre les étapes de détection d’un nouveau module XBee connecté au PC.
Figure 3.3 – La détection d’un nouveau module XBee
21
25. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
Après avoir ajouté le nouveau module XBee, nous pouvons le configurer en changeant
les paramètres décrits dans le Tableau 3.1. Les paramètres de configuration par l’interface
graphique sont montrés par la Figure 3.4.
Paramètre Signification
PAN ID C’est l’identifiant du réseau ZigBee qui doit être
unique à tous les modules occupant le même réseau.
MY C’est l’adresse du module XBee émetteur.
DH C’est la partie composée des 8 bits les plus forts du
module XBee récepteur.
DL C’est la partie composée des 8 bits les plus faibles
du module XBee récepteur.
SH C’est la partie composée des 8 bits les plus forts de
la série du module XBee.
SL C’est la partie composée des 8 bits les plus faibles
de la série du module XBee.
Table 3.1 – Les paramètres de configuration d’un XBee[2]
Figure 3.4 – Configuration d’un XBee
22
26. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
Nous pouvons tester la connectivité de deux modules XBee via la console que le logi-
ciel XCT-U offre. Pour ce faire, nous connectons deux modules XBee au PC et nous les
configurons de façon qu’ils puissent communiquer entre eux (Figure 3.5).
Figure 3.5 – Connexion de deux XBee au PC
La Figure 3.6 montre une communication entre deux modules XBee via la console de
XCT-U.
Figure 3.6 – Test de connectivité des deux XBee
23
27. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
Dans notre système, nous nous disposons d’un noeud qui contient un module XBee as-
surant sa communication avec le module central. Ainsi, il est indispensable que les deux
modules soient dans le même réseau avec des adresses différentes. La topologie de notre
réseau est en étoile, donc chacun des noeuds communique au noeud central sans passer
par l’autre noeud. Le Tableau 3.2 représente les configurations nécessaires des modules
de communication sans fil de notre système.
XBee central XBee extérieur
PAN ID 1234 1234
MY 10 11
DH 0 0
DL 11 10
SH 13A200 13A200
SL 40E9C405 40F364EA
Table 3.2 – Configuration du : XBee central et XBee extérieur
Après la configuration des deux modules XBee, on peut s’assurer de la communication
entre les deux cartes. La figure ci dessous montre la réception d’un message "Bonjour
Framboise" par la carte Raspberry envoyé de la part d’une carte Arduino.
Figure 3.7 – Test de communication entre la carte Raspberry et la carte arduino
24
28. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
3.2 Implémentation de l’algorithme
Pour aboutir à une identification de personne demandant l’accès on va passé par trois
grandes étapes :
La constitution d’une base de données composée d’une dizaine d’images. Pour
chaque personne on a associé plusieurs images avec des grimasses différentes.
La détection des visages dans les images de la base de données pour l’utiliser par la
suite dans la formation de reconnaisseur facial.
Le test de reconnaisseur facial pour reconnaître les visages pour lesquels il a été
formé.
3.2.1 Base de données
Nous avons utilisé pour tester cet algorithme, une base de données qui contient 40
images couleur de 8 personnes au format GIF. Pour chaque individu il y a 5 images .
L’individu possède une expression faciale différente dans chaque image.
Figure 3.8 – Base de données utilisée[6]
25
29. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
3.2.2 la mise en oeuvre
Après avoir présenter notre base de données, on attaque maintenant le développement
de l’algorithme de reconnaissance de visage en suivant ces étapes :
Importer les modules nécessaires :
— cv2 : Il s’agit du module OpenCV qui contient les fonctions de détection et de
reconnaissance faciale.
— os : on utilise ce module pour extraire les noms d’image dans le répertoire
de la base de données, puis, à partir de ces noms, nous extrairons le numéro
individuel qui sera utilisé comme étiquette pour le visage dans cette image.
— Image : Puisque OpenCv ne prend pas en charge le format GIF des images
constituant la base , on utilise alors le module PIL pour lire l’image au format
en niveau de gris .
— numpy : Nos images seront stockées dans des tableaux numpy.
Charger la cascade de détection de visage :
— Détecter le visage dans chaque image
— Former le reconnaisseur
Créer l’objet reconnaisseur facial :
Nous utiliserons le reconnaisseur LBP.
Test du détecteur de visage :
Nous affichons également le score de confiance pour chaque reconnaissance. Plus la
valeur de la variable de confiance est élevée, moins le reconnaisseur a confiance en
la reconnaissance. Une valeur de confiance de 0.0 est une reconnaissance parfaite.
3.3 Test de l’algorithme
3.3.1 Capture de l’image
La capture de l’image de la personne souhaitant entrer se fait par l’intermédiaire d’une
carte Arduino, un bouton poussoir et une caméra. Une fois la capture est terminée, la
photo de la personne sera envoyée vers la Raspberry et celle ci envoie en retour une com-
mande qui soit ouvre la porte si la personne est connue soit déclenche une alarme. Dans
le figure 3.9 on présente les différents composants assurant cette implémentation. Le servo
joue le rôle d’une porte et le bouton d’une clochette.
26
30. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
Figure 3.9 – Composants du système de contrôle
3.3.2 Traitement et algorithme appliqué sur une image
Après avoir capturé une image, celle ci va être envoyée via XBee vers la carte Raspberry
et l’algorithme LBP s’applique pour la traiter. La figure 3.10 nous montre le test de
l’algorithme sur une base de données existante sur la carte Raspberry.
Figure 3.10 – Test de l’algorithme
3.4 Difficultés rencontrées
Le sujet de notre PFA II est très intéressant. Implémenter un système embarquée et
découvrir la carte Raspberry Pi3 nous semble un pas avantageux dans notre parcours. Et
même avec toutes les difficultés et parfois les échecs on a beaucoup appris. Toutefois, il
faut se dire que c’est des échecs, plus que de succès, que l’on apprend le plus.
D’abord, afin de débuter toutes implémentations, nous avons passé des jours à savoir de
quoi s’agit une carte Raspberry et quelles sont ses fonctionnalités. Surtout dans le cadre
de l’ENIT on n’a pas trouvé le lieu adéquat pour découvrir l’interface graphique de la
Raspberry, pour connecter notre carte à Internet afin de télécharger les logiciels néces-
saire pour tester l’algorithme de reconnaissance faciale.
27
31. CHAPITRE 3. RÉALISATION DU SYSTÈME DU CONTRÔLE D’ACCÈS
Ensuite, lorsqu’on est arrivé à l’étape du développement de l’algorithme et la nécessité
d’installer OpenCV sur la carte. On a passé plus qu’une semaine à l’installer. Trois carte
mémoire ont été endommagée suite à l’installation et on a réinstaller le système d’exploi-
tation à chaque fois. On n’a pas pu réussir que lorsqu’on a utilisé une carte mémoire de
classe 10 et Raspbian Jessie comme système d’exploitation.
Pour arriver enfin à l’étape de la réception et la reconstitution de l’image où nous nous
sommes totalement bloquées. En fait, nous avons validé la bonne réception des valeurs de
l’image capturée par l’Arduino de la part de la carte Raspberry, mais malheureusement,
nous n’avons pas pu la décodée et la reconstituée.
Conclusion
La bonne utilisation et exploitation des nouvelles techniques de surveillance et des
protocoles de communication sans fil nous a permis d’implémenter un système de contrôle
d’accès 100% portable qui sert à contrôler l’accès des habitats. Ainsi, nous avons présenté
dans ce dernier chapitre, les différentes étapes de réalisation de ce système tout en le
validant en effectuant les tests nécessaires.
28
32. Conclusion générale
Le contrôle d’accès et la surveillance des domiciles et des établissements publiques et
privés présente un souci que tout le monde en cherche à lui faire face. Pour ce faire, dans
ce projet de fin d’année, nous avons réussi à implémenter un système de contrôle d’accès
intelligent qui vise à répondre aux problèmes de surveillance et de sécurité des habitats.
Pour aboutir à un tel système, nous avons utilisé une carte Raspberry Pi3 rien que pour
répondre au problème de portabilité du système. Pour le contrôle et la détection d’intru-
sion nous avons utilisé un algorithme de reconnaissance faciale développé en python et
basé sur le fameux algorithme « LBP ».
Notre système contient un nœud intelligent capable de communiquer avec le nœud cen-
tral responsable de la reconnaissance faciale (La Raspberry Pi3). Ce nœud est équipé d’un
module XBee assurant la communication sans fil. En outre, il est composé d’une carte
Arduino équipée d’un module de caméra pour la capture d’image de la personne deman-
dant l’accès, d’un bouton poussoir pour amorcer la capture. Aussi, elle se dispose d’un
servomoteur jouant le rôle d’une porte qui s’ouvre si la personne est considérée comme
connue et qui se ferme sinon et d’un avertisseur sonore qui se déclenche si la personne
voulant entrer est inconnue.
Notre projet est prêt à être étendu. D’une part, il lui manque la partie de contrôle in-
terne (classification des sons environnementaux et détection de personne). D’autre part,
on peut connecter le module caméra à internet pour garantir la possibilité de surveiller
notre domicile en temps réel surtout que la carte Raspberry Pi3 dispose d’un module wifi
ce qui va faciliter les manipulations sans toucher à la portabilité du système.
29
33. Bibliogaphies
[1] ArduCAM-M-2MP Camera User Guide. url : http://www.arducam.com/downloads/
shields/ArduCAM_Mini_2MP_Camera_Shield_DS.pdf.
[2] “Conception et réalisation d’un système de contrôle d’accès et de surveillance intel-
ligente”. In : Soutenu le 24 Septembre 2016.
[3] Yu-Wei Su Jin-Shyan Lee et Chung-Chou Shen. “A Comparative Study of Wire-
less Protocols : Bluetooth, UWB, ZigBee, and Wi-Fi”. In : url : http://www.ee.
oulu.fi/~kk/dtsp/tutoriaalit/Shen.pdf.
[4] Yu-Wei Su Jin-Shyan Lee et Chung-Chou Shen. “a Comparative Study of Wire-
less Protocols : Bluetooth, UWB, ZigBee, and Wi-Fi, Information Communications
Research Labs Industrial Technology Research Institute (ITRI) Hsinchu, Taiwan,
The 33rd Annual Conference of the IEEE Industrial Electronics Society (IECON)”.
In : November 2007.
[5] OpenCV library. url : http://opencv.org/about.html.
[6] Brian O’Connor et Kaushik Roy. “Facial Recognition using Modified Local Binary
Pattern and Random Forest, Department of Computer Science, North Carolina AT
State University, Greensboro”. In : November 2013.
[7] Raspberry Pi.
[8] Raspberry Pi 3 model B | 3DSOMA. url : https://www.google.tn/search?q=
raspberry+pi3+model+B+.
[9] Texture Matching using Local Binary Patterns (LBP), OpenCV, scikit-learn and
Python. url : http://hanzratech.in/2015/05/30/local-binary-patterns.
html.
[10] XCTU, Next Generation Configuration Platform for XBee/RF Solutions. url :
http://www.digi.com/products/xbee-rf-solutions/xctu-software/xctu.
30