Un enfoque avanzado para detectar límites utilizando paredes de vasos como ejemplo

Informacion interesante


La siguiente figura muestra una reconstrucción tridimensional del corazón, obtenida como resultado del trabajo de un tomógrafo moderno:


Para la escala, el grosor del bulbo a√≥rtico es de 3.2 cm, ¬°solo piense! Sin embargo, cuando las personas tienen problemas card√≠acos debido a los vasos sangu√≠neos, por lo general, no estamos hablando de problemas tan grandes. La imagen muestra que el coraz√≥n est√° rodeado de vasos m√°s peque√Īos, y algunos de ellos se ramifican directamente desde las arterias grandes. Estas son las llamadas arterias coronarias que alimentan el coraz√≥n directamente con sangre. Si se produce un estrechamiento de la luz (estenosis) en ellos, por ejemplo, debido a la formaci√≥n de calcio, entonces el flujo sangu√≠neo disminuye. Cuando se pronuncia la estenosis, se produce necrosis tisular, en otras palabras, un ataque card√≠aco. A continuaci√≥n, hablar√© sobre nuestro enfoque para calcular los l√≠mites de los vasos sangu√≠neos, que como resultado le permite encontrar autom√°ticamente el estrechamiento y darles una estimaci√≥n.

Para comprender el material, debe tener una comprensión superficial del volumen, los vóxeles y sus intensidades. Puede averiguarlo leyendo el comienzo de este artículo .

Para evaluar el estrechamiento de un vaso, necesitamos conocer la luz del vaso o su borde interno. Para hacer esto, al menos detecta todo el calcio. Tambi√©n encontramos el l√≠mite exterior, porque permite estimar el grosor de la pared, lo que tambi√©n es √ļtil. Para comenzar, echemos un vistazo al esquema completo de detecci√≥n de l√≠mites, y luego analizaremos cada etapa en detalle:


Trazando la línea central


La etapa m√°s dif√≠cil en t√©rminos de implementaci√≥n (al menos tom√≥ m√°s tiempo). El m√©todo se basa en el uso de una matriz de Hesse (Segmentaci√≥n de embarcaciones de m√ļltiples escalas utilizando la mejora de la matriz de Hesse). M√°s detalles en el art√≠culo ya mencionado.

Rebanar


Tenemos solo una línea central y necesitamos intensidades de voxels espacialmente dependientes con las que se pueda trabajar convenientemente. Para conseguirlos, se va una "pila" de rebanadas. Para empezar, los puntos se establecen en distancias fijas en la línea central. Luego se construye una perpendicular a partir de cada punto . Después es la segunda perpendicular . Donde - la dirección de la línea central en un punto. Ambas perpendiculares están normalizadas. En cada punto vector de línea central Forme un sistema de coordenadas 2D. Por lo tanto, se forman rodajas:


La posici√≥n del v√≥xel se define como donde aqui Son las coordenadas reales del v√≥xel, k es el n√ļmero de corte. F√≥rmula inversa para coordenadas reales: . Al pasar a un nuevo sistema de coordenadas, el espacio formado por los cortes se simplifica:


Lo que necesitamos!

Construcción del borde exterior del buque.


Echemos un vistazo al diagrama:


Cortamos nuestra pila de rebanadas obtenidas en la etapa anterior en ocho planos (similar a cortar un pastel) y realizamos todos los c√°lculos en el espacio de planos:

Cortar


Si muestra los valores normalizados de las intensidades de los vóxeles que golpean el plano de corte, obtenemos la siguiente imagen:


Para detectar los l√≠mites de la embarcaci√≥n, el enfoque cl√°sico (detecci√≥n de bordes por gradiente) se utiliza junto con la b√ļsqueda de la ruta. Esquema:


1. Aplicar suavizado gaussiano con un valor peque√Īo para suprimir el ruido:
Para un punto con coordenadas :
donde devuelve el valor de intensidad en un punto ; r generalmente toma el valor ( - redondeo); - coeficiente de suavizado.

2. En cada punto encontramos el gradiente y su valor, los c√°lculos se llevan a cabo con valores de intensidad suavizados:
,
donde - derivados privados. Se encuentran por el método de diferencia finita:

