You are on page 1of 49

Université Cadi Ayyad

Ecole Nationale des Sciences


Appliquées
Marrakech 2021/2022

Projet de fin de semestre

Détection de Stress via une Camera

Présenté par: Encadré par:


MOUCHANE MOHAMMAD Dr. LATIF ADNANE
SOUGRAT HOUDA

Année Académique: 2020/2021


Génie Réseaux et Télécommunications
Remerciements
Tout d’abord, toutes mes gratitudes s’adressent à Allah tout puissant,

Ce travail a été réalisé grâce à l'aide de plusieurs personnes. Nous en


profitons pour exprimer nos sincères remerciements à tous ceux qui, de
près ou de loin, ont contribué à la mise en place de cette carrière.

Tout d'abord, nous tenons à remercier le Dr Latif Adnane qui a nous


encadré et supervisé durant cette période. Son encadrement nous a
permis de réaliser ce travail dans les meilleures conditions.

Nous remercions également le Dr Jabrane Youness pour tous les


conseils et édifiants qu'il nous a prodigué tout au long de ce travail.

Un grand merci également aux membres du jury d'avoir accepté de


juger notre travail.

Nous parlons aussi à nos parents, nos familles qui n'ont jamais cessé de
sacrifier leur temps et leur énergie pour notre cause.

Enfin, merci à tous ceux qui nous ont apporté leur soutien, tant par leur
gentillesse que par leur dévouement.

II
Table de matières
REMERCIEMENTS ................................................................................................................................................... 2
TABLE DE MATIERES .............................................................................................................................................. 3
TABLE DE FIGURES ................................................................................................................................................. 5

‫ ملخص‬................................................................................................................................................................... 6
ABSTRACT .............................................................................................................................................................. 7
RESUME ................................................................................................................................................................. 8
INTRODUCTION GENERALE .................................................................................................................................... 1
CHAPITRE I: ............................................................................................................................................................ 2
INTRODUCTION..............................................................................................................................................................3
1. LA PROBLEMATIQUE ..............................................................................................................................................3
2. CONCEPT GENERAL ...............................................................................................................................................3
CONCLUSION ................................................................................................................................................................3
CHAPITRE II: ........................................................................................................................................................... 5
INTRODUCTION..............................................................................................................................................................6
1. IOT (INTERNET OF THINGS) ....................................................................................................................................6
1.1. Historique des objets connectés.............................................................................................................6
1.2. Définition des objets connectés .............................................................................................................6
1.3. Définition de l’Internet des Objets .........................................................................................................7
1.4. Les avantages de l’IOT ...........................................................................................................................9
1.5. Les enjeux et les défis de l’IoT : ..............................................................................................................9
2. LES RESEAUX DE CAPTEURS ...................................................................................................................................10
2.1. Les Capteurs .........................................................................................................................................10
2.2. Les réseaux de capteurs (ou en anglais WSN) ......................................................................................10
2.3. Les problèmes de conception d'un réseau de capteurs sans fil ............................................................11
3. HEALTHCARE .....................................................................................................................................................12
4. BIG DATA .......................................................................................................................................................13
4.1. Définition .............................................................................................................................................13
4.2. Big Data et HealthCare ........................................................................................................................14
4.3. Exemple des applications de BigData dans HealthCare .......................................................................14
5. MACHINE LEARNING ...........................................................................................................................................15
CONCLUSION ..............................................................................................................................................................16
CHAPITRE III : ....................................................................................................................................................... 17
INTRODUCTION............................................................................................................................................................18
1. PHOTOPLETHYSMOGRAPHIE (PPG) ........................................................................................................................18
2. REMOTE PPG ....................................................................................................................................................19
3. ICA: ................................................................................................................................................................20
4. EXIGENCES : ...................................................................................................................................................20
4.1. Python 3.8 ............................................................................................................................................20
4.2. Libraires ...............................................................................................................................................20

III
4.2.1. Face recognition : ............................................................................................................................................ 20
4.2.2. Filtrage de données ......................................................................................................................................... 21
4.2.3. Analyse finale des données ............................................................................................................................. 22
5. APPROCHE ........................................................................................................................................................22
6. IMPLEMENTATION ..............................................................................................................................................23
6.1. Méthodologie.......................................................................................................................................23
6.2. Explication du Code de l’application ....................................................................................................24
6.2.1. Importation des librairies nécessaires............................................................................................................. 24
6.2.2. Définition du constructeur du class __init__() .................................................................................................... 24
6.2.3. Définition de la fonction sample_video() .............................................................................................................. 25
6.2.4. Définition de la fonction get_face_sample().......................................................................................................... 26
6.2.5. Définition de la fonction detrend_traces() ........................................................................................................... 27
6.2.6. Définition de la fonction z_normalize() ................................................................................................................ 28
6.2.7. Définition de la fonction ica_decomposition()........................................................................................................ 29
6.2.8. Définition de la fonction select_component() ........................................................................................................ 29
6.2.9. Définition de la fonction get_bvp_signal() ............................................................................................................ 30
6.2.10. Définition de la fonction find_heartrate() .................................................................................................. 31
6.2.11. Définition de la fonction plot_figures() .......................................................................................................... 31
6.2.12. Définition de la fonction main() ................................................................................................................... 32
6.3. Exécution et Test du programme .........................................................................................................33
6.4. Résultats et discussion .........................................................................................................................37
CONCLUSION ..............................................................................................................................................................39
CONCLUSION GENERALE ...................................................................................................................................... 40
RÉFÉRENCES......................................................................................................................................................... 41

IV
Table de figures
Figure 1: thermostat connecté ....................................................................................................... 9
Figure 2: Réseau des Capteurs ...................................................................................................... 11
Figure 3: Les composants d'un nœud capteur ............................................................................. 11
Figure 4: Process d'analyse de BigData ........................................................................................ 15
Figure 5: Les Capteurs optiques du HR. ........................................................................................ 19
Figure 6: Principe de rPPG ............................................................................................................ 19
Figure 7: importation des librairies nécessaires ........................................................................... 24
Figure 8: Définition de la fonction constructrice du class __init__()................................................ 24
Figure 9: repères de visage ........................................................................................................... 25
Figure 10: la fonction sample_video() ................................................................................................ 26
Figure 11: la fonction get_face_sample() ............................................................................................ 27
Figure 12: la fonction detrend_traces().............................................................................................. 28
Figure 13: signal non périodique .................................................................................................. 28
Figure 14: la fonction z_normalize() .................................................................................................. 28
Figure 15: modélisation de la normalization ................................................................................ 29
Figure 16: la fonction ica_decomposition() .......................................................................................... 29
Figure 17: la fonction select_component() .......................................................................................... 29
Figure 18: la fonction get_bvp_signal() .............................................................................................. 30
Figure 19: la function find_heartrate() ............................................................................................... 31
Figure 20: la fonction plot_figures() .................................................................................................. 32
Figure 21: la fonction main() ........................................................................................................... 32
Figure 22: notre vidéo avec les différentes valeurs du RGB ......................................................... 34
Figure 23: CLI lors du processing et les résultats finaux ............................................................... 34
Figure 24: les signaux RGB extraits tout au long du traitement ................................................... 35
Figure 25: les signaux RGB après la phase du "detrending" ......................................................... 35
Figure 26: les signaux après la phase de normalisation ............................................................... 36
Figure 27: les signaux résultant de la ICA ..................................................................................... 36
Figure 28: le signal dont sa densité de psuissance spectral contient le pic de la puissance ........ 37
Figure 29: le signal final dont on extrait les HR ............................................................................ 37
Figure 30: Résultats expérimentaux ............................................................................................. 38
Figure 31: Table de Comparaison ................................................................................................. 38

V
‫ملخص‬
‫يلخص هذا التقرير العمل الذي قمنا به كجزء من مشروع نهاية الفصل الدراسي في المدرسة الوطنية للعلوم التطبيقية في‬
‫مراكش‪ ،‬بمساعدة وتوجيه أستاذنا الدكتور اللطيف عدنان‪.‬‬

‫كامبا الويب" هو مقارنة تقنيات مراقبة‬


‫عب ر‬‫مشوع "الكشف عن معدل رضبات القلب والضغط ر‬ ‫كان الهدف من ر‬
‫ضبات القلب المعروفة مثل ‪ PPG‬و ‪ ECG‬مع نهج ‪ rPPG‬الجديد‪ .‬ثم ‪ ،‬باستخدام التعلم اآلل‪ 1‬والذكاء االصطناع‪2‬‬ ‫معدل ر‬
‫ً‬ ‫ً‬ ‫ً‬ ‫ً‬ ‫‪ ،‬ر ئ‬
‫أنش تطبيقا يحاك التطبيقات السابقة ويحقق أداء دقيقا أو قريبا‪.‬‬

