Systeme Embarque

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 26

UNIVERSITY MOHAMMED V

FACULTÉ DES SCIENCES RABAT

Projet Système Embarqué

Master Informatique et Télécommunication

Option : Génie Logiciel

MIT

Système Embarqué SmartCardio

Encadré par :
-Mr MOURAD OUADOU
-Mr RACHIDE MAFAMAN
-Mme HANAE BELMAJDOUB
Réalisé Par :
-HOUDA EL MOHAMADI -AYOUB FRAIDI
-YOUSSEF LAKRAD -SAMI BELATTAR

Année Universitaire 2022-2023


Résumer

Les maladies cardiovasculaires sont l’une des principales causes de décès dans le monde, représentant
environ un tiers de toutes les morts. Les patients atteints de ces maladies nécessitent une surveillance
continue de leur santé cardiaque pour prévenir les complications et améliorer leur qualité de vie.
Cependant, la surveillance traditionnelle de ces patients est limitée par les contraintes de temps et de
ressources, notamment la nécessité de se rendre régulièrement chez le médecin pour des tests et des
analyses. Dans ce contexte, notre projet vise à développer une solution intelligente pour la surveillance
et le suivi des patients atteints de maladies cardiovasculaires, en utilisant des capteurs ECG portables
et des algorithmes d’IA (Deep Learning).
Dans ce rapport, nous avons exploré deux domaines en constante évolution de l’informatique : les
systèmes embarqués et le machine learning/deep learning. Nous avons présenté une définition et des
caractéristiques de chaque domaine, ainsi qu’une classification des systèmes embarqués. Nous avons
également examiné l’architecture des réseaux de neurones profonds et présenté le modèle CNN-1D pour
l’analyse des signaux ECG.
En conclusion, ce projet démontre les avantages de la combinaison de ces deux domaines en
constante évolution pour développer des solutions intelligentes qui répondent aux besoins de la méde-
cine moderne.

Mots Clès : Système Embarqué, Raspberry Pi, Machine Learning, Deep Learning, Modele CNN-
1D, Signale ECG.

2
TABLE DES MATIÈRES

Introduction Générale 6

1 Système embarque 7
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Introduction aux système embarque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Définition et caractéristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Classification des systèmes embarqués . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Architecture des systèmes embarqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Le système embarqué Raspberry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Les systèmes d’exploitation et les langages utilisée dans la Raspberry pi . . . . 9
1.4.3 Les différentes type de la raspberry pi . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.4 L’architecture de la Raspberry pi3 . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Machine learning et deep leaning 12


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Machine learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Différente type d’algorithme en machine learning . . . . . . . . . . . . . . . . . 13
2.2.2.1 Machine learning supervisé . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2.2 Machine Learning Non Supervisé . . . . . . . . . . . . . . . . . . . . . 13
2.2.2.3 Machine learning par renforcement . . . . . . . . . . . . . . . . . . . . 14
2.3 Deep learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Architecture des réseaux de neurones profonds . . . . . . . . . . . . . . . . . . 15
2.3.3 Convolutional Neural Networks (CNN-1D) . . . . . . . . . . . . . . . . . . . . . 15
2.3.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.3.2 Architecture du CNN-1D . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Étapes d’entraînement en Machine Learning et Deep Learning . . . . . . . . . . . . . . 16
2.5 Défis du machine learning et deep learning . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Réalisation en temps réel 18


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Objectife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Environnement du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Environnement logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3
3.3.2 Environnement materiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Schéma explicatife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Réalisation en temps réel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.1 Signaux ECG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.2 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.3 Présentation du l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.4 Résultat du modele CNN-1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Conclusion Générale 25

4
TABLE DES FIGURES

1.1 Système embarque dans son environnement . . . . . . . . . . . . . . . . . . . . . . . . 8


1.2 Architecture SysEmbarque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Rapberry pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Architecture Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1 Machine Leaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13


2.2 Deep learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Architecture deep learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Architecture du CNN-1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1 Puthon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Kotlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Rest API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Raspberry PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Arduino UNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.7 Cpateur ECG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.8 patie A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.9 Partie B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.10 Matrice du confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5
Introduction Générale

Ces derniers temps et avec l’avancement de la technologie. Le domaine de l’informatique est en


constante évolution et de nouveaux concepts sont introduits régulièrement. Parmi ces concepts, deux
domaines qui ont connu une grande expansion ces dernières années sont le système embarqué et le
machine learning/deep learning. Les systèmes embarqués sont des systèmes informatiques intégrés
dans des dispositifs et équipements électroniques, tels que des ordinateurs de bord pour les avions, les
voitures, les systèmes de contrôle industriels et les appareils électroniques grand public. Ces systèmes
ont la particularité d’être conçus pour des applications spécifiques avec des contraintes strictes en
termes de performances, de taille, de consommation d’énergie et de coût. Le machine learning et le
deep learning sont des sous-domaines de l’intelligence artificielle qui utilisent des algorithmes pour
analyser des données et apprendre des modèles de comportement. Ces technologies ont le potentiel de
transformer de nombreux domaines, notamment la santé, la finance, l’industrie et les services.

