Système intelligent de gestion sanitaire
Système intelligent de gestion sanitaire
Dép. TI
AN 2022
Ref SEM2202
Rapport de
PROJET DE FIN D’ETUDES
En vue de l’obtention de :
Licence Appliquée en Technologies de l’Informatique
Spécialité : Systèmes Embarqués et Mobiles
Encadré par :
Mme Wided MAGHRAOUI (ISETB)
Mr Mohamed CHAABANE (Adiz
(Adiz-DATA)
Effectué à :
Entreprise : Adiz-DATA
DATA
Adresse : rue 9 avril bâtiment DKHIL bureau n°7 Ras Jebel Bizerte 7070
Tel : 72 456 069
Mail : [Link]@adiz
[Link]@[Link]
Je dédie ce travail,
A MES PARENTS
Pour l'amour qu'ils m'ont toujours donné, leurs encouragements et toute l'aide qu'ils m'ont
apportée durant mes études.
Aucun mot, aucune dédicace ne pourrait exprimer mon respect, ma considération, et mon
Amour pour les sacrifices qu'ils ont consentis pour mon instruction et mon bien-être.
A Mes SŒUR s
Bedoui Mejda
Dédicace
Je dédie ce modeste travail et ma profonde gratitude à tous ceux qui ont sacrifié
A MES PARENTS
A TOUTE MA FAMILLE
Je vous dédie ce travail en reconnaissance de l’amour que vous m’offrez quotidiennement et
votre bonté exceptionnelle.
Enfin, nous exprimons notre sincère gratitude aux membres du jury, pour l’honneur
qu’ils nous font de participer à l’évaluation de notre projet.
Table des matières
Introduction ...................................................................................................................... 3
Conclusion ........................................................................................................................ 8
Introduction .................................................................................................................... 10
2. Modélisation du besoin....................................................................................... 10
Conclusion ...................................................................................................................... 29
Introduction .................................................................................................................... 31
3. Analyse ............................................................................................................... 31
4. Réalisation .......................................................................................................... 32
5. Test ..................................................................................................................... 36
3. Analyse ............................................................................................................... 38
4. Conception .......................................................................................................... 40
3. Analyse ............................................................................................................... 52
4. Conception .......................................................................................................... 58
5. Réalisation .......................................................................................................... 62
3. Analyse ............................................................................................................... 66
4. Conception .......................................................................................................... 68
5. Réalisation .......................................................................................................... 69
Conclusion ...................................................................................................................... 72
Introduction .................................................................................................................... 74
Test............................................................................................................................... 76
3. Analyse ............................................................................................................... 77
3. Analyse ............................................................................................................... 83
Conclusion ...................................................................................................................... 87
Nétographie ........................................................................................................................ 89
Liste des figures
Figure 19: Schéma de câblage du capteur ultrason avec la carte Raspberry Pi ................... 35
Figure 57: Fenêtre « La liste des utilisateurs sur Firebase Authentication » ....................... 65
Figure 58: Figure 58: Base de données « La liste des utilisateurs sur Cloud Firestore » .... 65
Figure 59: Diagramme de cas d’utilisation « Consulter le nombre des visiteurs en temps
réel » ......................................................................................................................................... 66
Figure 60: Diagramme de cas d’utilisation « Mettre à jour le nombre maximal des visiteurs
» ................................................................................................................................................ 67
Figure 61: Diagramme de séquence « Mettre à jour le nombre maximal des visiteurs ».... 69
Figure 62: Base de données« Stockage de nombre des visiteurs entrés et sorties » ............ 69
Figure 63: Interface « Mettre à jour le nombre maximal des visiteurs » ............................. 70
Figure 65: Interface «Consulter le nombre des visiteurs en temps réel» ............................. 70
Figure 70: Diagramme de cas d’utilisation « Consulter le nombre journalier des visiteurs »
.................................................................................................................................................. 78
Figure 72: Base de données « Stockage de nombre des visiteurs entrés » .......................... 80
Figure 73: Interface « Consulter le nombre des visiteurs par heure » ................................. 80
Figure 74: Interface « Consulter le nombre des places disponibles» .................................. 80
Figure 78: Diagramme de cas d’utilisation «Consulter le nombre mensuel des visiteurs » 83
Figure 80: Interface « Consulter le nombre des visiteurs par mois » .................................. 85
Tableau 24: Description textuelle du cas d’utilisation« Afficher la liste des utilisateurs ». 57
Tableau 28: Description textuelle « Consulter le nombre des visiteurs en temps réel » ..... 67
Tableau 29: Description textuelle du cas d’utilisation «Mettre à jourle nombre maximal des
visiteurs»................................................................................................................................... 68
Tableau 30: Description textuelle du cas d’utilisation «Consulter le nombre maximal des
visiteurs»................................................................................................................................... 68
Tableau 33: Description textuelle « Consulter le nombre journalier des visiteurs » ........... 78
Tableau 36: Description textuelle « Consulter le nombre mensuel des visiteurs » ............. 83
QR Quick Response
AI Artificial Intelligence
ML Machine Learning
Introduction générale
Depuis plus d’une décennie, l’intelligence artificielle est un sujet qui questionne beaucoup
et fait partie de notre quotidien qui s'applique à tous les secteurs d’activité : transports, santé,
énergie, industrie, logistique, finance ou encore commerce.
Cloud, véhicule autonome, compteurs intelligents etc. utilisent tous des algorithmes
performants pour fournir des réponses efficaces, fiables et personnalisées aux utilisateurs.
Dans ce contexte, nous mettons en place un système intelligent qui répond aux enjeux de
sécurité sanitaire actuels permettant à la fois un accès simple et un contrôle intelligent du
respect des mesures sanitaires en éliminant toute intervention humaine pour avoir une
meilleure gestion des flux des personnes au sein des bâtiments.
C’est une borne de sécurité sanitaire qui consiste à contrôler le port du masque et le scan
du QR code à l’entrée d’un établissement et à gérer le flux de personnes via une application
web.
Ce rapport est clôturé par une conclusion générale et une présentation des perspectives de
ce travail.
1
Chapitre I. Cadre Général du Projet
Chapitre I. Cadre Général du Projet
Introduction
Ce premier chapitre sera consacré à la présentation générale du projet. En effet, nous
présentons en premier lieu l’organisme d’accueil au sein duquel nous avons effectué notre
stage, ensuite nous allons décrire le cadre général de notre projet, enfin nous abordons l’étude
de l’existant et la solution envisagée.
ADIZ DATA est une Société de services et d'ingénierie en informatique (SSII), basée sur
l’association des technologies les plus avancées des applications de production, contrôle de
qualité et mobilité/transport. Leurs domaines de compétence sont couplés autour de
l’automatisme, data et excellence opérationnelle pour créer des assistants 4.0 adaptatifs et
évolutif dédiés.
Domaines de compétences :
3
Chapitre I. Cadre Général du Projet
2. Solution proposée
4
Chapitre I. Cadre Général du Projet
Cette solution s’installe sur tout type de structure (bâtiments tertiaires, établissements de
santé comme les hôpitaux, hôtels et restaurants, salles de spectacle, installations commerciales
et universitaires, bâtiments privés et publics), permet aux visiteurs de chaque établissement de
contrôler le respect des mesures sanitaires.
La plupart d’équipe de développement ont peur de ne pas terminer les projets donnés dans
les dates prévues à cause d'une mauvaise spécification ou d'un changement brusque des
besoins. Cela conduit à un environnement de travail stressant et à la peur de dépassement de
capacités et des délais de livraison.
Facile à comprendre.
Mène vers un produit qui s’adapte le plus aux exigences du client et des
utilisateurs.
5
Chapitre I. Cadre Général du Projet
UML [1] comme son nom l’implique, un langage de modélisation et non une méthode ou
un procédé. L’UML est constitué d’une notation très spécifique ainsi que les règles
grammaticales s’y attachant pour élaborer des modèles de logiciel.
UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires
au bon développement d’un logiciel orienté objet. UML offre un standard de modélisation,
pour représenter l’architecture logicielle.
6
Chapitre I. Cadre Général du Projet
SysML[2] est un moyen de regrouper, dans un modèle commun à tous les corps de métiers,
les spécifications, les contraintes, et les paramètres de l'ensemble du système. SysML aborde
la conception avec la notion de blocs qui deviendront des parties mécaniques, électroniques,
informatiques ou autres. Il est donc un langage graphique qui utilise des diagrammes.
7
Chapitre I. Cadre Général du Projet
Conclusion
Dans ce premier chapitre du projet nous avons présenté l’entreprise d'accueil et l’étude
préalable afin de déterminer une solution fiable qui répond à nos besoins. Puis, nous avons
spécifié la méthodologie de gestion de projet et de conception adoptées.
8
Chapitre II. Analyse et spécification des
besoins
Chapitre II. Analyse et spécification des besoins
Introduction
Ce chapitre présente notre sprint de démarrage. Il est consacré à la capture des besoins
fonctionnels et non fonctionnels de notre système, au pilotage de projet avec Scrum, par
élaboration du Backlog du produit avec une planification des sprints ainsi qu’à la description
de l’environnement de travail.
2. Modélisation du besoin
Un acteur est la personne ou le matériel qui interagit avec notre système afin de réaliser
une valeur ajoutée. Notre projet fait intervenir trois acteurs principaux comme le montre le
tableau ci-après.
10
Chapitre II. Analyse et spécification des besoins
Acteur Fonctionnalités
S’authentifier
Consulter de nombre journalier des visiteurs
Consulter le nombre des visiteurs en temps réel
Gérer de la liste des administrateurs et des droits d’accès :
Ajouter un utilisateur
Afficher la liste des utilisateurs
Administrateur
Supprimer un utilisateur
Consulter le nombre mensuel des visiteurs
Consulter de nombre et le pourcentage des places disponibles
Mettre à jour le nombre journalier maximal des visiteurs
Se notifier : Le système notifie l’administrateur lorsqu’il atteint le
nombre maximal des visiteurs
S’authentifier
Consulter de nombre journalier des visiteurs
Consulter le nombre des visiteurs en temps réel
Utilisateur Consulter de nombre mensuel des visiteurs
Consulter de nombre et le pourcentage des places disponibles
Se notifier : Le système notifie l’utilisateur lorsqu’il atteint le
nombre maximal des visiteurs
11
Chapitre II. Analyse et spécification des besoins
12
Chapitre II. Analyse et spécification des besoins
2. Le Backlog produit
Le Backlog du produit est l’artefact le plus important de Scrum. En effet, c’est l’ensemble
des caractéristiques fonctionnelles qui compose le produit. Ces caractéristiques sont appelées
des histoires utilisateurs (user story). Chaque histoire utilisateur est caractérisée par une
priorité définie par le Product Owner.
13
Chapitre II. Analyse et spécification des besoins
1 1 Détection de présence des personnes Visiteur Être détecté par le système 1 moyenne
-Valider le QR code
1 2 Validation de QR code et de port du masque Visiteur 2 difficile
-Valider le port du masque
-Se connecter
Administrateur
Authentification -Se déconnecter moyenne
Utilisateur
-Réinitialiser le mot de passe
1 3 3
-Ajouter un utilisateur
14
Chapitre II. Analyse et spécification des besoins
2 5 Visiteur 5
Optimisation de la validation de port du
Valider le port du masque difficile
masque
15
Chapitre II. Analyse et spécification des besoins
Dans notre cas, nous avons découpé notre projet en deux Releases.
Plan du Release 1
Plan du Release 2
1. Environnement matériel
Lors du développement d’un projet d'intelligence artificielle (IA) [3] ou des solutions IOT,
il est absolument indispensable d'utiliser des cartes de développement possédant une
16
Chapitre II. Analyse et spécification des besoins
Pour cela, on va faire le choix de la carte de développement qui doit être en harmonie avec
les besoins demandés. Donc, on va passer en revue les deux meilleurs ordinateurs mono carte
(SBC) du marché : NVIDIA Jetson Nano [4] et Raspberry Pi 4 Model B [5].
Figure 9: Carte NVIDIA Jetson Nano Figure 10: Carte Raspberry pi 4 Model
B
Le tableau ci-après, présente une comparaison entre les deux cartes de développement
citées précédemment :
17
Chapitre II. Analyse et spécification des besoins
Encodage
H264(1080p30) H.264/H.265 (4Kp30)
vidéo
Décodage
H.265(4Kp60), H.264(1080p60) H.264/H.265 (4Kp60, 2x 4Kp30)
vidéo
Systèmes
Raspberry Pi OS Linux4Tegra
d'exploitation
Bien que nous n'ayons pas mentionné toutes les fonctionnalités de ces cartes IoT, leurs
principales caractéristiques sont similaires. Ce sont tous deux des ordinateurs mono carte
(single-board computers ou SBC) conçus avec un processeur ARM et beaucoup de
connectivités pour les périphériques.
En termes de GPU, le Jetson Nano gagne grâce à son GPU Maxwell à 128 cœurs à 921
MHz. Cela rend le Jetson Nano plus adapté aux applications d'IA et de ML, ce qui pourrait
être un avantage spécifique pour notre cas. La puissance GPU du Raspberry Pi 4 est plus
faible que le Jetson Nano.
Pour des applications comme la nôtre où une puissance GPU plus élevée est nécessaire et
un produit industriel de haute qualité est requis, NVIDIA Jetson Nano est la carte à utiliser
18
Chapitre II. Analyse et spécification des besoins
mais en raison de notre incapacité à fournir une carte NVIDIA Jetson Nano, on va utiliser un
modèle Raspberry pi 4 avec 2 Go de RAM
Pour la détection du QR code et de masque on a qu’à utiliser une caméra compatible avec
la carte choisie. Le module Raspberry Pi Camera Rev 1.3 est un plug and play conçu pour
Raspberry Pi. Il se branche directement sur le connecteur CSI du Raspberry Pi.
5 méga pixels
Résolution fixe
1/4 pouce
Taille CCD
72 degrés
Champ de vision
2592 × 1944 pixels
Résolution de capteur
25 × 24 × 9 mm
Dimension
3,3 V (DC)
Tension d’alimentation
59 TND
Prix
19
Chapitre II. Analyse et spécification des besoins
Chaque visiteur doit se présenter sur une ligne fixée à une distance bien déterminée devant
l’écran d’accueil.
Pour garantir le bon respect de cette distance, on a utilisé un capteur ultrason. Il sert à
détecter et à mesurer des distances entre divers types d’objets. C’est un capteur puissant et qui
reste fiable même s’il y a présence de poussières ou si l’objet est brillant, transparent.
Moins de 2 mA.
Courant statique
15 degrés.
Angle du capteur
2cm-450cm
Distance de détection
Niveau élevé 5V, niveau bas 0V
Signal de sortie
Impulsion TTL 10us
Signal de déclenchement d'entrée
Signal TTL de sortie TTL
Signal d'écho
5V (DC)
Tension d'alimentation
10 TND
Prix
20
Chapitre II. Analyse et spécification des besoins
Le capteur de mouvement PIR (Passive Infrared Sensor) est un senseur électronique qui
mesure la lumière infrarouge (IR) rayonnant à partir d’objets dans son champ de vision.
32 x 24 x 27H mm
Dimensions
3,3V TTL
Signal de sortie
3-7m
Distance de détection
5 (DC)
Tension d'alimentation
7 TND
Prix
Les moteurs pas à pas combinent les avantages des moteurs à courant continu et des
servomoteurs. En effet, ses mouvements sont très précis, et il peut faire plus d'un tour. Un
driver ULN2003 doit être associé au moteur permettant ainsi d’appliquer les signaux
électriques nécessaires aux bobines du moteur par le biais d’un simple signal d’horloge généré
par la carte de développement.
21
Chapitre II. Analyse et spécification des besoins
5 Vcc
Alimentation
21 ohms
Résistance
Intensité 25 mA
1/64
Réduction
64 (réduction de 4096 en sortie d'axe)
Nombre de pas par tour
Ø5 mm avec double méplat
Axe
12 mm
Longueur de l'axe
5V (DC)
Tension d'alimentation
Prix 10 ND
2. Environnement Logiciel
22
Chapitre II. Analyse et spécification des besoins
Logo Description
Raspberry Pi OS (Anciennement nommée Raspbian) [10] est un système d'exploitation libre et gratuit basé sur
Debian, optimisé pour fonctionner sur les différents Raspberry Pi.
Microsoft Visual Studio [11] est un éditeur de code multiplateforme, open source et gratuit, supportant une
dizaine de langages. C’est est un éditeur de code extensible développé par Microsoft pour Windows, Linux et
MacOs pour le développement des applications web et mobile.
Node-RED [12] est un outil de développement basé sur les flux pour la programmation visuelle développé
pour connecter un ensemble des périphériques matériels, des API et des services en ligne dans le cadre de
l'Internet des objets.
23
Chapitre II. Analyse et spécification des besoins
Cloud Firestore[14] est une base de données NoSQL flexible et évolutive offert par Firebase et Google Cloud.
Elle synchronise les données entre les applications clientes via des Listeners en temps réel et offre une prise en
charge hors ligne pour les mobiles et le Web.
Pour répondre à nos besoins et à nos exigences dont les plus importants : la réutilisabilité, la modularité et
l’extensibilité, nous avons choisi de modéliser avec l’outil de design « StarUML»[15], c’est un logiciel de
modélisation UML open source.
Adobe XD[16] (Adobe Experience Design) est un logiciel incontournable de la suite Adobe Créative Cloud.
Il a vocation à faciliter la conception de maquettes et des prototypes et aboutir à des interfaces digitales agréables
et efficaces. Dans notre cas, on à l’utilisé pour la conception de l’interface visiteur de notre projet.
Fritzing[17] est un logiciel open source destiné aux designers, artistes, chercheurs ou amateurs pour les aider à
créer des circuits électroniques.
24
Chapitre II. Analyse et spécification des besoins
Logo Description
25
Chapitre II. Analyse et spécification des besoins
Logo Description
[Link] [23] est une bibliothèque JavaScript utilisée pour construire des composants d'interface utilisateur
réutilisables. Il utilise le DOM virtuel qui est un objet JavaScript. Cela améliorera les performances des
applications, puisque le DOM virtuel JavaScript est plus rapide que le DOM normal.
React Router [24] est une extension de React qui permet de gérer les routes d’une application coté client. Il
permet de synchroniser (d’associer) des composants graphiques React à des Url.
Material UI [25] est un Framework React UI qui adhère aux concepts de Material design. Il est construit sur
le Framework React et comprend des composants qui adhèrent aux normes Material. C’est l'outil le plus
puissant et le plus efficace pour créer une application en ajoutant des conceptions et des animations et en
l'utilisant avec une innovation technique et scientifique.
Bootstrap [26] est le Framework HTML, CSS et JS le plus populaire pour le développement des sites Web
mobile et responsive.
Ws [27] est une bibliothèque [Link] WebSocket. C’est une implémentation client-serveur simple à utiliser,
extrêmement rapide et soigneusement testée.
26
Chapitre II. Analyse et spécification des besoins
OpenCV [28] est une bibliothèque d’exécutable qui facilite la reconnaissance d’images en mouvement. Elle
fournit une interface permettant à Python de capturer des flux vidéo, et également pour extraire les images afin
que nous puissions les traiter plus tard.
Flask [29] est un petit Framework web Python léger, qui fournit des outils et des fonctionnalités utiles qui
facilitent la création d’applications web en Python.
TensorFlow [30] est l'un des outils les plus utilisés en IA dans le domaine de Machine Learning. Il est open
source et développé par Google. TensorFlow fournit un ensemble de workflows pour développer et former des
modèles à l'aide de Python ou JavaScript.
PyTorch [31] est une technologie d'intelligence artificielle open source développée par Meta (ex-Facebook). Entrant
dans la catégorie de l'apprentissage profond ou Deep Learning, elle est basée sur la bibliothèque Torch, utilisée pour
des applications telles que le Computer Vision et le traitement du langage naturel.
27
Chapitre II. Analyse et spécification des besoins
28
Chapitre II. Analyse et spécification des besoins
Conclusion
Dans ce chapitre, on a planifié notre travail, identifié les besoins fonctionnels et non
fonctionnels de notre application, les rôles des utilisateurs, par la suite on a présenté le
Backlog de notre système. Ainsi on a détaillé la phase de planification des sprints. Enfin on a
choisi l’architecture de notre projet ainsi que notre environnement de travail.
29
Chapitre III. Release 1
Chapitre III. Release 1
Introduction
Dans ce chapitre, nous allons détailler le travail réalisé durant le premier release. En effet,
chaque release, représente un ensemble d’itérations (sprint). Ce premier Release comprend
quatre sprints :
2. Sprint backlog
3. Analyse
31
Chapitre III. Release 1
4. Réalisation
32
Chapitre III. Release 1
33
Chapitre III. Release 1
Le capteur ultrason HC-SR04 est basé sur le principe de la vitesse du son. Tout d'abord, il
envoie une impulsion HIGH sur la broche TRIGGER du capteur, puis il envoie une série de 8
impulsions ultrasonores de 40KHz. Ces impulsions se propagent dans l'air jusqu'à toucher un
objet puis elles retournent dans l'autre sens vers le capteur, sous forme d'écho.
La distance entre l’objet détecté par le capteur et le système de contrôle sanitaire est
calculée de la façon suivante :
Pour éviter d'endommager la carte Raspberry Pi, nous avons utilisé un pont diviseur de
tension constitué de deux résistances. Le diviseur de tension est utilisé pour réduire la tension
du signal d'ECHO de 5V à 3,3V. La figure suivante représente le câblage du capteur ultrason
avec la carte Raspberry.
34
Chapitre III. Release 1
Pour la détection des personnes nous utilisons MobileNet-SSD. C'est une combinaison de
l'algorithme de classification MobileNet et le Framework SSD (Single Shot multibox
Detector).
MobileNet [32]
o Extrêmement légers et petits (en termes de ligne de code et de poids des modèles)
o Rapides
o Facilement configurables pour améliorer la précision de la détection
o Dédiés à l’embarqué et aux smartphones, pour déporter les calculs
Comme beaucoup d’algorithmes de Deep Learning, MobileNet a été inventés par Google
et implémentés dans TensorFlow (bibliothèque de Machine Learning).
35
Chapitre III. Release 1
SSD [33]
SSD ou Single Shot Multibox Detector est un Framework permet, en scannant l’image,
d’identifier toutes les zones qui présentent un élément à classifier.
En combinant les deux algorithmes, on a SSD qui place des boîtes sur toute l’image puis
on a MobileNet qui les classifie, ce qui rend l’algorithme très performant et utile.
5. Test
Ci-dessous une figure du schéma de câblage complet de ce Sprint :
36
Chapitre III. Release 1
Nous présentons dans les figures suivantes des captures d’écran du test sur Node Red de la
détection de personne.
37
Chapitre III. Release 1
2. Sprint backlog
communiquer avec une interface IHM Connecter l’interface avec la base de données
(Cloud Firestore)
En tant que visiteur, je veux m’informer
Afficher le nombre des places disponibles
sur les places disponibles
3. Analyse
38
Chapitre III. Release 1
Post conditions de
Entrée autorisée
succès
39
Chapitre III. Release 1
4. Conception
5. Réalisation et Test
Le diagramme d’activité est présenté dans la figure suivante :
40
Chapitre III. Release 1
41
Chapitre III. Release 1
Une interface homme-machine (IHM)[34] est une interface qui permet à une personne
d’interagir avec un programme informatique ou un système. Pour construire une interface
visiteur, nous essayons 2 méthodes :
Node-RED Dashboard est un module qui fournit un ensemble de nœuds dans Node-RED
pour créer rapidement un tableau de bord en temps réel. Il a un ensemble complet de
composants d'interface utilisateur pour créer des tableaux de bord de base adaptés à l'Internet
des objets (IoT) offrant des graphiques, des jauges, du texte de base ainsi que des curseurs et
des entrées.
42
Chapitre III. Release 1
HTML est le langage de balisage standard pour les pages Web, il fournit la structure de
base des sites, qui est améliorée et modifiée par d'autres technologies telles que CSS,
JavaScript et Bootstrap. Pour le transfert de données entre les nœuds du Node Red et
l’interface, nous utilisons un serveur Ws construit avec NodeJS.
43
Chapitre III. Release 1
44
Chapitre III. Release 1
D'après le tableau précédent, nous avons choisi de développer l’interface visiteur avec HTML.
[Link] du QR code
Le code utilisé dans les passes sanitaires tunisiens est de type 2D–DOC qui est
globalement similaire à un QR code mais il est sécurisé à l'aide d'une signature numérique
fondée sur une cryptographie asymétrique. Ce code est conçu par l'Agence nationale des titres
45
Chapitre III. Release 1
sécurisés française (ANTS) en 2012 et utilisé par l'administration française pour lutter contre
la fraude documentaire.
Un code 2D-Doc est composé de trois zones (2 principales et une optionnelle) positionnées
dans cet ordre :
46
Chapitre III. Release 1
2D-DOC nécessite une clé pour le décrypter, il est impossible de vérifier si le code est
valide ou non sans clé pour le décrypter. Nous avons donc créé un QR code personnalisé pour
le prototype.
5.2.3. Test
Nous montrons dans les figures suivantes l’étape de la validation du passe sanitaire
47
Chapitre III. Release 1
Pour la détection du port du masque nous avons testé 2 méthodes avec 2 bibliothèques
différentes :
Dans la première méthode, nous avons utilisé un nœud déjà existant établi par un
développeur pour la détection du port du masque. Ce nœud importe la bibliothèque
[Link] pour [Link], charge un modèle Web [Link] et exécute l'inférence sur
le modèle.
48
Chapitre III. Release 1
5.3.2. Tensorflow
Dans la deuxième méthode, nous avons décidé de construire un modèle de réseau neuronal
convolutif (CNN) très simple et basique en utilisant TensorFlow avec la bibliothèque Keras et
OpenCV pour détecter si le visiteur porte un masque.
Les images utilisées pour l’entraînement et le test du modèle ont été obtenues sur Internet.
Cet ensemble de données contient uniquement des images de visages. Il contient 3 674 photos
réparties en deux classes : 1 915 images avec masques et 1 759 images sans masques. 80%
des images de chaque classe sont utilisées pour l’entraînement et le reste des images est utilisé
à des fins de test.
Nous avons intégré le code Python dans le Node Red en utilisant le nœud « exec » pour
faire exécuter le code de la détection du masque sur NodeRed
Après faire 20 essais avec chaque bibliothèque en positions différents, nous présentons ci-
dessous un tableau comparatif en fonction du temps de réponse et précision entre les 2
modèles :
[Link] Tensorflow
Pour notre système la précision est plus importante que le temps de réponse c’est
pourquoi nous avons choisi de continuer avec la deuxième méthode.
Une fois cette procédure est terminée, le visiteur franchit la porte. Un capteur PIR le
détecte et le moteur tourne. En même temps, le système envoi et mettre à jour les données
dans la base de données (Cloud Firestore).
49
Chapitre III. Release 1
Aussi lorsqu'un visiteur sort de l’établissement, un capteur ultrasons le détecte et met à jour
la valeur actuelle des visiteurs dans la base de données.
50
Chapitre III. Release 1
2. Sprint backlog
Le tableau ci-dessous représente le Sprint Backlog contenant les user story et les items de
l’administrateur :
51
Chapitre III. Release 1
En tant qu’administrateur, je
Crée la fonction « signOut(auth) » pour la déconnexion.
veux me déconnecter
3. Analyse
52
Chapitre III. Release 1
Titre Se connecter
53
Chapitre III. Release 1
Titre Se déconnecter
Acteurs Utilisateur
La description détaillée du cas d’utilisation « Se connecter» des utilisateurs est donnée par
le tableau suivant :
Titre Se connecter
54
Chapitre III. Release 1
Titre Se déconnecter
Acteurs Administrateur
55
Chapitre III. Release 1
La description détaillée du cas d’utilisation « Réinitialiser le mot de passe » est donnée par
le tableau suivant :
Acteur
Administrateur
principal
56
Chapitre III. Release 1
La description détaillée du cas d’utilisation « Afficher la liste des utilisateurs » est donnée
par le tableau suivant :
Tableau 24: Description textuelle du cas d’utilisation« Afficher la liste des utilisateurs »
Acteur Administrateur
57
Chapitre III. Release 1
principal
4. Conception
[Link] de séquences
58
Chapitre III. Release 1
59
Chapitre III. Release 1
60
Chapitre III. Release 1
61
Chapitre III. Release 1
[Link] de classe
5. Réalisation
La figure ci dissoute représente l’interface d’authentification :
62
Chapitre III. Release 1
63
Chapitre III. Release 1
64
Chapitre III. Release 1
Figure 58: Figure 58: Base de données « La liste des utilisateurs sur Cloud Firestore »
65
Chapitre III. Release 1
2. Sprint backlog
3. Analyse
Figure 59: Diagramme de cas d’utilisation « Consulter le nombre des visiteurs en temps
réel »
La description Textuelle du cas d’utilisation «Consulter le nombre des visiteurs en temps
réel» est donnée par le tableau suivant :
66
Chapitre III. Release 1
Tableau 28: Description textuelle « Consulter le nombre des visiteurs en temps réel »
Figure 60: Diagramme de cas d’utilisation « Mettre à jour le nombre maximal des
visiteurs »
La description détaillée du cas d’utilisation «Mettre à jour le nombre maximal des
visiteurs» est donnée par le tableau suivant :
67
Chapitre III. Release 1
Tableau 29: Description textuelle du cas d’utilisation «Mettre à jourle nombre maximal
des visiteurs»
Tableau 30: Description textuelle du cas d’utilisation «Consulter le nombre maximal des
visiteurs»
4. Conception
68
Chapitre III. Release 1
Figure 61: Diagramme de séquence « Mettre à jour le nombre maximal des visiteurs »
5. Réalisation et test
La figure ci-contre représente la table de stockage de nombre des visiteurs présents au sein
de l’établissement en temps réel :
Figure 62: Base de données« Stockage de nombre des visiteurs entrés et sorties »
69
Chapitre III. Release 1
70
Chapitre III. Release 1
D’où l’espace de l’administrateur et celui des utilisateurs sont montrés dans les figures
suivantes :
71
Chapitre III. Release 1
Conclusion
Dans ce chapitre, nous avons réussi à présenter le release 1, en décrivant en détail les cas
d’utilisation en recensant de manière textuelle toutes les interactions entre les acteurs et le
système. Nous avons complété cette description textuelle par la conception et la réalisation du
module des sprints 1, 2,3 et 4.
Dans le chapitre qui suit, nous allons produire une nouvelle release couvrant les
fonctionnalités suivantes : Optimisation de la validation de QR code et de port du masque,
Consultation de nombre journalier et du pourcentage des places disponibles, et consultation
de nombre mensuel des visiteurs, Se notifier.
72
Chapitre IV. Release 2
Chapitre IV. Release 2
Introduction
Dans ce chapitre, nous allons détailler le travail réalisé durant la deuxième release. En
effet. Cette Release comprend trois sprints :
Le développement de chaque sprint encore passe par les étapes d’analyse, de conception et
de réalisation.
Lors de la réalisation du sprint 2, nous n'étions pas satisfaits par le résultat obtenu, donc
nous avons cherché des solutions pour améliorer le «User Experience».
Les inconvénients :
3. Réalisation et test
74
Chapitre IV. Release 2
75
Chapitre IV. Release 2
PyTorch
Pour rendre notre système plus qualifié, python sera utilisé avec le framework PyTorch.
PyTorch est un cadre optimisé d'apprentissage automatique basé sur des tenseurs qui a tout le
nécessaire pour à la fois créer des CNN à partir de zéro et utiliser des modèles de torchvision
prédéfinis d'architectures de classification d'images populaires. PyTorch facilite également
l'exportation de modèles formés dans différents formats, ce qui permet un déploiement plus
facile.
Vidéo Streaming
Dans la solution présentée dans le Sprint 2, nous avons validé le QR code et le port du
masque séparément et en analysant la capture photo et non par une vidéo ce qui la rend
mauvaise d'un point de vue utilisateur et lente à la fois car il faut attendre 2 secondes entre
chaque prise de photo.
Nous avons donc combiné les scripts de validation de code QR et de port de masque et
remplacé la capture d'image par un flux vidéo utilisant OpenCv et Flask pour streamer le
vidéo en temps réel dans l'interface visiteur.
Test
Tensorflow PyTorch
Temps de
plus de 20 secondes ± 6 secondes
réponse
Nous remarquons que cette dernière solution est la meilleure parmi les solutions
précédentes
76
Chapitre IV. Release 2
3. Analyse
77
Chapitre IV. Release 2
78
Chapitre IV. Release 2
4. Réalisation et Test
Dans cette partie, le système envoie la date d’entrée des visiteurs au Cloud Firestore.
79
Chapitre IV. Release 2
80
Chapitre IV. Release 2
81
Chapitre IV. Release 2
Ce sprint se décompose en deux items qui sont « Consultation de nombre mensuel des
visiteurs » et « Se notifier »
82
Chapitre IV. Release 2
3. Analyse
Figure 78: Diagramme de cas d’utilisation «Consulter le nombre mensuel des visiteurs »
La description détaillée du cas d’utilisation « Consulter le nombre mensuel des visiteurs »
est donnée par le tableau suivant :
83
Chapitre IV. Release 2
Titre Se notifier
84
Chapitre IV. Release 2
4. Réalisation et Test
85
Chapitre IV. Release 2
86
Chapitre IV. Release 2
Conclusion
A la fin de ce chapitre, nous avons réussi à produire un incrément répondant aux besoins
du client avec une amélioration. Nous clôturons ce rapport par une conclusion général.
87
Conclusion Générale
Conclusion générale
Durant la période du projet de fin d’étude, nous avons réussi à réaliser un système de
contrôle sanitaire basé sur l’intelligence artificielle, permettant à travers une interface visiteur
ergonomique le contrôle du port du masque développé par un algorithme basé sur le Deep
Learning et la création ainsi que le contrôle des QR code personnalisés. Pour gérer le flux des
visiteurs au bâtiment nous avons développé une application web avec le bibliothèque ReactJs.
Ce travail nous a permis d’apprendre avec précision, les différentes étapes de la conception
et la réalisation de notre projet en employant la méthodologie SCRUM.
Des perspectives d’amélioration de notre projet restent toutefois indispensables. Bien que
les principaux objectifs de notre projet aient été atteints, le projet que nous avons développé
pourrait être modulable et enrichi par d’autres fonctionnalités selon des nouveaux besoins
demandés par le client.
88
Nétographie
Nétographie
[1] [Link]
[2] [Link]
[3] [Link]
[4] [Link]
[5] [Link]
[6] [Link]
[7] [Link]
[8][Link]
.pdf
[9] [Link]
[10][Link]
iennement%20nomm%C3%A9,sur%20les%20diff%C3%A9rents%20Raspberry%20Pi.
[11][Link]
20(VSC%20par,l'IDE%20propri%C3%A9taire%20de%20Microsoft.
[12] [Link]
outil-de-developpement-base-sur-les-flux-porte-la-version-minimale-de-Node-js-a-la-version-
12-il-ajoute-un-bouton-d-injection-rapide-du-noeud-Inject/
[13] [Link]
[14] [Link]
[15] [Link]
[16] [Link]
prototypage/#:~:text=Adobe%20XD%20(Adobe%20Experience%20Design,interfaces%20dig
itales%20agr%C3%A9ables%20et%20efficaces.
[17] [Link]
89
Nétographie
[18][Link]
:text=JavaScript%20est%20un%20langage%20de%20programmation%20qui%20permet%20
de%20cr%C3%A9er,avec%20quelques%20lignes%20de%20JavaScript.
[19] [Link]
definition-et-utilisation-de-ce-langage-
informatique/#:~:text=Qu’est%2Dce%20le%20langage,domaine%20du%20d%C3%A9velop
pement%20de%20logiciels.
[20] [Link]
hypertext-markup-langage5-definition-traduction/
[21] [Link]
cascading-style-sheets-definition-
traduction/#:~:text=Le%20CSS%20pour%20Cascading%20Style,via%20des%20balises%2C
%20notamment%20HTML.
[22] [Link]
[23][Link]
vaScript,construire%20des%20interfaces%20utilisateur%20composables.
[24][Link]
%20une%20extension,navigateur%20%3A%20l'API%20history.
[25] [Link]
choisir/
[26] [Link]
tutoriels-astuces-pratiques/
[27] [Link]
[28] [Link]
[29] [Link]
using-flask-in-python-3-fr
[30] [Link]
tensorflow-tout-savoir-sur-la-plateforme-de-deep-learning-de-google/
[31] [Link]
pytorch-tout-savoir-sur-la-bibliotheque-de-deep-learning-de-facebook/
90
Nétographie
[32] [Link]
[33] [Link]
[34] [Link]
ihm#:~:text=Une%20Interface%20Homme%2DMachine%20(IHM,d’interagir%20avec%20u
n%20appareil.
[35] [Link]
[36] [Link]
using-tensorflowjs/?cm_mmc=OSocial_Blog-_-Developer_IBM+Developer-_-WW_WW-_-
ibmdev-OInfluencer-YouTube-KA-node-red-
tensorflow&cm_mmca1=000037FD&cm_mmca2=10010797
91
Résumé
L’objectif principal de ce projet est d’élaborer un système intelligent de gestion des personnes
respectant le protocole sanitaire (port de masque, scan QR code etc.) à l’entrée d’un
établissement, qui est composé de deux parties :
La première partie représente les étapes de fonctionnement de système réalisée avec une carte
Raspberry pi et une application web qui comporte une partie Frontend développée avec
ReactJS et Back-end développée avec Cloud Firebase.
Abstract
The main objective of this project is to develop an intelligent people management system
respecting the health protocol (wearing a mask, scanning QR code etc.) at the entrance of an
establishment, which is composed of two parts: The first part represents the system operating
steps carried out with a Raspberry pi card and a web application which includes a Frontend
part developed with ReactJS and Back-end developed with Cloud Firebase. The second part
represents an improvement at the system level (Validation of QR code and mask wearing) and
the application (Enrichment with other functionalities).
ملخص
،انهذف انشئُسٍ يٍ هزا انًششوع هى تطىَش َظاو ركٍ إلداسة األشخاص َحتشو انبشوتىكىل انصحٍ (استذاء انقُاع
:ٍَ وانزٌ َتكىٌ يٍ جزأ، ويا إنً رنك) عُذ يذخم انًُشأة،ويسح سيز االستجابت انسشَعت
وتطبُقRaspberry pi وخطىاث تشغُم انُظاو انتٍ َتى إجشاؤها باستخذاو بطاقت، ًَثم انجزء األول واجهت انزائش-
Cloud Firebase تى تطىَشِ باستخذاوBack-end وReactJS تى تطىَشِ باستخذاوFrontend ٍوَب َتضًٍ جز ًءا ي
ًَثم انجزء انثاٍَ تحسًُا عهً يستىي انُظاو (سيز االستجابت انسشَعت وانتحقق يٍ صحت األقُعت) وانتطبُق (انتعزَز-
.)بًُزاث أخشي