‫ر‬
‫يعتمد عملنا عىل الورقة البحثية الت أعدها مينغ زير بوه ودانييل جيه مكدوف وروزاليند دبليو بيكارد ‪ ،‬التقدم ف‬
‫تشح كيفية استخدام ‪rPPG‬‬ ‫كامبا الويب ‪ ،‬والت ر‬
‫غب المتصلة والمتعددة العوامل باستخدام ر‬ ‫القياسات الفسيولوجية ر‬
‫ر‬
‫وخوارزمية ‪ ICA3‬الستخراج معدل ضبات القلب‪ .‬من اإلنسان دون إرفاق أجهزة استشعار بالجلد‪ .‬لجعل الفكرة حقيقة‬
‫رر‬ ‫ر‬
‫تحسي الكفاءة بمرور الوقت من‬ ‫واقعة ‪ ،‬استخدمنا التقنيات الموضحة ف البحث إلنشاء تطبيق ‪ Python‬الذي من شأنه‬
‫خالل التعلم اآلل المدمج‪.‬‬

‫ً‬
‫أوال ‪ ،‬درسنا الذكاء االصطناع والتعلم اآلل وشبكات االستشعار الت يمكن استخدامها للحصول عىل البيانات‬
‫الكامبا كمستشعر‪.‬‬ ‫ر‬ ‫ر‬
‫ر‬ ‫وتقييمها وتعلمها من اإلنسان ‪ ،‬إما ف ‪ PPG‬أو ف ‪ rPPG‬الت تعتمد عىل‬

‫ر‬ ‫ئ‬ ‫للباحثي ر‬


‫رر‬ ‫ً‬
‫الضوئ)‪ .‬لقد تم استخدامها ف‬ ‫والشكات (التصوير‬ ‫ثم تابعنا نهج ‪ ، PPG‬وه تقنية قديمة معروفة جيدا‬
‫ر‬
‫مجموعة متنوعة من األدوات لفبة طويلة ‪ ،‬بما ف ذلك الساعات الذكية والمستشفيات والهواتف وما إل ذلك‪ .‬حت تم‬
‫ً‬
‫تقديم نهج ‪ rPPG‬المستقبىل للعالم‪ .‬عىل الرغم من أنه يقدم قيودا جديدة عىل فكرته ‪ ،‬إال أن هاته التقينة تقدم طريقة‬
‫رر‬
‫تحسي وإزالة قيود ‪.PPG‬‬ ‫قياس جديدة تعمل عىل‬

‫البنامج ونتائجه ومناقشتها ‪ً ،‬‬ ‫ر‬ ‫ر‬


‫بدءا من المفهوم ‪ ،‬مرورا‬ ‫التقت من هذا التقرير ف النهاية‪،‬حيث تم عرض ر‬ ‫يأئ الحزء‬
‫البنامج إل ملخص النتائج‪.‬‬ ‫ر‬
‫بشح محتوى ر‬

‫‪ 1‬التعلم اآلل‬
‫‪ 2‬الذكاء االصطناع‬
‫‪ 3‬التحليل المستقل للمكونات‬
‫‪VI‬‬
Abstract
This report summarizes the work we realized as part of the end-of-semester project at
Marrakech's National School of Applied Sciences, under the help and direction of our dear
professor Dr. Latif Adnane.

The goal of the project "Heart Rate and Stress Detection via a Webcam" was to compare
known heart rate monitoring techniques such as PPG4 and ECG5 to the novel approach rPPG6.
Then, using machine learning and artificial intelligence, create an app that mimics the previous
ones and achieves an exact or close performance.
Our work is based on Ming-Zher Poh, Daniel J. McDuff, and Rosalind W. Picard's white
paper Advancements in Noncontact, Multiparameter Physiological Measurements Using a
Webcam, which explained how to use rPPG and the ICA algorithm to extract a human's heart rate
without attaching any sensors to the skin. To bring the idea a reality, we used the techniques
outlined in the research to create a Python application that would improve in efficiency over time
as a result of the machine learning incorporated.
First, we investigated the IA, machine learning, and sensor networks that would be used
to obtain, evaluate, and learn data from a human being either in PPG or rPPG which is based on
camera as a sensor.
Afterwards, we went through the PPG approach, which is an ancient and well-known
technique among researchers and businesses (Photoplethysmography). It has been utilized in a
variety of gadgets for a long time, including smart watches, hospitals, phones, and so on... until
the introduction of the futuristic approach rPPG. Even though it introduces new constraints in
terms of its idea, remote photoplethysmography introduces a new measuring approach
improving and eliminating PPG's limitations.
The technical section follows, where our application is shown and discussed, beginning
with the concept, and progressing via classes and functions to a summary of the results.

4
Photoplethysmography
5
Electrocardiography
6
Remote PhotoPlethysmoGraphie

VII
Résumé
Ce rapport résume le travail que nous avons réalisé dans le cadre du projet de fin de
semestre à l'Ecole Nationale des Sciences Appliquées de Marrakech, sous l'aide et la direction de
notre cher professeur Dr. Latif Adnane.
L'objectif du projet "Détection de la fréquence cardiaque7 et du stress via une webcam
était de comparer les techniques connues de surveillance de la fréquence cardiaque telles que
PPG8 et ECG9 à la nouvelle approche rPPG10. Ensuite, en utilisant l'apprentissage automatique et
l'intelligence artificielle, créer une application qui imite les précédentes et réalise une
performance exacte ou proche.

Notre travail est basé sur le papier de recherche de Ming-Zher Poh, Daniel J. McDuff et
Rosalind W. Picard, Advances in Noncontact, Multiparameter Physiological Measurements Using
a Webcam, qui explique comment utiliser le rPPG et l'algorithme ICA11 pour extraire la fréquence
cardiaque d'un humain sans fixer des capteurs sur la peau. Pour concrétiser l'idée, nous avons
utilisé les techniques décrites dans la recherche pour créer une application Python dont
l'efficacité s'améliorerait au fil du temps grâce à l'apprentissage automatique intégré.

Tout d'abord, nous avons étudié l'IA, l'apprentissage automatique et les réseaux de
capteurs qui seraient utilisés pour obtenir, évaluer et apprendre les données d'un être humain,
soit en PPG, soit en rPPG qui est basé sur la caméra comme capteur.

Ensuite, nous sommes passés par l'approche PPG, qui est une technique ancienne et bien
connue des chercheurs et des entreprises (photopléthysmographie). Il a été utilisé dans une
variété de gadgets pendant longtemps, y compris les montres intelligentes, les hôpitaux, les
téléphones, etc. jusqu'à l'introduction de l'approche futuriste rPPG. Même si elle introduit de
nouvelles contraintes quant à son idée, la photopléthysmographie à distance introduit une
nouvelle approche de mesure améliorant et éliminant les limitations de PPG.

La section technique suite, où notre application est montrée et discutée, en commençant


par le concept, et en progressant via les classes et les fonctions jusqu'à un résumé des résultats

7
Fréquence cardiaque
8
Photopléthysmographie
9
Appareil de mesure cardiaque ECG
10
Photopléthysmographie à distance
11
Independent components analysis

VIII
.

Introduction Générale
Le rythme cardiaque est défini comme le nombre moyen de contractions du muscle
cardiaque par minute, on le note battements par minute (bpm). Cette mesure cardiaque a une
utilité très élevée, vue que le cœur est considéré comme le moteur de vie de tout être, et donc
sa surveillance au quotidien semble très importante afin de s’assurer de son bon fonctionnement.

Dans la pratique un dispositif ECG mobile, nommé HOLTER, permet la surveillance de


longue durée des patients, le contact prolongé avec la peau comme ça se voit clairement peut
causer des lésions cutanées ou des irritations, ainsi les mouvements perturbent grandement les
mesures. L’utilisation de l’un de ces dispositifs met en perspective tout l’intérêt d’une mesure
sans contact pour assurer le confort du patient, d’où l’utilité de cette étude ainsi que d’autres
ayant le même objectif.

Le rapport ci-dessous est composé de trois chapitres. Le premier décrit la problématique


et la solution retenue. La seconde, détaille les bases nécessaires au projet telles que l'IA,
l'apprentissage automatique et python. Enfin le troisième chapitre dont nous avons présenté le
concept de la solution et l'application développée pour s'adapter au concept et répondre aux
besoins.

1
Chapitre I:
Dans ce chapitre nous allons définir la problématique et discuter son contexte.
Introduction

Le contexte général du projet est une étape essentielle pour comprendre le problème et
son environnement, mais aussi son contexte et son importance pour le monde et en particulier
pour les hôpitaux et la santé.
Ce chapitre présente la problématique, et la solution choisie.

1. La problématique
Dans ce projet, nous allons traiter un problème de mesure des battements de cœur qui est une
problématique du domaine de santé mais tout en la fusionnant avec le domaine d'intelligence
artificielle, autrement nous allons essayer de mettre en œuvre la technologie en service de la
santé humaine.

Notre étude dans ce projet, se focalisera sur la mesure du heart rate en se basant sur la variation
de la coloration RGB, dont on va extraire le signal BVP, qui va nous donner la mesure cardiaque
exacte par la suite. Tout au long de ce projet nous allons opter à plusieurs traitements pour
achever ce but (extraction de données, analyse, filtrage ...).

2. Concept général
La mesure des paramètres biologiques vitaux est actuellement un champ d’étude très actif. Dans
le milieu médical, avec la démocratisation des appareils de mesures automatisées, il est possible
d’effectuer un monitoring quasi constant des signes vitaux d’un patient (comme la température,
le rythme cardiaque, le rythme respiratoire...), ces mesures dans nos jours sont effectuées en
contact dans un contexte médical ou paramédical, et quelques fois de manière invasive suivant
la précision souhaitée.
Dans ce projet, nous aborderons la problématique citée ci-dessus qui est la mesure du rythme
cardiaque sans contact. Certes, il n’existe pas aujourd’hui de système reconnu suffisamment
fiable, bénéficiant de la certification médicale par exemple, qui fournisse une mesure cardiaque
sans contact, mais des études se font quotidiennement afin d’augmenter la précision de ces
techniques, et pouvoir les utiliser par la suite, et ce pour le profit toujours du domaine de la santé.
La technique dont nous parlons est une méthode optique de mesure sans contact que l’on
nommera photopléthysmographie notée rPPG.

Conclusion

Plusieurs organisations travaillent sur des projets ayant le même objectif, l'OMS (organisation
mondiale de la santé), l'une de ces organisations, met en place une vaste gamme d’interventions

