Académique Documents
Professionnel Documents
Culture Documents
Índice General
Índice de figuras
Figura 5.10: a)Pipeline del aplicado de una máscara. b)Máscara. c)Volumen original.
d)Volumen con máscara aplicada. ................................................................................ 52
Figura 5.11: Histogramas a) Volumen original. b) Volumen normalizado. c) Volumen
normalizado y ecualizado. ............................................................................................ 53
Figura 5.12: Volumen procesado con filtros de ruido speckle (versión Matlab) ......... 54
Figura 5.13: Diagrama de actividades. a)Filtro de generación de ruido. b)Script de
Matlab. .......................................................................................................................... 55
Figura 5.14: Volumen procesado con filtro de ruido speckle (versión
OpenCV/Numpy) ......................................................................................................... 56
Figura 5.15: Comparación de los tiempos de ejecución de los filtros de speckle por
etapa.............................................................................................................................. 59
Figura 6.1: Diagrama de etapas del método de generación de speckle. ....................... 61
Figura 6.2: Volumen anatómico, corte transversal Abdominal. ................................... 62
Figura 6.3: Pipeline de preprocesamiento en ParaView. .............................................. 63
Figura 6.4: Máscaras. a)Conjunto de arterias. b)Vena porta hepática. c)Vena cava
inferior. ......................................................................................................................... 63
Figura 6.5: a) Histograma el volumen original. b)Histograma del volumen filtrado. .. 64
Figura 6.6: a)Corte superior del volumen original. b)Corte superior del volumen
filtrado. c)Corte inferior del volumen original. d)Corte inferior del volumen filtrado.64
Figura 6.7: Representación visual de la caída lineal. ................................................... 65
Figura 6.8: Kernel de PSF. a) Escala de grises. b) Escala de colores. ......................... 66
Figura 6.9: Diagrama de actividades de la etapa de generación de ruido. ................... 66
Figura 6.10: Multiplicación elemento por elemento entre el arreglo de caída lineal y
cada columna del corte anatómico. .............................................................................. 67
Figura 6.11: a)Corte sobre el volumen anatómico. b)Corte sobre el volumen de ruido
...................................................................................................................................... 67
Figura 6.12: a)Matriz de ruido. b)Representación visual de la función módulo
utilizando la matriz de ruido. ........................................................................................ 68
Figura 6.13: Matrices de ruido. a)Sin repetición. b)Textura del 20% del tamaño
repetida. c)Textura del 10% del tamaño repetida. ........................................................ 68
Figura 7.1: a,c)Dirección de la caída lineal en el método original. c,d)Dirección de la
caída lineal en el método propio................................................................................... 71
Figura 7.2: Ruido speckle. a)Método original. b)Método propio. c) Imagen de
ultrasonido real. ............................................................................................................ 71
7
Índice de tablas
Tabla 2.1: Velocidad del sonido en materiales ............................................................. 15
Tabla 2.2: Impedancia acústica en materiales. ............................................................. 17
Tabla 2.3: Coeficientes entre dos medios. .................................................................... 19
Tabla 4.1: Comparación entre métodos de creación de filtros. .................................... 39
Tabla 5.1: Métodos internos de la clase "vtkPythonProgrammableFilter". ................. 42
Tabla 5.2: Elementos del archivo de configuración. .................................................... 44
Tabla 5.3: Tipos de parámetros. ................................................................................... 45
Tabla 5.4: Tiempos en filtro de speckle versión Matlab. ............................................. 57
Tabla 5.5: Resultado del filtro de speckle versión OpenCV/Numpy. .......................... 58
Tabla 7.1: Especificaciones de la computadora utilizada para las pruebas. ................. 69
Tabla 7.2: Resultados obtenidos utilizando el método original y el propio. ................ 72
Tabla A.1: Parámetros de filtros implementados con "PV Filter Creator" .................. 79
8
Capítulo 1: Introducción
1.1. Antecedentes
El ultrasonido es una modalidad de imagen muy utilizada en la actualidad para el
diagnóstico y tratamiento de diversas enfermedades tales como las cardiovasculares, una
de las mayores causas de muerte en el mundo. La Organización Panamericana de la Sa-
lud publicó un artículo en el año 2011 [1] que muestra que un 30% de todas las muertes
que se producen a nivel mundial cada año son atribuibles a enfermedades cardiovascula-
res. En la Encuesta Nacional de Factores de Riesgo realizada en 2009 en Argentina [2]
se señala que sobre un total de 304.525 muertes ocurridas, 89.916 fueron provocadas por
causas cardiovasculares (aproximadamente 30%). La sonografía abdominal focalizada
en trauma (FAST) es una técnica basada en ultrasonido utilizada por cirujanos para el
examinado del fluido pericárdico y peritoneal en la zona del torso y el diagnóstico de
neumotórax en los pulmones en pacientes afectados por trauma. La Organización Mun-
dial de la Salud (OMS) informa que el traumatismo ocasiona más de cinco millones de
muertes al año en países en desarrollo. Esta es una cifra muy alarmante que se puede
comprar con las muertes provocadas por el VIH/SIDA, la malaria y la tuberculosis com-
binadas [3]. Entre otra de sus aplicaciones, el ultrasonido es la herramienta más utilizada
para el estudio de fetos durante el embarazo para la detección de anormalidades congéni-
tas, desórdenes del crecimiento fetal y anormalidades de la placenta [4].
necesario que el personal reciba un extenso entrenamiento con el fin de que adquiera la
experiencia requerida en el uso de los dispositivos de ultrasonido [7].
1.2. Motivación
Los simuladores de ultrasonido tienen como meta recrear de manera realista el
proceso de captura de imágenes de ultrasonido. Para ello necesitan disponer de un mode-
lo digital que pueda representar la anatomía de un paciente real. Un proceso de acondi-
cionamiento se le debe aplicar al modelo para que se encuentre apto para la simulación.
que en una computadora estándar en el año 2008, la simulación de una sola imagen
tomaba aproximadamente 20 minutos. Para realizar esto mismo sobre una imagen B-
mode el tiempo de cómputo se aproximaría a 2 días [6]. Esto se realiza en etapa de
preprocesamiento y por ello el tiempo no es un factor limitante, pero si se quisiera hacer
en tiempo real resultaría imposible. D'Amato et al. [25] propone un algoritmo de
recreación de ruido speckle que reduce en un gran porcentaje al tiempo requerido por
Field II. El simulador de ultrasonido SIMECO utiliza esa técnica en el preprocesamiento
del volumen. Sin embargo, el ruido speckle depende del punto de captura, mientras que
su precálculo asume un punto de captura fijo, produciendo así una recreación poco
realista. Surge así la idea de implementar la técnica sobre este simulador SIMECO en
tiempo real para lograr una representación más precisa de este ruido y por ende aumentar
la calidad de la imagen de ultrasonido resultante.
1.3. Objetivos
El trabajo se divide en dos partes. En la primera el objetivo es construir una
herramienta para la creación de filtros de pre-procesamiento que se pueda complementar
con el software de visualización 3D ParaView. Actualmente esta tarea se puede realizar
dentro de ParaView pero no cuenta con la capacidad de modificar parámetros de los fil-
tros desde la interfaz gráfica, por lo que se deben recurrir directamente al código fuente
de éste. Por lo tanto la característica principal que debe tener la herramienta es poder
asignarle a los filtros distintos tipos de parámetros modificables.
Capítulo 2: Ultrasonido
El uso del ultrasonido en diagnóstico médico y en el análisis de órganos y tejidos
ha ido evolucionando en las últimas décadas. Los sistemas modernos de ultrasonido tie-
nen la capacidad de generar mediciones detalladas del movimiento de la sangre en las
venas y de la rigidez de tejidos y permiten la visualización de estructuras tridimensiona-
les en movimiento. La aplicación del ultrasonido ha ido mejorando gracias al avance de
la tecnología y de su aceptación como herramienta para el diagnóstico médico. En sus
comienzos se utilizaba para simples mediciones de dimensiones anatómicas, como el
diámetro biparietal. Hoy en día se realizan para la visualización detallada de anormali-
dades fetales [9], detección de pequeños cambios en la textura de los tejidos y estudios
detallados del flujo de sangre en las arterias.
Para formar una imagen B-mode, se utiliza un transductor como fuente de ondas
de ultrasonido. Éste es colocado sobre la región de interés, por ejemplo en la piel en la
región del abdomen. Allí emite una secuencia de pulsos hacia el interior del cuerpo. Es-
tos pulsos viajan entre los tejidos y son reflejados y dispersados, generando así ecos que
viajan de vuelta hacia el transductor, donde son capturados. Estos ecos son utilizados
para crear la imagen.
Cuando un pulso viaja a través de los tejidos del cuerpo, se encuentra con inter-
faces y scatterers que generan los ecos. Luego de la transmisión de un pulso, el trans-
ductor cambia a modo de recepción para escuchar los ecos retornantes. Al principio del
procedimiento, los ecos provienen de los objetivos más cercanos al transductor. De ma-
nera secuencial, se reciben ecos de mayor profundidad hasta el máximo deseado. Esta
secuencia se la conoce como pulso-eco[10].
En la Tabla 2.1 muestra valores de velocidad del sonido en distintos materiales inclu-
yendo tipos de tejido humano.
Hígado 1578
Riñón 1560
Fluido amniótico 1534
Grasa 1430
Tejido suave 1540
Agua 1480
Hueso 3190-3406
Aire 333
Las velocidades para los tejidos humanos resultan ser lo suficientemente simila-
res como para que en la modalidad B-mode se asuma un valor promedio de 1540 m/s,
sin introducir errores o distorsiones en la imagen. La velocidad en el aire es mucho me-
nor debido a su baja rigidez, en cambio en el hueso es mucho más alta por lo que la ve-
locidad también lo es [13].
Las técnicas de ultrasonido se basan en poder medir el eco que retorna luego de
enviar una onda a través de un medio. Si se conoce la velocidad de propagación del teji-
do que se está investigando, se puede obtener la distancia a la cual se produce la interac-
ción en la cual se produjo el eco. Las características de la señal que retorna otorgan
información sobre la clase de interacción y por ende pueden dar indicaciones del tipo de
medio en el que ocurrió.
Combinando esta ecuación con la de la velocidad del sonido del medio, resulta lo si-
guiente:
(2.4)
𝑧 = 𝜌𝑣
lazos fuertes entre ellas, modelando un material con alta rigidez. Si se le aplica una cier-
ta presión por parte de una onda a una masa del medio (a), ganará aceleración fácilmente
y se moverá, sin sufrir resistencia por parte de los lazos débiles. El material posee baja
impedancia acústica cuando las partículas se mueven en gran medida al recibir presión.
En cambio, en el medio (b), las masas de gran tamaño se aceleran menos al aplicarse una
presión dada y su movimiento sufre resistencia por parte de los lazos fuertes. La veloci-
dad de las partículas en este caso es más baja, por lo que se dice que el material posee
mayor impedancia acústica. En la Tabla 2.2 se pueden apreciar valores de impedancia
para distintos materiales:
z
Material
(kg m-2 s-1)
Hígado 1.66 x 106
Riñón 1.64 x 106
Sangre 1.67 x 106
Grasa 1.33 x 106
Agua 1.48 x 106
Aire 430
Hueso 6.47 x 106
Cuando una onda de sonido que viaja a través de un medio se encuentra con una
interfaz adyacente a otro medio de impedancia acústica diferente, una parte de la onda es
transmitida en el segundo medio y otra es reflejada hacia el primer medio (Figura 2.4).
La amplitud de las ondas transmitidas y reflejadas dependen del cambio que haya de
impedancia acústica en el proceso.
donde 𝑝𝑟 y 𝑝𝑖 son la amplitud de las presiones de las ondas reflejadas e indecentes res-
pectivamente. 𝑧1 y 𝑧2 son las impedancias acústicas de los medios involucrados. En la
Tabla 2.3 se muestran valores de coeficientes correspondiente a ciertas interfaces que
pueden encontrarse dentro del cuerpo humano. Para gran parte de las interfaces entre
tejidos suaves, el coeficiente es menor a 0.01(1%). Esta característica es de suma impor-
tancia para imágenes de ultrasonido ya que significa que la mayor parte de energía en los
tejidos suaves es transmitida en gran parte permitiendo alcanzar interfaces más profun-
das donde se producirán los ecos. En las interfaces entre tejido suave y aire, por ejemplo
en los pulmones o en las bolsas de gas, el coeficiente es de 0.999 (99.9%), es decir que
no se podrán generar ecos más allá de esas interfaces. Esta es la razón por la cual es im-
portante remover el aire entre la piel del paciente y el transductor (la fuente del ultraso-
nido) para garantizar la transmisión de las ondas. Entre el tejido suave y el hueso el
coeficiente es de 0.5(50%), por lo que resulta dificultoso obtener ecos más allá de estruc-
turas como las costillas.
𝐼𝑡 = 𝐼𝑖 − 𝐼𝑟
(2.7)
2
𝑇𝑖 = 1 − 𝑅𝐴
Interfaz RA
Hígado-riñón 0.006
Riñón-bazo 0.003
Sangre-riñón 0.009
Hígado-grasa 0.11
Hígado-hueso 0.59
Hígado-aire 0.999
2.3.2. Refracción
Cuando una onda atraviesa una interfaz donde la velocidad del sonido se incre-
menta, el ángulo a la normal también lo hace. Por el contrario, cuando la onda experi-
Capítulo 2: Ultrasonido 20
Figura 2.5: Fenómeno de refracción de una onda que incide en una interfaz.
2.3.3. Atenuación
Cuando se dan grandes niveles de atenuación, los ecos que retornan hacia el
transductor desde grandes profundidades son débiles. Por ello, para órganos de gran ta-
maño o muy profundos se utilizan frecuencias bajas, entre 3 y 5 MHz (por ejemplo áreas
abdominales). Las altas frecuencias se asocian con longitudes de ondas más cortas, lo
que lleva a obtener mejores resoluciones de imagen, por lo que para objetivos pequeños
o superficiales se suelen utilizar frecuencias altas de 10 a 15 MHz. Para casos extremos
como la piel o los ojos se utiliza de 15 a 30 MHz [12]. Por lo tanto, según la zona de
análisis, el operador debe elegir la frecuencia más óptima que asegure la mejor resolu-
ción pero que a su vez permita recibir ecos de la profundidad requerida.
2.3.4. Scattering
La reflexión ocurre en interfaces de gran tamaño como pueden ser las que se en-
cuentran entre los órganos del cuerpo, donde hay un cambio significativo en la impedan-
cia acústica. Dentro de la parénquima de la mayor parte de los órganos, existen pequeñas
imperfecciones, llamadas scatterers, que producen variaciones de las propiedades acús-
ticas, y por ende reflexiones de las ondas. Estos poseen un tamaño menor a la longitud
de la onda. Este tipo de reflexiones no actúan de la misma manera que las descriptas
para los casos de grandes interfaces, como los casos mencionados anteriormente. Cuan-
do una onda de ultrasonido incide en un scatterer, la onda es dispersada en distintos
ángulos (Figura 2.6 a y b). La energía dispersada por un scatterer es mucho menor que
la resultante de una reflexión producida por una interfaz de tamaño mayor a la longitud
de onda. Esta energía está relacionado con el tamaño del scatterer y la longitud de onda.
Figura 2.6: a)Onda reflejada al incidir en una interfaz. b)Onda dispersada al incidir en un
scatterer.
rario. En conjunto con esto, sólo una persona puede realizar la práctica a la vez, mientras
los demás esperan hasta que el paciente y/o el sistema de US estén disponibles.
por una serie de imágenes adquiridas a través de un estudio de US real realizado especí-
ficamente para ello. Lo que se almacena es una réplica de un estudio real tomado desde
varias posiciones y ángulos. Los resultados de la simulación son realistas siempre y
cuando el operador mantenga posiciones similares a las cuales se utilizaron para realizar
el estudio original. Si se opta por alejarse de dichas posiciones, la imagen final pierde
realismo. Esto se debe a que los efectos dependientes del posicionamiento son recreados
de manera estática antes de la simulación [5].
Por otro lado, Shams et al. [8] propone extraer los datos de los pacientes a través
de imágenes de CT. En base a ellas se genera una imagen de scattering de posición fija
mediante un software llamado Field II [23,24]. Este programa genera patrones de scatte-
ring tomando como entrada la ubicación y la fuerza de los scatterers. Entre 200.000 y
1.000.000 scatterers deben ser definidos para este proceso que aproximadamente puede
tomar hasta 20 minutos. Si se quisieran almacenar más vistas, el procesamiento podría
llegar a durar varios días. Por esta razón, la generación de scattering se limita a una posi-
ción fija.
A partir de los datos de entrada y sus derivados se realiza una serie de transfor-
maciones y cálculos en tiempo de ejecución que dan como resultado la imagen de US
simulada. Este proceso es descrito por el modelo de simulación. El tipo y la complejidad
de procesamiento depende en gran parte de la fuente de datos que se tenga. En algunos
casos la simulación puede consistir en tareas complejas de recreación de fenómenos físi-
cos como la reflexión y el scattering. En otros, puede limitarse solamente a extraer partes
de la información de entrada.
3.3. SIMECO
SIMECO es un simulador de ultrasonido desarrollado en el instituto PLADEMA
de la Universidad Nacional del Centro de la Provincia de Buenos Aires como parte de un
proyecto de investigación en colaboración con el Hospital El Cruce de Alta Complejidad
de Florencio Varela. Los investigadores involucrados son: DSc. Juan D’Amato, DSc.
Ignacio Larrabide, Ing. Pablo Rubí, Ing. Ezequiel Fernández Vera, Dr. Joaquín Larrabi-
de, DSc. Mariana del Fresno, DSc. Rosana Barbuza, DSc. Marcelo Vénere.
Capítulo 3: Simulación de ultrasonido 28
Rubi et al. [26] presenta un modelo acústico que puede ser usado en tiempo real
para la simulación de reflexiones, atenuación, sombras y efectos de oclusión dependien-
tes de la vista, siendo las características principales en una imagen de US. El método
utiliza como modelo de entrada una imagen médica volumétrica, como puede ser un CT,
y emula el efecto de las ondas acústicas atravesando diferentes tejidos mediante una
técnica de ray-casting.
El efecto de un rayo de ancho finito producido por una arreglo de elementos del
transductor es modelado integrando las intensidades de las reflexiones percibidas a una
profundidad específica utilizando una “función de ventana” adecuada. Por lo tanto, para
un arreglo lineal se puede escribir
(3.4)
𝑥+1
𝐼𝑖 2 𝑥
𝐼𝑅 𝑥, 𝑦 = 𝛼𝑅 𝑢, 𝑦 𝑟 𝑢, 𝑦 𝑛 𝑢, 𝑦 𝜔 𝑢 𝑑𝑢
𝐼0
𝑥−1
El origen del ruido speckle puede ser evaluado modelando la reflexión con un
número finito de scatterers. Éstos modifican la señal de manera coherente, incrementan-
do o decrementando la fuerza de la señal, dependiendo en la fase relativa de cada scatte-
rer. El ruido speckle proviene de estos patrones de interferencia constructiva y
destructiva, representándose como puntos brillantes y oscuros en la imagen. [11]
donde 𝑦 ∗ es el píxel con el ruido aplicado en el medio de una ventana, 𝑥 ∗ es el píxel sin
ruido, 𝑛∗ el ruido multiplicativo y 𝑎∗ el ruido aditivo. El efecto que produce este último
en los sistemas de US puede ser despreciado, por lo que la fórmula puede ser re escrita
de la siguiente manera:
(3.7)
∗ ∗ ∗
𝑦 ≈𝑥 𝑛
Capítulo 4: Herramientas de
preprocesamiento
El pre-procesamiento en SIMECO es una etapa en la que se preparan un conjunto
de estructuras de datos derivadas del volumen anatómico. Ésta se realiza previo a la eje-
cución en tiempo real de la simulación. El conjunto de tareas se realiza por fuera de SI-
MECO utilizando scripting en lenguaje Python junto a la biblioteca VTK y a la
plataforma Matlab. En este capítulo se describe el desarrollo de una herramienta com-
plementaria con ParaView que facilita la creación y visualización de lo scripts enfocados
en el pre-procesamiento de información.
gran cantidad de documentación [32] de todas sus clases y métodos, variedad amplia de
ejemplos prácticos [33] y dos libros oficiales [29,34] en los que se provee de toda la in-
formación relevante de la plataforma y como debe ser utilizada correctamente para la
creación aplicaciones exprimiendo al máximo todo su potencial. VTK está construido en
base a una arquitectura que posee un núcleo compilado en C++ envuelto por una capa
compuesta por un intérprete de lenguajes, como Python o Java, que le permiten comuni-
carse directamente con el núcleo. Esto brinda la posibilidad de utilizar esta biblioteca no
solo con su lenguaje principal sino incluso con otros, sin perder la eficiencia de uso de
CPU y memoria que C++ otorga. VTK soporta una gran variedad de algoritmos de vi-
sualización incluyendo métodos para escalares, vectores, tensores, texturas y volúmenes.
Cuenta con técnicas avanzadas de modelado como modelado implícito, reducción de
polígonos, suavizado de mallas y contorneado y métodos que permiten combinar algo-
ritmos y datos de tipo bidimensionales y tridimensionales [34].
4.2. ParaView
ParaView es una herramienta multiplataforma de análisis y de visualización de
datos científicos. Es una aplicación tanto de uso general como especializado con una
arquitectura distribuida, que permite que pueda ser utilizada en una computadora de es-
critorio o remota con la posibilidad de cómputo paralelo. Posee un framework extensible
acompañado con un conjunto de herramientas y bibliotecas para varias aplicaciones co-
mo scripting en Python o la visualización web a través de ParaViewWeb. Cabe destacar
que el proyecto ParaView es open-source (licencia BSD, commercial software friendly)
y está respaldado por una comunidad activa de desarrollo de software.
El flujo de trabajo de ParaView está basado en este modelo. Los datos son intro-
ducidos al sistema mediante un lector de archivos o son generados. En su extenso paque-
te de herramientas, ParaView incluye lectores para una gran cantidad de formatos de
archivos usados comúnmente en el ambiente computacional científico como por ejemplo
DICOM, CSV, VTK e imágenes como JPEG y PNG. La información pasa a través de
filtros existentes o se pueden crear manualmente. Finalmente se visualiza el resultado
por pantalla o se guarda en un archivo en formatos como los de entrada [37,38].
La manera por la cual el usuario puede controlar los tres tipos de módulos que
componen el modelo es mediante la interfaz gráfica de usuario (GUI). Esta interfaz fun-
ciona como un frente gráfico de la plataforma y está diseñada para facilitar la creación
de pipelines de procesamiento. Ésta provee de paneles para inspeccionar y modificar los
filtros, cambiar parámetros, seleccionar datos, generar renderings, entre otras funcionali-
dades.
La GUI está compuesta por componentes como menús, paneles, barras de herra-
mientas y el Viewport, como se puede observar en la Figura 4.5. Los menús proveen del
conjunto de opciones típicas de una aplicación de escritorio incluyendo el guardado y
cargado de archivos(menú “File”), las acciones de deshacer y rehacer (menú “Edit”) ,
intercambiar la visibilidad de los paneles (menú “View”), entre otros. Además, se en-
cuentra la opción de generar datos de varios tipos (menú “Sources”) y de agregar filtros
(menú “Filters”). El menú “Tools” da acceso a características avanzadas, dentro de las
cuales se pueden destacar “Plugin Manager” y “Python Shell”
Los paneles son los encargados de brindar una vista sobre el estado de la aplica-
ción. Uno de ellos es el “Pipeline Browser” que permite inspeccionar el pipeline de vi-
sualización y realizarle modificaciones. Este es el más importante y es una de las
razones por la cual se ha elegido ParaView como la plataforma de preprocesamiento.
“Properties” e “Information” brindan la capacidad de modificar y observar los paráme-
tros y propiedades de los filtros. “Color Map Editor” corresponde al mapa de colores
utilizado para la representación de los datos que produjo el pipeline. En la sección de los
filtros creados se mostrarán distintas configuraciones armadas mediante este panel. Dis-
tintas configuraciones de pipelines y filtros serán mostradas en las siguientes secciones
para ejemplificar la utilidad de dichos paneles.
ParaView incluye una gran cantidad de tipos de filtros y lectores, los cuales
fueron escritos en C++ por los desarrolladores del proyecto ParaView y VTK, y
compilados en ejecutables y bibliotecas runtime. Una de las características principales de
esta plataforma es la capacidad de personalización, permitiendo a los usuarios insertar su
propio código dentro de la aplicación con diversos fines como leer un formato de
archivo no soportado de forma nativa o la ejecución de un algoritmo específico. Para
Capítulo 4: Herramientas de preprocesamiento 38
ello, ParaView posee una infraestructura de plugins que permite que los usuarios crear
funcionalidad propia y puedan agregarlos al sistema. Existen dos tipos de plugins, en
formato DLL y XML. El primero de ellos corresponde a las bibliotecas de enlace
dinámico (Dynamic Link Library) que se basan en código C++ compilado en forma de
DLL. El formato XML se enfoca en código escrito en lenguaje Python, que a diferencia
del tipo anterior, no se compila y es interpretado. Los plugins son muy flexibles en
cuanto a la funcionalidad, sin embargo, el proceso de creación puede resultar tedioso. Se
requiere del uso de herramientas complejas para su elaboración y conocimiento de una
extensa cantidad de parámetros a configurar de las API’s de C++ y Python, provistas por
ParaView y VTK.
En ParaView los filtros pasan por un pipeline de ejecución que consta de tres
etapas en las que se ejecuta el script principal y otros dos secundarios. El script pertene-
Capítulo 4: Herramientas de preprocesamiento 39
Pipeline de Sólo
Todas las etapas Todas las etapas
ejecución "RequestData"
Personalización
Parámetros
Sólo
modificables Si Si
"OutputType"
por GUI
Configuración
Manual, gran canti- Manual, gran canti-
dad de parámetros dad de parámetros Automática,
Parámetros
deben ser configu- deben ser configu- excepto el
internos rados para la crea- rados para la crea- script
ción de la DLL ción del XML
Entradas: Los puertos por donde arriban los datos al filtro son el punto de conexión con
el exterior y son la fuente de información que será procesada por el algoritmo. Pueden
haber uno o más puertos de entrada.
Aquí se debe reunir todo lo que refiere a la configuración general del filtro, las
entradas y los parámetros personalizables. Para cada uno de estas categorías existen dis-
tintos elementos a los que se les debe asignar un valor con un formato específico. Cada
uno de ellos será desarrollado en la siguiente tabla:
Capítulo 5: Filtros en ParaView 44
Script
Descripción de la funcionalidad
documen-
Valor alfanumérico del filtro que es visualizada en
tation
la interfaz gráfica de ParaView
Tipo de paráme-
Descripción Interfaz Gráfica
tro
Luego de haber creado los filtros se deben seguir ciertos pasos para su uso dentro
de ParaView. El proceso comienza importación a ParaView, donde permanecerán dispo-
nibles de forma permanente. Luego se seleccionan y se agregan al pipeline, donde se
estructuran sus conexiones de entrada y salida. Por último se ejecuta y se visualizan los
resultados en el Viewport. A continuación se detallan cada una de las etapas.
Para que el filtro sea usado debe estar dentro del pipeline de procesado. Para ello
debe ser agregado, seleccionándolo dentro de las opciones en el apartado “Sources” en la
barra de herramientas. También puede ser buscado por su nombre mediante la opción
“Search” (Figura 5.4).
Finalmente resta la ejecución de los filtros. Para ello se deberá presionar el botón
“Apply” alojado en el panel “Properties”. Este pone en funcionamiento el pipeline de
ejecución y abre una ventana llamada “Output Window” donde se podrán visualizar to-
dos los mensajes de salida del intérprete (Figura 5.8). Esta ventana puede resultar de
utilidad para mostrar valores numéricos resultantes del procesamiento o mensajes de
alerta o error de ejecución.
Capítulo 5: Filtros en ParaView 49
El primero de los filtros creados es una fuente de datos. A partir de una dirección
otorgada por el usuario, el filtro carga en memoria un volumen de tipo vtk y lo transmite
por su canal de salida. Para ello se utiliza la clase "vtkStructuredPointsReader", provista
por la biblioteca VTK. Adicionalmente se le asigna un “nombre” (pasado por parámetro)
al volumen.
Este filtro tiene como fin desplazar los valores de las celdas de un volumen de
entrada en una cantidad determinada por un valor de corrimiento. Éste es pasado por
parámetro, puede ser negativo o positivo y es aplicado a cada una de las celdas pertene-
cientes al volumen de entrada. En la Figura 5.9 se puede ver el resultado del filtro en
relación al desplazamiento que sufrieron sus valores mínimo y máximo (offset=1024).
valor fijo en cada posición indicada. El valor puede ser pasado por parámetro por el
usuario (mask_value) o ser elegido automáticamente. Su implementación se basa en la
clase "vtkImageMask" que realiza la tarea de enmascarado. En la Figura 5.10 se observa
un pipeline creado con este filtro, la máscara y el resultado. Se presenta como caracterís-
tica especial la presencia de múltiples puertos de entrada, uno correspondiente al volu-
men a modificar y el otro a la máscara.
Figura 5.10: a)Pipeline del aplicado de una máscara. b)Máscara. c)Volumen original.
d)Volumen con máscara aplicada.
Este filtro efectúa el proceso de normalización sobre una entrada de datos. Este
proceso consiste en transformar un conjunto de datos con un rango de valores en otro
conjunto que posea un nuevo rango, manteniendo la relación de sus valores. Esta opera-
ción fue implementada mediante el uso de la biblioteca OpenCV que provee de un
método llamado “normalize” el cual recibe el conjunto de datos y el nuevo rango de va-
lores y devuelve el nuevo conjunto. Adicionalmente se realiza una ecualización del his-
tograma, proceso que consiste en distribuir los valores de manera uniforme dentro del
rango de valores. Esta modificación es opcional y puede ser configurada mediante el
parámetro “Hist_Eq”.
Capítulo 5: Filtros en ParaView 53
Figura 5.12: Volumen procesado con filtros de ruido speckle (versión Matlab)
Capítulo 5: Filtros en ParaView 55
Figura 5.14: Volumen procesado con filtro de ruido speckle (versión OpenCV/Numpy)
TOTAL 47,74
A simple vista se pueden identificar las dos primeras secciones como las raíces
del problema. No solo la ejecución del núcleo del algoritmo es costosa en tiempo, sino
que también lo es el método de exportación de datos al script de Matlab. Por lo tanto una
solución posible sería no trabajar con esa herramienta, empleando bibliotecas de Python
para realizar los cálculos de generación de speckle evitando la exportación de datos. Este
plan introduce la necesidad de re implementar el algoritmo e integrar al filtro la bibliote-
ca Numpy. En la Tabla 5.5 y en la Figura 5.15 se muestran los resultados junto a la ace-
leración obtenida con respecto a la primer versión del filtro.
Capítulo 5: Filtros en ParaView 58
TOTAL 3 15,93
55
50
45
40
35
30
25
20
15
10
5
0
Figura 5.15: Comparación de los tiempos de ejecución de los filtros de speckle por etapa.
60
La recreación dinámica del ruido tipo speckle se divide en 3 etapas (Figura 6.1).
En primer lugar se encuentra la etapa de preprocesamiento con ParaView donde se pre-
paran los modelos 3D aplicando distintos filtros. Ésta comparte características con la
versión de la generación de speckle en preprocesamiento. Luego, ya en el simulador, la
segunda etapa consiste en la creación de estructuras de datos y la asignación de valores,
así también como cálculos adicionales tales como los del kernel de la PSF. Finalmente la
última etapa corresponde al núcleo de la simulación, es decir, el ciclo en donde se gene-
ran las imágenes de ultrasonido que serán presentados al usuario. Allí es donde se deben
computar sólo las operaciones que dependan de factores que puedan cambiar al momen-
to de la simulación, como puede ser la posición del transductor.
pone ser el mismo que en el volumen anatómico. Luego, a esta porción de ruido se la
convoluciona con el kernel de la PSF y se aplica la fórmula de D'Amato et al. [25] des-
crita en el capítulo 3.
las celdas y su nueva distribución. Esto da lugar a un mayor contraste entre los valores
mejorando así la visibilidad de las distintas estructuras dentro del modelo. En la Figura
6.6 a y c se observan dos cortes del volumen original donde las estructuras internas del
cuerpo no se diferencian demasiado entre órganos, huesos y el resto. En cambio en Figu-
ra 6.6 b y d donde se muestran dos cortes del volumen filtrado se puede diferenciar cla-
ramente los órganos y huesos (representados en rojo) del resto del interior del cuerpo. En
color azul intenso se muestran las zonas de venas y arterias eliminadas por las máscaras
(Figura 6.6 b y d).
Figura 6.4: Máscaras. a)Conjunto de arterias. b)Vena porta hepática. c)Vena cava inferior.
Capítulo 6: Recreación dinámica de speckle 64
Figura 6.6: a)Corte superior del volumen original. b)Corte superior del volumen filtrado.
c)Corte inferior del volumen original. d)Corte inferior del volumen filtrado.
Capítulo 6: Recreación dinámica de speckle 65
siendo ℎ la altura del corte y 𝛼 el factor de caída. Este arreglo es multiplicado elemento
por elemento sobre las columnas de la matriz correspondiente al corte anatómico. En la
Figura 6.7 se muestra el cálculo y una representación visual de la caída lineal.
Como último paso de la segunda etapa se genera el kernel de PSF para la futura
convolución que se realizará. En la Figura 6.8 se presenta la representación visual del
kernel.
Capítulo 6: Recreación dinámica de speckle 66
Se comienza la etapa aplicando la caída lineal sobre el corte anatómico. Para ello
se multiplica elemento por elemento el arreglo de caída lineal con cada una de las co-
lumnas de la matriz correspondiente al corte anatómico (Figura 6.10). Así es como se
recrea el fenómeno de absorción de las ondas ultrasónicas que pierden intensidad en las
Capítulo 6: Recreación dinámica de speckle 67
zonas más profundas. En el capítulo 7 se realiza una análisis sobre los resultados visua-
les.
Figura 6.10: Multiplicación elemento por elemento entre el arreglo de caída lineal y
cada columna del corte anatómico.
Cada imagen de ultrasonido simulada se puede ver como un plano extraído del
volumen anatómico (Figura 6.11 a). Para obtener un plano determinado se utiliza como
parámetros la posición y el ángulo que indica el transductor. Esta misma técnica se em-
plea para obtener el plano de la matriz de ruido (Figura 6.11 b). De esta manera se logra
disponer siempre del mismo ruido para cada toma en particular, simulando el efecto del
patrón de ruido speckle propio de los tejidos.
Figura 6.11: a)Corte sobre el volumen anatómico. b)Corte sobre el volumen de ruido
Capítulo 6: Recreación dinámica de speckle 68
Esto significa que debe haber una matriz de ruido con las mismas dimensiones
del volumen anatómico. El almacenamiento y las operaciones con matrices resultan cos-
toso en términos de memoria y tiempo respectivamente. Por ello se utiliza una matriz de
menor tamaño que la ideal, junto a una función módulo para obtener los planos (Figura
6.12). Se debe tener en cuenta que las dimensiones no deben ser demasiado pequeñas
para que no se produzca un efecto visual de textura repetida en la imagen. A modo de
ejemplificación, en la Figura 6.13 se puede observar cómo a medida que se disminuyen
las dimensiones de la matriz se acrecienta el efecto visual indeseado de textura repetida.
El plano de ruido es convolucionado con el kernel de PSF [39].
Por último en esta etapa, se aplica la Ecuación 3.10 para generar la imagen de
ultrasonido con el ruido speckle aplicado. En el siguiente capítulo se analizan los resul-
tados de este método con respecto a las mejoras de tiempo y calidad visual obtenidas.
Figura 6.13: Matrices de ruido. a)Sin repetición. b)Textura del 20% del tamaño repetida.
c)Textura del 10% del tamaño repetida.
69
7.3. Visualización
El segundo objetivo de este trabajo fue implementar un método de recreación de
ruido speckle en tiempo real para mejorar la calidad de la imagen de ultrasonido. Para
ello se tomó como punto de comparación el método que utiliza SIMECO para la recrea-
ción del ruido. Éste se desarrolla en forma de preprocesamiento antes de la ejecución.
Por ende, los efectos dependientes de la posición y ángulo del transductor no son recrea-
dos de la manera más fiel. El método propuesto tiene como fin abordar estos problemas
y aquí se presentan los resultados.
La absorción es un fenómeno físico que sufren las ondas de ultrasonido que pro-
voca la pérdida de su intensidad. En la imagen de ultrasonido este efecto se puede obser-
var como un oscurecimiento en las zonas inferiores que se produce en la misma
dirección en la que apunta el transductor. Para recrear este efecto, en los dos métodos, se
utilizó una función de caída lineal de intensidad de la imagen. En el método original no
se logra que la dirección de la caída lineal se mantenga acorde a la del transductor para
todos los puntos de observación que puede tener el volumen anatómico. Sucede que para
ciertas tomas la dirección de la caída es perpendicular a la del transductor (Figura 7.1 a y
c). Por el contrario, en el método propio se recrea correctamente el efecto como se ob-
serva en la Figura 7.1 b y d, donde la dirección de la caída se mantiene igual a la del
transductor en todas las tomas.
Figura 7.2: Ruido speckle. a)Método original. b)Método propio. c) Imagen de ultrasonido
real.
Capítulo 7: Análisis de resultados del speckle dinámico 72
7.4. Rendimiento
El segundo aspecto a analizar de los resultados obtenidos es el rendimiento. Lo-
grar mejorar la calidad de la imagen de ultrasonido es fundamental, pero se debe tener en
cuenta el costo computacional que eso conlleva. El método implementado introdujo pro-
cesamiento adicional en la etapa de carga de estructuras. Allí se crearon la matriz de
ruido, el arreglo de caída lineal y el kernel de PSF para la convolución. Luego en el ciclo
de recreación se incorpora la convolución del ruido blanco con el kernel y las fórmulas
para aplicar la caída lineal y el ruido sobre el corte anatómico.
Por último, cabe destacar que todo el procesamiento del simulador es realizado
en CPU. Por esta razón los cuadros por segundo resultantes fueron bajos en comparación
al estándar de 30 cps. La implementación en GPU es una solución posible gracias al gran
poder de cómputo y nivel de paralelización que éstas poseen.
74
Capítulo 8: Conclusiones
La modalidad imágenes de ultrasonidos es fundamental para el diagnóstico médi-
co y su uso en la última década ha ido aumentando en gran parte de las ramas de la me-
dicina. Sin embargo, la interpretación de las imágenes de ultrasonido no es una tarea
sencilla. Debido a distintos factores físicos se produce una degradación en la imagen,
por ejemplo, por el ruido tipo speckle, y esto incrementa la dificultad de lectura de la
imagen por parte del usuario. Adicionalmente, el proceso de captura y la configuración
requiere de gran experiencia para ser exitosa. Por ello el entrenamiento en esta modali-
dad es fundamental. Sin embargo no resulta sencillo ya que existen factores limitantes
como el tiempo, la disponibilidad de pacientes o la rareza de los casos. De esta manera
surgen los simuladores de ultrasonido que eliminan la mayor parte de las restricciones
descritas.
Trabajos Futuros
La herramienta para la creación de filtros fue diseñada como una aplicación por
fuera de la plataforma de ParaView, donde luego los filtros son cargados para la genera-
ción de los pipelines de pre-procesamiento. Dentro de ParaView se permite modificar el
código fuente del filtro, pero este no podría ser guardado como permanente. La única
forma que existe hasta el momento es volver a crear el filtro insertando el nuevo código
y cargarlo nuevamente. Para solucionar inconvenientes de esta clase, se podría desarro-
llar la herramienta dentro de la plataforma de ParaView. De esta manera se obtendría un
paquete de software integrado que mejoraría el flujo general de la creación de filtros y
pipelines. Otra alternativa podría ser implementar en la herramienta un sistema de pipe-
lines de filtros y visualización 3D, generando así una propia plataforma.
Bibliografía
[1] Organización Panamericana de la Salud, “Consulta regional: prioridades para la
salud cardiovascular en las Américas. Mensajes claves para los decisores”,
Ordúñez García P., Campillo Artero C., eds. Washington, D.C.: OPS (2011).
[2] Ferrante D., Linetzky B., Konfino J., King A., Virgolini M., Laspiur S., “En-
cuesta Nacional de Factores de Riesgo 2009: Evolución de la Epidemia de En-
fermedades Crónicas no Transmisibles en Argentina”, Rev Argent Salud
Pública, Vol. 2 – Nº6, pp. 34-41 (2011).
[3] Gosselin R., Spiegel D., Coughlin R., Zirkle L. "Los traumatismos: el problema
sanitario desatendido en los países en desarrollo". Boletín de la Organización
Mundial de la Salud; 87:246-246 (2009).
[4] Ewigman B., Crane J., Fredic D. "Effect of prenatal ultrasound screening on pe-
rinatal outcome". The New England Journal of Medicine. Vol.329 Num.12,
328:821-7 (1993).
[5] Kutter O., Shams R., Navab N., “Visualization and GPU-accelerated simulation
of medical ultrasound from CT images”, Computer Methods and Programs in
Biomedicine 94, 250-266 (2009).
[6] Kutter O., Karamalis A., Wein W., Navab N., “A GPU-Based Framework for
Simulation of Medical Ultrasound”, Medical Imaging 2009: Visualization,
Image-Guided Procedures, and Modeling, Proc. of SPIE Vol. 7261, 726117
(2009).
[7] Gjerald S., Brekken R., Nagelhus T., “Real-time ultrasound simulation for low
cost training simulators”, Medical Imaging 2010: Ultrasonic Imaging, Tomo-
graphy, and Therapy, Proc. of SPIE Vol. 7629, 76290B (2010).
[8] Shams R., Hartley R., Navab N., “Real-Time Simulation of Medical Ultrasound
from CT Images”, Medical Image Computing and Computer-Assisted Interven-
tion – MICCAI 2008, Lecture Notes in Computer Science, Vol. 5242, pp. 734–
741 (2008).
[9] Maul H., Scharf A., Baier P., Wüstemann M. "Ultrasound simulators: experien-
ce with the SonoTrainer and comparative review of others traning systems". Ul-
trasound in obstetrics & gynecology; 24: 581-585 (2004).
[10] Hoskins P., Martin K., Thrush A. "Diagnostic ultrasound : physics and equip-
ment". 2nd ed., Cambridge University Press, ISBN 978-0-521-75710-2 (2010).
[11] Loizou, C., Pattichis, C., "Despeckle filtering algorithms and software for ultra-
sound imaging". Morgan & Claypool Publishers, ISBN: 9781598296211
(2008).
Bibliografía 77
[12] World Health Organization. "Manual of diagnostic ultrasound: volumen 1". 2nd
ed., WHO Library Cataloguing-in-Publication Data, ISBN 978 92 4 154745 1.
[13] Macovski A. "Medical imaging systems". Prentice-Hall information and system
sciences, ISBN 0-13572685-9 (1983).
[14] Burckhardt C. "Speckle in Ultrasound B-Mode Scans". IEEE Transactions on
sonics and ultrasonics, Vol. SU-25, Nº1 (1978).
[15] Wagner R., Stephen S., Sandrik J., Lopez H. "Statistics of Speckle in Ultra-
sound B-Scans". IEEE Transactions on sonics and ultrasonics, Vol.30, Nº3
(1983).
[16] Jeong M., Kwon S. "Tissue stiffness imaging method ussing temporal variation
of ultrasound speckle pattern". IEEE Transactions on ultrasonics, ferroeletrics
and frequency control, Vol.50, Nº4 (2003).
[17] World Health Organization. "Training in diagnostic ultasound: essentials, prin-
ciples and standards: report of a WHO study group". WHO Library Cataloguing
in Publication Data, ISBN 92 4 120875 9 (1998).
[18] Lee K., Kim S., Choi S., Kim J. "Effectiveness of prenatal ultrasonography in
detecting fetal anomalies and perinatal outcome of anomalous fetuses". Yonsei
Medical Journal, Vol.39, Nº4, pp. 372-382 (1998).
[19] Terkamp, C., Kirchner, G., Wedemeyer, J., Dettmer, A. "Simulation of abdo-
men sonography. Evaluation of a new ultrasound simulator.," Ultraschall in der
Medizin; 24: 239-244 (2003).
[20] Salen P., O'Connor R., Passarello B., Pancu D. "Fast education: A comparison
of teaching models for trauma sonography". The Journal of Emergency Medici-
ne, Vol.20, Nº4, pp. 421-425 (2001).
[21] Knudson M., Sisley A. "Training residents using simulation technology: Expe-
rience with ultrasound for trauma". The Journal of Trauma: Injury, Infection,
and Critical Care, Vol.48, Nº4 (2000).
[22] UltraSim. http://www.medsim.com/ultrasim.html.
[23] Jensen J., Svendsen N. " Calculation of pressure fields from arbitrarily shaped,
apodized, and excited ultrasound transducers". IEEE Transactions on ultraso-
nics, ferroeletrics and frequency control, Vol39, Nº2 (1992).
[24] Jensen J., "Field: A program for simulating ultrasound systems," in [10th Nor-
dicbaltic Conference On Biomedical Imaging, Vol. 4, Supplement 1, Part 1],
351-353, Citeseer (1996).
[25] D'Amato J., Lo Vercio L., Rubi P., Vera E., Barbuzza R., Del Frezno M., La-
rrabide I. "Efficient scatter model for simulation of Ultrasound images from
Computed Tomography data". in [11th International Symposium on Medical In-
formation Processing and Analysis (SIPAIM 2015)]. SPIE Vol.9681, 968105
(2015).
[26] Rubi P., Vera E., Larrabide J., Calvo M., D'Amato J., Larrabide I. "Comparison
of real-time ultrasound simulation models using abdominal CT images". in
Bibliografía 78