Les travaux réalisés sur les arythmies cardiaques :
Pour des diagnostics efficaces des pathologies cardiovasculaires, l’étude du signal ECG doit s’effectuer pendant plusieurs heures car les symptômes des pathologies peuvent se produire à tout instant, donc l’analyse et l’interprétation assistée par ordinateur des signaux ECG devient indispensable afin d’aider les médecins cardiologues à faire le diagnostic, et pour assurer une surveillance continue des patients. Plusieurs travaux concernant la classification neuronale des signaux ECG par l’approche Software ont été proposés dans la littérature ces dernières années, parmi eux : Le travail d’Ebrahimzadeh et Khazaee, qui ont utilisé un réseau de neurones (MLP) avec un nombre différent de couches, en appliquant neuf algorithmes d’apprentissage. Les performances des réseaux en termes de vitesse de convergence et de précision de classification ont été validées sur sept enregistrements de la base de données MIT-BIH, le taux de classification obtenu est de 95.4% [EBRAHIMZADEH_2010]. Patra et al, ont intégré dans la phase de pré-classement l’analyse en composantes principales (ACP) et le regroupement flou de c-means (FCM) afin de réduire la dimension des données au classifieur neuronal de rétro-propagation (BPNN). Ils ont appliqué une étude comparative entre quatre structures réalisées FCM-NN, PCA-NN, FCM-PCA-NN et FCMPCA-NN. La méthode FCM-PCA-NN a donné les meilleurs résultats [PATRA_2010].Asyiqin et al, ont utilisé la transformée en ondelette discrète optimale (DWT) et un classifieur neuronal pour classifier les battements ESV et les battements normaux.
Les auteurs ont montré que les ondelettes «haar», «db3 » et « sym3 » produisent des résultats prometteurs en testant 400 battements [ASYIQIN_2010]. Abibullaev et Seo, ont présenté une nouvelle méthode pour la détection et la classification des complexes QRS dans les signaux ECG, ils ont utilisé la transformée en ondelettes continues (CWT) et le réseau neuronal qui a été entraîné par l’algorithme de rétropropagation. La classification des complexes QRS normaux et anormaux était obtenue avec une précision moyenne de 97.2% [ABIBULLAEV_2011]. Un autre classifieur perceptron multicouche entraîné par l’algorithme de rétro-propagation a été proposé par Jadhav et al, pour différencier entre les cas normaux et les arythmies qui apparaissent sur plusieurs signaux ECG. Les résultats expérimentaux ont donné un taux de classification de 86.67% [JADHAV_2012].Les chercheurs Gothwal et al, ont combiné la transformée de Fourier (FFT) et un réseau de neurones avec un algorithme de rétro-propagation de Levenberg Marquardt pour analyser le signal ECG. Le meilleur résultat de classification obtenu était de 98.48% .D’autre part, Özbay et al, ont présenté un nouveau système de diagnostic automatisé, ils ont combiné la transformée en ondelettes (WT) et l’algorithme de regroupement flou de cmeans du type 2 (T2FCM) pour améliorer les performances du classifieur neuronal.
En utilisant ce système, ils ont obtenu un taux de classification de 99% [ÖZBAY_2011]. Un modèle de classification basé sur la transformée en ondelettes continue (CWT),l’analyse en composante principale (ACP) et un réseau de neurones multicouche (MLP) a été implémenté par Ghorbanian et al, afin de classifier six classes de l’ECG en utilisant seulement 600 battements à partir de différents enregistrements de la base de données MITBIH, ils ont obtenu un taux de classification de 99.17% [GHORBANIAN_2011]. Sekkal et al, ont proposé un classifieur neuronal qui utilise l’algorithme génétique pour la détermination des connexions optimales entre les neurones, afin d’avoir une meilleure reconnaissance des extrasystoles ventriculaire (ESV).
La base de données d’arythmie MITBIH a été employée pour valider l’approche [SEKKAL_2011]. Un autre travail de Sekkal et Chikh, où ils ont utilisé un classifieur neuro-génétique en employant une méthode basée sur un choix non aléatoire de la population initiale par l’apprentissage individuel, puis ils ont appliqué un apprentissage global. Cette méthode a montré une amélioration considérable sur la classification des arythmies cardiaques [SEKKAL_2012]. Rai et al, ont proposé une technique pour classer les données du signal ECG en deux classes (classe normale et anormale) en appliquant trois classifieurs neuronaux différents : le réseau de propagation arrière (BPN), le réseau d’alimentation directe (FFN) et le perceptron multicouche (MLP).
La performance du système a été obtenue avec une précision de 100% en utilisant le MLP [RAI_2013]. Wang et al, ont réalisé une méthode de réduction des caractéristiques en combinant l’analyse en composantes principales (ACP) avec l’analyse discriminante linéaire (LDA), puis ils ont utilisé un classifieur de réseau neuronal probabiliste (PNN) pour reconnaître huit types différents d’arythmies à partir des battements ECG. Les résultats expérimentaux ont été validés avec une précision de classification satisfaisante de 99.71% [WANG_2013].Dans le travail de Benchaib et Chikh, ils ont appliqué l’algorithme de métaplasticité artificielle sur un perceptron multicouche AMMLP (Artificial Metaplasticity Multi layer Perceptron) pour classer différentes arythmies cardiaques.
L’algorithme proposé est inspiré de la propriété biologique de métaplasticité des neurones et de la théorie d’information de Shannon [BENCHAIB_2014].Une nouvelle méthode pour la détection des arythmies cardiaques a été proposée par Boussaa et al, où ils ont classifié les images des signaux ECG normaux et anormaux en utilisant des algorithmes puissants de traitement d’images et d’intelligence artificielle : les caractéristiques pseudo-Haar (Haar-like) qui sont basées sur le concept de l’image intégrale et le classifieur neuronal de type perceptron multicouche. Les résultats expérimentaux ont montré que le système combine les avantages respectifs du descripteur de type haar et des réseaux de neurones artificiels en termes de robustesse et de vitesse [BOUSSAA_2015]. D’autres travaux ont été publiés ces dernières années basés sur l’implémentation matérielle des classifieurs neuronaux pour la détection des arythmies cardiaques comme le travail de Armato et al, qui ont implémenté la carte d’auto-organisante de Kohonen (SOM) sur un FPGA du type Virtex-4 FX12 de Xilinx pour la reconnaissance des arythmies cardiaques entre classe normale et pathologique en temps réel [ARMATO_2009]. Jewajinda et Chongstitvatana, ont proposé un classifieur neuronal basé sur un algorithme génétique parallèle du type cellulaire (EC-CGA) approprié pour une réalisation matérielle, l’apprentissage est effectué en ligne. Le classifieur est mis en œuvre sur un circuit reconfigurable du type FPGA pour une classification portable des signaux ECG [JEWAJINDA_2010]. Une autre application de Jewajinda et Chongstitvatana, où ils ont proposé un nouvel algorithme appelé algorithme génétique Compact Cellulaire (C CGA) pour l’apprentissage en ligne du réseau neuronal pour une implémentation matérielle. Cet algorithme est une structure de filtre numérique adaptative, il effectue également une sélection de fonctions adaptatives en temps réel.
Le réseau adaptatif proposé est implémenté dans un circuit reconfigurable (FPGA) pour la classification des signaux ECG afin de faire une surveillance à long terme des patients [JEWAJINDA_2013].Ozdemir et Danisman [OZDEMIR_2011], ont présenté une architecture totalement parallèle d’un perceptron multicouche implémentée sur un circuit FPGA du type Cyclone III EP3C120F780C7 d’Altera, en utilisant une représentation de données à virgule flottante. Les caractéristiques du signal ECG sont réduites par l’analyse en composantes principales (ACP),ils ont construit une base de 4 enregistrements (205, 208, 210 et 213) de la base de données MIT-BIH dont le 2/3 était utilisé pour l’apprentissage du classifieur et le reste pour le test. Le classifieur est capable de classer 3 battements d’ECG (N, V et F) avec un taux de classification de 97.66%. Dans le papier de Jatmiko et al [JATMIKO_2011], ils ont utilisé la transformation par ondelettes discrètes (DWT) pour caractériser les battements ECG, et un classifieur neuronal basé sur l’algorithme de rétro-propagation afin de classifier ces battements en classe normale et anormale.
Le système a été implémenté sur un FPGA du type Spartan-3ADSP XC3SD3400A de Xilinx en réalisant un taux de classification qui varie de 90% à 100%. Le même modèle a été proposé par Egila et al [EGILA_2016], en ajoutant à son entrée un filtre (FIR) pour filtrer le bruit du signal ECG, ils ont utilisé une base d’apprentissage de 48 enregistrements d’ECG normaux et 42 enregistrements anormaux. Pour la base de test, 24 enregistrements normaux et 21 anormaux. Leur classifieur a été réalisé sur un FPGA en utilisant la carte XILINX Spartan 3AN-XC3S700AN.
Les performances obtenues ont été présentées avec un taux de 95.23% pour l’identification des battements anormaux, et un taux de classification globale de 97.8%. Un système de détection automatique des maladies cardiaques a été mis en œuvre par Travieso-González et al, sur le circuit reconfigurable FPGA. Le système était capable de traiter, d’analyser et de classer les pathologies cardiaques en temps réel à partir de l’électrocardiogramme (ECG). Le réseau neuronal utilisé était basé sur un algorithme combinant les techniques de la transformée d’ondelettes numériques (DWT) et de l’analyse en composantes principales (ACP) [GONZALEZ_2013].
Les travaux réalisés sur le diabète :
Nous présentons quelques travaux qui ont utilisé les réseaux de neurones pour la reconnaissance du diabète, les chercheurs Pradhan et Sahu ont proposé un perceptron multicouche et l’algorithme génétique pour classer les sujets diabétiques ou non. Cette classification a été appliquée sur la base de données du diabète PIMA (Pima Indian Diabetes Data), ils ont obtenu une précision de 72.2% [PRADHAN_2011].
Dogantekin et al, ont utilisé la méthode d’analyse discriminante linéaire et le classifieur ANFIS pour la reconnaissance du diabète, ils ont obtenu un taux de classification de 84.61% [DOGANTEKIN_2010]. Par contre Ubeyli a obtenu un taux de 98.14% en appliquant le classifieur ANFIS et la technique de validation croisée de K-Fold sur la base de données PIMA [UBEYLI_2010]. Ensuite, les chercheurs Settouti et al, ont utilisé la méthode de regroupement Fuzzy C-means (FCM) au système d’inférence neuro-flous adaptatif (ANFIS) afin d’augmenter l’interprétabilité du classifieur. La performance du classifieur a été évaluée en utilisant la base de données du diabète (UCI Machine Learning) [SETTOUTI_2012].Le travail présenté par Belarouci, propose une méthode de pondération basée sur l’algorithme des moindres carrés moyens LMS (Least Mean Square) dans le but d’affecter des poids forts aux différents échantillons de la classe minoritaire et des poids faibles aux différents échantillons des classes majoritaires afin de traiter le problème d’apprentissage des données déséquilibrées.
Après cette phase d’équilibrage, ils ont utilisé plusieurs approches de classification, comme le perceptron multicouche (MLP) qui a réalisé une bonne reconnaissance des données minoritaires et des données majoritaires, la performance du classifieur a été évaluée en utilisant la base de données du diabète (PIMA) à un taux de classification de 99.24% [BELAROUCI_2016]. Akanksha a présenté un système qui emploi une interface floue en cascade avec un réseau de neurone Feed-Forward afin d’obtenir une décision optimale concernant l’état physiologique et pathologique futur d’un patient. Le classifieur neuro-flou a été implémenté sur un FPGA pour une détection à temps réel de l’état critique d’un sujet diabétique. La précision du système a été confirmée en prédisant l’état diabétique d’un patient 30 jour avant l’état critique [AKANKSHA_2016].
Approche Software (logicielle) :
La plupart des classifieurs neuronaux sont développés sur des ordinateurs classiques, des DSP (Digital Signal Processor) et des microcontrôleurs, à l’aide de différents langages (Matlab, Langage C, etc.) en vue d’une utilisation logicielle. L’architecture interne de ces circuits est composée d’opérateurs arithmétiques et logiques, registres, modules dédiés au contrôle et synchronisation des opérations, et éventuellement de mémoires internes afin de stocker les données et les résultats. Ce type de conception est totalement axé sur les performances de classification, et il ne possède pas de réelle limitation sur l’utilisation mémoire ou encore sur le coût calculatoire des algorithmes. Dans ces circuits, le programme de contrôle détermine les opérations à exécuter, offrant une grande flexibilité d’application. Le fonctionnement séquentiel est un inconvénient majeur pour les performances de ces circuits lorsque nous envisageons une implémentation d’algorithmes strictement parallèles. En effet, le processeur est constitué de telle façon qu’il exécute les différentes instructions de façon séquentielle.
Les réseaux logiques reconfigurables FPGA :
Au début des années 70, l’apparition de la connexion logique programmable a donné naissance à une industrie nouvelle qui n’a pas cessé de croître : c’est l’industrie des différents circuits logiques programmables car le premier critère de choix de ces derniers est la technologie utilisée pour matérialiser les interconnexions [DUTRIEUX_1997].
Les technologies d’interconnexions déterminent les aspects électriques de la programmation :
La possibilité de modifier la fonction programmée.
Le maintien de la fonction programmée en cas de coupure d’alimentation.
La nécessité d’utiliser un programmateur spécial.
Au milieu des années 80 les circuits du type FPGA réalisent la croisée des raisonnements génériques (PAL, CPLD) et spécifiques (ASIC) et profitent des avantages des deux technologies.Les FPGA sont des circuits constitués de cellules interconnectées. La fonction de ces cellules ainsi que les interconnexions sont programmables ce qui donne une plus grande souplesse d’utilisation que les PLD.
La détection de dépassement de capacité :
Dans notre architecture matérielle, la représentation des données est codée sur 8 bits dans un espace qui varie entre -1 et +1. Le calcul effectué au niveau de chaque Neurone_NCi est : ?? + ??1 ∗ ?1 + ??2 ∗ ?2 + ⋯ + ??? ∗ ?? = ?? (3.4)
Avec : bi et Wij: les valeurs du biais et des poids synaptiques respectives pour un Neurone_NCi et qui appartient à l’intervalle [-1, +1].
Pj : les valeurs des neurones d’entrée, elles sont normalisées avant la phase d’apprentissage.
Dans la 1ère couche cachée, chaque Neurone_NC effectue 7 multiplications et 8 additions, pour la multiplication des paramètres d’entrée par leurs poids synaptiques, le résultat est sans dépassement car chacun d’eux appartient à l’intervalle [-1, +1], mais l’addition de ces entrées pondérées avec le biais peut générer un débordement de calcul. Ce qui nous a menés à changer la structure du Neurone_NC en ajoutant un détecteur de dépassement [BABA_2016]. Le résultat d’une addition est supposé être dans la plage de la dynamique choisie pour représenter les nombres. Si notre représentation des données est codée sur 8 bits en complément à 2, alors le résultat doit être dans l’intervalle -128 à +127. Le débordement de calcul (arithmetic overflow) aura lieu si le résultat de l’opération ne se trouve pas dans cette plage.Pour s’assurer du bon fonctionnement de l’additionneur et pour avoir un résultat correct, il faut être capable de détecter ce débordement. Pour cela, nous avons ajouté un test pour les bits les plus significatifs (MSB) des deux nombres à sommer et le résultat de cette addition.
|
Table des matières
Dédicaces
Remerciement
Résumé
Abstract
Table des Figures
Liste des Tableaux
Liste des Organigrammes
Notification
Abréviations
Introduction générale
1. Contexte de recherche
2. Problématique, motivations et positionnement
3. Contributions
4. Organisation du manuscrit
Chapitre 1. Classification neuronale des données médicales
1.1.Introduction
1.2.La classification neuronale
1.2.1. Le perceptron multicouche
1.2.2. Les cartes auto-organisatrices
1.2.3. Les réseaux de neurones probabilistes
1.2.4. Les réseaux de neurones impulsionnels
1.2.5. Les classifieurs hybrides
1.3.La classification neuronale des données médicales
1.3.1. Les travaux réalisés sur les arythmies cardiaques
1.3.2. Les travaux réalisés sur les maladies de cancer
1.3.3. Les travaux réalisés sur le diabète
1.3.4. Les travaux réalisés sur les troubles neurologiques
1.4.Les avantages et les limites des approches d’implémentation
1.4.1. Approche software (logicielle)
1.4.2. Approche hardware (matérielle)
1.5.Conclusion
Chapitre 2. Technologies et environnement de développement des FPGA
2.1.Introduction
2.2.Les circuits logiques reconfigurables FPGA
2.2.1. Les FPGA à mémoires statiques
2.2.2. Les FPGA à mémoire Flash
2.2.3. Les FPGA à anti-fusibles
2.2.4. Les avantages et les inconvénients de différents types de FPGA
2.3.Les types d’architectures des FPGA
2.3.1. Architecture de type îlots de calcul
2.3.2. Architecture de type hiérarchique
2.3.3. Architecture de type mer de portes
2.4.Les couches de FPGA
2.4.1. Le circuit configurable
2.4.1.1. Les blocs logiques CLB
2.4.1.2. Les blocs d’entrée/sortie IOB
2.4.1.3. Les interconnexions programmables
2.4.2. Le réseau mémoire SRAM
2.5.Critères de choix pour la réalisation d’un circuit logique
2.5.1. Coût de développement et fabrication
2.5.2. Temps de développement
2.5.3. Souplesse d’utilisation
2.5.4. Taille
2.5.5. Consommation
2.5.6. Vitesse de fonctionnement
2.5.7. Capacité mémoire
2.6.Notion sur les FPGA actuelles
2.6.1. Les technologies avancées des FPGA
2.6.2. Les fabricants et parts du marché des FPGA
2.6.3. Les domaines d’application des FPGA
2.6.3.1. Domaine des systèmes embarqués
2.6.3.2. Domaine de télécommunication
2.6.3.3. Domaine médical
2.7.Méthodologies de conception
2.7.1. Méthode de conception
2.7.1.1. Le cahier des charges
2.7.1.2. La validation fonctionnelle
2.7.1.3. Le choix technologique
2.7.1.4. La synthèse
2.7.1.5. La simulation fonctionnelle
2.7.1.6. Le placement et le routage
2.7.1.7. La simulation temporelle
2.7.1.8. La fabrication ou la programmation du circuit
2.7.2. Les outils de développement
2.7.2.1. Les outils de CAO (Conception Assistée par Ordinateur)
2.7.2.2. Les principaux langages de description matérielle
2.8.Conclusion
Chapitre 3. La conception matérielle du classifieur neuronal
3.1.Introduction
3.2.Modèle du classifieur neuronal proposé
3.2.1. Le perceptron multicouche
3.2.2. L’algorithme d’apprentissage
3.2.3. La base de données
3.2.3.1. La base d’apprentissage
3.2.3.2. La base de test
3.2.4. L’arythmie ciblée
3.2.5. La normalisation des données
3.2.6. Apprentissage du classifieur neuronal
3.2.6.1. L’étape d’apprentissage
3.2.6.2. L’étape de test
3.3.La conception matérielle du classifieur neuronal CLN
3.3.1. Représentation des données
3.3.2. Le principe de calcul
3.3.2.1. Le Semi-Parallèle ‘SP’
3.3.2.2. Le Parallèle-Parallèle ‘PP’
3.3.3. L’architecture matérielle ‘CLNH-SP’ du classifieur neuronal
3.3.3.1. La conception matérielle d’un neurone non complet
3.3.3.2. Le réseau neuronal
3.3.3.3. Le séquenceur
3.3.3.4. Remarques
3.3.4. La détection de dépassement de capacité
3.3.5. L’architecture matérielle ‘CLNH-PP’ du classifieur neuronal
3.3.5.1. La concrétisation d’un neurone complet
3.3.5.2. Le classifieur matériel
3.4.Conclusion
Chapitre 4. L’implémentation du classifieur neuronal
4.1.Introduction
4.2.Le flot de conception proposé
4.3.La première implémentation du classifieur neuronal CLN
4.3.1. Phase d’apprentissage du CLN
4.3.1.1. Les poids synaptiques et les biais du CLN
4.3.1.2. Les fonctions d’activation
4.3.2. Le classifieur CLNH-SP1
4.3.3. Résultats et discussion
4.4.La deuxième implémentation du classifieur CLN
4.4.1. Le classifieur CLNH-SP2
4.4.2. Résultats et discussion
4.4.3. Le classifieur CLNH1-SP2
4.4.3.1. Phase d’apprentissage du classifieur CLN1
4.4.3.2. Résultats et discussion
4.4.4. Le classifieur CLNH2-SP2
4.4.4.1. Phase d’apprentissage du classifieur CLN2
4.4.4.2. Résultats et discussion
4.5.La troisième implémentation du classifieur CLN
4.5.1. Le classifieur CLNH-PP
4.5.2. Le classifieur CLNH1-PP
4.5.3. Le classifieur CLNH2-PP
4.6.Étude comparative entre les classifieurs CLNH-SP et CLNH-PP
4.6.1. Consommation des ressources FPGA
4.6.2. Temps de calcul
4.7.Conclusion
Chapitre 5. Classification neuronale des arythmies cardiaques à base de FPGA
5.1.Introduction
5.2.La conception d’un modèle de classification des arythmies cardiaques
5.2.1. La reconfiguration dynamique globale du FPGA
5.2.2. La reconfiguration dynamique partielle du FPGA
5.2.3. Architecture en électronique câblée
5.2.3.1. L’architecture matérielle du modèle SYST-SP
5.2.3.2. L’architecture matérielle du modèle SYST-PP
5.2.3.3. La synthèse des deux modèles de classification
5.3.Travaux connexes
5.4.Conclusion
Conclusion générale et perspectives
Annexes.
Références bibliographiques
Productions scientifiques
Télécharger le rapport complet