3
(sociales, environnementales, etc.) conçues pour favoriser et protéger la santé et la qualité de
vie au niveau individuel en luttant contre les principales causes de la mauvaise santé, notamment
par la prévention.

Cette prévention se réalisera dans ce projet par l'analyse du rythme cardiaque, mais avant
d'entrer dans le vif de l'application nous devons comprendre certains aspects techniques qu'on
découvrira dans le chapitre qui suive.

4
Chapitre II:
Dans ce chapitre nous allons discuter des concepts théoriques générales avant d’entamer notre
projet
Introduction
Dans nos jours, l’interconnexion est devenue un terme très important dans tout domaine,
et sera encore plus important prochainement, cette interconnexion ne concerne pas uniquement
les êtres mais aussi les objets et les données de tout type, chose qui va garantir une simplicité
dans notre style de vie, et par la suite la satisfaction des humains.
Cette interconnexion ne peut guère être appliquée sans avoir recours à plusieurs
techniques et technologies telle est le cas de l’IOT, la Machine Learning, le Big Data, les réseaux
en général …

1. IOT (Internet of things)


1.1. Historique des objets connectés
Introduit pour la première fois en 1982, le concept de réseau d'appareils intelligents
consistait en un appareil de l'Université Carnegie Melon capable de signaler si les boissons
nouvellement chargées sont effectivement froides lorsqu'elles sont chargées.
De même, en 1991, Mark Weiser a publié un article intitulé « L'ordinateur du 21e siècle »
dans lequel il a présenté l'informatique omniprésente et a présenté une vision de l'Internet des
objets pour le 21e siècle.

Ensuite, en 1998, l'informatique omniprésente s'est focalisée car elle a permis à


l'informatique de devenir une partie plus flexible et efficace de la vie quotidienne.
Après, en 2000, LG a annoncé son premier réfrigérateur intelligent connecté à Internet.
De plus, les technologies IoT, telles que la RFID (identification par radiofréquence), ont
commencé à être largement utilisées vers 2003 et 2004.

En 2008, une initiative très intéressante a été prise pour promouvoir l'utilisation du
protocole Internet (IP) pour les réseaux d'objets miniatures intelligents, ce groupe s'appelle IPSo
Alliance. Plusieurs projets de recherche récents se sont concentrés sur le développement de
l'Internet des Objets dans les meilleures conditions et sa concrétisation malgré tous les défis
auxquels il est confronté. En raison de l'avancée technologique continue sur le marché des
appareils intelligents ainsi que dans le domaine des technologies de télécommunications (telles
que : l'informatique en nuage, les réseaux définis par logiciel, etc.).

1.2. Définition des objets connectés

Les objets connectés (OC) sont des appareils qui ne sont pas principalement conçus pour
être un système informatique ou un navigateur Web - par exemple, une cafetière ou une serrure
n'ont aucune intégration avec les ordinateurs ou Internet. Lorsqu'un OC est intégré à une
connexion Internet, qui permet d'améliorer ses fonctionnalités, ses interactions avec

6
l'environnement, il devient un OC Enrichi (OCE), par exemple, connectant une connexion Internet
à la cafetière la rendant accessible à distance.
Avec les Objets Connectés, les humains n'ont pas à intervenir dans les interactions
physiques. Cependant, il présente plusieurs limitations, telles que la mémoire, la bande passante
ou la consommation d'énergie. Grâce à ses capteurs embarqués, il possède une certaine forme
d'intelligence, une capacité à recevoir, transmettre des données avec un logiciel, c'est pourquoi
il doit être utilisé. Un objet connecté a de la valeur lorsqu'il est connecté à un autre objet et à
une brique logicielle.
Un objet connecté se comporte sur trois éléments clés :

 Les données produites ou reçues, stockées ou transmises.


 Les algorithmes pour traiter ces données.
 L’écosystème dans lequel il va réagir et s’intégrer.

Les objets communiquent en échangeant des identifications qui sont connues les unes
des autres. Pour être reconnu par un autre et établir la connexion, un objet doit posséder un ou
plusieurs identifiants (codes-barres).

1.3. Définition de l’Internet des Objets

L’IOT, également connu sous le nom d'IoE (Internet of Everything), est en fait la partie
naissante de l'Internet du futur, qui vise à connecter les personnes, les données … afin qu'il y ait
une fusion du monde physique et virtuel. Les objets physiques seront intégrés dans le monde
virtuel d'Internet. En conséquence, de nouvelles tendances et innovations sont nécessaires, qu'il
s'agisse de concevoir l'architecture des communications ou de présenter et exploiter des
services.
L'Internet des objets (IoT) est l'infrastructure dynamique d'un réseau mondial. Les
capacités d'auto-configuration de ce réseau mondial sont basées sur des normes et des
protocoles de communication compatibles. Intégré au réseau de manière fluide. Cette
description décrit deux aspects de l'Internet des objets : temporel et spatial, permettant aux
individus de se connecter de n'importe où et à tout moment via des objets connectés (ex :
tablettes, smartphones, capteurs, etc.).

L'IoT est un ensemble de technologies existantes et émergentes, pas une seule.


Mentionnons quelques-unes de ces innovations :

 Wi-Fi
 ZigBee
 SigFox
 BigData

7
 Cloud Computing
 AI
L’IOT est caractérisé par :

 Hétérogénéité : fait référence à la construction d'appareils utilisant une variété de plates-


formes, de matériel et de réseaux.
 Accessibilité et interopérabilité du réseau : permet l'accessibilité et la compatibilité du
réseau.
 Intelligence : permet aux objets de répondre intelligemment à un scénario donné et de
les aider à accomplir certaines tâches.
 Changement dynamique : Etat et numéro de l'appareil.
 Interconnectivité : la capacité de se connecter à l'infrastructure mondiale d'information
et de communication.
 Échelle massive : le nombre d'appareils à contrôler et avec lesquels communiquer sera
bien plus grand que le nombre d'appareils connectés à Internet.
 Détection : c'est ce qui nous aidera à avoir une compréhension plus profonde de notre
réalité compliquée.
 Sécurité.
En effectuant des activités à un certain moment ou dans des circonstances spécifiques,
l'IoT permet aux machines d'éliminer une partie du travail manuel, il réduit les coûts et améliore
la qualité de vie. Voici quelques exemples de la façon dont l'IoT est utilisé dans notre vie
quotidienne :

 Systèmes de télémédecine et de surveillance de la santé pour aider les personnes dans le


besoin.
 L'agriculture connectée pour optimiser l'utilisation de l'eau.
 Des véhicules connectés pour améliorer la circulation urbaine.
 Caméras de sécurité à détection de mouvement qui envoient des notifications.
 Réfrigérateurs remplis de recettes pour les ingrédients à portée de main.
 Le thermostat, qui chauffe ou refroidit votre maison en fonction des variations de
température tout au long de la journée tout en calculant les dépenses énergétiques pour
assurer un cadre de vie confortable.

8
Figure 1: thermostat connecté

1.4. Les avantages de l’IOT

Les principaux avantages de l'IoT sont résumés dans cette section :

 Accès facile à l'information pour un monde meilleur et un mode de vie plus opulent et
confortable.
 Amélioration de la qualité de service et de la surveillance à distance dans une variété
d'industries, notamment industrielles, médicales et autres.
 Un autre avantage de l'IoT est qu'il permet de gagner du temps. Les visites inutiles sont
ainsi remplacées par une simple navigation sur Internet pour commander des produits
et/ou vérifier l'état des objets et/ou lieux connectés.
 Dans certains cas, l'IoT peut même nous aider à justifier nos dépenses et à faire des
économies en nous permettant de ne consommer que lorsque nous en avons besoin, que
ce soit pour des achats ou des consommations énergétiques (comme l'éclairage ou la
climatisation).
 Augmenter la productivité et le service client : les produits liés transmettent des
informations à leurs fabricants mettant en évidence les expériences et les habitudes des
utilisateurs, permettant aux fabricants d'agir de manière plus proactive et de répondre
plus rapidement aux demandes et aux exigences des clients.
 Possibilité d'utiliser les énormes ressources d'Internet pour le stockage et le traitement
