23/07 Work in Progress: 20230702

Virtual reality GUI implementation for advanced 3D radiologic image display

(gl) Implementación dun GUI de realidade virtual para a visualización avanzada de imaxes radiolóxicas en 3D (es) Implementación de GUI de realidad virtual para la visualización avanzada de imágenes radiológicas en 3D

Student

Miguel Osorio Fernández

Supervision

José Antonio Iglesias Guitián (CITIC-UDC)
Francisco Javier Taibo Pena (UDC)
Emilio José Padrón González (UDC)

Tipo de traballo

Desenvolvemento en investigación

Breve descrición

Este proxecto ten como obxectivo desenvolver unha interface gráfica de usuario (GUI) para a visualización de tomografías computarizadas (TC) en realidade virtual (RV). A idea principal é implementar unha interface gráfica adaptada ás tecnoloxías de RV que facilite o uso e a experiencia de usuario, favorecendo unha visualización cómoda e inmersiva, que beneficie a súa futura adopción por parte de profesionais ou estudantes do ámbito da saúde, con certa experiencia xa na manipulación de imaxes médicas pero non necesariamente expertos no uso de sistema de RV.

A visualización tridimensional (3D) supón un recurso adicional de gran axuda á hora de entender mellor a anatomía dun paciente, planificar posibles intervencións quirúrxicas, favorecer a propia comunicación cos pacientes ou como recurso educativo para favorecer a aprendizaxe no eido médico. Actualmente as técnicas de volume rendering (ou máis recentemente o cinematic rendering) adoitan a complementar a visualización clásica basada en seccións 2D dunha imaxe obtida mediante TC por medio dunha reconstrucción 3D directa do volume favorecendo a interacción do usuario en tempo real. Estes sistemas adoitan a utilizarse en estacións de traballo, e particularmente o cinematic rendering é unha técnica aínda experimental que só moi recentemente comezou a ser utilizada de forma interactiva.

Neste proxecto preténdese desenvolver unha GUI que utilice a RV para mellorar a experiencia do usuario durante unha visualización estereoscópica que emprega unha técnica de visualización ampliamente coñecida como cinematic rendering. O obxectivo principal é que o usuario poida interactuar nun entorno 3D co volume (TC) de xeito intuitivo para alguén xa familiarizado coas imaxes médicas. Usarase un sistema de RV que use gafas estereoscópicas e mandos ou controladores para que o usuario poida indicar as accións desexadas con certa precisión.

En principio a GUI deberá funcionar e comunicarse cos dispositivos de RV mediante o API OpenXR. A interface permitirá aos usuarios explorar modelos tomográficos 3D nun entorno interactivo. A interface deberá permitirá desplazar, rotar, escalar ou seccionar o volume en 3D, ademáis de poder manipular a función de clasificación (transfer function) do volume. Opcionalmente poderá ofrecerse unha visualización 2D das imaxes saxitais do volume dentro do entorno 3D. Para todo isto o estudante partirá da implementación dun prototipo de investigación existente que ofrece xa algunha destas funcionalidades na súa versión desktop (unha evolución do proxecto Exposure Render por Kroes et al. 2012), pero que deberá portar ou implementar de novo algunhas das funcionalidades para adaptalas ao seu uso en RV.

Un dos aspectos importantes debe ser a facilidade de uso, así como a eficiencia da implementación, xa que esta interface 3D debe coexistir e garantir que non se consuman recursos excesivos que afecten notablemente ao propio render do volume 3D, típicamente a tarefa computacionalmente máis intensa.

Obxectivos concretos

