Está en la página 1de 5

SOC PARA LA IDENTIFICACIÓN DE LA VARIACIÓN MORFOLÓGICA DEL

ERITROCITO
Work Shop 2010
Oneida Font Salmón, Onelia Carballo Reina, Olívia Rodríguez, Martín Morcate Trujillo,
Romina Robert Pérez, Danelia Matos Molina, Alexander A. Suárez León (aasl@fie.uo.edu.cu)

Abstract  This paper explains the design and morfológicas y sin variaciones morfológicas. En este trabajo
implementation of a System on Chip (SoC) suitable for se propone un SoC basado en módulos de propiedad
image and signal processing. The system should be an intelectual libres que permita efectuar las operaciones
important piece of medical device that aid on the diagnostic básicas del procesamiento digital de señales e imágenes.
of erythrocyte‘s morphological variation diseases such as
sicklemia. The design is based on Plasma SoC and MIPS MATERIALES Y MÉTODOS
Lite processor and an FFT core has been added for the
improvement of Discrete Fourier Transform computations. Imágenes
Moreover a program that computes the FFT of the boundary
Se utilizaron imágenes de láminas de extendidos de sangre
of cell’s images had been developed.
periférica, tratadas con colorante de Giemsa. La adquisición
Index Terms  Sicklemia, FFT, SOC, IP Cores, FPGA. de estas imágenes se realizó a través de una cámara digital
(Canon Power Shot A630) adaptada a un microscopio óptico
INTRODUCCIÓN (Novel-N200), y observadas a un aumento de 80X. Estas
imágenes son tomadas a color, con resoluciones espaciales
Los glóbulos rojos o eritrocitos son elementos formes de de 640x480 píxeles, y con una profundidad de 8 bits por
la sangre y su función es transportar el oxígeno a todos los canal de color.
tejidos del cuerpo. De existir alguna alteración e la
morfología de estos, dicha funcionalidad se verá modificada,
provocándose así una determinada patología.
Entre estas patologías, una de las más frecuentes es la
anemia falciforme o drepanocítica, comúnmente conocida
como sicklemia [10] [11].
Para esta enfermedad no existe tratamiento específico y
sin embargo, de acuerdo con reportes de la OMS existen más
de 200 millones de portadores de hemoglobinopatías en el
mundo y nacen anualmente entre 100,000 y 300,000
personas severamente afectadas.
Según datos del Instituto de Hematología e
Inmunología, del Ministerio de Salud Pública de Cuba,
aproximadamente unas 5 000 personas en el país padecen
esta enfermedad y cada año se espera el nacimiento de 100
nuevos enfermos.
Actualmente en nuestro país, el diagnóstico de
anomalías morfológicas en los eritrocitos es un proceso
realizado de manera tradicional [11]. Este procedimiento
tradicional puede acarrear errores debido al alto factor
subjetivo que involucra, añadiendo además una demora en la
obtención de los resultados.
De lo anterior se destaca la necesidad de la existencia de
sistemas de apoyo con este fin. Como paso inicial al
desarrollo de una herramienta similar, en el presente trabajo
se propone, un SOC que soporte un "sistema semi
automatizado". FIGURA 2.
La metodología consiste en, a partir de imágenes de IMAGEN DE GLÓBULOS NORMALES TOMADA A 80X (ARRIBA). IMAGEN
eritrocitos enfermos y aplicando técnicas de procesamiento DESPUÉS DE AJUSTAR LOS PARÁMETROS DE BRILLO Y CONTRASTE (ABAJO).
digital de imágenes, se pretende aislar una serie de Inicialmente las imágenes son convertidas a escala de
características morfológicas aptas; para la clasificación de grises. Dado que no se conoce el tipo de ruido introducido
los eritrocitos en dos categorías, glóbulos con variaciones por el dispositivo de captura y teniendo en cuenta las
propiedades que presenta este, se aplica un filtro gaussiano Esta segmentación, es depurada, eliminándose del
para la atenuación del ruido [1]. Debido a que las conjunto de glóbulos rojos segmentados, aquellos que no se
condiciones de iluminación durante la captura de las encuentren en un rango de tamaño fijado. Este tamaño se
imágenes fueron variables, se realiza un ajuste del brillo y determinó teniendo en cuenta los valores de las áreas
ecualización del histograma a fin de homogeneizar los mínimas y máximas de los glóbulos rojos tanto sanos como
parámetros de brillo y contraste (ver FIGURA 2.). enfermos. Realizar esta depuración es importante pues el
La información de interés para el procesado en las procedimiento de segmentación empleado puede realizar
imágenes tomadas, la constituyen los glóbulos rojos, pero segmentaciones que no completen la forma del glóbulo rojo,
además de estos suelen aparecer en las imágenes, estructuras o no separen correctamente aquellos glóbulos rojos que se
de menor tamaño (puede observarse en la figura anterior), tocan, segmentado conglomerados de estos en vez de
esto debido fundamentalmente a las condiciones del glóbulos individuales.
preparado en las láminas de extendido sanguíneo. Estas La siguiente etapa corresponde a la identificación de los
estructuras que constituyen información no relevante, glóbulos rojos, para esto se emplea un tradicional algoritmo
ralentizan y entorpecen las posteriores etapas de de labeling [2]. A fin de caracterizar estos
procesamiento. morfológicamente, se propone la representación en términos
Para disminuir esta situación se descompone la imagen de descriptores de Fourier. Los descriptores de Fourier se
mediante filtros morfológicos, empleándose el operador definen como la Trasformada de Fourier del contorno,
morfológico de apertura [2] [3]. Atendiendo a la forma y expresado este como una secuencia de números complejos
tamaño de las estructuras que se desean eliminar, se [1] [2]. Estos descriptores tienen las características de que,
selecciona como elemento estructurante, un disco de radio además de lograr una buena descripción en base a pocos
menor al radio promedio de los glóbulos rojos. términos, es posible mediante la realización de pequeñas
Se aplica además una operación de reconstrucción transformaciones, obtener invarianza rotacional y de
morfológica, con el objetivo de preservar la forma y tamaño traslación, propiedades a tener en cuenta.
de los glóbulos rojos después de las operaciones anteriores
Hardware
[2]. En la siguiente figura se puede observar la eliminación
de las estructuras después de aplicados los operadores El diseño que se propone se ha implementado en una tarjeta
morfológicos y umbralizando la imagen mediante el método Spartan - 3 Starter Kit Board de Digilent Inc. [4] con un
de Otsu[1]. FPGA XC3S1000-4FT256 de Xilinx™, ver figura 3.