de données à partir d'appareils IoT.

1.5. Les enjeux et les défis de l’IoT :

Selon les estimations, environ 21,8 milliards d'objets liés devraient être utilisés dans le
monde d'ici 2022. Le nombre accru de données qui en résultera offrira de nouvelles opportunités,
mais il créera également des défis à surmonter. Ce n'est pas aussi simple que certains pourraient
le croire de gagner des milliards de dollars avec l'IoT.

9
Faciliter la connexion des appareils et plates-formes IoT au cloud, puis aux systèmes
d'entreprise actuels, est la première étape. Simultanément, la fiabilité du capteur devient de plus
en plus importante. Parce que les données asymétriques empêchent les modèles d'analyse Big
Data de générer un retour sur investissement. Les travailleurs et les citadins doivent également
s'adapter à la nouvelle réalité qui empiète sur leur environnement.

2. Les réseaux de capteurs


2.1. Les Capteurs

Ces dernières années, la miniaturisation des composants électroniques ainsi que la facilité
de leur intégration dans des circuits intégrés ont poussé plusieurs chercheurs à utiliser, dans leurs
travaux des capteurs pour mesurer l’activité de la personne. En effet, un système de capteurs qui
est capable de reconnaître automatiquement les activités à la maison, permettrait de
nombreuses applications dans le domaine de la santé publique. Les capteurs sont des dispositifs
qui peuvent être utilisés pour détecter l’interaction entre une personne et son environnement.
Il existe différents types de capteurs qui diffèrent les uns des autres en termes de prix, de facilité
d’installation et de type de données en sortie. Les capteurs peuvent être classés suivant le type
d’informations collectées : Physiologique, Comportemental ou Environnemental.

 Les capteurs Physiologiques appelés aussi biomédicaux sont conçus pour mesurer les
signes vitaux des personnes. Ce type de capteurs joue un rôle important dans le suivi de
l’état de santé des personnes âgées. Les capteurs biomédicaux peuvent mesurer la
fréquence cardiaque, la pression artérielle, ou la température cutanée.
 Les capteurs Comportementaux peuvent être utilisés pour déduire l’activité ou les
comportements d’une personne. Parmi ces capteurs, on peut trouver les capteurs
cinématiques embarqués tels que les accéléromètres tri-axes qui calculent trois
accélérations linéaires selon trois axes orthogonaux de l’objet sur lequel ils sont fixés.
L’actimétrie embarquée peut également utiliser des magnétomètres qui mesurent le
champ magnétique perçu.
On trouve aussi les gyroscopes qui délivrent une mesure de la vitesse angulaire
instantanée autour d’un axe. Comme On peut trouver également les capteurs de détermination
de position tels que le système de localisation mondial (GPS) et la radio-identification (RFID) qui
donnent une indication de l’endroit où une personne se trouve.

2.2. Les réseaux de capteurs (ou en anglais WSN)

Un réseau de capteurs sans fil est un ensemble de transducteurs spécialisés connectés par
un réseau de communication qui surveille et enregistre les conditions dans de nombreux
endroits. La température, l'humidité, la pression, la direction et la vitesse du vent, l'intensité de
l'éclairage, l'intensité des vibrations, l'intensité sonore, la tension de la ligne électrique, les

10
concentrations chimiques, les niveaux de polluants et les processus corporels vitaux sont
quelques-unes des caractéristiques les plus couramment surveillées.

Figure 2: Réseau des Capteurs

Un réseau de capteurs est composé de plusieurs nœuds de capteurs, qui sont des stations
de détection compactes, légères et portables. Un transducteur, un microcontrôleur, un
émetteur-récepteur et une source d'alimentation sont tous inclus dans chaque nœud de capteur.
Des signaux électriques sont générés par le transducteur sur la base d'effets physiques et de
phénomènes perçus. Les données du capteur sont traitées et stockées par le microprocesseur.
L'émetteur-récepteur est un appareil qui accepte les commandes d'un ordinateur central et lui
envoie des données. L'alimentation de chaque nœud de capteur est fournie par une batterie.

Figure 3: Les composants d'un nœud capteur

2.3. Les problèmes de conception d'un réseau de capteurs sans fil

Le déploiement des réseaux de capteurs, qui sont un sous-ensemble des réseaux ad hoc
sans fil, se heurte à de nombreux obstacles. Sans aucune infrastructure, les nœuds de capteurs
interagissent sur des lignes sans fil à perte.

11
 Tolérance aux pannes : les nœuds de capteur sont susceptibles de tomber en panne et
sont généralement déployés dans des environnements dangereux. Les nœuds peuvent
échouer en raison de problèmes matériels, de dommages physiques ou de manque
d'énergie. Nous prévoyons que les défaillances de nœuds seront considérablement plus
importantes que dans les réseaux sans fil câblés ou basés sur une infrastructure.
Différents environnements de déploiement posent différentes exigences de tolérance
aux pannes.
 Évolutivité : la taille des réseaux de capteurs varie de quelques nœuds à des centaines de
milliers. De plus, la densité de déploiement varie. Les protocoles utilisés dans les réseaux
de capteurs doivent être évolutifs à ces niveaux tout en maintenant des performances
appropriées.
 Consommation énergétique : La taille des nœuds limite la capacité de la batterie. Les
préoccupations relatives à la consommation efficace d'énergie doivent être
soigneusement prises en compte dans la conception des logiciels et du matériel. La
politique énergétique est également déterminée par l'application ; dans certains cas, il
peut être approprié d'éteindre un sous-ensemble de nœuds afin d'économiser de
l'énergie, tandis que dans d'autres, tous les nœuds doivent être opérationnels en même
temps.

3. Healthcare
Healthcare a évolué pour englober tous les aspects, services et appareils liés à la santé
humaine.
Les gouvernements, les législateurs, les idéologues politiques, les tiers et les médias l'ont
tous utilisé pour définir facilement et avec élégance tout ce qu'ils souhaitent développer.
L’avantage principal de ces intermédiaires, qu'ils soient gouvernementaux ou assureurs, est la
dilution de la qualité du service de santé réelle.
Les systèmes de healthcare sont extrêmement nécessaires pour améliorer l'accès aux
soins de santé et à l'information médicale. Les innovations technologiques facilitent l'accès aux
soins de la population et offrent également de nouvelles opportunités et méthodes de traitement
et de connaissance des données médicales.
Malgré tous les avantages des systèmes de santé, un problème ouvert complexe et
important lié à la confidentialité et à la sécurité des données des patients existe toujours. Les
systèmes de santé ont plusieurs autres défis principaux, par exemple la normalisation, la
configuration du réseau, les modèles commerciaux, la qualité de service et la sécurité des
données. Le domaine de recherche le plus pertinent pour la conception et la mise en œuvre de
systèmes de santé, est la technologie sans fils.
De nombreux systèmes de santé intègrent des capteurs sans fils pour la collecte de
données utilisés pour la surveillance de l'état physiologique humain et utilisent des technologies
de communication sans fil pour la transmission de données. De plus, les plates-formes open
source prennent non seulement en charge le stockage, la visualisation et l'analyse des données,

12
mais offrent également de nombreuses fonctionnalités pour la gestion et la sécurité des
appareils.
Dans ce contexte, ces dernières années, la technologie de l'Internet des objets (IoT) a
suscité un vif intérêt en raison de sa capacité à alléger certaines tâches de healthcare causées
par le vieillissement de la population et l'augmentation des maladies chroniques.
Les signaux proviennent d'un réseau de capteurs corporels sans fil ou d'appareils portables placés
sur le corps d'un patient. Cette technologie est connue par ses avantages multiples :
 Equipements médicaux connectés, tels que les IRM et les scanners de tomographie. Ces
appareils génèrent de vastes flux de données qui interagissent avec d’autres
infrastructures informatiques au sein du réseau assurant des traitements tels que
l’analyse et la visualisation.
 Dispositifs médicaux portables et surveillance à distance des patients, avec des capteurs
sans fils, les médecins suivent à distance et peuvent répondre à l’état de santé des
patients en temps réel ainsi détecter des maladies (tumeurs par exemple) d’une manière
plus simple le plus développée.
 Solutions de maintenance préventive des équipements médicaux, pour éviter la
réparation imprévue des équipements médicaux, dispositifs et systèmes.
 Accroissement de la qualité des soins …
Comme toute technologie apparue, on trouve des avantages comme on trouve des
inconvénients ou autrement dit des problèmes, on en a cité dans le deuxième paragraphe
quelques-uns mais on peut aussi spécifier autres en rapport avec la technologie des capteurs sans
fils :

 Les nœuds de capteurs sans fil ont des ressources énergétiques, de traitement et de
mémoire limitées
 La quantité de données collectées périodiquement est énorme
 La qualité des données collectées n'est pas toujours satisfaisante et ces données sont
susceptibles d'être bruitées ou peu fiables
 Le processus d'extraction manuelle des caractéristiques à partir des signaux
physiologiques nécessite une intervention humaine et une expertise médicale
importantes.

4. BIG DATA
4.1. Définition

