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