,
donde - intensidad en un punto Después de alisar.
Luego necesitamos la dirección del gradiente ( Es la normalización del vector) y el valor del gradiente. ( Es la longitud del vector)

3. La dirección del gradiente se traduce en grados o radianes:
(atan2 () es la función de la tangente del arco en C ++, que no debe confundirse con atan ()), luego redondeamos el ángulo para que pueda tener 4 valores en incrementos de 45 grados, es decir arriba y abajo se consideran la misma dirección:

4. Realizar la supresión de no máximos. Si el valor del gradiente al menos en uno de los dos puntos vecinos (de acuerdo con la dirección del gradiente) es mayor o igual que el valor del gradiente en el punto actual, entonces dicho punto no puede pertenecer al límite:


5. Todos los v√≥xeles restantes se consideran l√≠mites. Seg√ļn el valor del gradiente, el umbral de calcio (que no est√° disponible de inmediato) y la proximidad al centro "vertical", a cada punto se le asigna un costo determinado (cuanto m√°s brillante es el v√≥xel, mayor es su prioridad al buscar una ruta):

De esta forma, los l√≠mites de la embarcaci√≥n se definen de manera casi √ļnica.

6, 7. Para construir l√≠mites, usamos la b√ļsqueda del camino. Los puntos extremos m√°s cercanos con el menor costo se toman como inicial y final. Para buscar una ruta, utilice una b√ļsqueda simple de amplitud, que selecciona los puntos l√≠mite de menor costo. Los saltos tambi√©n est√°n disponibles, pero su precio es alto. Los l√≠mites superior e inferior del recipiente se buscan por separado, y luego se les aplica el suavizado:

Resultado


Este procedimiento se realiza para cada plano, lo que da como resultado anillos de dieciséis segmentos para cada corte en la pila. Estos anillos forman los bordes exteriores del vaso.

Como puede ver en la imagen, hay áreas en las que los bordes se detectan incorrectamente. Esto se debe a la presencia de calcio, que da como resultado la detección de límites de calcio en lugar de límites de vasos. Para evitar que esto suceda después de la primera detección de límites, es necesario determinar el umbral de calcio (más sobre esto más adelante), y luego realizar una segunda detección de límites, ignorando los vóxeles relacionados con el calcio. Entonces obtenemos:

Buen resultado

Detección de umbrales de bordes internos, externos y umbral de calcio.


Una vez que se conoce el límite externo, necesitamos recopilar información estadística. A saber, las intensidades de todos los vóxeles que están dentro del recipiente.

Detección de umbral


Ahora considere la maximización de la expectativa del algoritmo de agrupamiento (en lo sucesivo, EM). Comencemos con la función de distribución normal: se caracteriza por una expectativa matemática y desviación estándar . Así es como afectan el tipo de distribución:



Supongamos que tenemos datos (puntos) que provienen de una fuente "amarilla" y de una fuente "azul":


Luego, usando fórmulas estándar, encontramos fácilmente la media y la desviación estándar para cada fuente. Fórmulas para la fuente "a":




Pero, ¬Ņqu√© sucede si conocemos la cantidad de fuentes, pero no sabemos qu√© puntos pertenecen a qu√© fuente? ¬ŅQu√© pasa si tenemos una imagen as√≠?


Si alguien vino y nos dijo los parámetros de distribución, entonces podríamos calcular fácilmente la probabilidad de que cada punto pertenezca a cada una de las fuentes. La probabilidad de que el punto pertenezca a la fuente "a":

donde




Y si necesitamos calcular los par√°metros de origen, conociendo las probabilidades:



Por lo tanto, se obtiene un círculo vicioso: si supiéramos los parámetros de las fuentes, calcularíamos qué punto pertenece a qué fuente, pero no conocemos los parámetros. Y si supiéramos qué punto pertenece a qué fuente, calcularíamos sus parámetros, pero no sabemos qué punto pertenece a qué fuente. El equilibrio entre estos hechos es exactamente lo que hace el algoritmo EM.

