
UNIVERSITE´ DE MONTREAL´ AN IMAGE PROCESSING APPROACH TOWARD A VISUAL INTRA-CORTICAL STIMULATOR ANTHONY GHANNOUM DEPARTEMENT´ DE GENIE´ ELECTRIQUE´ ECOLE´ POLYTECHNIQUE DE MONTREAL´ MEMOIRE´ PRESENT´ E´ EN VUE DE L'OBTENTION DU DIPLOME^ DE MA^ITRISE ES` SCIENCES APPLIQUEES´ (GENIE´ ELECTRIQUE)´ DECEMBRE´ 2012 c Anthony Ghannoum, 2012. UNIVERSITE´ DE MONTREAL´ ECOLE´ POLYTECHNIQUE DE MONTREAL´ Ce m´emoire intitul´e: AN IMAGE PROCESSING APPROACH TOWARD A VISUAL INTRA-CORTICAL STIMULATOR pr´esent´epar : GHANNOUM Anthony en vue de l'obtention du dipl^ome de : Ma^ıtrise `essciences appliqu´ees a ´et´ed^ument accept´epar le jury d'examen constitu´ede : M. BRAULT Jean-Jules, Ph.D., pr´esident M. SAWAN Mohamad, Ph.D., membre et directeur de recherche Mme CHE´RIET Farida, Ph.D., membre iii ACKNOWLEDGEMENTS I would like to start by thanking my Master thesis supervisor professor Mohamad Sawan for his support and patience as well as the Polystim Neurotechnologies Lab members who always provided a lighthearted mood and critical thinking environment. I would also like to thank my sister Roula Ghannoum for her outstanding help throughout this period. Moreover, I would like to acknowledge support from NSERC and the Canada Research Chair on Smart Medical Devices. iv RESUM´ E´ La d´eficience visuelle n'est actuellement pas m´edicalement traitable. Par contre, des ap- proches biom´edicales modernes, tel que le projet Cortivision, emploient la micro stimulation intra-corticale pour stimuler la vision ´electriquement. Cela fait apparaitre des <phosph`enes>, des points lumineux, dans le champ visuel du patient. Des constellations de ces phosph`enes peuvent ^etre utilis´ees pour reproduire une certaine vision de base. Le syst`eme comprend une cam´era, un module de traitement d'images, un lien sans fil, et des matrices de micro-´electrodes implant´ees directement dans le cortex visuel du patient. La carte phosph`ene (l'arrangement de point lumineux dans le champ de vision) est di- rectement li´ee au placement physique des ´electrodes ; elle est g´en´eralement plus dense vers le centre (plut^ot que d'^etre espac´ee uniform´ement comme dans une image num´erique). Cela veut dire qu'il n'existe pas une fonction simple pour traduire les images acquises par la cam´era sur la carte phosph`ene, d'o`ula n´ecessit´ed'avoir un module de traitement d'image. L'aide du patient est n´ecessaire pour d´eterminer sa carte phosph`ene particuli`ere et r´eelle. Une m´ethode de calibration qui expose le patient `ades combinaisons de paires de phosph`enes diff´erentes est utilis´ee avec des algorithmes de triangulation et minimisation d'erreur. Toute erreur dans la phase d'estimation induirait des distorsions dans l'image finale (dans les stimuli envoy´esau cortex du patient). N´eanmoins, la plupart des syst`emes utilisent une carte phosph`ene simplifi´ee uniform´ement r´epartie ainsi que des techniques simples de traitement d'image comme un seuillage simple ou la segmentation. Nous proposons d'utiliser un traitement d'image de plus haut niveau, comme la reconnaissance d'objets, afin d'^etre en mesure d'identifier et de <simplifier> les donn´ees avant de les envoyer au patient. Dans ce cas, nous envoyons une repr´esentation du contenu de la sc`ene au cortex du patient, et non pas une version abr´eg´eede la sc`ene { l'algorithme utilise les vraies images pour identifier les objets, tandis que dans le cas des autres syst`emes, le patient doit identifier les objets lui-m^eme `apartir d'une image tr`essimplifi´ee; une t^ache non-triviale. Une telle approche est co^uteuse en terme de calcul, et n´ecessiteraient ´egalement de rouler en temps r´eel pour notre application. Pour subvenir `aces besoins, nous proposons d'acc´el´erer les goulots d'´etranglement de l'algorithme en utilisant une approche mat´erielle parall´elisable (FPGA). L'objectif est de d´evelopper un syst`eme temps-r´eel, param´etrable, et efficace en termes de ressources mat´erielles FPGA et de bande passante. Ceci nous permettra d'effectuer des t^aches de reconnaissance d'objet robustes rapidement qui peuvent ensuite ^etre utilis´espour stimuler la carte phosph`ene d'une mani`ere plus ad´equate, plus utile, et moins exigeante du v patient. Apr`es avoir examin´eles algorithmes possibles et les approches qui peuvent ^etre utilis´ees, nous avons identifi´ele Scale Invariant Feature Transform (SIFT) comme un bon candidat pour notre syst`eme, principalement en raison du fait qu'il est tr`es robuste aux variations d'images telles que l'´eclairage, les transformations affines, et les occlusions partielles d'un objet. Le SIFT peut ^etre divis´een deux grandes parties : l'extraction et la description de carac- t´eristiques. L'´etape d'extraction est bas´eesur le calcul de la diff´erence de gaussiennes (DoG) et peut ^etre consid´er´ecomme un d´etecteur de blob invariant `al'´echelle qui permet de d´e- tecter les points <int´eressants> dans une image. La deuxi`eme partie consid`ere la r´egion qui entoure le point d'int´er^etet constitue un vecteur de description (ou une signature), qui est essentiellement une collection d'histogrammes de gradients normalis´es`ala rotation. Apr`es avoir mis en place un prototype logiciel de reconnaissance d'objet sp´ecifique, nous avons remarqu´eque le goulot d'´etranglement qui emp^eche l'algorithme SIFT de fonctionner en temps r´eel se trouve dans la partie DoG. Nous avons alors recueilli nos efforts pour migrer cette partie de l'architecture vers du mat´eriel parall´elisable d'un FPGA. La partie DoG n´ecessite le calcul d'une pyramide d'images, qui est essentiellement une r´ep´etition de filtres Gaussien 2D (pour former des ´echelles), suivi d'un sous-´echantillonnage (pour former des octaves). Les r´esultats des diff´erentes ´echelles doivent par la suite ^etre synchronis´es et soustraits, et les points d'extr^emes locaux `atravers les ´echelles sont consid´er´es comme des points d'int´er^et. Apr`es avoir examin´eles impl´ementations existantes du DoG, nous proposons une nouvelle architecture efficace capable de partager les ressources FPGA bloc RAM pour le filtrage et aussi de r´eduire la taille des FIFOs de synchronisation. Nous avons ´egalement exploit´edes concepts tels que l'entrelacement d'octaves, la s´eparabilit´edes filtres 2D, et la sym´etrie des filtres. Notre architecture utilise moins de ressources que d'autres impl´ementations dans la litt´erature, tout en ´etant comparable en terme de pr´ecision `aune impl´ementation logicielle `a virgule flottante. L'impl´ementation FPGA est capable de rouler `adeux ordres de grandeur plus vite qu'une impl´ementation logicielle ´equivalente. De plus, notre architecture est param´etrable en utilisant les g´en´eriques VHDL, et nous d´emontrons comment notre consommation de ressources est affect´eeen effectuant des ba- layages de param`etres pour : le nombre d'´echelles, le nombre d'octaves, la largeur des filtres, et la largeur maximale de l'image. Le syst`eme a ´et´evalid´esur une carte de prototypage Xilinx ML605 en utilisant MATLAB et Xilinx System Generator afin de fonctionner en mode co-simulation avec le mat´eriel dans la boucle. L'interface Ethernet est utilis´ee pour le transfert d'images. vi Afin de calculer les descripteurs de caract´eristique (deuxi`eme partie du SIFT), nous avons parfois besoin d'envoyer la pyramide d'images `al'h^ote, ou de la sauvegarder dans la m´emoire externe pour un traitement ult´erieur. Apr`esavoir remarqu´ela similitude des donn´ees (dans les sens x et y) et aussi `atravers les ´echelles adjacentes `acause du filtrage, nous sommes arriv´esavec une architecture pour un encodeur de Huffman parall`ele qui est capable de traiter plusieurs pixels `ala fois. Cet encodeur peut ^etre utilis´epour la compression sans perte des images ou des pyramides d'images. Pour les pyramides d'images, nous avons utilis´eune version modifi´ee du pr´edicteur Paeth qui tient compte de l'´echelle adjacente pour l'´etape de diff´erenciation et nous avons r´eussi `aatteindre des taux de compression de 27; 3% sur la base d'images Caltech-256. Une autre voie qui a ´et´eexplor´eeconcerne l'estimation de la carte phosph`ene. Dans la litt´erature, certains avaient sugg´erer une installation de calibration qui consiste `autiliser un ´ecran tactile et des lunettes de r´ealit´evirtuelle pour simuler le champ de vue du patient. Le patient est ensuite pr´esent´eavec des paires de phosph`enes et devra fournir de la r´etroaction en utilisant deux doigts pour toucher l'´ecran tactile et essayer d'´evoquer aussi pr´ecis´ement que possible ce qu'il per¸coit (distance et angle). Nous proposons une configuration alternative qui n'utilise pas un ´ecran tactile, mais plut^ot une installation d'une cam´era qui localise et suit plusieurs marqueurs fiduciaires qui peuvent ^etre manipul´essimultan´ement par le patient pour fournir une r´etroaction pour la calibration de la carte phosph`ene. La cam´era sera plac´ee sous une table de surface transparente et les marqueurs fiduciaires seront donc toujours visibles par la cam´era. L'image est rectifi´ee pour enlever les distorsions et les marqueurs sont suivis simultan´ement. Ceci nous donne l'avantage d'avoir une r´esolution plus ´elev´equ'un ´ecran tactile, la possibilit´ed'utiliser des constellations de phosph`enes (au lieu de seulement deux paires `ala fois) et la possibilit´e de modifier l'estimation de la carte calibr´eeen temps r´eelen utilisant la r´etroaction du patient.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages104 Page
-
File Size-