Dans ce rapport, nous allons aborder trois chapitres distincts. Le premier chapitre est dédié aux
systèmes embarqués. Nous y aborderons la définition des systèmes embarqués, leurs caractéristiques et
leur classification. Nous parlerons également du Raspberry Pi, qui est un exemple de système embarqué
largement utilisé. Le deuxième chapitreest dédié au machine learning et au deep learning. Nous
allons introduire le machine learning et ses algorithmes, ainsi que le deep learning qui est une forme
avancée de machine learning. Nous allons également présenter le modèle CNN-1D qui sera utilisé pour
la classification de signaux ECG. Enfin, le troisième chapitre est dédié à la réalisation en temps réel
de notre projet pour la prédiction des maladies cardiovasculaires. Nous allons introduire les objectifs
du projet ainsi que notre environnement de travail. Nous présenterons également les résultats obtenus
tout au long du projet.

6
CHAPITRE 1
SYSTÈME EMBARQUE

7
1.1 Introduction
Le système embarqué est une technologie qui est de plus en plus présente dans notre vie quoti-
dienne,sont des systèmes informatiques spécialement conçus pour des applications dédiées, souvent
pour des tâches spécifiques et limitées. Ils sont utilisés dans une variété de domaines. Les systèmes
embarqués sont souvent conçus pour fonctionner de manière autonome, sans intervention humaine, et
sont souvent limités en termes de ressources matérielles, de mémoire et de puissance de traitement.

1.2 Introduction aux système embarque


1.2.1 Définition et caractéristique
Un système embarqué est un système informatique électronique autonome dédié à des tâches pré-
cises qui doivent souvent répondre à des contraintes en temps réel. En général, les ressources disponibles
pour ces systèmes, notamment en termes d’espace et d’énergie, sont limitées. La plupart de ces sys-
tèmes, qu’ils soient centralisés ou distribués, sont essentiels pour assurer la sécurité, car ils sont au
cœur du comportement du système ou interagissent avec des humains dans des situations critiques.
La complexité du développement de ces systèmes embarqués nécessite des méthodes de conception
globales qui prennent en compte les fonctions et les composants (tels que les capteurs et les contrôleurs),
ainsi que les interférences et les contraintes.

Figure 1.1 – Système embarque dans son environnement

Les caractéristique des systèmes embarqués :


- Autonome : Une fois enfuois dans l’application, ils ne sont plus accessibles.
- Temps réel : Les temps du réponse de ces systèmes sont aussi plus important que l’exatitude
des résultats.
- Réactif : Il doit réagir à des information externes inattendues.

1.2.2 Classification des systèmes embarqués


Le système embarqué est défini comme un système informatique éelectronique autonome dédié à
avoir des taches plus précises et répondre souvent à des contraintes en temps réel. Nous pouvons diviser
les systemes embarques en trois types :
- Système transformationel : C’est un système qui lit ses données et ses entrées lors de son
démarrage, qui fournit ses sorties, puis meurt.
- Système intéractif : C’est un système en interaction quasi permanente avec son environne-
ment, y compris après l’initialisation du système ; la réaction du système est déterminée par
les événements reçus et par l’état courant (fonction des événements et des réactions passés) ; le
rythme de l’interaction est déterminé par le système et non par l’environnement.
- Système réactif ou temps réel : C’est un système en interaction permanente avec son envi-
ronnement, y compris après l’initialisation du système ; la réaction du système est déterminéec-

8
par les événements reçus et par l’état courant (fonction des événements et des réactions passées) ;
mais le rythme de l’interaction est déterminé par l’environnement et non par le système.

1.3 Architecture des systèmes embarqués


L’architecture générale d’un système embarqué peut varier en fonction de sa taille, de sa complexité
et de sa fonctionnalité. Cependant, il existe généralement trois parties principales : le microcontrôleur
(ou processeur), les périphériques d’entrée/sortie et la mémoire.
En outre, il peut y avoir d’autres composants tels que des interfaces de communication, des conver-
tisseurs de signal, des régulateurs de puissance, etc. L’architecture générale est conçue pour maximiser
la performance et minimiser la consommation d’énergie tout en répondant aux exigences spécifiques
du système embarqué.

Figure 1.2 – Architecture SysEmbarque

1.4 Le système embarqué Raspberry