Le Big Data fait référence à des volumes de données massifs et difficiles à gérer – à la fois
organisés et non structurés – qui inondent les entreprises au quotidien. Mais ce n'est pas
seulement le type ou la quantité de données qui compte ; c'est aussi ce que les organisations en
font. Les mégadonnées peuvent être évaluées pour obtenir des informations qui aident les gens

13
à prendre de meilleures décisions et à se sentir plus en confiance pour prendre des décisions
commerciales clés.

4.2. Big Data et HealthCare

BigData dans HealthCare a un certain nombre d'implications positives et même vitales.


BigData, par essence, fait référence aux quantités massives de données générées par la
numérisation de tout ce qui est agrégé et analysé par une technologie spécifique. Lorsqu'il est
utilisé pour HealthCare, il utilisera des données de santé précises d'une communauté (ou d'un
individu) pour aider à éviter les épidémies, guérir les maladies, réduire les dépenses, etc.
Comme nous avons vécu plus longtemps, les approches de traitement ont changé et les
statistiques ont affecté bon nombre de ces changements. Les médecins tentent d'en apprendre
le plus possible sur leurs patients le plus tôt possible dans leur vie afin qu'ils puissent reconnaître
les signes avant-coureurs d'une maladie grave dès qu'ils surviennent. Il est nettement plus facile
et moins coûteux de traiter une maladie dès le début. Dans le domaine de la santé, mieux vaut
prévenir que guérir, et une image détaillée d'un patient permettra à l'assurance de proposer un
package sur mesure. Il s'agit de la tentative de l'industrie de remédier aux silos de données que
possèdent les données d'un patient : des parties et des morceaux de celles-ci sont collectées et
conservées dans les hôpitaux, les cliniques, les cabinets de consultation et d'autres lieux, avec
l'incapacité d'interagir correctement.
En effet, la collecte de volumes massifs de données à des fins médicales est coûteuse et
chronophage depuis des années. Avec les technologies en constante amélioration d'aujourd'hui,
il est plus facile non seulement de collecter de telles données, mais également de développer des
rapports de santé complets et de les traduire en informations importantes qui peuvent être
utilisées pour prodiguer de meilleurs soins. C'est l'essence même de l'analyse des données de
santé : utiliser les résultats basés sur les données non seulement pour prédire et résoudre un
problème avant qu'il ne soit trop tard, mais aussi pour évaluer les méthodes et les traitements
plus rapidement, assurer un meilleur suivi des stocks et impliquer davantage les patients dans
leur propre intérêt. Santé en leur donnant les outils pour le faire.

4.3. Exemple des applications de BigData dans HealthCare

L'industrie évolue et, comme toute autre, les données de grande taille commencent à la
transformer, mais il reste encore beaucoup de travail à faire. Le secteur adopte lentement les
nouvelles technologies qui le propulseront vers l'avenir, l'aidant à prendre des décisions plus
éclairées, améliorant les opérations, etc. En bref, voici une courte liste des exemples que nous
avons passés en revue dans cet article. Avec l'analyse des données de santé, vous pouvez :

 Prévoir le revenu quotidien des patients pour adapter le personnel en conséquence.


 Utiliser les dossiers de santé électroniques (DSE).
 Utilisez les alertes en temps réel pour des soins instantanés.

14
 Aide à la prévention de l'abus d'opioïdes aux États-Unis.
 Améliorer l’engagement des patients dans leur propre santé.
 Utiliser les données de santé pour une planification stratégique mieux informée.
 Recherche plus approfondie pour guérir le cancer.
 Utiliser l'analyse prédictive.
 …
« La plupart des gens du monde prendront des décisions en devinant ou en utilisant leur instinct.
Ils auront soit de la chance, soit de l'erreur. » – Suhail Doshi, directeur général, Mixpanel.

5. Machine Learning
Commençons par définir ce que c’est l’intelligence artificielle, elle est définie comme
l’ensemble des techniques mises en œuvre afin de construire des machines capables de faire
preuve d’un comportement que l’on peut qualifier d’intelligent, fait aussi appel aux sciences
cognitives, à la neurobiologie, à la logique, à l’électronique, à l’ingénierie et bien plus encore.
Le Machine Learning ou apprentissage automatique est un domaine scientifique, et plus
particulièrement une sous-catégorie de l’intelligence artificielle. Elle consiste à laisser des
algorithmes découvrir des ”patterns“, à savoir des motifs récurrents, dans les ensembles de
données en input. De fait, le Big Data est l’essence du Machine Learning, et c’est la technologie
qui permet d’exploiter pleinement le potentiel du Big Data.

Les algorithmes apprennent et améliorent leurs performances à partir des données


collectées afin d’exécuter une tâche spécifique, ils apprennent donc d’une manière autonome,
cette étape est nommée la phase d’apprentissage. Une fois entraîné, l’algorithme pourra
retrouver les patterns dans de nouvelles données. Le processus de l’apprentissage automatique
peut-être schématisé avec la figure suivante :

Figure 4: Process d'analyse de BigData

Les problèmes majeurs rencontrés lors d’apprentissage de la machine sont :


15
 Reproductibilité : selon la statisticienne Genevera Allen de la Rice University dans le cadre
de la conférence AAAS Annual Meeting « Le Machine Learning est en train de provoquer
une grave crise de reproductibilité dans le domaine de la science ».
 Overfitting: le fait que l’algorithme surapprend automatiquement des actions à partir des
données ou des patterns (schéma, structures…) Préconfigurés. L’overfitting se
caractérise par une variance élevée mais il est plutôt complexe.
 Underfitting : le fait que le modèle soit incapable de prédire ou capturer les modèles du
training set (phase d’entrainement).
 Taille : Les données qu’on fait apprendre au modèle sont lourdes, chose qui le rend plus
complexe.

Conclusion
La bonne utilisation des techniques mentionnées dans ce chapitre, donnera des résultats
très performants au niveau de plusieurs domaines ; et puisque la santé humaine est un domaine
très utile et très sensible, plusieurs études et recherches se font au niveau mondial pour amener
la technologie au service du healthcare.

Dans la suite de notre rapport, nous focaliserons notre étude sur le healthcare et l’IA et
plus précisément la mesure du heart rate sans contact direct avec le sujet.

16
Chapitre III :
Détection du battement de cœur à l’aide d’une vidéo enregistrer.
Introduction
Le système nerveux autonome (ANS), qui se décompose de deux branches de base, les
systèmes nerveux sympathique et parasympathique, influence la fréquence cardiaque (FC), qui
est une mesure du nombre de fois que le cœur bat chaque minute. Lorsque nous sommes dans
un scénario excitant (danger, peur, stress ou activité), le premier devient actif et accélère notre
rythme cardiaque, lorsque nous sommes détendus (sentiments d'amour, de compassion et de
sérénité), ce dernier devient actif et fait baisser notre rythme cardiaque. Comme vous pouvez le
constater, des facteurs mentaux et physiques ont un impact sur les réactions.

La variabilité de la fréquence cardiaque (HRV) est une mesure de l'équilibre de ces


conditions, ainsi qu'un indicateur de santé et de stress. La HRV diminue lorsque le système
nerveux sympathique est actif, comme lorsque les gens sont stressés. La HRV augmente lorsque
le système nerveux parasympathique est actif, par exemple lorsque les gens se sentent calmes.
La HRV gagne en popularité en tant que marqueur des maladies cardiovasculaires et des
sentiments internes comme la tristesse et le stress au travail, entre autres.
Notre programme peut mesurer ces indicateurs à distance en utilisant la technique rPPG,
une méthode de mesure de la fréquence cardiaque sans ajout de capteurs, il nécessite
simplement l'utilisation d'une caméra haute résolution pour enregistrer la vidéo. Cette
technologie est basée sur PPG la méthode traditionnelle exploité en 1930.

1. Photopléthysmographie (PPG)
La photopléthysmographie (PPG) est une méthode optique simple et peu coûteuse pour
détecter les changements de volume sanguin dans le lit microvasculaire des tissus. Il est
fréquemment utilisé pour prendre des mesures non invasives près de la surface de la peau. La
demande de technologies peu coûteuses, simples et portables dans les milieux de soins primaires
et cliniques communautaires, la grande disponibilité de petits composants semi-conducteurs peu
coûteux et l'avancement des techniques d'analyse des ondes de pouls sur ordinateur ont tous
contribué à un regain d'intérêt pour la technique ces dernières années. La technologie PPG a été
utilisée dans une variété de dispositifs médicaux accessibles dans le commerce pour mesurer la
saturation en oxygène, la pression artérielle et le débit cardiaque, ainsi que pour évaluer la
fonction autonome et diagnostiquer les maladies vasculaires périphériques.

Le concept de PPG dans le cas d'un appareil portable, comme une montre à détection de
fréquence cardiaque, un capteur envoie de la lumière sur la peau, tandis qu'un second capteur
détecte la quantité de lumière renvoyée à l'appareil. La différence entre la lumière émise et
réfléchie est créée par cela. Étant donné que la quantité de lumière réfléchie varie avec le volume
sanguin en raison de la dilatation et de la constriction capillaires, elle peut être utilisée pour
déterminer la fréquence cardiaque.
18
Figure 5: Les Capteurs optiques du HR.