Al inicio, EM recibe algunos parámetros predefinidos para las fuentes, que simplemente se pueden seleccionar al azar. Obviamente, si los parámetros son conocidos, entonces podemos calcular la probabilidad de que cada punto pertenezca a cada una de las fuentes. Ahora que se conocen las probabilidades, podemos calcular nuevos parámetros más precisos. Luego comienza de nuevo, pero con nuevos parámetros. Después de cada ciclo, los parámetros de las fuentes son cada vez más precisos.

¬ŅC√≥mo podemos usar este conocimiento en relaci√≥n con los vasos? Echemos un vistazo a la estructura de uno de ellos:

En los diagramas, este punto generalmente se omite, pero las formaciones de grasa y calcio también pueden estar presentes en el vaso. Por lo tanto, cada vóxel pertenecerá a uno de los tejidos. Después de los experimentos resultó que es suficiente hacer las siguientes divisiones:

- gordo
- pared # 1
- pared # 2
- medio de contraste
- calcio

La distribución de las intensidades de vóxel en cada caso es normal. Es decir Tenemos todo lo que necesitamos para usar EM para encontrar los parámetros de cada fuente.

Los resultados son lo suficientemente buenos

La línea verde es un histograma de intensidades, la línea roja es el modelo matemático resultante.

Ahora que conocemos los par√°metros de cada fuente, podemos calcular los umbrales: los valores de las intensidades, en cuya intersecci√≥n, la membres√≠a de v√≥xel cambia de una fuente a otra. Estamos interesados ‚Äč‚Äčen:

1. El umbral del límite exterior de la embarcación. Si la intensidad del vóxel está por debajo de este valor, se considera que no pertenece al vaso en absoluto;

2. El umbral del límite interior de la embarcación. Si la intensidad del vóxel es mayor que este valor, entonces
se refiere a la luz del vaso, es decir a una mezcla de sangre y medio de contraste;

3. El umbral de calcio. Si el valor de la intensidad del vóxel es mayor que este valor, se refiere al calcio.

Construcción del borde interior de la embarcación.


Como siempre, comencemos con el diagrama; los c√°lculos se realizan para cada segmento.



Si visualiza los datos de acuerdo con los umbrales obtenidos en el paso anterior, obtenemos la siguiente imagen:



El color rojo es la pared del recipiente. Color verde - aclaramiento. El blanco es calcio.

Lo primero que llama la atención es el calcio "colgado", que no está junto a ninguna de las paredes. Esto se considera normal y surge debido al suavizado aplicado por el tomógrafo en sí.

Primero necesita obtener los límites de acuerdo con los umbrales, y para esto se utiliza el algoritmo de cuadrados de marcha. Se puede decir, pasa en dos etapas. Primero, el área se divide por una cuadrícula discreta, y los cuadrados en los que los valores de intensidad son mayores o iguales al umbral se consideran "positivos", el resto se considera "negativo".

Cada vez estaremos en alg√ļn tipo de nodo, y necesitamos dibujar un contorno alrededor de los cuadrados "positivos". Para tomar una decisi√≥n, consideraremos los signos de cuatro cuadrados vecinos: superior izquierdo, inferior izquierdo, superior derecho, inferior derecho. Excluyendo la simetr√≠a, estamos interesados ‚Äč‚Äčen tres casos.

1. Tres cuadrados de un signo y uno opuesto, el movimiento del contorno se produce en diagonal:

Ejemplo


2. Dos cuadrados del mismo signo y dos opuestos, y los cuadrados con el mismo signo est√°n en un lado, el movimiento del contorno es vertical u horizontal:

Ejemplo


3. Dos cuadrados del mismo signo y dos cuadrados opuestos con los mismos signos se colocan en lados opuestos:

Ejemplo


Este es un caso excepcional, para tomar una decisión, se toma el valor promedio de intensidad en los cuatro cuadrados, y si es mayor o igual al umbral, entonces el centro es positivo, en otros casos es negativo. También es importante qué nodo es actual en este momento:

Ejemplo


El algoritmo de cuadrados de marcha construye con precisi√≥n y sin ambig√ľedades un contorno. En el siguiente ejemplo, mov√≠ deliberadamente la l√≠nea desde el centro del costado para que cada paso fuera claramente visible.