1.4.1 Définition
La Raspberry Pi peut être décrite comme un ordinateur monocarte, prenant la taille d’une carte
électronique embarquée. Cette carte offre de nombreuses possibilités pour le développement et la réali-
sation de projets en électronique-informatique. Elle est capable de faire tout ce que vous attendez d’un
ordinateur de bureau, comme la navigation internet et la création de programmes.
Grâce au slot micro-SD intégré, il est possible d’installer un système d’exploitation complet sur
une carte micro-SD. Cela permet de faciliter l’utilisation des ressources matérielles de la carte et
l’intégration des fonctionnalités de base.

Figure 1.3 – Rapberry pi

1.4.2 Les systèmes d’exploitation et les langages utilisée dans la Raspberry pi


Le système d’exploitation recommandé pour la Raspberry Pi est Raspbian, qui est basé sur Debian.
Bien que d’autres systèmes d’exploitation tels que Linux, Windows 10 et Ubuntu puissent être utilisés, il

9
est préférable de travailler avec Raspbian car il est régulièrement mis à jour. Raspbian est spécialement
optimisé pour la Raspberry Pi et offre une distribution qui permet de se familiariser très facilement
avec le matériel.
Nous considérons que Python est le langage de programmation principal utilisé par les développeurs
sur la Raspberry Pi. Pour ceux qui ont moins d’expérience en développement, il est possible de recourir
à des langages de programmation plus faciles tels que Scratch.

1.4.3 Les différentes type de la raspberry pi


Selon la première édition de son modèle de Raspberry Pi lancé en 2012, la Fondation Raspberry a
poursuivi la production de versions plus avancées de cet ordinateur monocarte.

les modèles raspberry pi400 raspberry pi4 8Go raspberry pi4 vers4Go raspberry pi3 A+ raspberry pi2

image

date de sortie 2 novembre2020 28 mai 2020 24 juin 2019 15 novembre 2018 1 février 2015

Un Raspberry Pi4 version de raspberry la quatriéme version plus petit la seconde


intégré à un pi4 B avec 8Go de édition de la que raspberry pi3b+ édition
description clavier avec une memoire et une modification raspberry pi avec une RAM faible de la raspberry
amélioré de la de l’augmentation des composants
processeur. pour l’alimentation electrique

core type Cortex-A72 Cortex-A72 Cortex-A72 Cortex-A53 Cortex-a-A7


(ARM 8v) 64bits (ARM 8v) 64bits (ARM 8v) 64bits 64bits

fréquence 1.8GHz 1.5GHZ 1.5GHz 1.4GHz 900MHz

port HDMI 2micro HDMI 2micro HDMI 2micro HDMI full HDMI full HDMI

memoire vivre 4 GB LPDDR4 8 GB LPDDR4 1GB,2GB,4GB LPDDR4 512MB DDR2 1GB

USB 2*USB3.0 2*USB3.0 2*USB3.0 1*USB2.0 4*USB2.0


1*USB2.0 2*USB2.0+ usb c-otg 2*USB2.0 +usb c-otg

Ethernet gigabit gigabit gigabit 10/100M

bleutouth 5 5 5 4.2BLE

power ratting 1.25A,5V 1.25A,5V 1.15A,5V 800mA

power source USB C USB C USB C microUSB-GPIO microUSB , GPIO

1.4.4 L’architecture de la Raspberry pi3


L’architecture de la Raspberry Pi est basée sur une carte unique (mono-carte) qui intègre tous les
composants nécessaires pour faire fonctionner le système. Le processeur, la mémoire, les interfaces de
communication, les périphériques d’entrée/sortie et le contrôleur graphique sont tous présents sur la
carte.
Le processeur central (CPU) est un processeur ARM, qui est couramment utilisé dans les appareils
mobiles et les systèmes embarqués. La mémoire RAM est généralement de 1 à 8 Go, ce qui est suffisant
pour exécuter des tâches informatiques courantes telles que la navigation sur Internet, le traitement
de texte et le streaming de vidéos.
Les périphériques d’entrée/sortie incluent des ports USB, un port Ethernet pour la connexion au
réseau, des ports HDMI pour la sortie vidéo, une prise jack pour la sortie audio, ainsi qu’un port GPIO

10
(General Purpose Input/Output) qui permet une grande flexibilité pour les projets électroniques.
L’architecture de la Raspberry Pi est conçue pour offrir une grande polyvalence et une grande
évolutivité pour les projets électroniques et informatiques.

Figure 1.4 – Architecture Raspberry Pi

1.5 Conclusion
L’architecture des systèmes embarqués est un domaine complexe mais essentiel de l’informatique
embarquée. Les avancées technologiques actuelles ont ouvert de nouvelles possibilités passionnantes
pour les systèmes embarqués, notamment l’intégration de l’intelligence artificielle et des réseaux de
capteurs. Nous pouvons nous attendre à voir de plus en plus de systèmes embarqués dans notre vie
quotidienne, et la compréhension de leur architecture est cruciale pour leur conception et leur déve-
loppement réussis.

