Download Algoritmo de segmentación y cuantificación de la estenosis en

Document related concepts
no text concepts found
Transcript
Algoritmo de segmentación y cuantificación de la estenosis en estructuras vasculares
Juan Sebastián Ruiz – [email protected]
Ricardo Arcila Toro – [email protected]
El algoritmo que a continuación se plantea,
es una adaptación e implementación práctica
de la modificación del algoritmo MARACAS
para la cuantificación de la estenosis
publicada por Marcela Hernández en
conjunto con el laboratorio IMAGINE de la
universidad de los andes, y el laboratorio
CREATIS. Con base en el algoritmo
presentado a continuación se desarrollaron 2
módulos en python para la plataforma Slicer
3d mediante los cuales se implementó
efectivamente el algoritmo.
muchas mas acciones sean tomadas en
consideración. A partir de ese primer
algoritmo maracas, el grupo de investigación
imagine de la universidad de los andes
propuso una adaptación en las cuales se
tenia
en
cuenta
una
fase
de
preprocesamiento gráfico de manera que las
3 fases iniciales del algoritmo maracas
pudieran llevarse a cabo, y su resultado
tuviera una mayor precisión. A continuación
se puede observar el algoritmo propuesto
por el grupo Imagine:
El algoritmo maracas es un algoritmo de
análisis asistido por computadora de
resonancia magnética para angiografía, el
cual está basado originalmente en un
modelo que fue inicialmente diseñado para
segmentar una sola arteria en imágenes ARM
(angiografía por resonancia magnética); sin
embargo, el laboratorio IMAGINE de la
universidad de los andes realizó una
adaptación del mismo, de manera que se
tuvieran en cuenta las especificidades de las
imágenes TAC, así como la presencia de
bifurcaciones. El algoritmo MARACAS
originalmente esta comprendido por 3
etapas: extracción de la línea central,
segmentación del lumen arterial,
y
cuantificación de la estenosis. Los cuales, en
términos de alto nivel, son los pasos
necesarios para realizar la detección de
puntos anómalos; no obstante, la
implementación de estos pasos requiere que
Fig. 1- Modificación del algoritmo MARACAS
Se pueden observar 2 niveles de
procedimientos, procedimientos de bajo
nivel los cuales están enfocados a mejorar la
calidad de la imagen y presegmentarla, y la
segunda categoría son procedimientos de
alto nivel, los cuales están enfocados en
extraer la línea central de la arteria,
segmentar el lumen y cuantificar la
estenosis.
La
última
categoría
de
procedimientos hace parte del algoritmo
MARACAS original.
Dado que los algoritmos de segmentación
son
sumamente
susceptibles
a
degradaciones en la imagen y que las
imágenes CT son propensas al ruido, es
necesario agregar una etapa de filtrado al
algoritmo, en función de que los resultados
arrojados por este sean de mayor precisión.
En este caso particular se utilizó un filtro de
reducción de ruido Non-Local Means Filter.
En la etapa de realce de las estructuras y
presegmentación se basa en el principio de
que diferentes tipos de estructuras y tejidos
aparecen cada uno de manera diferente en
las imágenes de CT (siglas en ingles de
tomografía computarizada) de manera que
en esta etapa se definen umbrales con el
objetivo de clasificar los tejidos en las
siguientes clases: hueso/calcificaciones,
lumen, posible lumen los cuales son voxeles
(unidad equivalente a un pixel para una
imagen de 3 dimensiones) que típicamente
pertenecen a los bordes y no se pueden
clasificar en una categoría y por ultimo otros
tejidos.
Después de la etapa de realce y
presegmentación se encuentran las etapas
de procesamiento de alto nivel . Dado que
en la implementación actual del algoritmo no
se tienen en cuenta bifurcaciones, este paso
será obviado; sin embargo es de resaltar, que
hace parte de la propuesta de adaptación del
laboratorio imagine.
El algoritmo propuesto a continuación esta
diseñado para ser aplicado sobre imágenes
de tomografía axial computarizada, o
tomografía
computarizada,
obtenidas
después de la inyección de un radiocontraste
que realce el lumen arterial.
El algoritmo que se propuso como base de la
solución al problema que se desea resolver
en este proyecto de grado, es una
aproximación semi-automática a la detección
de anomalías cardiovasculares la cual consta
de 4 pasos:
Selección del área de interés:
La primera etapa contiene la parte no
automática del algoritmo, y es la selección de
la estructura de interés. Esta etapa consiste
en que el usuario selecciona la estructura
vascular que desea analizar. Esta etapa fue
implementada mediante el uso de la
herramienta de level tracing del módulo de
segmentación manual que posee el Slicer 3d:
Figura 2 – Selección de la estructura vascular
Segmentación del lumen arterial
La segunda etapa del algoritmo consiste en
segmentar el lumen arterial (o en su caso
general, la estructura), a partir del área
seleccionada en la primera etapa. Esto con el
fin de transformar los datos que se
encuentran en las imágenes CT, a datos
computarizados; más específicamente, a un
conjunto de voxeles (pixeles 3d) los cuales
puedan ser analizados y procesados por la
aplicación. Este paso se hace a partir de la
intensidad (representada en el nivel de gris
de los voxeles en las imágenes CT) de los
voxeles del área seleccionada. Para su
implementación nos encontramos con 2
opciones: la primera seria, realizar la
segmentación manualmente, corte a corte, y
esta sería recomendada únicamente cuando
la arteria (o estructura en su caso general) es
lo suficientemente pequeña, como por
ejemplo las arterias coronarias; la segunda
opción, la cual es utilizada para la ilustración
del algoritmo en este documento, seria
realizar la segmentación automáticamente, a
partir del área seleccionada, mediante el
módulo Robust Statistics Segmenter de la
plataforma Slicer3d, este método es
recomendado para la segmentación de
estructuras de mayor volumen, por ejemplo
la arteria aorta la disyuntiva con respecto a
los métodos de segmentación se presenta
gracias a que el nivel de precisión del módulo
Robust Statistic Segmenter es muy baja al
manejar áreas de tamaño mínimo. A
continuación es posible observar el resultado
de la etapa de segmentación del lumen
arterial, aplicada a la arteria aorta
previamente seleccionada.
Fig. 3 – Segmentación resultante de la arteria aorta vista
desde los planos: axial, sagital y coronal respectivamente
División del volumen segmentado
La tercera etapa del algoritmo consiste en
dividir el volumen 3d segmentado
anteriormente en sub-secciones. Este paso
del algoritmo fue pensado, de manera que el
procesamiento del volumen segmentado
fuera menos costoso, al disminuir el número
total de “áreas” que deben ser analizadas
por la aplicación. Este paso fue
implementado mediante el desarrollo de un
módulo de extensión, llamado “Pre-diagnosis
data treatment”, para la plataforma Slicer 3d
el cual se encarga de interceptar planos cuyo
vector normal sea paralelo a la línea central
de la estructura vascular. Actualmente en el
módulo se encuentra implementado el caso
particular para el análisis de la arteria aorta;
sin embargo, es posible extender este
módulo, de manera que pueda analizar otras
estructuras claves mediante el uso del
método de reformatización multi-planar del
Slicer 3d “Reformat”. La longitud de los
segmentos es parametrizable; sin embargo,
si la longitud de los segmentos es demasiado
grande, el algoritmo pierde precisión para
señalar la ubicación de las anomalías; y si es
muy pequeño, el algoritmo se vuelve
demasiado costoso en términos de
procesamiento; pueden llegarse a utilizar
segmentos hasta de 0,01 milímetros. Para la
implementación del caso particular de
análisis de la arteria aorta, se utilizaron
segmentos de 5 milímetros; elección basada
en datos experimentales. A continuación se
puede observar el resultado de la etapa de
división del volumen segmentado sobre el
análisis de la arteria aorta. Para el desarrollo
de este módulo se utilizaron a su vez, el
módulo de edición de segmentación del
Slicer 3d de manera que se pudieran
interceptar
los
anteriormente.
planos
mencionados
Fig. 4 – A la derecha, el ancho de una sub-sección. A la
izquierda, el resultado de la etapa de división del volumen
segmentado
Cuantificación de la estenosis, y
señalamiento de la sección anómala
La cuarta y última etapa del algoritmo
consiste en seleccionar el segmento con
menor volumen, y debido a que todos tienen
la misma longitud, las únicas variaciones
entre 2 sub-secciones arbitrarias se dan en el
área segmentada de las secciones cruzadas
cuyo plano sea normal a la línea central de la
arteria, la sub-sección de menor volumen,
será entonces la sub-sección en donde se
presente la mayor variación en el lumen de
la arteria. Al seleccionar dicha sub-sección
(sección más patológica), se compara con
otra cuyo volumen se acerque más al
volumen promedio de todos los segmentos
(sección de referencia) y se obtiene el
porcentaje de estenosis mediante la
siguiente fórmula:
En donde Sp representa el volumen de la
sub-sección más patológica, y Sr es la subsección de referencia. El grado de estenosis
determinado a partir de la anterior fórmula,
es un numero de 0 a 100 en donde 0
representa que no hay obstrucción, y 100
representa
un
vaso
completamente
obstruido. Este cuarto y último paso es
particular al caso de las arterias y las
anomalías que se den en ellas, y es
implementado mediante el desarrollo de un
módulo de extensión para la plataforma
Slicer 3d llamado “ACARDI”, el cual se
encarga de realizar la selección de la subsección más patológica, mostrar el
porcentaje de obstrucción obtenido a partir
de la fórmula ilustrada anteriormente, así
como mostrar el corte transversal en la vista
axial, en el cual se encuentra dicha
obstrucción. A continuación es posible ver el
resultado final del algoritmo aplicado a partir
de datos sintéticos que representan una
obstrucción de alrededor del 50% en la
arteria aorta.
Fig. 5 – Obstrucción Sintética desde las vistas axial y coronal
respectivamente
En los resultados ilustrados a continuación
(fig. 6) se pueden ver el porcentaje de
obstrucción en el segmento más patológico,
y las coordenada de la sección transversal en
donde se encuentra dicha obstrucción, desde
la vista axial.
Resultados
Para probar la solución propuesta en este
documento, se contó con el apoyo y
supervisión del doctor Alfonso Holguín, el
doctor Jose Luis Mera, y el doctor Juan
Camilo
Castro;
pertenecientes
al
departamento de imágenes diagnósticas de
la clínica fundación Valle del Lili; el cual
proveyó de 2 estudios CT coronarios, así
como los análisis realizados por los
especialistas nombrados, sobre cada estudio.
Fig. 6 – Resultados arrojados por el módulo de diagnóstico de
apoyo
Es posible obtener una representación en 3
dimensiones de la arteria segmentada, lo
cual puede facilitar su posterior análisis, a
partir del uso del módulo de creación de
volúmenes 3d del Slicer. A continuación se
puede ver su resultado.
Fig. 7 – Representación 3d del lumen de la arteria aorta, en
donde se puede apreciar una obstrucción.
Se obtuvieron errores porcentuales de
cuantificación de la estenosis entre 20% y
50% en los estudios CT reales provistos por la
fundación, y errores entre el 5% y el 20% en
los estudios CT con datos sintéticos. Con
respecto a la etapa de segmentación sobre
los estudios CT reales, se obtuvieron errores
entre el 20% y el 45% de voxeles que fueron
segmentados de más, o quedaron excluidos,
siendo el caso máximo, la segmentación de
las arterias coronarias, la cual presento un
error del
44.7% con respecto a la
segmentación de referencia realizada por el
especialista. Con respecto a los estudios CT
sintéticos, el error de segmentación fue
menor al 10%, lo cual permitió que la
aplicación arrojara una cuantificación más
precisa de la estenosis en esos casos.
Los resultados muestran que los errores
porcentuales de cuantificación por parte de
la solución ACARDI vs el análisis de los
especialistas, fueron mayores cuando la
diferencia entre el volumen segmentado
resultante de aplicar la 2 etapa del algoritmo
con respecto al volumen de referencia
tomado del análisis tradicional de los
estudios CT, era más grande. Esto puede
verse en los resultados obtenidos por
ACARDI al ser aplicada para cuantificar la
estenosis en una arteria coronaria; la razón
del error de segmentación es explicada en
este mismo documento, en la sección donde
se define la etapa de segmentación. De igual
manera, las secciones con estenosis fueron
particularmente difíciles de segmentar, dada
la gran variación de intensidades que se
presentan en ellas, gracias a la presencia de
calcificaciones. Es posible reducir los errores
del algoritmo, mediante mejoras que se
proponen en la sección de conclusiones de
este artículo.
Conclusiones
Se presenta en este documento, una técnica
de cuantificación de estenosis para estudios
CT. Esta técnica esta basada en las
publicaciones del grupo IMAGINE, y el grupo
de investigación biomédica de la universidad
de los andes, encabezados por Marcela
Hernández. Nuestros esfuerzos estuvieron
enfocados, en desarrollar una técnica de
cuantificación que fuera clara y de igual
manera sirviera como base para otras
personas del área de tecnologías de la
información.
A nuestro conocimiento, este es una de las
pocas aproximaciones al diagnóstico
automático de anomalías cardiacas; sin
embargo, la solución planteada esta pensada
para que sea mejorada con el menor
esfuerzo posible. Los módulos que fueron
desarrollados como parte de esta solución,
se encuentran escritos, pensando en la
legibilidad de su código, en lenguaje Python,
mediante el cual es posible acceder a los
otros módulos funcionales de la plataforma
Slicer 3d, así como a las librerías vtk, itk,
numpy; entre otras, las cuales forman el
núcleo de la plataforma como tal. De igual
manera, la plataforma ofrece una capa de
compatibilidad entre todos los módulos de la
aplicación de manera que puede accederse a
los módulos desarrollados como parte de
esta solución, e integrarlos en soluciones
para otras posibles áreas de la medicina. La
solución presentada, posee 2 dificultades. En
primer lugar, la falta de precisión de los
algoritmos de segmentación disponibles
tanto en la plataforma Slicer, como en otras
fuentes de uso investigativo; lo cual
introduce
un
error
directamente
proporcional al error porcentual del módulo
de segmentación utilizado. En segundo lugar,
la necesidad de que la selección de la
estructura vascular sea lo suficientemente
precisa, introduciendo así, el riesgo de que el
algoritmo falle, dado que la selección no
representa lo suficientemente bien, la
intensidad de la estructura a segmentar.
Pensando en estas principales dificultades, se
proponen como parte de la solución, estas
oportunidades de mejora:
Primero, es posible convertir este algoritmo,
de un proceso semi-automático, a un
proceso automático, mediante el desarrollo
de un atlas computarizado del sistema
cardiovascular, el cual sea compatible con el
módulo EMSegmenter plataforma Slicer 3d;
sin embargo, el desarrollo de atlas se
encuentra, por el momento, abierto
únicamente para los desarrolladores del core
del Slicer 3d y el na-mic kit; no obstante, se
abrirá en un futuro cercano. De igual
manera, el algoritmo puede ser extendido,
para que tenga en cuenta los puntos de
bifurcación, de manera que pueda ser
extendido para que pueda ser aplicado a las
arterias coronarias, así como al punto de
bifurcación de la carótida. Otra de las
posibles mejoras que se identificaron, fue la
del desarrollo de un módulo de
segmentación, el cual posea una mayor
precisión; pensando en esto, el algoritmo fue
diseñado de manera que pudieran
reemplazarse, o mejorarse, los módulos que
implementan cada uno de sus pasos, sin
afectar a los demás, ni alterar el
funcionamiento correcto del mismo.
Si bien la plataforma Slicer 3d actualmente
no cuenta con el aval para su uso clínico, es
una muy buena base para implementar y
probar algoritmos, los cuales son productos
de proyectos de investigación que utilicen en
imágenes diagnósticas; dada la amplia
documentación, metodología de desarrollo,
comunidad desarrolladora, así como
herramientas y componentes que facilitan
las tareas anteriormente nombradas.