Proyecto Fin de Máster Máster en Ingeniería Biomédica Utilización de MonoSlam con realidad aumentada en laparoscopia. Óscar García Grasa Director: José María Martínez Montiel Centro Politécnico Superior Universidad de Zaragoza Septiembre 2008 Dedicado a mi abuelo José, fallecido en el transcurso de este máster. Agradecimientos Este trabajo no habría sido posible sin la colaboración de: Víctor F. Muñoz, profesor titular de la universidad de Málaga, quien aportó las primeras secuencias con las cuales se comenzó a trabajar. Antonio Güemes, médico adjunto del hospital clínico universitario Lozano Blesa de Zaragoza, quien facilitó el acceso a intervenciones de laparoscopia de las cuales se obtuvieron más secuencias. Miguel Ángel Bielsa, médico adjunto del hospital clínico universitario Lozano Blesa de Zaragoza, quien permitió asistir y registrar operaciones realizadas por él. Andrew Davison, profesor titular de Imperial College of London, y Ian Reid, del Engineering Science Department de la University of Oxford, quienes aportaron el software inicial de monoSlam. Javier Civera, profesor ayudante de la universidad de Zaragoza, quien con su colaboración ayudó a entender el funcionamiento de inverse depth y de la aplicación original de monoSlam José María Martínez Montiel, profesor titular de la universidad de Zaragoza, por dirigir todo este proyecto y por el gran interés puesto en él. Proyecto nanciado con el prot (FIT-360005-2007-9) y con el proyecto europeo RAWSEEDS (FP6-IST-045144). Resumen Actualmente, los cirujanos laparoscopistas tienen dos problemas en el momento de operar. Por un lado, desconocen las dimensiones de la cavidad donde están trabajando. Como las cámaras de los endoscopios suelen ser cámaras monoculares, los cirujanos solo perciben información en 2D sin conocer nada de la profundidad. Por otro, su visión de la cavidad está limitada al campo de vista de la cámara (fov) sin ser capaces de ver nada del resto de esta que no esté dentro de este fov. Con este proyecto se pretende presentar una primera aproximación para resolver estos 2 problemas. Utilizando monoSlam se pueden realizar mediciones 3D dentro de la cavidad abdominal y con el uso de realidades aumentada y virtual se puede hacer una reconstrucción densa de esa cavidad al completo, la cual puede ser utilizada por el cirujano como una guía durante la operación aumentando el fov de la cámara de una forma sintética y fotorrealista. Además de esto, se posibilita la inserción de anotaciones en realidad aumentada que faciliten la labor del cirujano. Índice general Índice de guras 2 1. Introducción 4 1.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Trabajos relacionados 5 1.3. Objetivos 1.4. Distribución de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Trabajos previos 5 6 7 2.1. MonoSlam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2. Inverse Depth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3. SLAM visual aplicado a imágenes de endoscopio 11 3.1. Captura y codicación de secuencias . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2. Calibración de la cámara endoscópica . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3. Detección de puntos de interés en las imágenes 13 . . . . . . . . . . . . . . . . . . . 3.3.1. Obtención de imágenes en B&N . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.2. Eliminación de los brillos 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Reconstrucción Densa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5. Realidad aumentada y virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.6. Medición de distancias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.7. Desarrollo de un entorno de realidad aumentada para cirugía 19 3.8. Reestructuración interna de la arquitectura software 3.9. Parametrización por chero . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4. Pruebas y resultados 4.1. 21 Pruebas y resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Trabajos Futuros y Conclusiones 5.1. Línea de investigación futura 5.2. Conclusiones 21 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Bibliografía 27 1 Índice de guras 2.1. Denición del sistema de coordenadas. La posición (1) de la cámara es donde se ha inicializado el sistema y por lo tanto es donde se dene el sistema mundo. A la posición (2) se llega tras mover la cámara de la posición original, ahí se puede ver como está denido el sistema de la cámara. . . . . . . . . . . . . . . . . . . . . . 9 2.2. Codicación en inverse depth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1. Patrón plano utilizado para la calibración de la cámara. . . . . . . . . . . . . . . 12 3.2. Imágenes para calibrar la cámara. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3. Imagen a color y su descomposición en bandas de colores. Las bandas de rojo y de azul tienen zonas muy claras y muy oscuras, respectivamente, en las cuales se aprecia muy poco contraste. Por contra, en la banda de verde es donde más contraste hay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. 13 Las 4 subguras son el mismo frame de la misma secuencia procesada sin ltrado de brillos (3.4(a) y 3.4(b)) y con ltrados de brillos (3.4(c) y 3.4(d)). En las imágenes sin ltrar se puede ver que la aplicación ha detectado algunos brillos (puntos en blanco) como características los cuales no aparecen en las imágenes ltradas. . . . 3.5. 14 Medición de la altura de una eventración con una goma elástica para ligar vasos. El recuadro verde indica el agujero ventral que hay que medir. Se puede apreciar que con la goma elástica roja no se puede medir de forma precisa ese agujero. . . 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.6. Interfaces 4.1. Frames de una exploración abdominal. En la gura se muestra 1 frame de cada 30. 4.2. 21 Vistas de la reconstrucción nal de la secuencia de la gura 4.1. Los puntos rojos y amarillos son las características detectadas por monoSlam y utilizadas en la reconstrucción densa. Las líneas verdes son las aristas de los triángulos obtenidos 4.3. 4.4. con la triangulación de Delaunay. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Frames de la segunda secuencia. En la gura se muestra 1 frame de cada 14. . . . 22 Reconstrucción de la secuencia de la gura 4.3 con la medida de la anchura de la eventración (doble echa blanca) y su error. . . . . . . . . . . . . . . . . . . . . . 2 23 ÍNDICE DE FIGURAS 4.5. 3 Inserción de un elemento virtual, en este caso un cilindro (rojo), que podría representar por ejemplo un vaso sanguíneo. En 4.5(a) se ha insertado el cilindro denido por las 2 características en blanco. El cilindro es visible tanto como en realidad aumentada sobre la imagen del endoscopio (izq.) como en realidad virtual sobre la reconstrucción 3D (der.). En 4.5(b) el cilindro ha desaparecido del campo de visión del endoscopio, sin embargo este está localizado dentro de la reconstrucción 3D la cual ha aumentado el fov que el cirujano ve. Finalmente, en 4.5(c), el endoscopio vuelve a estar dirigido a la zona donde está el cilindro, por lo tanto este vuelve a aparecer como realidad aumentada sobre la imagen del endoscopio (izq.). . . . . . 5.1. 23 En ambas subguras el rectángulo negro representa la imagen vista por la cámara y el color gris representa la falta de textura. En 5.1(a) existía un triángulo con textura. Al desplazarse la cámara, un vértice de ese triángulo se ha salido de la imagen, creándose una nueva característica (rojo) que ha ocasionado una nueva retriangulación formando 3 triángulos, 2 de los cuales se han quedado sin textura por estar uno de sus vértices fuera de la imagen. En 5.1(b) se tenían 3 triángulos con textura. Al desplazarse la cámara, uno de los vértices se ha salido de la imagen y, a su vez, otro se ha eliminado (rojo) causando una nueva retriangulación y pasando de 3 triángulos a 1 sin textura por tener uno de sus vértices fuera de la imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Capítulo 1 Introducción 1.1. Contexto La cirugía endoscópica, también denominada laparoscópica cuando se realiza dentro de la cavidad abdominal, se ha extendido hoy en día a la mayoría de las especialidades quirúrgicas, incluidas la cirugía general, torácica, urología y ginecología. Este tipo de cirugía presenta varios benecios con respecto a la cirugía tradicional tanto para los pacientes porque la intervención es menos traumática (menor perdida de sangre y por lo tanto menor número de transfusiones, menor consumo de analgésicos, y periodos de hospitalización más cortos) [1], como para los cirujanos porque son más ecientes y precisos. Por todo esto y como la utilización del acceso endoscópico permite realizar la mayoría de las intervenciones, esta está sustituyendo al acceso convencional, evitando así practicar una gran incisión cutánea que penetra dentro de las cavidades abdominales o torácicas. Sin embargo, este tipo de cirugía presenta actualmente varios problemas de usabilidad de cara al cirujano relacionados con el campo de visión de la cámara y con la tecnología de visión utilizada (imágenes monoculares). Por una parte, los sistemas actuales de cirugía endoscópica muestran al cirujano, únicamente, la imagen que la cámara endoscópica está captando en cada momento, sin mostrar información del resto de la cavidad. Por lo tanto, la visión que se tiene del campo quirúrgico está limitada al campo de vista de la cámara (fov), el cual es más reducido que en la visión humana por no existir la visión periférica. Esto hace que sólo se detecte una pequeña porción de la anatomía donde se está trabajando. Además, este problema se complica por usar lentes de ángulo estrecho para tener mayor magnicación. Al estar limitada la visión al fov, el cirujano desconoce la localización de las estructuras anatómicas que quedan fuera de este además, esta visión limitada, diculta la localización precisa de los propios instrumentos quirúrgicos. Por otra, el cirujano, al basar sus intervenciones en imágenes bidimensionales, desconoce por completo la profundidad de la cavidad donde opera y las dimensiones de las vísceras que va viendo por la cámara (el cirujano no puede hacer ninguna medición de distancia). Esto obliga a un continuo movimiento de la cámara para valorar la distancia entre los instrumentos y la estructura anatómica que se quiere intervenir, lo que ocasiona falta de precisión, movimientos parásitos y posibilidad de lesión de estructuras vitales (p. ej. grandes vasos sanguíneos u órganos vitales). 4 1. Introducción 5 1.2. Trabajos relacionados La visión por computador se ha utilizado en cirugía laparoscópica sobre todo para detectar y seguir a las herramientas. Wei et al. [2] las localizan y las siguen por medio de marcas de colores jadas a estas y con un laparoscopio estereoscópico. Krupa et al. [3], para localizar las herramientas, utilizan marcadores ópticos sobre el eje de estas y, para calcular su distancia y orientación con respecto al órgano, proyectan sobre este un patrón de puntos láser. Hynes et al. [4] utilizan marcadores ópticos, que son parches de múltiples colores y que ellos denominan encoders, sobre el eje de la herramienta para detectarla y así poder realizar varias tareas de forma autónoma. Todos estos trabajos hacen visual servoing donde el objetivo es mover automáticamente y de forma segura los instrumentos quirúrgicos. Otro trabajo en el que se detectan las herramientas pero que no está interesado en el visual servoing es el de Voros et al. [1]. En este trabajo, la detección de los instrumentos se hace utilizando geometría epipolar con los puntos de inserción en la cavidad abdominal de las herramientas y la cámara y, en vez de utilizar marcadores ópticos, utilizando un modelo de forma de los instrumentos. También, determinan la distancia entre el instrumento y la cámara para controlar el zoom y la orientación de esta. Aunque todos estos trabajos necesitan calcular la posición de la herramienta con respecto al fondo de la cavidad, ninguno de ellos permite hacer otro tipo de medidas como por ejemplo medir la anchura de un órgano determinado. Además, ninguno de ellos permite aumentar el fov. Trabajos como [5, 6] hacen reconstrucciones endoscópicas usando endoscopios estéreo. Wu et al. [7] hace un modelado en 3D usando su método de factorización basado en restricciones (CBFM). Este método usa secuencias de imágenes laparoscópicas para hacer una reconstrucción densa cercana a tiempo real sin usar datos adicionales de CT o MR. Estos trabajos, con pequeñas modicaciones, permitirían realizar mediciones ya que para hacer la reconstrucción densa se precisan conocer la posición relativa entre cada punto de referencia. Además, con una reconstrucción densa se aumenta el fov de una forma sintética. El problema de estos trabajos es que no lo hacen en tiempo real. 1.3. Objetivos El objetivo de este trabajo es aplicar las técnicas de visión por computador en tiempo real recientemente desarrolladas en el campo de la robótica al de la imagen médica endoscópica. 1 en Una cámara monocular es un sensor proyectivo que mide la orientación de características las imágenes. Es bien sabido, que dada una secuencia de imágenes de una estructura 3D rígida tomada con una cámara que se mueve, se puede calcular la estructura de la escena y el movimiento de la cámara hasta un factor de escala. Para inferir la posición 3D de una característica, la cámara debe de observarla repetidamente cada vez capturando un rayo de luz que une a la característica con el centro óptico de la cámara. El ángulo medido entre los rayos capturados desde diferentes puntos de vista, el cual es conocido como paralaje, permite estimar la profundidad de la característica [8]. La técnica de slam monocular (slam visual) hace uso de las imágenes que proporciona una cámara de vídeo con 6 grados de libertad para localizar y detectar los movimientos de la cámara 1 Puntos destacados e inequívocos que se corresponden de forma unívoca en varias imágenes de la misma escena. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 1. Introducción 6 dentro del entorno en el que se encuentra (en este caso sería la cavidad abdominal) y, al mismo tiempo, generar un mapa de este entorno localizando características rígidas (características que permanecen en una posición ja en el tiempo), todo ello en tiempo real a frecuencia de vídeo. La realidad virtual permite visualizar entornos sintéticos en tiempo real representando en ellos, por ejemplo, la reconstrucción 3D de la cavidad que está siendo operada. Esto permite aumentar el fov al utilizarse varias imágenes de distintos puntos de vista de la cavidad para hacer la reconstrucción virtual, además, le ofrece al cirujano el poder cambiar la perspectiva de visualización de la cavidad u órgano que está operando ayudándole a comprender la naturaleza de esta/e. Por otro lado, la realidad aumentada permite añadir información virtual a la información física ya existente. Para ello, se generan modelos virtuales relacionados con la realidad física y se determina la situación exacta de cada uno de ellos en la escena para mostrar al usuario una representación de la realidad física, la imagen del endoscopio, con el entorno virtual superpuesto. En realidad aumentada es necesario determinar la localización de la cámara con precisión para que los elementos visuales (objetos físicos reales e información virtual) estén perfectamente alineados en la imagen. Esta información es aportada directamente por el slam visual. En este proyecto se propone un sistema computerizado de visualización basado en realidades virtual y aumentada donde se muestra al cirujano un mapa 3D fotorrealista de la cavidad operada, construido en tiempo real, de modo que él vea tanto la imagen de la cámara como un entorno virtual añadido. Este sistema se compone de un PC estándar, conectado directamente al endoscopio, que captura las imágenes de vídeo de este y las procesa para mostrárselas al cirujano con realidad aumentada y con un mapa 3D sintético y fotorrealista de la cavidad operada, todo realizado en tiempo real. También se dispone de herramientas para la realización de mediciones de distancias relativas a cuatro puntos de la escena reconstruida. 1.4. Distribución de la memoria El capítulo 2 está dedicado a la presentación de slam monocular con profundidad inversa. En el capítulo 3 se habla sobre todo el trabajo realizado en este proyecto (captura de secuencias, calibración de la cámara, detección de puntos de interés, reconstrucción densa, realidad aumentada y virtual, medición de distancias, desarrollo del entorno de realidad aumentada, arquitectura de la aplicación y parametrización). Los resultados obtenidos se presentan en el capítulo 4. Finalmente, las líneas de trabajo futuras y las conclusiones alcanzadas son tratadas en el capítulo 5. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Capítulo 2 Trabajos previos 2.1. MonoSlam SLAM es un acrónimo de Simultaneous Localization and Mapping. Esta técnica, desarrollada en el campo de la robótica, consiste en que moviendo un robot con una localización desconocida y usando sus sensores, los cuales devuelven datos sobre el entorno dentro del cual se mueve, el robot es capaz de calcular el mapa del entorno al mismo tiempo que se va autolocalizando dentro de este [9]. Se ha demostrado que ambos problemas, la localización y el mapeo, están acoplados y que para resolver uno es preciso resolver el otro. Tradicionalmente, el SLAM se realizaba sobre todo con sensores láser o con sónares pero, recientemente, se han empezado a usar cámaras de vídeo lo que ha permitido la aparición de los primeros sistemas de visión 3D en tiempo real. Los trabajos iniciales sobre reconstrucción de la trayectoria de la cámara y de la geometría 3D de la escena o estructura, conocidos como Structure From Motion (SFM), se realizaban oine. En ellos, se capturaba una secuencia de imágenes que más tarde se procesaba para reconstruir la trayectoria seguida por la cámara y la estructura de la escena observada. Para obtener la máxima precisión posible, estos algoritmos se basaban en una optimización no lineal conocida como Bundle Adjustment [10]. No fue hasta los trabajos sobre SLAM monocular (MonoSlam) de A. Davison [11, 12] cuando se empezó a realizar SLAM con visión en tiempo real. Davison presentó un algoritmo que permitía trabajar con secuencias de vídeo a altas tasas de frame (30Hz o 30 imágenes/s) utilizando un ltro de Kalman extendido (EKF) que linealizaba el proceso de reconstrucción de la trayectoria y de la estructura 3D. Este algoritmo procesa las imágenes que proporciona una cámara de vídeo con 6 grados de libertad para localizar y detectar los movimientos de esta dentro del entorno en el que se encuentra (p. ej. la cavidad abdominal) y al mismo tiempo generar un mapa 3D de este entorno todo ello basado en la localización y emparejamiento de características rígidas (características que permanecen en una posición ja en el tiempo). El núcleo de este algoritmo es un EKF (capítulo 3 de [13]), que se ejecuta para cada frame, cuyos 3 pasos son: 1. Predicción: El ltro predice la posición y la velocidad de la cámara así como sus incerti- 7 2. Trabajos previos 8 dumbres de acuerdo a un modelo de movimiento suave probabilístico a priori de la cámara. 2. Asociación de datos: Este paso consiste en emparejar características del mapa, detectadas en frames anteriores, con sus observaciones en la imagen. El mapa se basa en la extracción automática de características de Shi-Tomasi [14] o de Harris [15] guardando para cada característica una máscara de correlación. En la asociación de datos se predice la posición de las características del mapa sobre la imagen para posteriormente emparejarlas (encontrarlas en la imagen mediante sus máscaras de correlación). Por lo tanto, es un paso crítico ya que es primordial que no realice falsos emparejamientos (emparejamientos espurios) porque, uno solo mal hecho, puede arruinar toda la estimación y hacer que el sistema falle. Neira y Tardós, con su test de compatibilidad conjunta (JCBB) en [16], tienen en cuenta que los emparejamientos están correlados entre si, lo que les permite rechazar satisfactoriamente los espurios con gran abilidad. En Clemente et al. [17] se muestra esta capacidad mostrando además, como la JCBB posibilita la construcción de grandes mapas con visión monocular. Una vez se tiene la localización de la cámara predicha, EKF predice cual es la posición de cada característica del mapa dentro de la imagen seleccionando aquellas que son visibles en esta. Luego, intenta emparejar cada característica seleccionada dentro de una región de incertidumbre centrada en la posición predicha para dicha característica. Una vez que se han realizado todos los emparejamientos, EKF calcula su innovación a partir de los errores entre las posiciones real y la predicha de cada característica. 3. Actualización: Conocida la innovación, EKF actualiza las posiciones de las características y la localización actual de la cámara reduciendo las incertidumbres de la cámara y de las características. Tras el paso del ltro de Kalman, se realizan las operaciones de mantenimiento del mapa, primero, haciendo una búsqueda activa de nuevas posibles características en la imagen, puntos de Shi-Tomasi, para añadir a este y después, eliminando características que se han predicho varias veces consecutivas pero que no se han conseguido medir o se han medido pocas veces. Estos dos últimos pasos dan n al procesado del frame actual y se espera a que la cámara devuelva el siguiente para repetir todo el proceso. MonoSlam necesita un sistema de referencia jo y absoluto el cual es usado para localizar globalmente a todas las características y a la cámara. Este sistema de coordenadas (sistema mundo) se establece al iniciar el algoritmo. En este momento se dene el origen del sistema de coordenadas como la posición actual de la cámara, el eje Z como el eje que sale del centro óptico hacia la escena, el eje Y como el eje perpendicular a Z y que apunta a la parte superior de la cámara y el eje X como el perpendicular al Y y al Z y que apunta hacia la izquierda de la cámara (ver gura 2.1). El mapa está representado por un vector de estado x̂, el cual está compuesto por las estima- ciones de estado apiladas de la cámara y de las características, y por una matriz de covarianza P la cual está formada por las matrices de covarianza entre la cámara y las características como Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 2. Trabajos previos 9 Figura 2.1: Denición del sistema de coordenadas. La posición (1) de la cámara es donde se ha inicializado el sistema y por lo tanto es donde se dene el sistema mundo. A la posición (2) se llega tras mover la cámara de la posición original, ahí se puede ver como está denido el sistema de la cámara. sigue: x̂v Pxx Pxy1 ŷ1 Py x Py y 1 1 1 x̂ = ŷ , P = P P 2 y x y 2 y1 2 . . . . . . Pxy2 Py1 y2 Py2 y2 . . . . . . ... . . . . . . .. (2.1) . xv (13 parámetros) está formado por un rW , un cuaternio de orientación qRW , un vector de velocidad vW y un vector R relativos al sistema mundo W y al sistema robot R : angular ω Explícitamente, el vector de estado de la cámara vector de posición de velocidad xv = r W qW R vW ωR Finalmente, un vector de estado de una característica T yi (2.2) es un vector de 3 dimensiones con la localización en el sistema mundo de la característica. Esta forma de codicar la localización es conocida como depth encoding: yi = Xi Yi Zi T (2.3) 2.2. Inverse Depth MonoSlam muestra dicultades al estimar la incertidumbre en profundidad de las características recién inicializadas de modo que las trata de forma separada al mapa principal esperando a que la cámara se traslade lo suciente como para detectar el paralaje necesario que permita reducir la incertidumbre en profundidad antes de introducirlas en el mapa. Montiel y Civera, en sus trabajos [18, 8], mostraron que usando una codicación inverse depth para la localización de las características, en vez de depth encoding, se resolvían las dicultades que MonoSlam presentaba con las características recién inicializadas introduciéndolas directamente en el mapa y evitando que el sistema se tuviera que inicializar con un objeto conocido Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 2. Trabajos previos 10 delante de la cámara. Una localización de una característica codicada en inverse depth necesita de un vector de 6 dimensiones en vez de uno de 3 como en depth encoding: yi = xi yi zi θi φi ρi T (2.4) Ahora, la característica se localiza dentro del sistema mundo como: Xi xi 1 xi = Yi = yi + m(θi , φi ) ρi Zi zi m = cos φi sin θi − sin φi cos φi cos θi En la ecuación (2.4), el vector yi (2.5) T . codica el rayo desde la posición de la cámara desde la cual la característica fue observada por primera vez hacia la característica siendo óptico de la cámara y θ i , φi x i , yi , z i el centro el azimut y la elevación (codicados en el sistema mundo) deniendo un vector direccional unitario di (2.6) m(θi , φi ). La profundidad de ρi = 1/di (ver gura 2.2). la característica a lo largo del rayo está codicada en su inversa Figura 2.2: Codicación en inverse depth. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Capítulo 3 SLAM visual aplicado a imágenes de endoscopio 3.1. Captura y codicación de secuencias El sistema habitual de registro de operaciones en laparoscopia son vídeos comprimidos en MPEG. Estas secuencias presentan problemas por un lado por el entrelazado de las imágenes y por otro por las compresiones intra e inter frame producidas por el sistema de captura del endoscopio. Muchos endoscopios actuales emplean imágenes entrelazadas sin embargo, la aplicación de monoSlam trabaja con imágenes digitales no entrelazadas. Por lo tanto, es necesario desentrelazar y digitalizar las imágenes antes de pasarselas a esta aplicación. Este entrelazamiento produce artefactos como el efecto peine, el cual es pernicioso para monoSlam ya que se detectan características destacables de la imagen donde no las hay. Este problema se soluciona ignorando las las y las columnas (aunque estas últimas no es necesario) pares o impares de la imagen original y por lo tanto trabajando con una imagen a la cuarta parte de la original. Por otro lado, el ordenador del endoscopio permite registrar cada operación en MPEG. Esta compresión provoca que las imágenes aparezcan difuminadas para el extractor de características de monoSlam, aunque no para el ojo humano, lo que hace que se obtengan pocas y malas características sobre las cuales realizar el slam visual. Para solucionar este problema se emplea una tarjeta capturadora de vídeo que, conectada al endoscopio y a un portátil estándar, permite obtener cada frame en crudo (sin compresión alguna). Además, esta tarjeta tiene la opción de realizar el subsampling de la imagen (ignorar las las y las columnas pares o impares) solucionando por hardware el problema del entrelazado. 3.2. Calibración de la cámara endoscópica La calibración es un proceso para estimar los parámetros intrínsecos de la cámara (distancia focal en mm, tamaño del píxel, distorsión radial y centro óptico) los cuales permiten relacionar 1 las mediciones sobre la imagen con la orientación de los correspondientes rayos proyectantes . 1 Rayo proyectante: rayo que une el centro óptico de la cámara con el objeto a medir y que intersecta con el plano de proyección (plano de imagen) registrando en él la imagen bidimensional de dicho objeto. 11 3. SLAM visual aplicado a imágenes de endoscopio 12 Anchura Imagen 384,0 px Altura Imagen 288,0 px Centro X 204,5 px Centro Y 134,6 px Focal X 248,96 px Focal Y 268,22 px Tamaño píxel 0,0167 K1 0,009003 K2 -0,000287 mm · px−1 mm−2 mm−4 Cuadro 3.1: Ejemplo de parámetros de calibración (px: píxeles; mm: milímetros). Se ha usado un software comercial de fotogrametría (PhotoModeler) que está basado en el método de calibración de patrón plano propuesto por Zhang [19]. Este método calcula la calibración de la cámara aplicando un método de optimización no lineal sobre varias imágenes tomadas, desde diferentes orientaciones, a un mismo patrón plano. Tanto la cámara como el patrón pueden ser movidos a mano y el movimiento de la cámara no necesita ser conocido. Comparado con las técnicas de calibración clásicas, esta es más exible y barata además de robusta. El trabajo de Zhang se complementa con el de Strum [20] donde se muestran las posibles singularidades de la calibración basada en patrón plano. Este trabajo muestra como evitar esas singularidades para obtener una calibración exitosa. Además, para llevar a cabo la calibración, se necesita un mínimo de 5 imágenes (Hartley y Zisserman [21]). Figura 3.1: Patrón plano utilizado para la calibración de la cámara. Copyright 2003 Eos Systems Inc - PhotoModeler Pro Calibration Grid Por lo tanto, para hacer una calibración correcta, se deben de tomar varias imágenes de un patrón plano (ver g. 3.1) desde determinados puntos de vista con la misma cámara endoscópica y con la misma lente usada en cirugía. Con PhotoModeler y con un conjunto de imágenes libre de singularidades (ver g. 3.2) se han calculado los parámetros intrínsecos de la cámara (ver tabla 3.2). El problema que tienen estos parámetros es que son especícos para cada cámara y cada lente que se monta en ella por lo que la calibración hay que hacerla justo antes de cada intervención. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 13 Figura 3.2: Imágenes para calibrar la cámara. 3.3. Detección de puntos de interés en las imágenes Como muchas aplicaciones de visión por computador, monoSlam trabaja con imágenes en blanco y negro (B&N) muy texturizadas sobre las que se detectan puntos de Shi-Tomasi, pero el endoscopio devuelve las imágenes a color. Por lo tanto, es preciso obtener imágenes en B&N a partir de las de color. Por otro lado, las imágenes viscerales son propensas a contener brillos. Esto provoca que el extractor de características de monoSlam los mal detecte como características y, por ello, tienen que ser eliminados. 3.3.1. Obtención de imágenes en B&N Tras varios experimentos con secuencias, se ha notado que una buena forma de obtener una imagen en B&N de los órganos internos es extrayendo el canal de verde de las imágenes a color. Por el alto contenido en rojo y en azul de este tipo de imágenes, estas dos bandas nos aportan muy poca información visual, sin embargo, la banda de verde mejora el contraste de la imagen en B&N resaltando características y texturas que de otra forma se perderían (ver g. 3.3). (a) Color (b) Rojo (c) Verde (d) Azul Figura 3.3: Imagen a color y su descomposición en bandas de colores. Las bandas de rojo y de azul tienen zonas muy claras y muy oscuras, respectivamente, en las cuales se aprecia muy poco contraste. Por contra, en la banda de verde es donde más contraste hay. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 14 Este preprocesamiento ha sido añadido al bucle principal de monoSlam antes de la detección de los puntos de Shi-Tomasi y de la obtención de las máscaras de correlación empleadas para la correspondencia. 3.3.2. Eliminación de los brillos La fuente de luz fría, la cual es solidaria a la cámara, apunta directamente a los tejidos produciendo brillos 2 en las imágenes. El extractor de características de monoSlam interpreta estos brillos como características destacadas y salientes y son introducidas en el mapa. Sin embargo, no son auténticas características porque su localización y su forma varían a medida que la cámara se mueve. Para evitar tener en cuenta este tipo de características y como los brillos en la imagen son píxeles con valores cercanos al blanco, se ha establecido un umbral dentro del extractor de características para ltrar aquellas que contengan algún píxel de valor mayor a este (ver g. 3.4). (a) Brillos en la imagen a color (c) Imagen a color sin brillos (b) Brillos en la banda verde (d) Banda de verde sin brillos Figura 3.4: Las 4 subguras son el mismo frame de la misma secuencia procesada sin ltrado de brillos (3.4(a) y 3.4(b)) y con ltrados de brillos (3.4(c) y 3.4(d)). En las imágenes sin ltrar se puede ver que la aplicación ha detectado algunos brillos (puntos en blanco) como características los cuales no aparecen en las imágenes ltradas. 2 Un brillo es un atributo de percepción visual en el cual una fuente parece emitir o reejar una cierta cantidad de luz dada. Son provocados por iluminar a un objetivo visual. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 15 3.4. Reconstrucción Densa MonoSlam estima la localización de las características en el sistema mundo y, muestra su distribución espacial y sus distancias relativas como una nube de puntos en un visualizador 3D, sin mostrar nada sobre la textura de las estructuras de la escena. Este tipo de reconstrucción es útil en robótica, pero no es suciente para cirugía, donde tiene más interés un mapa 3D denso que facilite la interpretación del modelo 3D reconstruido. Como lo que se busca es aumentar el fov de la cámara utilizando realidad virtual, se puede utilizar la reconstrucción que hace monoSlam como base y sobre ella montar una red de triángulos que acumulen la textura de la supercie 3D observada, obteniendo así una reconstrucción densa y sintética 3D de la cavidad, la cual aporta más información espacial que las imágenes aisladas del laparoscopio. La reconstrucción implementada aquí es una adaptación de la de Civera [22], con la diferencia de que él la hacía para una cámara que solo rotaba y en este proyecto se hace para una cámara que se desplaza. Algorithm 1 Triangulación 1: global Lista de triángulos T 2: global Lista de correspondencias CL 3: 4: L ← lista vacía D ← lista vacía Lista de características Lista de triángulos {La triangulación requiere 3 características o más} 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: if ≥ 3 then for all f en lista de características de MonoSlam do if f no fue medido en el último EKF o la profundidad f n o de características en MonoSlam > umbral then Continuar else f0 ← Proyección f sobre el plano X-Y del sistema mundo Añadir la correspondencia entre 0 Añadir f a end if end for f y f0 a CL L {La triangulación requiere 3 características o más} 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: if n o de características en D← L≥ 3 then Triangulación_Delaunay(L) end if end if for all t en D do if t no está en T then Añadir t a T Obtener la textura desde la imagen a color original end if end for Eliminar de T los triángulos sin alguno de sus vértices o los que han sido reparticionados Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 16 Esta reconstrucción consta de 2 etapas principales. La primera calcula una triangulación de Delaunay sobre el plano X-Y del sistema mundo de las últimas características emparejadas por monoSlam, añadiendo los nuevos triángulos obtenidos a una lista de triángulos existente, además, borra los triángulos en los que alguno de sus vértices ha sido eliminado o esos que han sido reparticionados en triángulos más pequeños. La segunda etapa extrae las texturas de las imágenes a color originales y las pega sobre los triángulos (ver alg. 1). En el algoritmo 1, la lista de triángulos T es una lista global donde se guardan desde el principio de la ejecución todos los triángulos utilizados en la reconstrucción densa. La lista de correspondencias CL guarda la correspondencia entre una característica y su proyección en el plano X-Y del sistema mundo. Con esta reconstrucción se produce una réplica completa de la cavidad observada, lo que hace que aumente el fov de forma sintética. Sobre esta reconstrucción se puede insertar información virtual que sirva de ayuda durante la operación. Por ejemplo, se pueden mostrar regiones críticas de la cavidad que tienen que ser protegidas y que por lo tanto los cirujanos tienen que tener en cuenta o, se puede superponer planos de resección por donde se tiene que realizar el corte de un órgano. Esta información virtual permanecerá en el visualizador 3D aunque la cámara apunte a otros lugares diferentes donde esta radica y será superpuesta, a modo de realidad aumentada, sobre la imagen del laparoscopio cuando la cámara la observe. Algunas reconstrucciones obtenidas se pueden ver en las guras 4.2 y 4.4. 3.5. Realidad aumentada y virtual La razón para implementar elementos de realidad aumentada y virtual es ayudar al cirujano dándole información adicional sobre la operación y guiarle en ella. Esta información se muestra en tiempo real, tanto en forma de realidad aumentada sobre la imagen en color del endoscopio, como en forma de realidad virtual sobre la reconstrucción sintética. Se han implementado dos tipos de elementos virtuales (cilindros y planos) para marcar las áreas vitales de la cavidad que tienen que ser protegidas (p. ej. vasos sanguíneos) o para marcar planos o áreas que tienen que ser reseccionados. 3 Por ejemplo, el uso de los cilindros podría ser útil en las colecistectomías . En este tipo de operaciones el conducto y la arteria cística tienen que ser cortados sin dañar la vía ni la arteria biliar. Estas dos últimas estructuras se pueden marcar con un cilindro de modo que el cirujano sepa en todo momento donde están, aunque la cámara apunte a otro lado. 4 El uso de planos puede tener sentido en operaciones como las hepatectomías , ya que con ellos se puede denir el plano de resección que el cirujano tiene que seguir para extirpar el trozo de hígado dañado. Esto puede evitar daños innecesarios del hígado siendo la cirugía menos traumática para el paciente. Un ejemplo de la inserción de un cilindro se puede ver en la gura 4.5. Un vídeo donde se realizan inserciones virtuales se puede encontrar en http://robots.unizar.es/data/videos/ 3 4 Resección de la vesícula biliar. Resección de una porción del hígado. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 17 reconstruccionDensa/005_ElementosVirtuales_divx.avi. 3.6. Medición de distancias 5 donde el cirujano necesita hacer me- Hay operaciones como por ejemplo las eventraciones didas de distancias de lo que está viendo. Actualmente, esas medidas se hacen comparando la distancia a medir con un objeto conocido. Este método presenta 2 problemas. Por un lado, el gran tiempo que le lleva al cirujano la realización de las medidas. Por otro, la falta de precisión por la dicultad de acceso a la estructura a medir y por la carencia de percepción de profundidad (ver g. 3.5). Figura 3.5: Medición de la altura de una eventración con una goma elástica para ligar vasos. El recuadro verde indica el agujero ventral que hay que medir. Se puede apreciar que con la goma elástica roja no se puede medir de forma precisa ese agujero. Como monoSlam trabaja inriendo la estructura 3D hasta un factor de escala, se ha desarrollado un método de medición precisa a partir de imágenes. Por otro lado, los instrumentos tienen dimensiones conocidas y por lo tanto se conoce su longitud de forma precisa. Entonces, aprovechando estos dos factores, se ha desarrollado un método que obtiene las distancias de monoSlam y les aplica el factor de escala que se obtiene de la longitud conocida de los instrumentos al medirlos a través de monoSlam. Con este método, se conoce con mucha precisión cualquier medida entre dos puntos dentro de la cavidad abdominal. Además, aprovechando que monoSlam estima las incertidumbres de las características, el método desarrollado hace propagación de errores, lo que permite obtener el resultado de la medición junto con una estimación del error. Para implementar el sistema de medición hay que denir la distancia entre dos puntos, codicados en inverse depth, y el factor de escala. La distancia euclídea es: d(i, j) = d entre dos puntos del mapa q (xi − xj )2 + (yi − yj )2 + (zi − zj )2 (3.1) Como se está trabajando con inverse depth, la ecuación (3.1) tiene que representarse usando las ecuaciones (2.5) obteniendo que la distancia a partir de la codicación en inverse depth es: q d(i, j) = (Xi − Xj )2 + (Yi − Yj )2 + (Zi − Zj )2 5 (3.2) Protrusión del intestino a través de la pared abdominal. También conocido como hernia ventral. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 18 Donde: cos φj sin θj cos φi sin θi − xcj − ρi ρj sin φj sin φi Yi − Yj = yci − − ycj + ρi ρj cos φi cos θi cos φi cos θi − zcj − Zi − Zj = zci + ρi ρj Xi − Xj = xci + (3.3) Las mediciones en monoSlam se hacen relativas a la distancia que separa a 2 puntos de referencia d(r1 , r2 ) de los cuales se conoce con exactitud su distancia real. Estos 2 puntos pueden encontrarse sobre algún instrumento cuya distancia real, que será el factor de escala s, ha sido medida previamente. Este instrumento se introduce por el trocar y se ja para evitar cualquier movimiento. Entonces, para medir la distancia relativa con MonoSlam entre dos puntos referencia r1 y r2 i y j y los de se procede de la siguiente forma: dM (i, j) = Aplicando a (3.4) el factor de escala s d(i, j) d(r1 , r2 ) (3.4) dR (i, j) se obtiene la distancia real dR (i, j) = s · dM (i, j) entre i y j: (3.5) Aprovechando que monoSlam da la covarianza conjunta de estimación para todos los puntos del mapa, se puede propagar el error mediante el siguiente jacobiano: J= En (3.6), v ∂dR (i, j) ∂v (3.6) es un vector de 24 componentes compuesto por 4 vectores de 6 componentes (un vector por cada característica tenida en cuenta en (3.4): i, j, r1 , r2 ). Cada componente de cada uno de los 4 vectores es un parámetro en inverse depth como en (2.4) dando: vx = xcx ycx zcx θx φx ρx v = vi vj vr1 vr2 (3.7) Así pues, el error de medida al 95'44 % es: √ ε = 2 JP JT Siendo P una matriz compuesta por las submatrices conjunta de las características i, j , r1 y r2: Pii Pji P = Pr1 i Pr2 i Pij Pjj Pr1 j Pr2 j Pir1 Pjr1 Pr1 r1 Pr2 r1 (3.8) Pxy las cuales representan la covarianza Pir2 Pjr2 Pr1 r2 Pr2 r2 (3.9) Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 19 3.7. Desarrollo de un entorno de realidad aumentada para cirugía Como consecuencia de la adaptación de monoSlam a la laparoscopia, el interfaz gráco original se ha tenido que adecuar a las nuevas exigencias que esta adaptación requería. El nuevo interfaz se programó con unas librerías grácas actuales (QT) abandonando las anteriores las cuales ya no son mantenidas por su autor (Glow), además se añadieron varios botones que daban acceso a las nuevas funcionalidades: 1. Selección de cualquier tipo de elemento desde el visualizador 3D o desde la imagen del laparoscopio. 2. Inserción de características por parte del usuario. 3. Inserción de elementos virtuales como planos y cilindros para realizar anotaciones en realidad virtual y aumentada. 4. Eliminación de cualquier elemento virtual o cualquier característica. 5. Establecimiento de la escala para poder hacer mediciones de distancias reales. 6. Realización de mediciones de distancias. Junto con la nueva botonera, se añadió una zona donde establecer un panel informativo/interactivo sobre el cual el usuario puede ver información sobre el elemento seleccionado (p. ej. las coordenadas 3D de una característica) o puede interactuar con él (p. ej. cambiar el tamaño de un cilindro). El interfaz original y el nuevo pueden ser vistos en la g. 3.6. (a) Interfaz antiguo. (b) Interfaz nuevo. Figura 3.6: Interfaces 3.8. Reestructuración interna de la arquitectura software Para la adaptación de monoSlam a laparoscopia se tuvo que hacer una reorganización interna de la arquitectura del software. Se pasó de una arquitectura con 2 threads que accedían en cualquier momento a las secciones críticas que compartían, a un sistema de 2 threads con accesos a las secciones críticas limitadas a un único punto en todo el programa y controlado por semáforos. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 3. SLAM visual aplicado a imágenes de endoscopio 20 Con esto se solucionaron los problemas de estabilidad del sistema original producidos por condiciones de carrera entre los threads. Estas provocaban que los refrescos de pantalla fuesen en algunos momento lentos y a veces producían que el programa abortase, sobre todo, cuando el usuario quería interactuar con la aplicación añadiendo o seleccionando características a medir. Ahora el usuario puede interactuar con la aplicación en tiempo real y puede añadir o eliminar características, elementos virtuales o realizar mediciones sin que el programa aborte y se cancele. 3.9. Parametrización por chero Una de las tareas más importantes realizada en este proyecto ha sido la parametrización de todo el sistema en cheros externos a él. MonoSlam tenía todos los parámetros necesarios para su funcionamiento denidos como constantes dispersas por el código lo que hacía que, para cada ejecución que se quería realizar, se tuvieran que anar en diversos cheros y hubiera que compilar la aplicación entera. Con la parametrización por chero se han centralizado todos los parámetros en un único chero, pudiéndose denir sin la necesidad de compilar en cada momento. Esto, además, permite generar un chero de conguración para cada simulación a realizar permitiendo mantener todas las conguraciones de todas las ejecuciones realizadas. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Capítulo 4 Pruebas y resultados 4.1. Pruebas y resultados Los experimentos se han realizado fuera de quirófano, con secuencias de unos pocos cientos de frames tomadas de operaciones reales en el hospital clínico universitario Lozano Blesa de Zaragoza. Todas las secuencias cumplían los mismos requisitos: eran secuencias de una estructura rígida, tenía poco movimiento producido por la respiración o por los latidos del corazón; no aparecían elementos móviles, instrumentos quirúrgicos desplazándose por la imagen; y no contenían grandes oclusiones. Este tipo de secuencias ocurre cuando el cirujano hace una exploración de la cavidad para ver su estado. Aprovechando esta, se aplica el software desarrollado en este proyecto a esa secuencia obteniendo unas reconstrucciones en tiempo real bastante dedignas. En la gura 4.1 vemos algunos frames de una secuencia de una exploración de la cavidad abdominal. Esta secuencia consta de 341 frames que tras procesarla con la aplicación desarrollada produce la reconstrucción densa de la estructura observada (g. 4.2). Figura 4.1: Frames de una exploración abdominal. En la gura se muestra 1 frame de cada 30. La gura 4.3 corresponde a una eventración. En ella se muestran varios de los 135 frames de una secuencia de la pared abdominal en busca de adherencias. En la gura 4.4 se muestra su reconstrucción densa además de mostrar el resultado de una medición realizada. Por último, para demostrar el uso de la realidad aumentada, en la gura 4.5 se presenta la inserción de un elemento virtual que podría representar perfectamente a un gran vaso que hay que tener localizado en todo momento. 21 4. Pruebas y resultados 22 (a) Frontal (b) Superior (d) Derecha (c) Inferior (e) Izquierda Figura 4.2: Vistas de la reconstrucción nal de la secuencia de la gura 4.1. Los puntos rojos y amarillos son las características detectadas por monoSlam y utilizadas en la reconstrucción densa. Las líneas verdes son las aristas de los triángulos obtenidos con la triangulación de Delaunay. (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) Figura 4.3: Frames de la segunda secuencia. En la gura se muestra 1 frame de cada 14. Algunos vídeos sobre los resultados obtenidos se pueden ver en: http://robots.unizar.es/data/videos/reconstruccionDensa/: Contiene 4 vídeos donde se prueban la reconstrucción, la inserción de elementos y la medición de distancias. http://robots.unizar.es/data/videos/icra09/video01.avi: Vídeo de una reconstrucción de una eventración. http://robots.unizar.es/data/videos/icra09/video02.avi: Animación del resultado nal del vídeo anterior. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 4. Pruebas y resultados 23 (a) (b) (c) (d) (e) (f) (g) (h) Figura 4.4: Reconstrucción de la secuencia de la gura 4.3 con la medida de la anchura de la eventración (doble echa blanca) y su error. (a) (b) (c) Figura 4.5: Inserción de un elemento virtual, en este caso un cilindro (rojo), que podría representar por ejemplo un vaso sanguíneo. En 4.5(a) se ha insertado el cilindro denido por las 2 características en blanco. El cilindro es visible tanto como en realidad aumentada sobre la imagen del endoscopio (izq.) como en realidad virtual sobre la reconstrucción 3D (der.). En 4.5(b) el cilindro ha desaparecido del campo de visión del endoscopio, sin embargo este está localizado dentro de la reconstrucción 3D la cual ha aumentado el fov que el cirujano ve. Finalmente, en 4.5(c), el endoscopio vuelve a estar dirigido a la zona donde está el cilindro, por lo tanto este vuelve a aparecer como realidad aumentada sobre la imagen del endoscopio (izq.). Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Capítulo 5 Trabajos Futuros y Conclusiones 5.1. Línea de investigación futura Este proyecto sirve como una importante introducción a un conjunto de posibles trabajos de investigación que se complementarían entre sí y que servirían para crear un producto de utilidad quirúrgica a corto o medio plazo. Actualmente existen varias restricciones que deben de cumplir las secuencias para que la aplicación funcione bien. La escena tiene que ser rígida, es decir, tiene que carecer de elementos móviles. Los movimientos con la cámara tienen que ser suaves, nada de movimientos bruscos. Por último, las imágenes tienen que ser claras, contiguas y sin oclusiones de la cavidad que está siendo reconstruida. Si la lente queda ocluida, por ejemplo, al entrar en contacto físico con un tejido o se producen movimientos bruscos o se saca de la cavidad por el trocar entonces, la aplicación fallará y no se sabrá recuperar, la aplicación se habrá perdido. Además de estas restricciones, otro asunto que convendría realizar de forma automática es la calibración de la cámara. Para evitar todos estos inconvenientes y proporcionar otras mejoras se propone la siguiente línea de investigación: 1. Mejora de la reconstrucción densa en tiempo real: Uno de los problemas que tiene la reconstrucción aquí empleada es cuando se producen retriangulaciones de triángulos parcialmente visibles dentro de la imagen, bien porque se ha eliminado alguna característica, o bien porque se ha creado una nueva característica dentro de un triángulo existente (gura 5.1). Esto provoca que se pierda la textura de triángulos que tienen alguno de sus vértices fuera de la imagen y por lo tanto la reconstrucción sea incompleta. 2. Relocalización en caso de pérdida: Actualmente existen trabajos que hacen relocalización con monoSlam [23, 24, 25] pero el problema todavía no está cerrado. Entonces, habría que adaptar alguno de estos a la laparoscopia o bien, como se trabaja dentro de cavidades más reducidas, investigar alguna forma que sea más propicia para este tipo de imágenes. Otra asunto que tendría interés es el utilizar una base de datos de imágenes de control ya vistas las cuales se pudieran usar tanto para la relocalización en caso de pérdida, como para la obtención de texturas en los casos en los que se ha retriangulado y la textura no se puede obtener de la imagen actual. 3. Soportar secuencias de imágenes de entornos con oclusiones severas: Las oclusiones ocurren cuando un instrumento pasa muy cerca de la cámara o cuando esta entra en contacto físico con un tejido. Actualmente, si esto ocurre, la aplicación se pierde. Por lo tanto, habría que 24 5. Trabajos Futuros y Conclusiones 25 investigar algún sistema de detección de oclusiones que junto con la relocalización eviten que el programa se pierda. 4. Autocalibración de la cámara: Una idea que ahorraría bastante tiempo es aplicar alguna metodología de autocalibración de la cámara. Existen trabajos que demuestran que esta es posible [26]. Actualmente, para experimentación, la calibración se tiene que hacer antes o después de cada intervención y, aunque es un proceso fácil, conlleva bastante tiempo. Si se quiere un sistema de uso quirúrgico, este paso debería de optimizarse al máximo ya que tiene que ser un paso previo a la intervención por lo tanto, la mejor solución sería adaptar un sistema de autocalibración que lo evite. Además de esto, existen cirugías en medio es acuoso en las que la calibración cambia respecto del medio aéreo (p. ej. las artroscopias) y donde la autocalibración sería una solución bastante razonable. 5. Imágenes no rígidas: Como se ha comentado, la aplicación solo funciona con estructuras que tienen una cierta rigidez, si en las estructuras aparecieran movimientos no rígidos producidos, por ejemplo, por los latidos del corazón, el sistema fallará. Para evitar esto, habría que buscar un modelo de movimiento de las vísceras para introducirlo en el proceso de estimación. 6. Estimación de la posición de las herramientas dentro de la cavidad: Otro tema que tendría gran interés es la detección automática de las herramientas dentro de la imagen y la estimación de su posición en la cavidad. Esto sería especialmente útil para saber si una herramienta ha entrado en una región crítica que está fuera de la imagen, pero que es visible en la reconstrucción densa. Además, esta estimación también tiene interés en el área de la robótica médica para el control de las herramientas a través de un robot (visual servoing). 7. Trabajar de cara a otras líneas como, por ejemplo, intentar obtener un modelo 3D más preciso y un modelo matemático de la cavidad para su posterior recreación en simulaciones o, intentar fusionar información de CT y/o MR y mostrarla como realidad aumentada y virtual dentro de la aplicación, de este modo, esta información preoperatoria le serviría de ayuda al cirujano en el momento de la intervención. (a) Retriangulación por nuevo vértice. (b) Retriangulación por eliminación de vértice. Figura 5.1: En ambas subguras el rectángulo negro representa la imagen vista por la cámara y el color gris representa la falta de textura. En 5.1(a) existía un triángulo con textura. Al desplazarse la cámara, un vértice de ese triángulo se ha salido de la imagen, creándose una nueva característica (rojo) que ha ocasionado una nueva retriangulación formando 3 triángulos, 2 de los cuales se han quedado sin textura por estar uno de sus vértices fuera de la imagen. En 5.1(b) se tenían 3 triángulos con textura. Al desplazarse la cámara, uno de los vértices se ha salido de la imagen y, a su vez, otro se ha eliminado (rojo) causando una nueva retriangulación y pasando de 3 triángulos a 1 sin textura por tener uno de sus vértices fuera de la imagen. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. 5. Trabajos Futuros y Conclusiones 26 5.2. Conclusiones Con este proyecto se ha demostrado que es posible obtener el 3D de la cavidad observada, aplicar realidad aumentada que guíe al cirujano durante la intervención, aumentar el fov que se aprecia de una forma sintética y realizar mediciones precisas aplicando, únicamente, técnicas de visión por computador, fotogrametría y robótica sin requerir de instrumentos adicionales al endoscopio, todo ello en tiempo real. Estos resultados han servido para hacer un artículo cientíco sometido a Workshop on Advanced Sensing and Sensor Integration in Medical Robotics (ICRA09) y una versión extendida será sometida al congreso Medical Image Computing and Computer Assisted Intervention (MICCAI09). Además del artículo cientíco, si la línea de trabajo futura se desarrolla de la forma esperada, se está barajando la idea de crear una patente que proteja los derechos de propiedad intelectual del sistema integro y de transferir estos resultados a la industria quirúrgica a corto o medio plazo. Aunque este proyecto solo se ha centrado en la cirugía laparoscópica, las técnicas aquí expuestas se podrían aplicar a otro tipo de cirugías o exploraciones que se realicen con cámaras de visible como, por ejemplo, artroscopias, endoscopias digestivas o colonoscopias. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia. Bibliografía [1] S. Voros, JA. Long, and P. Cinquin. Automatic detection of instruments in laparoscopic images: A rst step towards high-level command of robotic endoscopic holders. 26:1173 1190, 2007. [2] G. Q. Wei, K. Arbter, and G. Hirzinger. Real-time visual servoing for laparoscopic surgery. controlling robot motion with color image segmentation. 16(1):4045, 1997. [3] A. Krupa, J. Ganglo, C. Doignon, M. F. de Mathelin, G. Morel, J. Leroy, L. Soler, and J. Marescaux. Autonomous 3D positioning of surgical instruments in robotized laparoscopic surgery using visual servoing. 19(5), 2003. [4] P. Hynes, G. I. Dodds, and A. J. Wilkinson. robot for surgical tasks. Uncalibrated visual-servoing of a dual-arm In IEEE Int. Symp. on Computational Intelligence in Robotics; Automation, 2005. [5] D. Stoyanov, A. Darzi, and G. Z. Yang. Dense 3D depth recovery for soft tissue deformation during robotically assisted laparoscopic surgery. In Springer-Verlag, editor, Proc. MICCAI, ser. LNCS, volume 3217, pages 4148, 2002. [6] F. Mourgues, F. Devernay, and É. Coste-Manière. 3D reconstruction of the operating eld for image overlay in 3D endoscopic surgery. In Proc. IEEE/ACM Symp. Augmented. Reality, pages 191192, 2001. [7] C. Wu, Y. Sun, and C. Chang. Three-dimensional modeling from endoscopic video using geometric constraints via feature poisitioning. 54(7), 2007. [8] J. Civera, A. J. Davison, and J.M.M. Montiel. Inverse depth parametrization for monocular slam. 24(5), 2008. [9] IEEE Hugh Durrant-Whyte, Fellow and Tim Bailey. Simultaneous localisation and mapping (slam): Part i the essential algorithms. [10] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W. Fitzgibbon. Bundle adjustment a modern synthesis. In LECTURE NOTES IN COMPUTER SCIENCE, 1999. [11] A. J. Davison. Real-time simultaneous localisation and mapping with a single camera. In Proc. International Conference on Computer Vision, 2003. [12] A. J. Davison, I. D. Reid, N. D. Molton, and O. Stasse. Monoslam: Real-time single camera slam. 29(6), 2007. 27 BIBLIOGRAFÍA 28 [13] Sebastian Thrun, Wolfram Burgard, and Dieter Fox. Probabilistic Robotic. The MIT Press, 2005. [14] J. Shi and C. Tomasi. Good features to track. In IEEE CS Press, editor, IEEE CSConf. Computer Vision and Pattern Recognition, pages 593600, 1994. [15] C. Harris and M Stephens. A combined corner and edge detector. In Fourth Alvey Vision Conference, pages 147151, 1988. [16] J. Neira and J. D. Tardos. Data association in stochastic mapping using the joint compatibility test. pages 890897, 2001. [17] L. A. Clemente, A. J. Davison, I. D. Reid, J. Neira, and J. D. Tardós. Mapping large loops with a single hand-held camera. In Robotics Science and Systems, 2007. [18] J.M.M. Montiel, J. Civera, and A. J. Davison. Unied inverse depth parametrization for monocular slam. In Robotics Science; Systems Conference. [19] Z. Zhang. A exible new technique for camera calibration. 22(11):13301334, 2000. [20] P. F. Strum and S. J. Maybank. On plane-based camera calibration: A general algorithm, singularities, applications. In Proc. of the IEEE Computer Society Conference, pages 432 437, 1999. [21] R. Hartley and A Zisserman. Multiple View Geometry in Computer Vision. CAMBRIDGE UNIVERSITY PRESS, 2003. [22] J. Civera, A. J. Davison, J. A. Magallón, and J. M. M. Montiel. Drift-free real-time sequential mosaicing. International Journal of Computer Vision, page Aceptado, 2008. [23] G. Klein and D. Murray. Improving the agility of keyframe-based slam. In Proc. Eu- ropean Conference on Computer Vision, editor, Proc. European Conference on Computer Vision, 2008. [24] B. Williams, G. Klein, and I. D. Reid. Real-time slam relocalisation. In IEEE, editor, Int. Conf. on Computer Vision, pages 18, 2007. [25] M. Cummins and P. Newman. Probabilistic appearance based navigation and loop clo- sing. In International Conference on Robotics and Automation, editors, IEEEInternational Conference on Robotics and Automation ICRA07, 2007. [26] J Civera, D. Bueno, A. J. Davison, and J.M.M Montiel. Camera self-calibration for sequential bayesian structure from motion. page Aceptado, 2009. Proyecto Fin de Máster: Utilización de MonoSlam con realidad aumentada en laparoscopia.