Sujet 2016

publicité
UEF Traitement de l’information temps-réel
Mini-projet
Intégration de prétraitement dans une
Vidéo-capsule : cas de l’indice
colorimétrique pour l’évaluation de la
qualité de l’examen
Pr. Olivier ROMAIN
1
UEF Traitement de l’information temps-réel
Objectifs
Le cancer colorectal représente la deuxième cause de mortalité dans le monde. Dans 80% des
cas, il se développe à partir d’un polype ou d’un adénome. Le risque de transformation d’un
adénome en cancer varie en fonction de la taille et de la composition de ses cellules. Le
dépistage au plus tôt et l’améliora- tion des traitements ont permis de réduire le taux de
mortalité, mais il reste encore trop important. Le dépistage précoce de ce cancer peut se faire
soit par des tests biologiques (Hémoccult en France) et/ou par un examen d’imagerie
endoscopique (coloscopie, célioscopie ...). Ces examens sont pratiqués à l’aide de vidéoendoscopes filaires ou depuis peu par vidéo-capsule. Les praticiens ont recours à ces dernières
dans le cas de patients à risques (anesthésie ...) ou lorsque l’examen porte sur des portions de
l’appareil digestif qui sont inaccessibles par le biais d’instruments classiques.
Les vidéo-capsules sont des dispositifs autonomes et sans fils qui, une fois ingérés, permettent
de prendre des images à intervalles réguliers de l’appareil digestif depuis l’œsophage jusqu’au
rectum. Du fait de leur autonomie limitée (8 h 00), il existe actuellement trois types de vidéocapsules (optimisées pour l’oesophage, l’intestin grêle et le gros colon). Aucune ne permet un
enregistrement continu de tout l’appareil digestif. L’examen est réalisé en ambulatoire, le
patient ingère la vidéo-capsule et le praticien récupère sous 24 h 00 le boîtier externe
d’enregistrement. L’analyse par le praticien des images acquises permet de déceler l’origine
des saignements et la présence éventuelle de polypes et/ou d’adénomes. Les vidéo-capsules
possèdent plusieurs limitations de part leur architecture; le capteur d’images est de faible,
résolution de ce fait les images délivrées permettent d’obtenir une estimation des tailles des
lésions avec 50% d’erreur ; l’autonomie est limitée à 8 h 00; le temps de traitement est
important et les outils actuels ne permettent pas d’interpréter le caractère cancéreux des
polypes. Par ailleurs, les images acquises restent de qualité réduite (résolution, conditions
d’éclairement non maîtrisées, mouvements sporadiques...) et la mise en place de méthodes
d’analyse (segmentation) reste une problématique ouverte afin d’éviter une majeure partie du
post-traitement des données par le clinicien ; des problématiques d’adéquation algorithme
architecture se posant alors.
L’objet de cette étude porte sur la modélisation de la vidéo-capsule afin d’évaluer la
pertinence d’embarquer les traitements en vue d’augmenter l’autonomie du dispositif.
Les images émises à travers le corps humain sont récupérées par un boîtier externe via des
électrodes posées sur le corps du patient. Les images enregistrées dans le boîtier externe
(datalogger) sont ensuite traitées « offline » par le clinicien.
Pr. Olivier ROMAIN
2
UEF Traitement de l’information temps-réel
Figure 1 – Synoptique du système complet : vidéo-capsule et datalogger
La vidéo-capsule comporte principalement trois blocs distincts (voir figure 2) :
— une instrumentation optique permettant l’acquisition des images de la zone ;
— un séquenceur ;
— une unité de transmission Radio-Fréquence (RF).
Figure 2 – Descriptif interne de la vidéo-capsule
Le sujet aborde 3 parties distinctes :
• Partie 1 : Conception d’une IP pour le calcul de l’indice colorimétrique – IP-IC
• Partie 2 : Conception d’un Softcore et intégration de l’IP
• Partie 3 : Affichage du résultat sur un écran au format VGA
Pr. Olivier ROMAIN
3
UEF Traitement de l’information temps-réel
Etude préliminaire
En France, le nombre d’examen d’endoscopie s’èlève à 1 150 000 par an. Un tiers correspond
à des examens de colonoscopie. Le coût d’une colonoscopie est d’environ 765 euros tandis
que le côut d’un examen par vidéocapsule est de l’ordre de 500 euros. Tous ces examens
d’imagerie ne sont pas dédiés exclusivement au dépistage du cancer du colon, loin s’en faut.
La figure 3 décrit le fonctionnement du système disgestif depuis la bouche jusqu’au
rectum.
Les trois principales parties du tube digestif sont l’estomac, l’intestin grêle et le colon. La
durée de transit dans l’estomac est de l’ordre de 4 h 00 pour un sujet sain et les vitesses
périlstatic (propagation de l’onde digestive) sont respectivement de 3 cm.s−1 dans
l’œsophage, et 2 cm.min−1 dans l’intestin grêle et le gros colon.
La vidéo-capsule a une fréquence d’acquisition qui dépend du segment intestinal. Elle est telle
que :
• dans l’œsophage, la fréquence d’acquisition est de 35 images/seconde ;
• dans l’estomac, la fréquence d’acquisition est de 2 images/seconde ;
• dans l’intestin grêle et le gros intestin, la fréquence d’acquisition est de 15 images/s.
La résolution des images couleurs prises par la vidéo-capsule est de 320 par 280 pixels.
1. Viabilité de l’utilisation d’une vidéo-capsule
Q1. Calculer les économies faites par l’utilisation d’une capsule endoscopique par rapport à
un examen de vidéo-colonoscopie.
Pr. Olivier ROMAIN
4
UEF Traitement de l’information temps-réel
Q2. Conclure sur l’intérêt de cette solution.
2. Étude des performances globales de la vidéo-capsule
Q3. Évaluer la durée totale Ttransit du transit entre l’ingestion de la vidéo-capsule jusqu’à son
évacuation dans les sels.
Q4. Évaluer le nombre d’images Ntot prises par la vidéo-capsule lors d’un transit complet de
l’œsophage à l’anus.
Q5. Évaluer la taille de la mémoire à implanter dans le boitier externe si aucune compression
d’images est mise en œuvre.
Q6. Évaluer l’autonomie de la capsule, et vérifier le cahier des charges.
Pr. Olivier ROMAIN
5
UEF Traitement de l’information temps-réel
Partie 1 : Conception du processeur embarqué
( Softcore ) et programmation logicielle
I. Conception du Nios 2
Un softcore est une IP logicielle dont le comportement respecte celui du composant
équivalent matériel. Le softcore Nios2 est une IP d’un microprocesseur 32 bits entièrement
paramétrables et développé par Altera. A partir des outils tels que QSys, il est alors possible
de construire un microcontrôleur à base de processeur Nios2 et d’une bibliothèque de
composants (UART, PIO, RAM, et.) donnée ou de sa propre bibliothèque de composants
(contrôleur VGA, interface capteur, etc.).
Le système que vous allez créer sur la carte DE0 composé d’un FPGA de type EP3C16F484
reprend le synopsis ci-dessous :
Figure 4 – synoptique du système à base de softcore NiosII
a. Lisez le fichier de tutorial donné en annexe
i. Suivez pas à pas le tutorial jusqu’à l’obtention d’un système de type
Nios 2 conforme à la figure ci-dessus.
ii. Le brochage des broches est donné dans le datasheet de la carte (voir
pièce annexe – manuel DE0).
1. La clock FPGA sera la PIN_G21
2. SW0 sera utilisé pour le reset de la carte DE0. SW0 sera
connecté à PIN_J6
Pr. Olivier ROMAIN
6
UEF Traitement de l’information temps-réel
3. LED0 sera connecté à PIN_J1
4. LED1 sera connecté à PIN_J2
5. LED2 sera connecté à PIN_J3
6. LED3 sera connecté à PIN_H1
7. LED4 sera connecté à PIN_F2
8. LED5 sera connecté à PIN_E1
9. LED6 sera connecté à PIN_C1
10. LED7 sera connecté à PIN_C2
iii. Faîtes contrôler par l’encadrant.
iv. Compilez et implémenter le système dans la carte.
v. Faîtes contrôler par l’encadrant
Maintenant que vous avez un nouveau système à base de microprocesseur Nios, nous allons le
programmer de manière logicielle. Le mapping mémoire de tous les périphériques est donné
dans le fichier système system.h. Attention, tous les développements logiciels (programmes
en C) doivent être écris dans le répertoire src de votre projet. La programmation logicielle est
réalisée via l’outil Eclipse, directement utilisable sous Quartus dans le menu tools (Nios II
Software Build Tools for Eclipse).
Dans un premier temps, nous allons nous familiariser avec la carte avant de passer à
l’intégration des périphériques permettant de récupérer les échantillons issus de l’CAN
AD7810 et d’afficher via le contrôleur de VGA.
b. La création de la partie logicielle nécessite de prendre en main l’IDE du Nios2.
Lancez l’IDE et suivez le tutorial.
c. Ecrivez un programme qui réalise un chenillard sur les LEDs.
d. Faîtes vérifier par l’encadrant.
Consignez tous ces développements dans votre CR.
Pr. Olivier ROMAIN
7
UEF Traitement de l’information temps-réel
Partie 2 : IP indice colorimétrique
Le cancer colorectal se développe dans 80% des cas à partir d’un polype adénomateux. Le
risque de transformation d’un adénome en cancer varie en fonction de sa taille et de son
architecture tissulaire (nature villeuse, degré de dysplasie). Ainsi, on considère qu’un
adénome est « avancé » (donc à risque élevé de dégénérescence en cancer) lorsque sa taille
dépasse 10 mm, lorsque qu’un contingent villeux occupe plus de 25% de sa surface et/ou
lorsque qu’il contient une zone de dysplasie de haut grade. Le dépistage des lésions
adénomateuses à un stade précoce (précancéreux) et l’amélioration des traitements ont permis
de réduire le taux de mortalité, mais il reste encore important. Un adénome est une
excroissance de la muqueuse intestinale. Il est le plus souvent de forme circulaire comme le
montre les photos de la figure ci-dessous.
Figure 5 – Exemple des zones d’intérêts
La détection des polypes adénomateux revient au problème de la recherche d’une forme
circulaire dans une image 2D. La figure ci-dessous montre le résultat de la chaîne de
traitement. L’identification d’une zone de type cercle dans une image visible nécessite
plusieurs traitements :
• une binarisation ;
• une transformation de Hough ;
• le calcul de la matrice de cooccurrence sur les zones définies par Hough (ROI –
Region of Interest);
• l’extraction des paramètres de textures
• un calcul de distance (classification).
Pr. Olivier ROMAIN
8
UEF Traitement de l’information temps-réel
Figure 6 – Synoptique des traitements
Figure 7 – Résultats en sortie des blocs de traitement ; A-image ; B-extraction des
contours ; C-cercles détectés par la transformée de Hough circulaire ; D-sortie du
classifieur
Pr. Olivier ROMAIN
9
UEF Traitement de l’information temps-réel
Conformément à la figure 8, il n’est pas nécessaire de réaliser les traitements sur toutes les
images prises par la vidéo-capsule. Seules celles où la proportion de matières résiduelles
(aliments en cours de digestion) n’est pas trop importante devront subir le traitement de la
figure 7. L’article « Immediate Duodenal Delivery versus Delayed Oral Ingestion of Capsule
Endoscopy : is the Sooner the Better ? A Prospective Comparison of Small Bowel
Visualization Quality, According to a Computed Assessment of Cleansing Score » (en
annexe) propose de définir cette proportion de matières résiduelles (représentative de la
qualité d’une image) par le coefficient CAC (Computed Assessment of Cleansing ) défini par
l’équation ci-dessous.
Figure 8 – Pré-traitement : indice de qualité
L’équation qui détermine l’indice de qualité d’une image correspond à :
IC = moyenne(des luminances des pixels sur le canal rouge)/moyenne(des luminances des
pixels sur le canalvert).
Si IC>1.65 l’image est à traiter sinon non.
L’entité à développer en VHDL devra être conforme aux spécifications données ci-dessous :
Travail à réaliser
Q1. Lire l’article en annexe
Q2. Proposer une architecture numérique pour le calcul de l’indice colorimétrique
Il existe deux manières de connecter une IP au processeur Nios II, soit en utilisant un port
d’entrée / sortie, soit en utilisant le bus Avalon. Dans cette partie, nous allons modifier l’IP
conçue auparavant afin que son interface prenne en compte les signaux disponibles sur le bus
avalon.
L’IP devra comporter en entrée :
! un signal d’adresse sur 2 bits, qui permettra d’accéder aux registres de l’IP
o address = 0x00 : registre d’état de l’IP
" Le bit 0 du registre : activera / désactivera le calcul
Pr. Olivier ROMAIN
10
UEF Traitement de l’information temps-réel
" Les autres bits du registre seront par défaut à 1
o address = 0x01 : registre contenant la valeur de la moyenne des rouges
o address = 0x10 : registre contenant la valeur de la moyenne des verts
o address = 0x11 : registre contenant la valeur de la moyenne des bleus
!
!
!
!
!
!
un signal writedata sur 32 bits : bus de donnée Avalon en écriture
un signal R sur 8 bits : contenant la valeur rouge du pixel en cours
un signal G sur 8 bits : contenant la valeur vert du pixel en cours
un signal B sur 8 bits : contenant la valeur bleue du pixel en cours
un signal clk_pixel sur 1 bits : correpondant à la clock pixel
un signal synchro_trame sur 1 bits : actif sur 1 période de clock_pixel, permettant de
signaler une nouvelle image
!
!
!
!
!
un signal cs : sélection du périphérique sur le bus Avalon
un signal wr : signal d’autorisation d’écriture dans les registres de l’IP
un signal rd : signal d’autorisation de lecture dans les registres de l’IP
un signal de reset : remise à zéro des registres de l’IP
une horloge système
L’IP devra comporter en sortie :
! un signal readdata sur 32 bits, qui permettra de récupérer les données acquises sur le
bus avalon
Q3. Développer l’IP version avalon
Q4. Simuler le comportement de l’IP
Q5. Lancer Qsys et intégrer votre IP à l’aide de « New Component »
Synthétiser et programmer la carte.
Q6. A l’aide des instructions IOWR et IORD, modifier le programme sous eclipse.
Programmer le Nios de manière à afficher la valeur du registre d’état. Conclusion ?
Q7. Comment peut on tester sans caméra le bon fonctionnement du système complet ?
Proposez des solutions.
Consigner dans votre compte rendu, les résultats que vous avez obtenus pour cette partie
(design, performances, etc.). Vous mettrez en annexe de votre compte rendu les différents
programmes que vous avez développés ainsi que la méthodologie que vous avez adopté pour
développer cette IP.
Pr. Olivier ROMAIN
11
UEF Traitement de l’information temps-réel
Partie 3 : Affichage graphique de l’i ndice
colorimétrique
I. Conception d’une IP VGA
On souhaite ici programmer le contrôleur VGA de la carte DE2 de manière à afficher un
graphique donnant l’évolution de l’indice colorimétrique en fonction des images traitées. Pour
cela nous allons programmer une architecture numérique de contrôleur VGA.
Le contrôleur VGA est composé d’un convertisseur numérique analogique (4 bits) qui génère
les signaux rouge, vert et bleu, mais aussi les signaux de synchronisation horizontal et vertical
nécessaires.
Le CNA est directement contrôlable à partir des broches du Cyclone II. Uniquement le monde
VGA (640x480) est supporté par ce contrôleur graphique.
La première des étapes à réaliser pour pouvoir afficher un motif à l’écran, c’est de générer les
signaux de synchronisation de l’écran VGA. L’affichage sur un écran VGA est réalisé via le
balayage d’un spot lumineux sur l’écran. Il est nécessaire ici d’avoir deux signaux de
Pr. Olivier ROMAIN
12
UEF Traitement de l’information temps-réel
synchronisation, un signal HS de synchronisation horizontale qui va permettre au spot de
passer d’une ligne à l’autre (retour à gauche de l’écran). Un signal de synchronisation
verticale qui va permettre un retour du coin en bas à droite de l’écran au coin en haut à gauche
de l’écran.
Le timing des synchronisations horizontales et verticales suit le chronogramme ci-dessous.
Les valeurs des temps sont données dans les deux tables ci-dessous.
Figure 1 : Timing de la synchronisation horizontale
Pr. Olivier ROMAIN
13
UEF Traitement de l’information temps-réel
Figure 2 : Timing de la synchronisation verticale
Q1.Quel est le composant qui va permettre de mesurer le temps ?
Q2.En utilisant ce composant, déterminer un système capable de générer les signaux de
synchronisation HS et VS. Vous ferez une représentation graphique de votre système.
Q3.Sachant que les temps indiqués dans le tableau ci-dessus sont donnés pour une
horloge de 25 MHz et que l’horloge globale de la carte est une horloge à 100MHz,
décrivez en VHDL un système capable de générer une horloge à 25MHz en fonction
de l’horloge système.
Q4.Décrivez de manière structurelle le circuit qui permet de générer les signaux HS et
VS.
Q5.Compilez et simulez le système
Q6.Pour afficher des couleurs sur l’écran, il est nécessaire d’avoir des signaux qui nous
indiquent quelle couleur pour quel pixel. Les signaux R, G et B jouent ce rôle. Le
contrôleur VGA de la carte Cyclone et un codec de 24 bits. Les entrées R, G et B sont
codées sur 4bits. Le tableau ci-dessous donne une correspondance entre les couleurs
générées et les valeurs des entrées.
Couleur R[3..0] V[3..0] B[3..0]
Rouge
F
0
0
Vert
0
F
0
Bleu
0
0
F
Q7.Afin que l’affichage soit bien synchronisé, il faut absolument que les signaux R, G et
B soit à l’état bas quand le spot lumineux est en dehors de l’écran (période de retour
du spot).
Q8.Modifiez le système de synchronisation afin d’afficher une couleur uniforme sur
l’écran.
II. Gestion par le Nios II
L’affichage des données acquises par le Nios II au moyen de l’interface graphique nécessite
d’insérer la gestion du bus avalon et une mémoire graphique. Ce buffer mémorise les valeurs
au cours du temps pour l’affichage graphique.
Q9.A partir du datasheet du FPGA de la carte, déterminer la mémoire disponible.
Pr. Olivier ROMAIN
14
UEF Traitement de l’information temps-réel
Q10.
Proposer une architecture pour l’interface VGA qui intègre la mémorisation
des données et la gestion du bus Avalon
Q11.
Modifier l’IP de la partie 2.
Q12.
Simuler et vérifier le comportement
III. Démonstrateur final
Après modification des différentes IP (Nios 2 et VGA), la preuve de concept de ce mini-projet
peut être faite.
Q13. Consigner dans votre compte-rendu les différents développements
performances qui vous avez réalisé pour faire la démonstration de ce mini-projet.
Q14.
et
Faite valider au près de l’enseignant le démonstrateur final.
Fin mini - projet
Pr. Olivier ROMAIN
15
UEF Traitement de l’information temps-réel
Annexes techniques
Pr. Olivier ROMAIN
16
Téléchargement