11
CHAPITRE 2
MACHINE LEARNING ET DEEP LEANING

12
2.1 Introduction
Le machine learning et le deep learning ont révolutionné l’analyse des signaux ECG en permettant
une détection et une classification plus précises des anomalies cardiaques. Dans ce chapitre, nous
présentons une introduction à ces techniques ainsi qu’une explication du modèle CNN-1D utilisé pour
l’analyse de ces signaux ainsi que les etapes génerale d’entrainement et les défis du ML et DL.

2.2 Machine learning


2.2.1 Introduction
Machine Learning est un domaine de l’intelligence artificielle qui se concentre sur l’apprentissage
automatique des modèles à partir de données, sans avoir été explicitement programmé pour effectuer
une tâche particulière. D’autre part l’utilités des algorithmes de ML est pour apprendre à partir de
données et à améliorer la précision des prédictions au fils de temps. Au lieu dr définir explicitement la
logique pour résoudre un problème.

Figure 2.1 – Machine Leaning

Les données dans le modèle de ML peuvent être présentés sous différents formes,(Image, texte....).
Alors pour que la machine doit les comprend, ils seront transformés sous forme des vecteurs (où on
peut appliquer differents opérations algébrique) contiennent une ou plusieurs informations.

2.2.2 Différente type d’algorithme en machine learning


Les algorithmes développés en Machine Learning peuvent être rangés en trois catégories : l’appren-
tissage supervisé, l’apprentissage non supervisé et l’apprentissage par renforcement.

2.2.2.1 Machine learning supervisé


Le machine learning supervisé est une technologie élémentaire mais stricte. Les opérateurs pré-
sentent à l’ordinateur des exemples d’entrées et les sorties souhaitées, et l’ordinateur recherche des
solutions pour obtenir ces sorties en fonction de ces entrées. Le but est que l’ordinateur apprenne la
règle générale qui mappe les entrées et les sorties. Le machine learning supervisé peut se subdiviser en
deux types :
- Régression : la variable de sortie est une valeur spécifique.
- Classification : la variable de sortie est une catégorie.
Les principaux algorithmes du machine learning supervisé sont les suivants : régression linéaire,forêts
aléatoires, arbres de décision, algorithme K-NN (k-Nearest Neighbors), algorithme de Naïve Bayes,
machine à vecteurs de support (SVM), régression logistique et boosting de gradient.

2.2.2.2 Machine Learning Non Supervisé


Dans le cadre du machine learning non supervisé, l’algorithme détermine lui-même la structure de
l’entrée (aucune étiquette n’est appliquée à l’algorithme). Cette approche peut être un but en soi (qui
permet de découvrir des structures enfouies dans les données) ou un moyen d’atteindre un certain but.

13
Cette approche est également appelée « apprentissage des caractéristiques » (feature learning).

Un exemple de machine learning non supervisé est l’algorithme de reconnaissance faciale prédictive
de Facebook, qui identifie les personnes sur les photos publiées par les utilisateurs.

Il existe deux types de machine learning non supervisé :


- Clustering : l’objectif consiste à trouver des regroupements dans les données.
- Association : l’objectif consiste à identifier les règles qui permettront de définir de grands
groupes de données.
Les principaux algorithmes du machine learning non supervisé sont les suivants : K-Means, cluste-
ring/regroupement.

2.2.2.3 Machine learning par renforcement


Dans le machine learning par renforcement, un programme informatique interagit avec un envi-
ronnement dynamique dans lequel il doit atteindre un certain but, par exemple conduire un véhicule
ou affronter un adversaire dans un jeu. Le programme-apprenti reçoit du feedback sous forme de «
récompenses » et de « punitions » pendant qu’il navigue dans l’espace du problème et qu’il apprend à
identifier le comportement le plus efficace dans le contexte considéré.

Il existe deux types de machine learning par renforcement :


- Monte Carlo : le programme reçoit ses récompenses à la fin de l’état « terminal ».
- Machine learning par différence temporelle (TD) : les récompenses sont évaluées et
accordées à chaque étape.
Les principaux algorithmes du machine learning par renforcement sont les suivants : Q-learning, Deep
Q Network (DQN) et SARSA (State-Action-Reward-State-Action).

2.3 Deep learning


2.3.1 Introduction
le DL est une méthode d’apprentissage automatique basée sur des réseaux de neurones profonds,
qui sont capables de traiter des données très complexes avec une grande précision. Le DL est utilisé
dans de nombreux domaines pour des tâches précis.

Figure 2.2 – Deep learning

