Systeme Embarque
Systeme Embarque
Systeme Embarque
MIT
Encadré par :
-Mr MOURAD OUADOU
-Mr RACHIDE MAFAMAN
-Mme HANAE BELMAJDOUB
Réalisé Par :
-HOUDA EL MOHAMADI -AYOUB FRAIDI
-YOUSSEF LAKRAD -SAMI BELATTAR
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
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
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
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.
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.
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.
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
port HDMI 2micro HDMI 2micro HDMI 2micro HDMI full HDMI full HDMI
bleutouth 5 5 5 4.2BLE
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.
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.
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.
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.
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.
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.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.
- 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.
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.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.
• 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.
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é.
• 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.
• Capteur AD8232 ECG :Puisque nous voudrions d’extraire les signaux cardiaque de type
ECG. Ce capteur a pour objectife de les extraires.
20
Ce diagramme du classe représente comment nous allons organisé notre base de donnée
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 :
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.
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é.
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
26