2. Remote PPG
Il fonctionne sur le même principe que le précédent, mais c'est une mesure sans contact.
Il détermine la différence entre les changements de réflexion de la lumière rouge, verte et bleue
de la peau, ainsi que la différence entre la réflexion spéculaire et diffuse.
La réflexion pure de la lumière sur la peau est connue sous le nom de réflexion sphérique.
La réflexion diffusée est la réflexion qui reste après absorption et dispersion dans les tissus
cutanés, et elle fluctue avec les changements de volume sanguin.

Figure 6: Principe de rPPG

Dans notre étude, les sources de signal dont nous sommes intéressés sont celles du signal BVP
traversant le corps du sujet. En enregistrant une vidéo détectant la région du visage en utilisant
une caméra, les capteurs de couleur rouge, vert et bleu (RGB) détectent un mélange du signal
pléthysmographie réfléchi ainsi que d'autres sources de fluctuations de la lumière dues aux
19
artefacts. Étant donné que l'absorptivité de l'hémoglobine diffère à travers le visible et dans le
domaine spectral proche infrarouge (540 et 577 nm), chaque capteur de couleur enregistre un
mélange des signaux source d'origine avec des signaux légèrement différents poids, d’où la
nécessité de l’utilisation de l’ICA (1).

3. ICA:
L'analyse en composantes indépendantes (ICA) est une technique de découverte de
signaux indépendants à partir d'un ensemble d'observations qui sont composés de mélanges
linéaires du sous-jacent sources.
L'Analyse en Composantes Indépendantes (ICA) d'un vecteur aléatoire repose sur la
recherche d'une transformation linéaire qui minimise la dépendance statistique entre ses
composantes. Afin de définir des critères d'optimisation appropriés, on utilise un développement
en série de l'information mutuelle en fonction de cumulant d'ordre croissant.

Le concept d'ICA peut être vu en réalité comme une extension de l'Analyse en


Composantes Principales (PCA) qui, elle, ne peut imposer l'indépendance qu'au second ordre et
définit par conséquent des directions orthogonales. La PCA et l’ICA deux approches puissent
sembler liées, elles effectuent des tâches différentes. Plus précisément, la PCA est souvent
utilisée pour compresser les informations, c'est-à-dire la réduction de la dimensionnalité. Alors
que l'ICA vise à séparer les informations en transformant l'espace d'entrée en une base
indépendante au maximum. Un point commun est que les deux approches nécessitent que les
données d'entrée soient mises à l'échelle automatiquement, c'est-à-dire soustraire chaque
colonne par sa moyenne et diviser par son écart type. C'est l'une des raisons pour lesquelles la
PCA est généralement une bonne chose à faire avant d'effectuer l'ICA.

Les applications potentielles de l'ICA incluent l'analyse et la compression de données, la


localisation de sources, et l'identification et la dé-convolution aveugles…

4. EXIGENCES :
4.1. Python 3.8

Python est un langage de programmation généraliste lancé par Guido van Rossum qui est devenu
très populaire très rapidement, principalement en raison de sa simplicité et de la lisibilité du
code. Il permet au programmeur d'exprimer des idées en moins de lignes de code sans réduire la
lisibilité.

4.2. Libraires
4.2.1. Face recognition :

 OpenCV : a été lancé chez Intel en 1999 par Gary Bradsky, et la première version est sortie en
2000. Vadim Pisarevsky a rejoint Gary Bradsky pour gérer l'équipe de logiciels russes OpenCV

20
d'Intel. OpenCV prend désormais en charge une multitude d'algorithmes liés à la vision par
ordinateur et à l'apprentissage automatique et se développe de jour en jour. Il prend en charge
une grande variété de langages de programmation tels que C++, Python, Java, etc., et est
disponible sur différentes plates-formes, notamment Windows, Linux, OS X, Android et iOS.
Des interfaces pour les opérations GPU à haute vitesse basées sur CUDA et OpenCL sont
également en cours de développement.
 Imutils : est un package basé sur OpenCV pour atteindre l'objectif d'appeler l'interface OpenCV
de manière plus concise. C’est une série de fonctions pratiques qui permet d’implémenter une
série d'opérations telles que la traduction d'image, la rotation, la mise à l'échelle, la
squelettisation et l'affichage des images Matplotlib avec OpenCV et python 3 d’une manière
plus simple.
 Dlib : est une boîte à outils C++ moderne contenant des algorithmes d'apprentissage
automatique et des outils permettant de créer des logiciels complexes en C++ pour résoudre
des problèmes du monde réel. Cependant, vous pouvez utiliser un certain nombre de ses outils
à partir d'applications python. Il est utilisé à la fois dans l'industrie et dans les universités dans
un large éventail de domaines, notamment la robotique, les appareils embarqués, les
téléphones mobiles et les grands environnements informatiques haute performance.
 Argparse : C’est un module qui facilite l'écriture d'interfaces de ligne de commande conviviales.
Le programme définit les arguments dont il a besoin et argparse trouvera comment les
analyser à partir de sys.argv. Le module argparse génère également automatiquement des
messages d'aide et d'utilisation et émet des erreurs lorsque les utilisateurs donnent au
programme des arguments non valides.
 Numpy : est le package fondamental pour le calcul scientifique en Python. Il s'agit d'une
bibliothèque Python qui fournit un objet tableau multidimensionnel, divers objets dérivés (tels
que des tableaux et des matrices masqués) et un assortiment de routines pour des opérations
rapides sur des tableaux, notamment mathématiques, logiques, manipulation de forme, tri,
sélection, I/O, transformées de Fourier discrètes, algèbre linéaire de base, opérations
statistiques de base, simulation aléatoire et bien plus encore.
 Matplotlib : une bibliothèque complète permettant de créer des visualisations statiques,
animées et interactives en Python. Matplotlib rend les choses faciles et les choses difficiles
possibles. C’est une bibliothèque graphique de visualisation 2D (avec un support pour la 3D,
l’animation et l’interactivité), permettant des sorties de haute qualité « prêtes à publier ».
C’est à la fois une bibliothèque de haut niveau, fournissant des fonctions de visualisation « clés
en main » (échelle logarithmique, histogramme, courbes de niveau, etc), et de bas niveau,
permettant de modifier tous les éléments graphiques de la figure (titre, axes, couleurs et styles
des lignes, etc.)
4.2.2.Filtrage de données

 Scipy : est une extension Python qui contient un ensemble de méthodes mathématiques et de
fonctions de commodité. Elle donne à l'utilisateur beaucoup de pouvoir en offrant des
commandes et des classes de haut niveau pour manipuler et afficher des données dans une
session Python interactive. Une session Python interactive peut être transformée en un

21
environnement de traitement de données et de prototypage système qui rivalise avec
MATLAB, IDL, Octave, R-Lab et SciLab.

4.2.3. Analyse finale des données

 Pickle : Pickle est utilisé pour sérialiser et désérialiser les structures d'objets Python,
également appelées marshalling ou flattening. La sérialisation fait référence au processus de
conversion d'un objet en mémoire en un flux d'octets pouvant être stocké sur disque ou
envoyé sur un réseau. Plus tard, ce flux de caractères peut ensuite être récupéré et désérialisé
en un objet Python.
 HeartPy : Le Python Heart Rate Analysis Toolkit, ou HeartPy, est un package Python pour
l'analyse de la fréquence cardiaque. Il a commencé comme une solution purement python
pour analyser les données physiologiques collectées lors de tests réalistes de conduite et de
cyclisme. Ce module prend un signal de fréquence cardiaque discret et génère des mesures
dans le domaine temporel et dans le domaine fréquentiel qui sont couramment utilisées dans
les publications scientifiques :
o Domaine Temporel :
 Battement par minute (Beat per Minute)
 Intervalle entre les battements.
 Écart type des différences successives entre les intervalles R-R adjacents,
SDSD.
 Moyenne quadratique des différences successives entre les intervalles R-
R adjacents, RMSSD.
 Proportion de différences entre les intervalles R-R supérieure à 20 ms, 50
ms, pNN20, pNN50.
 Etc…
o Domaine Fréquentiel
 Composante très basse fréquence (0,0033–0,04 Hz), VLF
 Composante basse fréquence (0,04-0,15 Hz), LF
 Composante haute fréquence (0,15-0,4 Hz), HF
 Rapport LF/HF, LF/HF

5. Approche
Notre solution se base sur la technique « photopléthysmographie » à distance (rPPG),
pour construire un pipeline de traitement d'images visant à collecter le signal de pouls du volume
sanguin (BVP) d'un sujet et, à partir de là, sa fréquence de pouls (rPPG). Les algorithmes ont reçu
une vidéo d'un sujet et ont été chargés d'extraire des vecteurs RGB indexés dans le temps de
chaque image du film. Les vecteurs sont ensuite soumis à une série de méthodes d'analyse
spectrale et statistique afin d'extraire un signal BVP et, à partir de là, leur fréquence cardiaque.