14
Le DL se distingue des autres approches d’apprentissage automatique par sa capacité à apprendre
des représentations de données à plusieurs niveaux, à partir de données brutes. Contrairement à l’ap-
prentissage supervisé traditionnel, où l’algorithme est entraîné sur un ensemble de données annotées, le
DL utilise un processus d’apprentissage non supervisé pour découvrir des motifs dans les données. Ces
motifs peuvent ensuite être utilisés pour la classification, la prédiction ou la génération de nouvelles
données.

2.3.2 Architecture des réseaux de neurones profonds


L’architecture des réseaux de neurones profonds, également appelée réseaux de neurones profonds,
est la structure de base utilisée dans le Deep Learning. Les réseaux de neurones profonds sont constitués
de multiples couches de neurones artificiels, qui sont organisées en une séquence de couches d’entrée, de
couches cachées et de couches de sortie. Chaque couche est constituée d’un certain nombre de neurones,
qui sont connectés aux neurones de la couche suivante par des poids.
Les couches d’entrée sont la première couche du réseau et sont utilisées pour introduire les données
brutes dans le réseau. Les données sont transformées à mesure qu’elles traversent les couches cachées,
et les sorties de la dernière couche, appelée couche de sortie, sont les prédictions finales du réseau.
Les réseaux de neurones profonds sont appelés "profonds" car ils ont plusieurs couches cachées,
chacune effectuant une transformation complexe des données en entrée. Les réseaux de neurones pro-
fonds ont la capacité d’apprendre des caractéristiques de plus en plus abstraites à chaque couche, ce
qui leur permet de modéliser des données très complexes.

Figure 2.3 – Architecture deep learning

Il existe plusieurs types d’architectures de réseaux de neurones profonds, Certaines des architectures
les plus courantes incluent les réseaux de neurones convolutifs (CNN).

2.3.3 Convolutional Neural Networks (CNN-1D)


Un réseau de neurones convolutif (CNN) est un type de réseau de neurones artificiels qui est parti-
culièrement adapté à la classification d’images et de signaux. Les CNN utilisent des filtres convolutifs
pour extraire des caractéristiques importantes de l’image ou du signal, puis appliquent une couche de
classification pour déterminer la classe à laquelle il appartient. Les réseaux de neurones convolutifs sont
particulièrement populaires dans les domaines de la vision par ordinateur et de l’analyse des signaux,
notamment pour la classification des signaux ECG.

2.3.3.1 Définition
Le CNN-1D est un type de réseau de neurones profonds qui utilise des convolutions unidimension-
nelles pour extraire les caractéristiques spatiales des signaux temporels, tels que les séries chronolo-
giques et les signaux ECG. Les couches de convolution du CNN-1D peuvent capturer des motifs de
fréquence et des tendances temporelles dans les signaux en utilisant des noyaux de convolutions. Les
couches de sous-échantillonnage et de normalisation sont utilisées pour réduire la dimensionnalité des

15
caractéristiques extraites et améliorer la stabilité du modèle. Les couches de classification permettent
de prédire la classe d’un signal en utilisant les caractéristiques extraites.
Le CNN-1D est capable d’apprendre des caractéristiques à différentes échelles de temps et de fré-
quence, ce qui lui permet d’obtenir des performances de classification élevées pour les signaux temporels
complexes. Il est souvent utilisé dans des applications telles que la classification de signaux ECG pour la
détection de maladies cardiaques, la prédiction de la demande énergétique à partir de séries temporelles
de données énergétiques, ou encore la reconnaissance de la parole dans les signaux audio.

2.3.3.2 Architecture du CNN-1D


L’architecture d’un CNN-1D typique comprend les étapes suivantes :

Figure 2.4 – Architecture du CNN-1D

- Couche d’entrée : La couche d’entrée prend en entrée les signaux temporels unidimensionnels.
- Couche de convolution : Cette couche utilise des noyaux de convolution pour extraire des
caractéristiques à différentes échelles de temps. La sortie de cette couche est une carte de
caractéristiques qui capture les motifs temporels dans les signaux.
- Couche de pooling : Cette couche réduit la taille de la carte de caractéristiques en sélec-
tionnant les valeurs maximales (MaxPooling) ou moyennes (AveragePooling) dans des fenêtres
spécifiques. Cette étape permet de réduire la dimensionnalité des données et d’améliorer la
robustesse du modèle.
- Couche de convolution et de pooling supplémentaires : Ces couches sont répétées plu-
sieurs fois pour extraire des caractéristiques à différentes échelles temporelles. Les couches de
convolution ont généralement des filtres plus petits que les couches précédentes pour capturer
des motifs plus fins.
- Couche de flattening :Cette couche convertit la carte de caractéristiques 2D en un vecteur
1D pour être utilisé comme entrée pour les couches de classification.
- Couche de classification : Ces couches utilisent des neurones pour prédire les sorties en
fonction des caractéristiques extraites. La dernière couche de classification est souvent une
couche de sortie avec des neurones égaux au nombre de classes à prédire.