Ejemplo
Específicamente, el primer y el segundo caso:



Para cada sección del recipiente, encontramos dos contornos principales: este es el contorno del borde exterior y el contorno del borde interior. Inmediatamente "cortamos" el contorno exterior con nuestro otro contorno exterior, que encontramos al comienzo del artículo al encontrar caminos. Esto se hace para ignorar las ramas de la embarcación. Ignoramos los contornos de calcio que están demasiado lejos de la pared interna, como si no existieran en absoluto, encontramos el resto y los usamos en el futuro. Si el centro del vaso está dentro del calcio, entonces lo cambiamos en la dirección más cercana al circuito de calcio hasta que el centro esté en la luz (en la región verde). Tal centro actualizado, llamaré la posición inicial.

Seg√ļn el esquema, puede haber dos casos: simple y complejo.


Si la posición inicial es dentro de un circuito cerrado de calcio (por ejemplo, si se instala un stent), entonces igualamos inmediatamente el borde interno de este circuito. Las cosas son más complicadas cuando el centro está fuera del calcio. En este caso, necesitamos expandir el circuito de arranque para que fluya suavemente alrededor del calcio y el borde interno:


Para lograr el resultado deseado, se desarrolló un algoritmo especial basado en ideas utilizadas en motores físicos 2D, en particular la resolución de colisiones de polígonos y el teorema de ejes separados.

Dos conceptos b√°sicos que no se pueden prescindir: para intersectar pol√≠gonos convexos, el vector mtv (vector de traducci√≥n m√≠nima) es el desplazamiento m√°s peque√Īo de uno de los pol√≠gonos, despu√©s de lo cual se detiene la intersecci√≥n.

También necesitamos los polígonos normales: en 2D son perpendiculares a las caras e indican "fuera":

Para no hacer que el art√≠culo sea extenso, omitir√© el resto de los detalles con respecto a los motores f√≠sicos. Lo √ļnico que noto es que durante cada iteraci√≥n, cada punto en el contorno acumula la influencia de las fuerzas sobre s√≠ mismo en forma de un vector, y al final de cada iteraci√≥n se desplaza por la longitud de este vector en su direcci√≥n. Considere las fuerzas:

1. Dos fuerzas act√ļan sobre cada v√©rtice del contorno inicial en la direcci√≥n de los v√©rtices vecinos, y las fuerzas son directamente proporcionales a la distancia a estos v√©rtices. Esto hace que el contorno se contraiga y se esfuerce por mantener una forma redondeada;

2. Si el vértice del contorno lateral cayó dentro del contorno inicial, entonces el desplazamiento proporcional al vector vt mtv del vértice se aplica a la cara más cercana del contorno inicial;

3. Si la parte superior del contorno inicial está dentro del contorno lateral, entonces se aplica un desplazamiento proporcional al vértice del vector mtv del vértice a la parte superior del contorno inicial. Esto, junto con el párrafo anterior, no permite que el circuito vaya más allá de los límites de otros circuitos;

4. Si los casos 2 y 3 no funcionaron para el vértice, entonces se le aplica una fuerza en la dirección promedio de las dos normales de las caras adyacentes. Esto asegura el crecimiento del contorno "en amplitud".

Importante: no puede desplazar un vértice o una cara completamente por la longitud del vector mtv; se multiplica por un cierto coeficiente en el rango de 0.2 a 0.8. Los coeficientes para cada fuerza en los casos restantes se seleccionan experimentalmente.

Gracias a este enfoque, encontramos la luz del vaso, teniendo en cuenta el hecho de que el calcio no se adhiere cerca de las paredes. Ahora solo combine los resultados de todas las secciones y obtenga los bordes interno y externo del recipiente:


La aparente inexactitud del borde después del stent es causada por una bifurcación anómala:


El √°rea del borde interior en el corte caracterizar√° el espacio libre que nos interesa en √ļltima instancia. Uso adicional de estos datos considero trivial y no requiere consideraci√≥n. Finalmente, dejar√© la imagen del borde interno exportado en 3D:

Source: https://habr.com/ru/post/441204/


All Articles