22
L'approche spectrale que nous avons utilisée est divisée en trois parties : identification du
ROI, prétraitement et extraction, et calcul de la fréquence du pouls. La première vise à calculer
la position du visage du sujet afin de mesurer le signal BVP. Nous avons utilisé le détecteur de
repère facial “dlib” pour extraire la zone entre les joues du sujet afin de maintenir une série stable
de mesures sur une section raisonnablement statique du visage du sujet. Une fois que leur visage
a été segmenté, chaque canal RGB de l'image du visage est moyenné, ce qui donne une mesure
par canal pour chaque image vidéo, ce qui donne trois signaux.

Étant donné que les signaux de fréquence cardiaque ne sont pas stationnaires, nous avons
utilisé une technique de priorisation de lissage (2) avec une fréquence de coupure de 0,33 Hz
pour les réduire. Après avoir normalisé les signaux RGB, nous les décomposons en trois signaux
sources distincts à l'aide de l'analyse en composantes indépendantes (ICA) (1). Nous avons choisi
la mise en œuvre de scitkit-Fast ICA learn pour garantir que cette phase puisse être achevée de
manière fiable et rapide. Les fluctuations de couleur générées par BVP sont distinguées de celles
causées par le mouvement, l'éclairage ou d'autres facteurs utilisant l'ICA. Les différences de
couleur induites par les changements de volume sanguin sont représentées par l'un des
composants de retour, qui est présumé être le composant ayant le plus grand pic dans son
spectre de puissance.

Nous utilisons ensuite un filtre moving-average à 5 points et un filtre passe-bande à


fenêtre de Hamming avec des fréquences de coupure pour filtrer le signal dans les domaines
temporel et fréquentiel. Après avoir calculé le signal BVP, nous estimons la fréquence cardiaque
de la personne en utilisant la technique d'estimation de l'intervalle entre les battements
rapportés par [van Gent] et [al.] (3) Nous avons choisi d'utiliser les solutions de ces auteurs car
l'objectif principal de notre recherche est d'estimer le signal BVP à distance, et non d'estimer les
intervalles entre les battements (4).

6. Implémentation
6.1. Méthodologie

Cette stratégie comprend des tests préliminaires qui évaluent la capacité opérationnelle
initiale de notre projet. L'algorithme est testé sur des données provenant de personnes ayant
des tons de peau, des sexes et sans poils sur des visages similaires, dans des conditions d'éclairage
parfaites, et avec le sujet de test face à la caméra directement à une distance constante.
Cette approche des tests d'algorithmes aurait permis de tester en profondeur les
variables tout en isolant les défauts. L'algorithme sera considéré comme réussi, s’il atteint 5%
d’erreurs.

23
6.2. Explication du Code de l’application
6.2.1. Importation des librairies nécessaires

Figure 7: importation des librairies nécessaires

Nous importons les librairies nécessaires pour la détection faciale, la mesure du


battement de cœur, la décomposition ICA et autres, nous verrons leur utilité par la suite.

6.2.2. Définition du constructeur du class __init__()

Un Haar Cascade est fondamentalement un classificateur utilisé pour détecter l'objet


pour lequel il a été formé, dans notre cas d'étude, nous avons utilisé le modèle préconfiguré pour
la détection faciale "haarcascade_frontalcatface.xml" que nous l'avons obtenu par appel à la
fonction CascadeClassifier().

Figure 8: Définition de la fonction constructrice du class __init__()

24
Après on fait retourner le visage détecté en se basant sur l'apprentissage automatique
qu'on vient de réaliser, et on crée les 68 points déterminant le visage à l‘aide de la base de
données préconfigurée ”shape_predictor_68_face_landmarks.dat“.

Figure 9: repères de visage

Nous terminons par l’initialisation de la valeur du smoothing qu’on utilisera en phase du


“detrended signals”, ainsi la valeur de la fenêtre de Hamming utilisée en filtrage des signaux, et
la fréquence de coupure.

6.2.3. Définition de la fonction sample_video()

Nous commençons par une vérification et une validation de la vidéo et du chemin, puis
nous appelons la fonction get_face_sample(frame, draw=draw) pour analyser les signaux dans chaque
image et les stocker dans un vecteur Y[i,:]. La fonction prend 2 arguments, le chemin de la vidéo
et l'argument draw qui est False par défaut, mais toute modification par l'utilisateur entraînera
la fonction à dessiner des valeurs d'image (FPS). Le process et arrêté qu’on la vidéo et terminer
ou lorsque la lettre « q » ou le bouton échappe est tapée. Par la suite, mes ressources en termes
de mémoire sont libérées.

25
Figure 10: la fonction sample_video()

Cette fonction retourne deux variables, le premier « fs » est le nombre du FPS alors que
le deuxième est un vecteur des valeurs des signaux RGB.

6.2.4. Définition de la fonction get_face_sample()

La fonction utilise les fonctions « dlib » pour la recherche des visages dans la vidéo, si
aucun visage n'est trouvé, elle avertit l'utilisateur et s'arrête. Sinon, il dessine un rectangle autour
du ROI (Region Of Interest) qui n'est que la peau du visage, représentée par des variables de
couple (x1l, y1l, x2l, y2l), en détectant les landmakrs du visage humain (détails discutés plus haut).
Notre programme s'intéresse au milieu du visage entre les joues. Le reste de la fonction extrait
les données RGB pour chaque canal, calcule la moyenne et l’affiche grâce à la fonction putText()
d’opencv.

Si l'utilisateur a ajouté l'option de dessiner, la vidéo affichée à l'écran contiendra des pics
RGB pour chaque frame. Ainsi, la fonction retourne les valeurs des canaux capté lors du
traitement.

26
Figure 11: la fonction get_face_sample()

6.2.5. Définition de la fonction detrend_traces()

Dans cette phase du “detrending signals”, nous visons la suppression des signaux pouvant
perturber le traitement du signal et l'analyse modale des signaux RGB extraits au préalable. Le
signal reçu par chaque canal RGB est un signal non stationnaire, et donc les piques ou les
intervalles RR ne sont pas identiques ou bien dit non-périodiques, la technique utilisée ici est
“smoothness priors” (5).

27
Figure 12: la fonction detrend_traces()

On considère ces RR-intervalles comme un seul signal “z” et on le décompose en deux


signaux, l'un presque stationnaire qu'on a nommé z_stationnary et l'autre de fréquence plus
basse qui est non périodique qu'on a nommé detrended.
Pour plus de simplification, on peut représenter le signal non périodique sous forme linéaire.
1 −2 1 0 … 0
0 1 −2 1 ⋱ ⋮
D=( )
⋮ ⋱ ⋱ ⋱ ⋱ 0
0 … 0 1 −2 1
Figure 13: signal non périodique