2.4 Étapes d’entraînement en Machine Learning et Deep Learning


Les étapes d’entraînement pour le Machine Learning (ML) et le Deep Learning (DL) ont des
similitudes et des différences.

16
Les étapes générales pour l’entraînement d’un modèle de ML ou de DL sont les sui-
vantes :
- Collecte et préparation des données : Cette étape consiste à collecter des données perti-
nentes pour votre application, les nettoyer et les préparer pour l’entraînement.
- Séparation des données en ensembles d’entraînement, de validation et de test : Les
données doivent être séparées en ensembles distincts pour l’entraînement, la validation et les
tests.
- Sélection d’un modèle : Il existe de nombreux algorithmes de ML ou de DL différents, et le
choix de l’algorithme dépendra de la tâche à accomplir
- Entraînement du modèle : Cette étape consiste à présenter les données d’entraînement au
modèle et à ajuster les paramètres du modèle pour minimiser l’erreur.
- Validation et ajustement des hyperparamètres : Après l’entraînement, le modèle doit
être validé sur l’ensemble de validation pour ajuster les hyperparamètres du modèle et éviter le
surapprentissage.
- Test du modèle : Une fois que le modèle a été validé, il doit être testé sur l’ensemble de test
pour évaluer ses performances sur de nouvelles données.
Cependant, pour le DL, il peut y avoir des étapes supplémentaires, notamment :
- Sélection d’une architecture de réseau de neurones : Le DL nécessite souvent une archi-
tecture de réseau de neurones complexe pour apprendre à partir des données. La sélection de
l’architecture dépendra de la tâche à accomplir et du type de données disponibles
- Entraînement avec des techniques de régularisation : Le DL peut avoir tendance à sur-
apprendre les données, il est donc souvent nécessaire d’utiliser des techniques de régularisation
pour éviter cela.
- Entraînement avec des techniques d’optimisation : Le DL peut nécessiter des techniques
d’optimisation spéciales pour ajuster les paramètres du modèle de manière efficace.
En général, les étapes d’entraînement pour le ML et le DL ont des similitudes, mais la
complexité du DL nécessite souvent des étapes supplémentaires pour entraîner efficace-
ment un modèle.

2.5 Défis du machine learning et deep learning


Le Machine Learning (ML) et le Deep Learning (DL) ont connu une croissance rapide ces dernières
années et ont transformé de nombreux secteurs d’activité tels que la santé, la finance, les médias et
les transports. Cependant, malgré leur succès, il existe encore de nombreux défis à relever pour ces
technologies et des perspectives passionnantes pour leur avenir.
- Défis liés aux données : La qualité et la quantité des données sont essentielles pour l’appren-
tissage des algorithmes de ML et de DL. L’accès à des données de haute qualité est encore un
défi pour de nombreuses applications.
- Défis liés à la complexité des modèles : Les modèles de DL sont souvent très complexes et
peuvent nécessiter des ressources informatiques importantes pour l’entraînement et l’inférence.
- Défis liés à la sécurité et à la confidentialité : L’utilisation de modèles de ML et de DL dans
des applications critiques, telles que la sécurité et la confidentialité, peut poser des problèmes
de sécurité et de confidentialité. Il est essentiel de s’assurer que les modèles ne peuvent pas être
manipulés ou détournés.

2.6 Conclusion
Ce chapitre dédiè sur Machine learning and Deep learning. Nous avons présenter une introduction
sur Machine learning, Puis nous avons définir le Deep Learning ainsi que nous avons présenté le modèle
Convolution neural network CNN qui sera le modele utilisé dans notre projet.

17
CHAPITRE 3
RÉALISATION EN TEMPS RÉEL

18
3.1 Introduction
Après avoir achevé les parties précédent quiconcerne l’etude théorique ; les systèmes embarqués et
le domaine d’AI. Nous allons entamer l’etape de la réalisation de notre projet (Concerne le domaine
des maladies vasculaire). qui reresente la partie la plus importante dans ce rapport.

3.2 Objectife
Dans le contexte de domaine du santé. Les maladies cardiovasculaire qui effect le système circu-
latoire du corps humaine, sont l’une des principales causesdécès à l’echelle mondiale, en raison des
perturbations aléatoire et impreversible du système cardiovasculaire. Cepedant l’extraction des si-
gnaux cardiaque des fois ne permet pas une precesion 100% pour rendre une décision rapide. Due au
ceci nous avons eu l’idée de combiner entre l’expertise médicale(extraction des signaux cardiaque en
utilisant capteur portable) avec l’intelligence artificielle(en utilisant deep learning)pour crée une projet
qui va permet de aider le domaine du snaté cardiovasculaire pour avoir un diagnostique rapide pour
les patients atteint les maladies cardiovasculaire.

