Modelo Dinámico para la Reconstrucción del Corazón Humano Antonio Susín1 Oscar García2 1. Departamento de Matemática Aplicada 1. Universitat Politécnica de Catalunya. Avda. Diagonal 647, 08028 Barcelona. Telf. 934.017.781 Fax: 934.016.913. e-mail: [email protected]. 2. CITeM - Centro de Integración Tecnológica y Multimedia. Ingeniería-Arquitectura La Salle, Universitat Ramon Llull. C/ Quatre Camins 2, 08022 Barcelona. Telf. 932.902.442. Fax: 932.902.420. e-mail: [email protected]. Resumen Este artículo introduce un modelo de recuperación de la superficie del ventrículo izquierdo del corazón utilizando imágenes médicas (SPECT). Partiendo de las imágenes del ventrículo izquierdo de un paciente determinado, se reconstruye el aspecto que el órgano presenta en realidad, es decir en 3 dimensiones. La principal característica es que se trata de un modelo dinámico planteado a partir de la evolución de una malla triangularizada que es atraída hacia los contornos de interés mediante la acción de un campo vectorial de tipo gradiente. Todo el modelo está planteado para reaccionar ante la influencia de las fuerzas internas y externas que se incluyan. De esta manera, su evolución se plantea directamente en términos de las leyes de la dinámica newtoniana. Las técnicas numéricas de integración utilizadas permiten acelerar los tiempos de cómputo que son necesarios para avanzar hacia la posición de equilibrio que se corresponde con los contornos que se quieren obtener. Introducción La reconstrucción de un órgano del cuerpo humano suele hacerse a partir de las secciones 2D obtenidas con equipos de diagnostico médico como la Tomografía Computerizada (CT) y las Imágenes de Resonancia Magnética (MRI). Disponer de un modelo 3D reconstruido a partir de los datos de un determinado paciente puede tener distintas aplicaciones como la ayuda en el diagnóstico médico, la realización de simulaciones en la planificación de operaciones, el adiestramiento de los estudiantes de medicina, etc. En la creación de estos modelos 3D a partir de los datos volumétricos en muchos casos se ha optado por un proceso manual utilizando software de procesamiento de imágenes. Este proceso puede ser muy lento además de requerir conocimientos de tipo médico y mucha experiencia. Por razones obvias, es preferible contar con un proceso de segmentación automática que permita la reconstrucción del modelo 3D de forma rápida y con la mayor precisión. En el caso de determinadas partes del cuerpo, como pueden ser los huesos o la piel, el cambio de intensidad en las imágenes es tan claro, que permite utilizar técnicas de reconstrucción de superficies tipo Marching Cubes con resultados óptimos. Este tipo de técnicas fracasa en el caso de estar interesados en lo que podríamos denominar órganos o tejidos blandos, como podrían ser el corazón, el hígado o los músculos. Las imágenes correspondientes a estos órganos presentan en general contornos muy poco definidos que se confunden con el entorno. Para resolver este problema se introdujo la familia de métodos de contorno activo o Snakes, las Active Nets y las 3D Active Nets para el caso de ajustarse respectivamente a un contorno, a toda una región 2D o a la superficie que limita unos datos volumétricos, y finalmente, los Active Cubes para ajustar volúmenes en 3D. Otra posibilidad de resolución se basa en la utilización del método de los elementos finitos (FEM) para resolver las deformaciones. Estos métodos consiguen generalmente buenos resultados a costa de aumentar la complejidad y el coste de cálculo. El modelo dinámico que se presenta [1][3] en este trabajo resuelve el mismo tipo de problemas pero planteando la adaptación al contorno de los datos como la evolución de una malla deformable [2] bajo la acción de un conjunto de fuerzas que contemplan tanto posibles fuerzas internas, que dan las propiedades de elasticidad y rigidez del modelo, como las fuerzas externas de atracción. Estas últimas, se plantean como la acción de un campo vectorial de tipo gradiente, GVF, que se anula en los contornos de interés [4][5]. Se presentan dos modelos deformables para la posterior evolución dinámica: el modelo de deformación plana, en el que que intervienen tres fuerzas internas, y el modelo masasmuelles, en el que interviene una única fuerza interna. Modelo de deformación plana Las fuerzas de deformación del modelo las plantearemos sobre cada uno de los triángulos que forman la malla. La deformación viene caracterizada por la acción de tres fuerzas que son las de estiramiento (stretch), cizalla (shear) y flexión (bend). Cada una de las fuerzas se implementa como una condición de restricción C(x)=0 que el sistema debe mantener. A partir de la definición de una restricción, se pueden obtener la función de energía Ec(x) y la fuerza en cada uno de los vértices fi, asociadas a esta restricción: k C(x) T C(x) 2 ∂E ∂C(x) C(x) f i = − c = −k ∂x i ∂x i ∂f K= ∂x EC = (1) (2) (3) K ij = ∂C(x) ∂C(x) T ∂ 2 C(x) ∂f i = −k + C(x) ∂x ∂x j ∂x j ∂x i∂x j i (4) En (1) y (2) k es una constante que podemos interpretar como el peso que tendrá la restricción C(x) en el modelo. Si consideramos que las restricciones se imponen por triángulo, esto nos dice que C(x) va a depender de pocas partículas por lo que tendremos unas estructuras dispersas a la hora de representar las fuerzas y sus derivadas. Cada elemento de fuerza, fi, es un vector de ℜ3. La matriz de derivadas de fuerza K pertenece a ℜ3nx3n de forma que cada uno de sus elementos Kij es una matriz de 3x3 posiciones. Por cuestiones de estabilidad del sistema, cada fuerza tendrá asociado un término de amortiguación (damping) que definiremos como: f d = −k d ∂C(x) & C ∂x (5) La magnitud del estiramiento o de la compresión de cada una de las aristas de un triángulo puede controlarse mediante una fuerza de tipo “stretch”. Dado un triángulo de la malla con vértices las partículas i, j y k se define un espacio de coordenadas locales: ∆x 1 = x j − x i ∆x 2 = x k − x i ∆u 1 = u j − u i ∆u 2 = u k − u i ∆v1 = v j − v i ∆v 2 = v k − v i (6) Entonces una aproximación lineal para el cambio de referencia es: ∆x1 = Wu ⋅ ∆u1 + Wv ⋅ ∆v1 (7) ∆x 2 = Wu ⋅ ∆u 2 + Wv ⋅ ∆v 2 y las derivadas de W respecto u y v son: (Wu Wv ) = (∆x1 ∆u ∆x 2 ) 1 ∆v1 ∆u 2 ∆v 2 −1 (8) Con este sistema se pueden formular dos condiciones que impidan la deformación de los dos lados ∆x1 y ∆x2. W (x) − b u C(x) = a u W (x) − b v v (9) Obtenemos los incrementos o decrementos de longitud de arista como las diferencias de posición entre los dos pares de partículas implicadas. La definición de la restricción C(x) expresa la posibilidad de alargamiento proporcional al área del triángulo "a", normalmente las constantes bu y bv son iguales a 1, lo que significa que la restricción tenderá a mantener las aristas con la misma longitud inicial, si este no fuera el caso, se puede modificar la constante k que multiplica la restricción en el planteamiento global y permitir así una mayor elasticidad. La fuerza de cizalla o shear es la que actúa sobre el ángulo de apertura interna del triángulo: C(x)= aWu (x)T Wv (x) (10) La restricción tiende a mantener el ángulo de los vectores Wu(x) y Wv(x) de manera que sea próximo a ortogonal y evitar de este modo que el triángulo se pueda volver muy degenerado. Por último, la fuerza de flexión o bend intenta controlar la flexión de la superficie de la malla. Se define esta fuerza entre pares de triángulos adyacentes. sin θ = ( n1 × n 2 )·e cos θ = n 1 ·n 2 (11) C(x) = θ La restricción intenta mantener el ángulo que forman las caras de los dos triángulos. Los vectores implicados en el cálculo son las normales respectivas de cada triángulo n1 y n2 y la dirección de la arista compartida, e. Modelo de deformación masas-muelles En este caso la deformación viene caracterizada por la fuerza de estiramiento existente entre distintos pares de partículas. El sistema opera a partir de masas puntuales (partículas) y muelles que las interconectan. La fuerza de estiramiento entre un par de partículas a y b se define como: l&·l l f a = − k s ( l − r ) + k d l l fb = − f a (12) (13) dónde ks es la constante del muelle, kd su factor de amortiguación, l su elongación y r su longitud en equilibrio. Fuerzas Externas Se definen como un campo vectorial (GVF) en todo el mundo de voxels de la imagen 3D. La idea es minimizar un funcional que mezcla la información obtenida a partir del gradiente de intensidades de la imagen con un término de difusión que permite extender el campo vectorial de manera suave al resto del dominio. El campo vectorial de tipo gradiente V(x,y,z)=(u(x,y,z), v(x,y,z), w(x,y,z)) que constituye la fuerza externa se obtiene a partir de la minimización del funcional de energía: ε = ∫∫∫ µ ⋅ ∇ 2 V + ∇I V − ∇I dxdydz 2 2 (14) La integral se compone de dos términos bien diferenciados, el primero es el término de difusión, mientras que el segundo contiene la información sobre las variaciones de intensidad de la imagen. Cuando las variaciones de propiedad I (generalmente intensidad) entre voxels consecutivos sean pequeñas, dominará la expresión el primero de ambos, es decir, se producirá la suavización del campo vectorial. Por otra parte, en zonas de grandes variaciones en cuanto a valor de propiedad dominará el segundo término. El valor de la constante µ, servirá para controlar el balance entre los dos términos de la integral. Puede obtenerse el campo GVF solucionando las siguientes ecuaciones de Euler, tal y como se describe en [4][5]: µ ⋅ ∇ 2 u − (u − I x )(I 2x + I 2y + I 2z ) = 0 µ ⋅ ∇ 2 v − ( v − I y )(I 2x + I 2y + I 2z ) = 0 (15) µ ⋅ ∇ 2 w − ( w − I z )(I 2x + I 2y + I 2z ) = 0 La observación de las ecuaciones permite deducir que en zonas de poca variación de intensidad el segundo término se anula prácticamente ya que también lo hace el gradiente de I(x,y,z). Implementación numérica para el modelo de deformación plana En primer lugar, respecto a la integración de las ecuaciones diferenciales que describen la dinámica, hemos utilizado un método de Euler implícito. La idea es considerar que ∆x = x (t0 + h) – x (t0) y ∆v = v (t0 + h) – v (t0), donde h es el paso de integración, entonces la ecuación del sistema se puede escribir como: v o + ∆v ∆x = h −1 ∆v M f(x o + ∆x, v o + ∆v) (16) El método se basa en la evaluación de las fuerzas en el siguiente instante de tiempo. Pera determinar estas fuerzas se considera una aproximación de Taylor de primer orden: f(x o + ∆x, v o + ∆v) = f o + ∂f ∂f ∆x + ∆v ∂x ∂v (17) Las derivadas ∂f/∂x y ∂f/∂v se evalúan en (x0,v0). Substituyendo en la ecuación inicial se obtiene: v o + ∆v ∆x = h −1 f f ∂ ∂ M (f ∆x ∆v) + + o ∆v ∂x ∂v (18) Y como ∆x = h·(v0 + ∆v): ∂f ∂f ∆v = h ⋅ M −1 f o + h(v o + ∆v) + ∆v) ∂x ∂v (19) Agrupando los términos se obtiene un sistema de ecuaciones lineales donde la incógnita es ∆v: ∂f ∂f −1 ∂f − h 2 M −1 ∆v = hM −1 f o + h vo I − hM ∂v ∂x ∂x (20) Finalmente éste es el sistema a resolver. Se trata de un sistema lineal de 3n incógnitas. La solución es el incremento de velocidad de todas las partículas del sistema; a partir de este incremento se puede calcular la nueva posición de las partículas utilizando que x = x + ∆x donde ∆x = h·(v0 + ∆v). En este método, para avanzar un paso se deben evaluar tanto las fuerzas como sus derivadas respecto de la posición y la velocidad. Las fuerzas que intervienen son las fuerzas internas correspondientes a las características del modelo deformable y por otro lado las externas correspondientes al campo vectorial que se ha calculado previamente. El utilizar un método implícito nos permite utilizar pasos de integración mayores, pero al mismo tiempo nos obliga a resolver un sistema de ecuaciones lineales en cada paso. El hecho de que estos sistemas sean muy dispersos, hace adecuado un método iterativo de resolución que en nuestro caso es un método de gradiente conjugado. Implementación numérica para el modelo de deformación masas-muelles El modelo masas-muelles depende de una sola fuerza interna de estiramiento y por tanto no requiere el mismo órden de cálculos por iteración que el anterior. Esta premisa nos lleva a emplear un motor numérico de tipo Runge-Kutta 4, estable y con un término de error O(h5) más que aceptable. Resultados prácticos Se ha utilizado una malla esférica escalada como punto de partida para las simulaciones presentadas. La malla rodea inicialmente los datos de interés de forma que no exista colisión alguna con éstos. A continuación se presentan algunas de las pruebas realizadas empleando los dos modelos de deformación comentados así como un tercero consistente en la aplicación del campo vectorial gradiente en solitario. Notar que todos los tiempos de cómputo se refieren a una máquina con procesador Pentium II y 266 MHz de reloj, dotada de 256 MB de memória RAM y una tarjeta aceleradora 3D de tipo Nvidia RIVA TNT II de 32 MB. # Test Malla final Datos a recuperar Método Características 1 Campo gradiente ∆t = 0.00025 con modelo deformable de 0.1282 segundos masas-muelles por iteración 2 Campo gradiente ∆t = 0.01 0.0392 segundos por iteración 3 Campo gradiente ∆t = 0.01 con modelo de deformación 2.4594 segundos plana por iteración Tabla 1. Resultados de reconstrucción 3D En el primer caso se obtiene la reconstrucción de los datos mediante el modelo de deformación de masas y muelles. En esta simulación se utilizó un valor de 1000.0 para la constante KS (muelles) así como un valor de 100.0 para KGVF (constante de ponderación del campo gradiente) con un término de amortiguación de valor 0.25 (aplicado a la velocidad de las partículas). Si bien el tiempo por iteración no es excesivo, la convergencia de la simulación pasa por utilizar un paso temporal pequeño. En la segunda fila de la tabla 1 se presenta una simulación en la que tan sólo actua el campo vectorial gradiente. Las partículas se mueven libremente sin interacción entre ellas (no hay muelles). El paso temporal puede aumentarse y el tiempo por iteración disminuye considerablemente dado que no hay fuerzas de tipo interno que calcular. Por contra se hace especialmente necesaria la existencia de un criterio de parada para las partículas. Al no existir relación alguna entre ellas, pueden degenerarse considerablmente los triángulos finales si se itera demasiado. En nuestro caso marcamos los voxeles donde se produce un cambio de signo del campo vectorial GVF (identificamos la frontera) y paramos las partículas cuando colisionan con ellos. Por último se observa el método de deformación plana. Si bien podemos controlar a fondo las relaciones entre las partículas (estiramiento, cizalla y flexión) el coste del método es muy superior al resto, en cuanto a tiempo por iteración. El paso temporal puede escogerse mayor que en el caso del modelo de masas-muelles. Conclusiones El presente trabajo es un primer paso en la obtención de un modelo dinámico que permita reconstruir superficies que limitan un conjunto de datos 3D. En los tests numéricos efectuados sobre modelos sencillos los resultados son bastante satisfactorios. De todos modos el objetivo final es mucho más complejo ya que se pretende reconstruir un modelo a partir de los datos SPECT del corazón de un paciente, que puede presentar zonas de hasta el 60% de la superfície con inexistencia de datos. Agradecimientos Los autores quieren agradecer las sugerencias y los comentarios de los integrantes del grupo de investigación de aplicaciones informáticas en medicina del Instituto de Robótica e Informática aplicada de la UPC (Universidad Politécnica de Cataluña) y del equipo de Cardiología Nuclear de los Hospitales Vall d’Hebrón de Barcelona. Referencias [1] J. Amatller, O. García, A. Susín. “Modelo Dinámico para la segmentación automática de imágenes 3D”, X Congreso Español de Informática Gráfica-CEIG’2000, pág. 355-370, Junio 2000. [2] D. Baraff and A. Witkin, “Large Steps in Cloth Simulation”, Computer Graphics (Proc. SIGGRAPH), 43-54, 1998. [3] O. García, A. Susín, I. Navazo. “Segmentación Automática mediante un modelo dinámico. Aplicación a la reconstrucción del ventrículo izquierdo”, Jornadas de Investigación en Ingeniería Biomédica, Sitges, 2-3 Noviembre 2000. [4] C. Xu and J.L. Prince, “Gradient Vector Flow: A New External Force for Snakes”, IEEE Proc. CVPR, 1997. [5] C. Xu and J.L. Prince, “Snakes, Shapes, and Gradient Vector Flow”, IEEE Transactions on Image Processing, pag. 359-369, 1998.