Pour avoir l’estimation suivante : z_stationnary= (I- (I+(𝛌)2 * DT * D-1) * z avec I: la matrice
d’identité.

6.2.6. Définition de la fonction z_normalize()

Après le “signals detrending”, on passe à la normalisation qui est une méthode de


prétraitement des données qui permet de réduire la complexité des modèles.

Figure 14: la fonction z_normalize()

La normalisation standardise la moyenne et l’écart-type de tout type de distribution de


données, ce qui permet de simplifier le problème d’apprentissage en s’affranchissant de ces deux
paramètres.

28
Figure 15: modélisation de la normalization

6.2.7. Définition de la fonction ica_decomposition()

Comme discuté dans la partie ICA, nos signaux sont maintenant décomposés en trois
signaux indépendants (les signaux de données) en utilisant la fonction FastICA() pour garantir que
le traitement est favorisé et fiable le long de la vidéo. La fonction fit_transform() sert à formuler les
données en vecteur ou liste.

Figure 16: la fonction ica_decomposition()

L'ICA est capable d'éliminer les artefacts de mouvement en séparant les fluctuations
causées principalement par le BVP des signaux bruts observés.

6.2.8. Définition de la fonction select_component()

Cette fonction sélectionne un seul signal bvp d’après les trois composants générés par la
fonction précédente dont sa densité spectrale de puissance contient le pic de puissance le plus
élevé. Fixant le pic de la puissance car les battements de cœur sont limités dans une marge, on
applique un filtre passe bande pour extraire la partie de la fréquence cardiaque et après on
compare les signaux pour avoir la bonne composante.

Figure 17: la fonction select_component()

29
6.2.9. Définition de la fonction get_bvp_signal()

Cette fonction fait appel aux fonctions précédentes pour le traitement des signaux et
renvoie le meilleur signal BVP, ainsi le FPS de la vidéo. Il prend trois arguments, le chemin de la
vidéo, la variable de dessin (Faux par défaut) et le chemin des données traitées stockées.

Figure 18: la fonction get_bvp_signal()

En commençant par vérifier si le chemin vidéo n'est pas vide, la deuxième condition
cherche les données traitées et stockées précédemment pour extraire les signaux et les fps. Ces
données sont soit stockées à partir de vidéos précédentes dans le fichier "channel_data.pkl" ou
dans un autre fichier donné par l'utilisateur. Si une vidéo est donnée, la fonction sample_video()
est appelée pour en extraire des données.
Les signaux extraits sont ensuite redressés [detrend_traces(Y)], normalisés
[z_normalized(detrended_data)], décomposés en 3 composants comme expliqué avant en
utilisant la fonctio [ica_decomposition (cleaned_data)] et enfin on sélectionne la composante
avec le pique du spectre de puissance le plus élevé en appelant [select_component(
signaux_source, fs)].

Dans chaque phase, les données sont générées par des fonctions puis stockées dans des
fichiers "detrended_signals.pkl", "cleaned_signals.pkl", "ica_signals.pkl" et "bvp_signal.pkl".

En outre, les fonctions de pickle appelées [pickle.dump() & pickle.load()] sont utilisées
pour convertir les données de python telles que le dictionnaire et la liste sous forme binaire afin
de pouvoir les stocker et les récupérer en cas de besoin, comme elles l'étaient en premier lieu.

30
6.2.10. Définition de la fonction find_heartrate()

Étant donné le signal bvp extrait de la fonction ci-dessus, find_heartrate() applique deux
filtres, le movingaverage utilisant [movingAverageFilter(bvp_signal, self.avg_window_size)] et un
filtre passe-bande en appliquant [bandpassFilter(average, fs, self.freq_cuttoff)]. Le premier filtre
utilisé dans le domaine temporel surtout pour éliminer le bruit, ce type de filtrage permet de
mesurer la valeur moyenne du signal en input tout en dépendant du paramètre
self.avg_window_size qui spécifie la taille des sous-séries sur laquelle on doit calculer la moyenne
mobile. Le deuxième filtre extrait les données d'une plage ou d'une fréquence où réside la
fréquence cardiaque. Après la librairie “heartpy” est utilisé pour traiter les données extraites avec
la fonction [heartpy.process(bp, fs)]

Figure 19: la function find_heartrate()

6.2.11. Définition de la fonction plot_figures()


Cette fonction représente tous les signaux que nous traitons dès le RGB retenu de la vidéo
jusqu’au signal final du battement de cœur. La fonction pickle.load() convertit les données du
format binaire stockées sur les disques en leur format d’origine. Alors que les fonctions
plot.subplots(), plot.subplots_adjust() et xx.plot() servent à préparer et représenter les données,
enfin, plot.show() les affiche sur l'écran.

31
Figure 20: la fonction plot_figures()

6.2.12. Définition de la fonction main()

La définition de la fonction main() utilisera la librairie “argparse”,qui va permettre l’ajout


de quelques arguments que l’utilisateur peut spécifier dans la commande qui sera taper en
terminal, comme la source de la vidéo à traiter par “-s” ou le cas de multiples vidéos en utilisant
l’argument “-e”, “-p” pour dessiner toutes les figures et les signaux et “-d” pour afficher la vidéo
avec son fps et les valeurs du RGB pour chaque image. Ces arguments définissent par la suite la
sortie du programme et son fonctionnement.

Figure 21: la fonction main()

32
D’abord le programme vérifiera par la suite l’existence et l’exactitude des arguments et
du chemin de la vidéo pour procéder à l’exécution du code. Après que l’utilisateur tape sa
commande en terminal, on vérifie les arguments, si l’argument “-p” est spécifié, soit on dessine
les figures des signaux des vidéos prétraités et sauvegardés, soit on passe au traitement et
l’analyse de la vidéo donnée ainsi le dessin des figures en parallèle que cette analyse, et on
procède au stockage de ces données par la suite.
Si aucun argument n’est spécifié, excepté l’argument “-s”, on prend la vidéo donnée et
on la traite en passant par toutes les étapes de la fonction get_bvp_signal() et find_heartrate()
qui vont faire appel à leur tour aux fonctions nécessaires pour retourner les données mesurées
du sujet dans la vidéo entrée. Les mesures qui s’afficheront sont les suivantes :

 Les variables dérivées directement de la mesure des intervalles R-R :


o NN (intervalle entre 2 battements cardiaques, normal to normal, NN).
o SDNN (écart-type de l’intervalle RR sur toute la période
d’enregistrement), renseigne sur la variabilité globale.
 Les variables dérivées de la différence entre les intervalles R-R :
o NN50 (nombre d’intervalles RR successifs différant de plus de 50 ms).
o SDSD (écart-type de la différence entre les intervalles RR successifs).
o pNN50 (NN50 divisé par le nombre total d’intervalles).
o RMSSD (la moyenne quadratique des intervalles R-R successifs). Cette
mesure est préférable par rapport à pNN50 et à NN50 d’après la Task
Force.

6.3. Exécution et Test du programme

La commande pour lancer le programme, présenté ci-dessous, permit de lancer la vidéo à l'écran
avec les différentes valeurs RGB de chaque image :
Python3 bvp.py -s ./ME.mp4 -d –p

33
Figure 22: notre vidéo avec les différentes valeurs du RGB

L’interface du terminal donne comme sortie les valeurs des mesures dont nous avons
parlé ci-dessus.

Figure 23: CLI lors du processing et les résultats finaux

Après que l’analyse et le processing sont terminés, tous les signaux sont affichés à l’écran,
comme le montre les figures affichées ci-dessous.

34
Figure 24: les signaux RGB extraits tout au long du traitement

Figure 25: les signaux RGB après la phase du "detrending"

35
Figure 26: les signaux après la phase de normalisation

Figure 27: les signaux résultant de la ICA

36
Figure 28: le signal dont sa densité de psuissance spectral contient le pic de la puissance

Figure 29: le signal final dont on extrait les HR

6.4. Résultats et discussion

Le mappage des données de fréquence cardiaque aux valeurs réelles, ainsi que la tendance
entre elles, est illustré dans la figure 24. La ligne de tendance devrait idéalement suivre l’axe y=x.

37
Figure 30: Résultats expérimentaux

Nous avons également comparé cette approche à d'autres méthodes rPPG


(photopléthysmographie à distance) populaires, comme le montre la figure 25. (6)

Standard Deviation Mean Absolute Error Root Mean Square Error

Poh2011 13.5 - 13.6

CHROM - 13.49 22.36

LI2014 6.88 - 7.62

SAMC 5.81 4.96 6.23

SynRhythm 10.88 - 11.08

HR-CNN - 7.25 9.24

DeepPhys - 4.57 -

rPPPGNet 7.82 5.51 7.82

Cette Méthode 4.26 5.25 6.76

Figure 31: Table de Comparaison

38
Cette approche fournit d'excellents résultats par rapport à de nombreuses autres
méthodes. Néanmoins, il est crucial de noter que cet ensemble de données était bien plus petit
que ce qui a été utilisé pour déterminer ces valeurs, composé de seulement 8 patients, en raison
de considérations restrictives. Tout cela s'est passé dans des circonstances comparables.
Cependant, cela semble montrer que ces approches sont toujours couronnées de succès.
La méthode que nous avons fournie à un taux d'erreur d'environ 7 %, ce qui, bien que
supérieur à l'objectif de 5 %, implique qu'il s'agit d'une approche saine et que, compte tenu des
données supplémentaires, notamment des données plus précises, il pourrait descendre en
dessous de 5 % d'erreur.

Conclusion
Ce chapitre a donné un aperçu de la méthode de photopléthysmographie à distance. Pour
extraire à distance un signal de fréquence cardiaque d'un sujet, nous utilisons une gamme
d'approches de traitement du signal et statistiques tout en suivant un ensemble d’étapes
commençant par l’extraction des signaux de couleur d'un visage dans une vidéo, puis une
filtration et séparation en signaux source indépendants ensuite une détermination de quel signal
source est le BVP du sujet et utilisez ce signal pour estimer sa fréquence cardiaque.

Cette approche a été utilisée comme base pour implémenter autres applications qui
auront pour objectif la mesure du heart rate en temps réel ou la détection du stress chez les
individus en se basant sur la mesure du battement de cœur et bien autres

39
Conclusion générale

À l'aide d'une caméra, nous décrivons une approche simple et peu coûteuse pour évaluer
de nombreux indicateurs physiologiques. Nous avons récupéré le pouls du volume sanguin des
zones faciales à l'aide de l'ICA sur des signaux d'enregistrement vidéo, puis la fréquence
cardiaque (FC), la fréquence respiratoire (RR) et la variabilité de la FC ont été mesurées. Cette
technologie est très prometteuse en matière de soins de santé personnels et de télémédecine.

Nous reconnaissons que ce rapport, que vous lisez et examinez, est le résultat de notre
travail et de nos efforts. À la fin de cette étude, cela représente les informations et les
expériences que nous avons recueillies tout au long du projet. En plus de cela, de nouvelles
compétences techniques et une compréhension théorique sont développées.

40
Références
1. P. Comon, “Independent component analysis, a new concept?” Signal.
2. M. P. Tarvainen, P.O. Ranta-Aho, and P.A.Karjalainen, “An advanced detrending method
with application to HRV analysis,” IEEE Trans. Biomed.Eng., vol. 49, no. 2, pp. 172–175, Feb.
2002.
3. Poh, M.-Z., McDuff, D.J., Picard, R.W.: Advancements in noncontact, multiparameter
physiological measurements using a webcam. IEEE Trans. Biomed. Eng. 58, 7–11 (2011).
4. [Online] http://doi.org/10.5334/jors.241.
5. [Online] an_advanced_detrending_method_with_application_in_.pdf (psicolibra.it).
6. [Online] https://arxiv.org/pdf/1907.11921.pdf.

41

You might also like