3.3 Environnement du travail


Notre projet est dévisé en deux grande parties : Partie materielle et Partie logicielle que nous
allons entamer dans les sous sections suivantes.

3.3.1 Environnement logicielle


Environnement Logicielle est composé de :
• Python : Est un langage de programmation interprété, multiforme.Il permet de favorisé la
programmation impérativement structuré . c’est un langage qui peut s’utilisé dans des nombreux
contexte, et s’adapte a tous les types d’utilisateurs.

Figure 3.1 – Puthon

• Kotlin :Kotlin est un langage de programmation open-source multiplateforme, orienté objet et


fonctionnel. Kotlin est de plus en plus utilisé pour le développement d’applications Android.

Figure 3.2 – Kotlin

• MySQL :est un serveur de gestion de bases de données relationnel open source qui basé sur
SQL signifier ”Structured Query Language”. Il stocke les donn´ees dans des tables separer ou
bien dans un seul table.

Figure 3.3 – MySQL

19
• Rest API :Les API REST permettent aux développeurs de créer des applications web ou
mobiles qui accèdent à des services web tiers pour récupérer, stocker et manipuler des données
en utilisant un protocole standardisé.

Figure 3.4 – Rest API

3.3.2 Environnement materiel


Environnement materiellé est composé de :
• Rapberry Pi : C’est un système embarqué principale. Cepedant ce que nous avons dit dans le
chapitre 1 qu’il joue le meme role d’un ordinateur.

Figure 3.5 – Raspberry PI

• Arduino : Est une carte electronqieu basé sur le microcontroleur ATMega328P, a pour but de
lire le signale reçu par le capteur ECG et le transmettre vers la carte Raspberry.

Figure 3.6 – Arduino UNO

• Capteur AD8232 ECG :Puisque nous voudrions d’extraire les signaux cardiaque de type
ECG. Ce capteur a pour objectife de les extraires.

Figure 3.7 – Cpateur ECG

3.4 Schéma explicatife


Les schéma explicatifes cité ci-dessous représente le diagramme du classe de notre base de donnée
et l’oganigramme explicatife du modele.

20
Ce diagramme du classe représente comment nous allons organisé notre base de donnée

L’organigramme représenté ci-dessous montre comment les donnée sont extraire et


pretraité dans le modele CNN.

3.5 Réalisation en temps réel


Avant de présenté les résultats obtenue d’après la création de notre application et
l’utilité du model CNN-1D. Nous allons entamer la partie des signaux ECG et notre
Dataset

3.5.1 Signaux ECG


Les signaux ECG (électrocardiographiques) sont des enregistrements de l’activité électrique du
cœur. Les signaux ECG représentent l’activité électrique qui traverse le cœur lors de chaque battement
cardiaque. Les électrodes placées sur la peau captent les signaux électriques qui se produisent dans
le cœur et les transmettent à un appareil d’enregistrement qui les affiche sous forme de courbes. Les
signaux ECG sont couramment utilisés pour diagnostiquer et surveiller les maladies cardiaques, telles
que les troubles du rythme cardiaque, l’ischémie myocardique et l’infarctus du myocarde.

21
3.5.2 Dataset
Pour l’entrainement du notre modèle et avoir comme résultats du notre peojet une bonne décision
nous avons utilisé Dataset qui se trouve dans le site :PhysioNet . Cette base de données contient 549
enregistrements provenant de 290 sujets (âgés de 17 à 87 ans, moyenne de 57,2 ans ; 209 hommes, âge
moyen de 55,5 ans et 81 femmes, âge moyen de 61,6 ans ; l’âge n’a pas été enregistré pour 1 femme et 14
hommes). Chaque sujet est représenté par un à cinq enregistrements. Il n’y a pas de sujets numérotés
124, 132, 134 ou 161. Chaque enregistrement comprend 15 signaux mesurés simultanément : les 12
dérivations conventionnelles (i, ii, iii, avr, avl, avf, v1, v2, v3, v4, v5, v6) ainsi que les 3 dérivations de
Frank (vx, vy, vz). Chaque signal est numérisé à 1000 échantillons par seconde, avec une résolution de
16 bits sur une plage de ± 16,384 mV. Sur demande spéciale aux contributeurs de la base de données,
des enregistrements peuvent être disponibles à des taux d’échantillonnage allant jusqu’à 10 KHz. Les
classes diagnostiques des 268 sujets restants sont résumées ci-dessous :

3.5.3 Présentation du l’application

Figure 3.8 – patie A