Aínda que lóxicamente podan sufrirse contratempos ó tratarse o proxecto de partida dun proxecto experimental, a idea desta proposta de anteproxecto é implementar as seguintes funcionalidades:

  1. Un visor 2D mediante fiestras 3D flotantes para visualizar as vistas saxitais 2D da TC orixinal. Opcionalmente poderán aplicarse cortes ou seccións aliñadas co volume en base a estas vistas.
  2. Deseño da interacción de usuario para unha manipulación sinxela da función de transferencia (transfer function) do volume. O paradigma coñecido algunhas veces nas aplicacións de imaxe radiolóxica como “intensity-windowing”. Neste caso a tarefa principal e deseñar a parte interacción e interface gráfica do usuario (UIX/GUI).
  3. Deseño da experiencia e interface de usuario (UIX/GUI) para o caso de uso de aplicar seccións mediante planos de corte no volume (tanto no caso de planos de corte aliñados cos eixos como planos con orientación arbitraria decidida polos usuarios).
  4. Integración das opcións anteriores nun menú xeral, tamén flotante en 3D (UIX/GUI), que permita expoñer ó usuario algunhas das opcións visuais xa dispoñibles na aplicación a través da interface RV.

Método de traballo

Farase uso dunha metodoloxía iterativa e incremental dirixida polas funcionalidades do sistema. A memoria realizarase en conxunto e progresivamente coa implementación e deseño. Mediante reunións periódicas semanais cos titores levarase a cabo o seguimento e a valoración da calidade do realizado ata cada momento.

Fases principais do traballo

Introducción ao funcionamento do sistema de visualización. Para a realización deste proxecto pártese dun código modificado dun proxecto open source que xa realiza as funcións básicas de carga e visualización de volumes escalares tridimensionais (formatos .mhd e .raw) así como unha interface en modo standalone. O estudante deberá familiarizarse co código existente e as diferentes APIs que se utilizan (fundamentalmente C++, VTK, OpenSceneGraph e Nvidia CUDA).

Introducción ás ferramentas de computación gráfica para RV. O estudante deberá familiarizarse minimamente coa API OpenXR que servirá para habilitar o uso dos dispositivos de realidade virtual. O estudante poderá facer uso dun código de exemplo base para ver como aganchar dispositivos de RV e comezar a implementar os diferentes eventos de interacción, así como debuxar a interface gráfica correspondente en RV (apoiándose en OpenSceneGraph ou Nvidia CUDA cando sexa necesario optimizar certas operacións de acceso ó volume).

Deseño e desenvolvemento do primeiro prototipo de interface en RV. O estudiante deberá implementar as funcionalidades previamente descritas que requiren da interacción entre o código C++, CUDA e OpenXR para poder mostrar información relativa ó volume 3D dentro dun entorno de RV.

Axustes e mellora das funcionalidades sobre o prototipo. Utilizando unha metodoloxía iterativa mediante o desenvolvemento de prototipos funcionais que irán incorporando as distintas funcionalidades e posibles melloras sucesivas das mesmas. Probas e validación sobre a implementación. Comprobarase periodicamente a correcta compilación e execución da aplicación cada vez que se fagan modificacións no codigo ou se engadan novas funcionalidades.

Probas e validación sobre a usabilidade do sistema. (esta etapa e as dúas anteriores poden repetirse en distintas iteracións ata alcanzar un resultado óptimo). Ademáis de comprobar a correcta execución, validarase cos supervisores e posibles usuarios que a experiencia de interacción desenvolvida sexa minimamente satisfactoria e acade os obxectivos mínimos.

Documentación. Realizarase documentación do código e das novas funcionalidades dentro do propio repositorio de código do proxecto.

Materiais e medios necesarios

PC para desenvolvemento e programación coa capacidade de computación para a renderización gráfica (GPU) en tempo real do entorno de RV. Sistema estereoscópico de RV para a depuración e proba da implementación. Coñecemento de programación en lenguaxe C++, a librería OpenSceneGraph para a abstracción do API OpenGL, e programación esporádica sobre arquitecturas paralelas mediante Nvidia CUDA.

Teaching and Researching in Computer Science/Engineering

My research interests include High Performance Computing (HPC) and Computer Graphics.