FIGURA 3
ESQUEMA EN BLOQUES DE LA TARJETA DE DESARROLLO.

Software
La herramienta de diseño utilizada es el ISE 7.1 WebPack de
Xilinx™ [5] y para la simulación se ha empleado ModelSim
SE 6.2b de Mentor Graphics [6].
Módulos libres
Mlite (MIPS Lite) [7] es un microprocesador de 32 bits
sintetizable desarrollado en VHDL por Steve Rhoads que
FIGURA 2 soporta una parte apreciable del conjunto de instrucciones
BINARIZACIÓN DE LA IMAGEN PREPROCESADA (ARRIBA). BINARIZACIÓN + MIPS I. Este procesador es libre y está disponible en el sitio
OPERADOR DE APERTURA + RECONSTRUCCIÓN MORFOLÓGICA (ABAJO). web de OpenCores [8]; ha sido utilizado además con éxito
en un pequeño servidor web, y como controlador de cuatro Para permitir el uso de la memoria externa de 1Mb de la
robots de comunicación utilizando Virtex™. Junto al tarjeta se desarrolló el bloque de interfaz. Este bloque provee
procesador existe un SoC (Plasma) que incluye un UART a acceso a la memoria RAM externa de la tarjeta expandiendo
57600 Baud, memorias RAM y cache, puertos de E/S de la memoria total accesible de 8KB a 1032KB.
propósito general (GPIO), un contador, y una interfaz DMA Teniendo en cuenta que el sistema se empleará en
– ETH, opcionalmente se puede incluir un controlador aplicaciones de procesamiento digital y la extensa aplicación
DRAM DDR [7]. que tiene la transformada discreta de Fourier en este campo,
Debido a que Mlite implementa casi en su totalidad el se ha decidido incluir un bloque para el cálculo de la FFT.
juego de instrucciones MIPS I; la cadena de herramientas En la comunidad OpenCores hay disponible 3 módulos
(toolchain) está compuesta por un compilador (cross - (cores) desarrollados por Unicore Systems Ltd. y cada uno
compiler) para esta arquitectura y los respectivos realiza la FFT base 8 de 64, 128 y 256 puntos
ensamblador (as) y enlazador (linker, ld). El autor respectivamente, de estos módulos se han reportado
proporciona además programas de utilería, el código fuente frecuencias de operación por encima de 200 MHz en la
de un sistema operativo de tiempo real y un servidor http. familia Virtex™. La dificultad fundamental es que como
Del mismo modo se ha utilizado un módulo para el más arriba se menciona, están descritos en Verilog, de
cálculo de la transformada discreta de Fourier disponible en manera que se hace necesario que la instancia del módulo
OpenCores y desarrollado en Verilog por Unicore Systems correspondiente se encuentre en el nivel superior del diseño.
Ltd [9]. De los tres módulos disponibles en OpenCores se ha
seleccionado el USFFT64; ver figura 5, que realiza la FFT
DESARROLLO base 8 de 64 puntos de una señal compleja.
En la figura 4 se muestra el diagrama en bloque de la
CLK ADDR(5:0)
arquitectura propuesta. El sistema tiene como núcleo el
procesador Mlite, y de Plasma se ha conservado además del ED DOR(nb+2:0)
procesador, la memoria RAM de 8KB, el UART como RST DOI(nb+2:0)
interfaz de comunicación, el contador y los puertos GPIO. START
Se han adicionado 4 nuevos dispositivos a la interfaz SHIFT(3:0) RDY
original: DR(nb-1:0) OVF1
DI(nb-1:0) OVF2
• Interfaz con memoria SRAM
FIGURA 5.
• Interfaz y buffer de entrada al módulo FFT INTERFAZ GENÉRICA DEL CORE USFFT64
• Módulo FFT
• Interfaz y buffer de salida del módulo FFT