22
Les figures ci-dessus représentent la page d’accueil ainsi que les deux autres pages dédiées aux
médecins. Ces pages permettent aux utilisateurs de se connecter en utilisant leurs informations de
compte existantes ou de s’inscrire sur notre application pour créer un compte.

Figure 3.9 – Partie B

Les figures ci-dessus représentent quatre pages. La première page est la page d’accueil. Après que
le médecin se connecte, il est redirigé automatiquement vers la page d’accueil, où il peut consulter un
tableau de bord affichant les informations relatives aux patients, présentées sous forme de pourcentages.
Il peut également visualiser les images des derniers patients ayant connu un changement dans leur état
de santé. La deuxième image montre une page qui permet au médecin d’ajouter un nouveau patient.
La troisième image représente une page qui permet au médecin de voir tous ses patients et d’accéder
à leurs profils respectifs pour consulter leur état de santé.

3.5.4 Résultat du modele CNN-1D


dans la figure ci-dessous représentre la matrice du confusion de notre modele des cas normale et
anormale ainsi que il ya 4 classe anormale.

Figure 3.10 – Matrice du confusion

23
Nous avons obtenues comme accuracy :0.91

3.6 Conclusion
Dans ce chapitre nous avons présente notre objectife qui sera la creation une dispositife intelligent
sous le nom SmartCardio, ainsi que nous avons présenté notre environnement du traivail et les
resultats finale.

24
Conclusion Générale et perspectives

En conclusion, ce rapport a présenté deux domaines qui ont connu une grande expansion ces
dernières années : le système embarqué et le machine learning/deep learning. Nous avons exploré en
détail leurs définitions, leurs caractéristiques, leurs architectures qu’ils offrent. Nous avons également
présenté une réalisation concrète de leur application en combinant ces deux domaines pour aider les
médecins à suivre les patients et à réaliser des diagnostics rapides et précis.
Le dispositif intelligent que nous avons créé utilise les signaux ECG pour prédire les maladies
cardiovasculaires et permet aux médecins de prendre des décisions plus rapidement et plus efficacement.
Cette réalisation concrète a montré le potentiel énorme de la combinaison des systèmes embarqués et du
machine learning/deep learning pour améliorer les soins de santé et faciliter le travail des professionnels
de santé.
En somme, ce rapport témoigne de l’importance croissante des systèmes embarqués et du machine
learning/deep learning dans notre vie quotidienne et professionnelle. Ces deux domaines offrent des
opportunités prometteuses pour résoudre des problèmes complexes et améliorer notre qualité de vie.
Nous espérons que ce travail pourra inspirer d’autres projets innovants et contribuer au développement
de la technologie au service de l’humanité.
Le temps est souvent un facteur limitant pour de nombreux projet. Nous avons ac-
complis plusieurs taches jusqu’a present, mais ils nous resetent d’autes taches qui sont
supplémentaire inclue une étude approfondie de la recherche.
• Elargire notre projet pour qu’il devient adapter par autre maladie.
• Amélioration des fonctionnalités de l’application mobile pour qu’il sera plus convivial et plus
interactives pour les patients et les medecins.
• Amélioration le coté de transmission de données.

25
BIBLIOGRAPHIE

[1] Acrhitecture d’un système embarqué. http://igm.univ-mlv.fr/~dr/XPOSE2002/SE/


architecture.html.
[2] Malika Benammar and Faiza Belala. Une approche basée architecture pour la spécification formelle
des systèmes embarqués. 2017.
[3] Chun-Yen Chen, Yan-Ting Lin, Shie-Jue Lee, Wei-Chung Tsai, Tien-Chi Huang, Yi-Hsueh Liu, Mu-
Chun Cheng, and Chia-Yen Dai. Automated ecg classification based on 1d deep learning network.
Methods, 202 :127–135, 2022.
[4] Social Compare. raspberrypi-models-comparison. https://socialcompare.com/fr/comparison/
raspberrypi-models-comparison.
[5] Annisa Darmawahyuni, Siti Nurmaini, Muhammad Naufal Rachmatullah, Bambang Tutuko,
Ade Iriani Sapitri, Firdaus Firdaus, Ahmad Fansyuri, and Aldi Predyansyah. Deep learning-based
electrocardiogram rhythm and beat features for heart abnormality classification. PeerJ Computer
Science, 8 :e825, 2022.
[6] Sonain Jamil and MuhibUr Rahman. A novel deep-learning-based framework for the classification
of cardiac arrhythmia. Journal of Imaging, 8(3) :70, 2022.
[7] Dan Li, Jianxin Zhang, Qiang Zhang, and Xiaopeng Wei. Classification of ecg signals based on 1d
convolution neural network. In 2017 IEEE 19th International Conference on e-Health Networking,
Applications and Services (Healthcom), pages 1–6. IEEE, 2017.

26

Vous aimerez peut-être aussi