Needles!!!!!!!!!!!!! YEAH!!!!!!!!!!!
Acá me meto en camisa de once varas, voy a hablarles de un artículo aceptado en SIGGRAPH 2009. Menos mal que el artículo es sobre agujas, así que lo de las varas seguramente no me duele (sí ya se, las varas realmente se refieren al tamaño de la camisa, pero yo pienso en agujas, punto).

Marion Cotillard (Alabado sea el Santísimo). No hallé una buena imagen relacionada a la entrada, así que aprovechen el colirio. Foto (Hi-Res) de Elliot Bliss. ¿Cortesía? de http://bit.ly/11qQiq
Es complicado hallar trabajos sobre visualización médica aceptados en SIGGRAPH, por lo general son presentados en otros eventos, y aunque no revisé de manera exhaustiva creo que este es el primer trabajo sobre visualización médica presentado en la conferencia desde hace unos diez u once años. Voy a hablar de Interactive Simulation of Surgical Needle Insertion and Steering (aquí la página donde está alojado, con un video muy bueno que deberían revisar), un muy interesante trabajo sobre la simulación física de la inserción y manejo de agujas en cirugías virtuales, léase: cortar y pegar tejidos en tiempo real.
SIGGRAPH tiene una muy particular visión a la hora de aceptar artículos, en primera instancia, como toda conferencia seria que se precie de serlo, los artículos deben ser trabajos originales, pero además deben contener un alto contenido gráfico: deben contener muchas imágenes o tener adjuntos videos o programas, recuerden que muchos de esos artículos serán expuestos por sus autores dentro de la conferencia, también se busca que dichos trabajos tengan el mayor impacto sobre la computación gráfica. Debido a todo ello resulta complicado ver trabajos de visualización médica: conciernen a un subconjunto (quizá pequeño) de la comunidad de computación gráfica, las técnicas mostradas por lo general son exclusivas de la aplicación en cuestión, y resultan complicadas de llevar a otros ámbitos, precisamente el artículo que presento logra salir de las fronteras que usualmente delimitan la visualización médica.
Vamos por puntos:
¿Qué hacen?. Ya lo dije, simulan la inserción y manejo de agujas sobre datos volumétricos aplicado a cirugías virtuales.
¿Es complicado hacer eso?. No explicaré el marco general de porque resulta complicado, saquen Uds. las cuentas: en este trabajo la aplicación corre sobre un 8-Core Intel Xeon y 16 GB de RAM. Papito mi rey, olvidaste decirnos la tarjeta de video, no, no lo olvidé, aunque obviamente hay optimización por hardware para aplicaciones volumétricas (consulten a Ciro o a Gabriel), comparando la cantidad de cómputo necesario para simular con respecto a la cantidad de cómputo necesario para desplegar, resulta que las tarjetas de video son poco menos que inútiles a este nivel (sí, hay cosas que las todopoderosas tarjetas de video aún no pueden hacer, regresen a leer cuando se hayan lavado la cara para salir de la sorpresa). Es todo un universo aparte este punto, por lo momentos les recomiendo que revisen GPGPU.
¿Para qué sirve?. Como mencionan en el artículo, el uso de las cirugías virtuales se extiende desde la planificación de intervenciones complicadas, el entrenamiento de nuevos cirujanos en condiciones de trabajo lo más reales posibles y la conducción de cirugías por medio de robots, sin embargo: ¿Podrían imaginarse Uds un “Operando 3D” manipulado por el Project Natal?, yo realmente me imaginé un Dexter o un Dominatrix 3D, pero es cuestión de gustos, por ejemplo ANGiE quería digitalizarse y así ofrecer un servicio de “damisela en desgracia” de compañáa a distancia. Mala idea no es, porque el asunto es un volumen con una aguja… agujita… agujota… depende… en fin.
¿Específicamente en que consiste el proceso ?. Siguiendo lo explicado en la sección 3 del artículo (3. Methods), el proceso es la unión de varias técnicas: Elementos finitos sobre la malla tetraédrica que representa los tejidos, simulación de vara elástica para describir la aguja. Reconstruir el mallado (usualmente nos referimos a eso como re-mallar) del volumen en la vecindad donde la aguja entra en contacto con los tejidos, representación de la fricción entre los objetos. Los aportes del artículo son el algoritmo de re-mallado y el acoplamiento entre la aguja y el volumen. El siguiente es un algoritmo general:
1: Calcular las fuerzas sobre los tejidos, las fuerzas sobre la
aguja, y el cambio de dichas fuerzas a lo largo del tiempo
(la derivada, en este caso el Jacobiano).
2: Resolver el sistema de ecuaciones diferenciales acoplado dado
por el paso anterior, lo cual da como resultado la configuración
de la fricción del sistema y la aceleración de la aguja y el
tejido en cada nodo.
3: Actualizar las posiciones y velocidades de la aguja y el tejido.
4: Si la aguja corta o empuja
5: Hacer un nuevo mallado alrededor de la punta de la aguja
6: Reparametrizar la aguja.
Las secciones del articulo correspondiente a cada caso son las siguientes: 1) Sección 3.2, 2) Sección 3.3, Eq. 7, 3) Sección 3.1 4) 5) Sección 3.4.1, 6) Sección 3.4.2.
Para resolver el sistema de ecuaciones diferenciales, se usa el esquema de integración implícita de Newark (Sección 3.1), acá hago una aclaratoria: La integración implicita es difícil, muy difícil, MUUUUUUY difícil, y su aplicación usual es en simulaciones donde no se revela en tiempo real. Hay varias optimizaciones correspondientes a la aceleración de la integración, y la paralelización del Gradiente Conjugado y la actualización del Jacobiano (Sección 3.6). La cantidad de computo realizada es la razón de los 16 GB de RAM, y las optimizaciones requieren del 8-Core Intel Xeon, sin contar la etapa de reparametrización y re-mallado (que no revisé con especial detalle) explicada en la Sección 3.4. A la vista de lo anterior el algoritmo propuesto es aún un método de fuerza bruta, no considero todavía óptimo un método que necesita un máquina cuyo costo en Venezuela puede ascender fácilmente a los Bs. 14.000.
Es complicado adentrarse en los detalles finos del artículo, se necesita tiempo y conocimiento que aún no manejo, como había dicho en la primera entrada de esta serie, no soy un experto pero creo que puedo propiciar la discusión sobre un trabajo en específico haciendo una introducción al mismo. Espero que en este caso pueda lograrlo. Haré un seguimiento particular a este trabajo porque me resulta bastante interesante.
Recuerden, pueden encontrar los artículos de SIGGRAPH 2009 aquí.
La cota del trabajo que acabo de reseñar es esta:
Chentanez N., Alterovitz R., Ritchie D., Cho L., Hauser K., Goldberg K, Shewchuk R. J., O’Brien F. J. “Interactive Simulation of Surgical Needle Insertion and Steering” In The Proceedings of ACM SIGGRAPH 2009, New Orleans August 3-7, 2009