UART
57600 Baud

GPIO
32 bits
8 KB RAM
( ROM)

BUS BUS INTERFAZ


MIPS LITE 32 1 MB SRAM
RAM 1 MB

INTERFAZ
BUFFER
ENTRADA
CONTA
DOR FFT
64 – PTS
INTEFAZ
BUFFER
SALIDA

FIGURA 4
DIAGRAMA EN BLOQUES DEL SOC
En la interfaz genérica nb es un parámetro que se efectúa la FFT y se reenvía a la PC, donde el MatLab®
representa la profundidad en bits del módulo (palabra), por muestra una comparación entre ambas.
defecto tiene valor 16 por lo que el bloque queda
configurado como se muestra en la figura 6. TABLA I
MAPA DE DIRECCIONES DEL SOC
Direcciones Periférico
0x00000000 - 0x0000ffff RAM Interna(8KB)
0x10000000 - 0x100fffff RAM Externa(1MB)
0x20000000 Escritura en UART
0x20000000 Lectura en UART
0x20000010 Máscara IRQ
0x20000020 Estado IRQ
0x20000030 Salida GPIO “set bits”
0x20000040 Salida GPIO “clear bits”
0x20000050 Entrada GPIO
0x20000060 Contador
FIGURA 6. 0x30000000 - 0x300003f0 Buffer de entrada FFT
CONFIGURACIÓN FINAL DEL BLOQUE USFFT64. 0x30001000 - 0x300017f0 Buffer de salida FFT
0x30002000 Registro de Estado/Control FFT
Para permitir la operación controlada de este módulo se Bits IRQ
han adicionado dos nuevos elementos a la interfaz, que 7 0
6 0
conforman el acoplamiento del USFFT64 al sistema. 5 0
La interfaz y buffer de salida recibe el resultado de la 4 Señal Listo de la FFT
operación del módulo USFFT64, esto es, la transformada de 3 Counter(18)
los datos contenidos en el buffer de entrada. La salida de los 2 Señal NotCounter(18)
1 Señal ^UartWriteBusy
datos de la FFT tiene 3 bits más que los datos de entrada, por 0 Señal UartDataAvailable
lo que el módulo internamente incluye dos RAM cada una
de 64x32 bits para almacenar parte real y parte imaginaria.
Estas memorias en conjunto conforman una de 128x32 bits, RESULTADOS
y el arreglo esta concebido de manera que la parte real de los
resultados se escribe en las direcciones bajas (00H – 3FH) y En la tabla II se muestran los recursos empleados del FPGA
la parte imaginaria en las direcciones altas (40H - 7FH). y la frecuencia máxima a la que puede operar el diseño;
Desde el punto de vista del procesador estas direcciones son extraídos directamente del reporte de la herramienta de
de sólo lectura, y de sólo escritura para el USFFT64. síntesis.
Esta unidad funciona además como registro de estado, TABLA II
conteniendo la salida de listo RDY, y la señalización de CONSUMO DE ÁREA Y RECURSOS DEL SOC EN EL FPGA
desbordamiento OVF1 y OVF2 de cada una de las dos Recurso Cantidad Total %
Slices: 3623 7680 47
etapas que conforman el USFFT64. Slice Flip Flops: 2585 15360 16
La interfaz y buffer de entrada actúa como buffer de 4 input LUTs: 6619 15360 43
entrada al USFFT64 y driver de operaciones de este mismo IOBs: 94 173 54
módulo. Internamente está compuesto por una RAM de BRAMs: 11 24 45
MULT18X18s: 4 24 16
64x32 bits que almacena los 64 puntos complejos que serán GCLKs: 1 8 12
objeto de operación. El formato que se utiliza es DCM_ADVS 1 4 25
empaquetado, con parte real del número en la parte baja de Freq. Max 36 MHz
los 32 bits (15 - 0) y la parte imaginaria en la parte alta (31 -
16). Como funcionalidad adicional el módulo actúa como
registro de configuración del USFFT64 conteniendo el bit de DISCUSIÓN
arrancada START, habilitación ED y el desplazamiento para
cada etapa SHIFT(3:0). El sistema completo conserva parte De la tabla III se pueden extraer algunas conclusiones. Es
del mapa de memoria definido para Plasma. La tabla I posible extender el sistema en aproximadamente un 100%
muestra la ubicación de los distintos periféricos en este adicional, lo que proporciona un margen para añadir nuevos
mapa. módulos que permitan realizar otras funciones útiles.
Finalmente se ha desarrollado una aplicación de prueba Otro aspecto a resaltar es la frecuencia a la que opera el
que calcula la FFT de un contorno extraído de una imagen sistema, la que se propone sea estudiada.
de glóbulos rojos desde el MatLab®. En MatLab® se
calculan 64 puntos de un contorno; esta información es
enviada vía puerto serie hacia la tarjeta de desarrollo donde
REFERENCIAS [8] Opencores project, http://www.opencores.org.
[9] Unicore Systems Ltd., Pipelined FFT/IFFT 64 points (Fast
[1] Pajares G., De la Cruz J. M. Visión por Computador. México, Fourier Transform) IP Core User Manual. 2009
Editorial AlfaOmega, 2002. pp. 291-294
[10] Martínez G, Hernández A, Corral L, Muñiz A, Hernández A.
[2] Gonzalez C., Woods R. Digital Image Processing. New Jersey, Biología Molecular en hemoglobinopatías y hemopatías
Prentice Hall-2002. pp 626. malignas. Rev. Cubana Hematol Inmunol Hemoter 1997; 12(2).
[3] Russ J. The image processing handbook. Washington, CRC. [11] Hevia X, Gonzáles R, Iglesias B, Muñoz R, Odalys T,
Chapter 7 pp. 28, 47. Hernández Quintero. Consentimiento informado en el
[4] Digilent Inc. “Spartan 3E Starter Kit Board User Guide”, 2006, diagnóstico prenatal de la sicklemia. Rev Cubana Med Gen
pp 9 -11. Integr v.17 n.3 Ciudad de La Habana Mayo-jun. 2001.

[5] Xilinx, The ISE® Reference Guide, Chapter 1.


[6] Mentor Graphics, ModelSim SE User's Manual.
[7] Rhoads, S. “MIPS Lite most MIPS opcodes”, Opencores, 2005.

También podría gustarte