<  Retour au portail Polytechnique Montréal

Implementation of a Bacterium Tracking System on FPGA

Vahid Talei

Mémoire de maîtrise (2010)

[img]
Affichage préliminaire
Télécharger (1MB)
Citer ce document: Talei, V. (2010). Implementation of a Bacterium Tracking System on FPGA (Mémoire de maîtrise, École Polytechnique de Montréal). Tiré de https://publications.polymtl.ca/502/
Afficher le résumé Cacher le résumé

Résumé

ABSTRACT Tracking in computer vision is monitoring the movement of an object in a sequence of images. This object tracking may be performed for different reasons such as security systems, animation production, etc. Hundreds of publications in the form of books, articles, and journal papers indicate the importance of tracking as the research domain in universities and research centers. Tracking consists of the answer to two principal problems, the motion problem and the matching problem. Two solutions for the motion problem are adjacent regions method and the Kalman filter. Many solutions also exist for matching problem such as window tracking, detection of the moving object by its specifications like edges, corners and contour, detection of the target by simple shapes like circles, squares, rectangles and triangles, detection by 3-dimensional shapes like cylinders and finally matching with complex shapes like human, vehicle, etc. The implemented tracking algorithm in this project applies the adjacent regions for motion detection and window tracking for matching. Three different algorithms are simulated by Matlab software and one of them is implemented on the target hardware. The subject of tracking in this project is Magnetotactic Bacterium (MTB). MTB is applied in medial and biomedical fields. As an example, they can carry necessary materials into the patient‟s vascular system, where only anoparticles are able to travel. The hardware of this project is the Xilinx ML402 video starter kit, camera and microscope. This hardware system consists of the ML402 main board and the VIODC daughter board. The VIODC contains a Virtex-II FPGA which holds the drivers of different video input and output interfaces. The ML402 has a Virtex-4 FPGA and developers can implement their designs on this FPGA chip. The camera captures the video frames and the VIODC receives the frames from camera and sends them to ML402. ML402 executes the tracking algorithm on the received frames and sends the appropriate output to VIODC to be displayed. The basic module of the tracking system which is called “vid_tracking” processor core (pcore) is available with the Simulink library of the Matlab software. It can also be simulated either by real-time video or by simulated video signals. Vid_tracking consists of EDK processor and System Generator blocks. System Generator translates the pcore to physical hardware. Through the translation process, the EDK processor of Simulink library is implemented as a MicroBlaze processor which is the standard processor architecture of Virtex-4 FPGAs. The design is then exported into the XPS platform. The system developer can modify the design using the VHDL hardware description language. VHDL is very efficient and highly flexible to implement hardware systems with different abstraction levels. We applied three DSP48 modules from the Virtex-4 library in order to implement the multiplication operation in a more efficient manner. This library contains some already designed components for different Xilinx FPGAs. These components are very fast and easy to use. In order to implement the tracking algorithm, we profit from three synchronization signals which are pixel enable, horizontal synchronization and vertical synchronization. Pixel enable indicates when a new pixel is detected by the VIODC. The horizontal synchronization signal indicates the start of a line and the vertical synchronization shows the start of a frame. The tracking algorithm counts the pixels and lines to find a window of about 20-pixel by 20-pixel in the middle of the frame. It looks for a bacterium by comparing the pixel‟s intensity. When it finds a bacterium, it looks for it in the 20-pixel by 20- pixel regions around the previous window in the next frame. The Matlab simulation of MTB tracking is 100% robust since the bacterium was not missed in any of the frames during the tracking and the algorithm is able to follow the trajectory of the bacterium during all the simulation time. The simulation indicates 100% precision in 2-dimensional movements of the bacterium, since all the pixels which are recognized by the human eye as the bacterium pixels are also detected as the bacterium pixels by the simulator algorithm. The designed hardware detects whether a bacterium is in camera field of view or not. The bacterium moves at an average speed between 180 to 240 micrometers per second. A speed of 300 μm/s has also been recorded for this type of bacterium. Our tracking system could detect the moving bacterium at either of these speeds. ----------RÉSUMÉ Dans le domaine de la vision par ordinateur, le suivi est la surveillance du mouvement d'un objet dans une séquence d'images. Ce suivi d‟objet peut être accompli dans différentes applications comme les systèmes de sûreté, la production de dessins animés, etc. Des centaines de publications sous forme de livres, articles et documents de journaux indiquent l'importance du suivi dans la recherche académique et dans les centres de recherche. Le suivi contient la réponse à deux problèmes principaux, le problème du mouvement et le problème de la correspondance. Deux solutions pour le problème du mouvement sont la méthode des régions contiguës et le filtre de Kalman. D‟autres solutions existent également pour le problème de correspondance, par exemple le suivi par fenêtre, la détection d‟objet mobile par des spécifications comme des arrêtes, des coins et le contour, la détection d‟objet par des formes simples comme des cercles, des carrés et des rectangles, la détection par des formes en 3-dimensions comme des cylindres, et finalement la correspondance par des formes complexes comme l‟humain, le véhicule, etc. L'algorithme de suivi dans ce projet applique la méthode des régions contiguës pour le problème du mouvement et la méthode de suivi par fenêtre pour le problème de correspondance. Le sujet du suivi de ce projet est la bactérie magnétotactique (MTB). Les MTB sont utilisées dans des applications médicales. Par exemple, elles peuvent amener les médicaments nécessaires dans le système vasculaire du patient, où seulement des nanoparticules sont capables de se rendre. Le matériel utilisé dans ce projet est la planchette de développement pour les applications de vidéo ML402 de la compagnie Xilinx, une caméra et un microscope. Ce système matériel contient le circuit principal ML402 et la planchette VIODC. La VIODC contient un FPGA Virtex-II qui comprend des pilotes pour différentes interfaces de l'entrée et de la sortie vidéo. La ML402 est dotée d'un FPGA Virtex-4 sur laquelle les développeurs peuvent implémenter leurs designs. La VIODC reçoit les trames vidéo capturées par la caméra et les envoie vers la ML402. Cette dernière exécute l'algorithme de suivi sur les trames reçues et envoie la sortie appropriée vers la VIODC pour être affichée. Le composant principal du système de suivi qui s'appelle le processeur coeur (pcore) “vid_tracking” est disponible dans la librairie Simulink du logiciel Matlab. Ce composant peut être simulé soit par vidéo en temps-réel soit par des signaux simulés de vidéo. Le vid_tracking contient le processeur EDK et des blocs de générateur de système. Le bloc générateur de système traduit le pcore en du matériel physique. Pendant le processus de la traduction, le processeur EDK de la librairie Simulink est implémenté comme un processeur MicroBlaze qui est l'architecture de processeur standard des FPGA Virtex-4. Ensuite, le design est exporté à la plateforme XPS. Le développeur de système peut modifier le design en utilisant le langage de description matériel VHDL. VHDL est très efficace et extrêmement flexible pour implémenter des systèmes matériels avec des niveaux d'abstraction différents. On a appliqué trois modules de DSP48 de la librairie Virtex-4 pour implémenter la multiplication d'une manière plus efficace. Cette librairie contient des composants déjà conçus pour différents FPGAs de Xilinx. Ces composants sont très rapides et faciles à utiliser. Pour implémenter l'algorithme de suivi, on profite de trois signaux de synchronisation : -pixel actif, synchronisation horizontale et synchronisation verticale. Le signal pixel actif indique la détection d‟un nouveau pixel par la VIODC. Le signal de la synchronisation horizontale indique le début d‟une ligne et le signal de la synchronisation verticale montre le début d‟une trame. L'algorithme de suivi compte le nombre des pixels et le nombre de lignes pour trouver une fenêtre de 20-pixel par 20-pixel au milieu de la trame. Il cherche une bactérie par comparaison des intensités de pixels. Quand il trouve une bactérie, il la recherche dans les régions de la taille 20-pixel par 20-pixel dans les fenêtres qui suivent au voisinage de la fenêtre précédente. La simulation Matlab de suivi de MTB est 100% robuste car la bactérie n‟a été perdue dans aucune trame pendant le suivi de bactérie. L‟algorithme est capable de suivre la trajectoire de la bactérie pendant toute la durée de la simulation. La simulation atteint 100% de précision dans le cas de mouvement à 2-dimensions de la bactérie en comparant les résultats obtenus par l'algorithme à ceux obtenus par un observateur humain. Le matériel conçu détecte si une bactérie est dans le champ de vue de la caméra ou non. La bactérie se déplace avec une vitesse moyenne de 180 à 240 micromètres par seconde. Une vitesse de 300 μm/s a été aussi enregistrée pour ce type de bactérie. Notre système de suivi peut détecter la bactérie qui se déplace à n'importe quelle vitesse dans la gamme spécifiée ci-dessus.

Document en libre accès dans PolyPublie
Département: Département de génie informatique et génie logiciel
Directeur de mémoire/thèse: J.M. Pierre Langlois
Date du dépôt: 21 mars 2011 13:51
Dernière modification: 24 oct. 2018 16:10
Adresse URL de PolyPublie: https://publications.polymtl.ca/502/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel