- Unity
- C#
- DICOM
- Fellow Oak DICOM
- Looking Glass
En esta página
Contexto
Durante mi estancia de investigación MITACS en la University of Alberta, trabajé en técnicas de visualización de realidad extendida para imágenes médicas.
El objetivo era construir desde cero un sistema de investigación capaz de cargar, procesar y renderizar datos volumétricos de ultrasonido mediante una pantalla holográfica Looking Glass utilizando Unity Engine.
El trabajo combinó procesamiento de datos DICOM, renderizado volumétrico en tiempo real, diseño de interacción y manejo de metadatos específicos de cada fabricante. La colaboración con GE proporcionó acceso a datos de ultrasonido y contexto técnico que permitieron desarrollar y probar el flujo de renderizado con datasets de GE.
El reto
Los datos volumétricos de ultrasonido no se almacenan de la misma manera entre fabricantes. Aunque DICOM define un estándar común, los datasets de Philips y GE pueden depender de distintas combinaciones de atributos estándar, etiquetas privadas y convenciones para organizar los datos.
Por esta razón, un parser construido alrededor de una única estructura fija no sería confiable al procesar archivos provenientes de distintas fuentes.
El proyecto heredado de Unity también contenía lógica XR antigua diseñada para un dispositivo diferente. Trasladar el prototipo a la pantalla Looking Glass requirió eliminar esas suposiciones, reorganizar el flujo de renderizado y diseñar un modelo de interacción adecuado para una pantalla holográfica de escritorio.
Al mismo tiempo, el sistema debía procesar grandes datasets volumétricos dentro de las restricciones de memoria y rendimiento propias del renderizado en tiempo real con Unity.
La solución
Reconstruí la arquitectura de visualización alrededor del SDK de Looking Glass y eliminé la lógica específica de dispositivos que ya no era relevante para el nuevo hardware.
Para el procesamiento DICOM, utilicé Fellow Oak DICOM e implementé un flujo de parsing que primero inspecciona los metadatos estándar y después evalúa atributos específicos del fabricante cuando la información necesaria del volumen no se encuentra en las etiquetas esperadas.
La arquitectura separa la inspección de archivos, la detección del fabricante, la extracción del volumen, el procesamiento y el renderizado. Esto facilita investigar y adaptar el pipeline cuando los datasets utilizan convenciones de metadatos diferentes.
Además de cargar y renderizar el volumen, incorporé controles que permiten recortar, aplicar clipping, resaltar y aislar regiones de los datos holográficos de ultrasonido en tiempo real.
Enfoque técnico
Inspección DICOM y detección del fabricante
Inspeccioné los metadatos de datasets de ultrasonido de Philips y GE para identificar cómo representaba cada fabricante las dimensiones del volumen, los datos de vóxeles, la organización de frames y la información relacionada con la adquisición.
En lugar de asumir que todos los archivos utilizaban la misma estructura de etiquetas, el loader examina los metadatos disponibles y selecciona el flujo de procesamiento correspondiente al dataset.
El flujo de GE pudo probarse mediante datasets volumétricos renderizados que estuvieron disponibles gracias a la colaboración de investigación. Los metadatos de Philips también fueron analizados para documentar su estructura y definir una dirección de parsing compatible, aunque una validación equivalente mediante renderizado no fue posible con los datasets disponibles para este prototipo.
Procesamiento del volumen
Desarrollé el pipeline que transforma los datos sin procesar del ultrasonido en una textura tridimensional que puede renderizarse dentro de Unity.
Debido a que los datasets médicos volumétricos pueden requerir una cantidad considerable de memoria y tiempo de procesamiento, la implementación se enfocó en controlar la asignación de memoria, mantener un comportamiento de carga predecible y evitar transformaciones innecesarias o datos duplicados.
La investigación de rendimiento se mantuvo como una parte independiente del trabajo, de forma que las limitaciones de procesamiento pudieran medirse sin acoplarlas a la lógica de interacción o visualización.
Exploración interactiva
Implementé controles de clipping y recorte en múltiples ejes que permiten a los investigadores inspeccionar regiones internas del volumen renderizado.
Otros controles permiten resaltar, aislar u ocultar secciones específicas, ofreciendo una exploración espacial más precisa que la visualización del volumen completo únicamente desde el exterior.
El modelo de interacción fue diseñado alrededor de tareas de investigación como la inspección, comparación y separación de regiones, en lugar de conservar los gestos XR convencionales del hardware anterior.
Integración con Looking Glass
Integré el plugin de Looking Glass para Unity y adapté el flujo de renderizado a la pantalla holográfica.
Los componentes XR heredados asociados al dispositivo anterior fueron eliminados en lugar de conservarse detrás de capas adicionales de abstracción. Esto redujo dependencias innecesarias y mantuvo el prototipo enfocado en el hardware utilizado durante la investigación.
Decisiones técnicas clave
- Separar la detección del fabricante de la extracción y el renderizado del volumen.
- Inspeccionar metadatos reales utilizar valores predeterminados de las etiquetas DICOM.
- Utilizar primero los atributos DICOM estándar y recurrir a lógica específica del fabricante cuando resulte necesario.
- Mantener la inspección de archivos, el procesamiento, el renderizado y la interacción como partes independientes del sistema.
- Eliminar la lógica XR del dispositivo anterior en lugar de trasladarla a la nueva implementación.
- Diseñar los controles alrededor de actividades de investigación como clipping, aislamiento y comparación.
- Tratar el uso de memoria y el rendimiento del procesamiento volumétrico como un área independiente de investigación.
- Distinguir entre la compatibilidad basada en metadatos y los flujos de renderizado que fueron validados con los datasets disponibles.
Resultado
El proyecto produjo un prototipo de investigación funcional que conecta el procesamiento de datos volumétricos DICOM con su visualización interactiva en una pantalla holográfica Looking Glass.
Utilizando datasets de ultrasonido disponibles mediante la colaboración con GE, el sistema cargó y renderizó datos volumétricos, permitiendo recortar, aplicar clipping, resaltar y aislar regiones en tiempo real.
El proyecto también documentó diferencias relevantes entre las estructuras de metadatos de GE y Philips, y estableció una base modular para investigar formatos de otros fabricantes. La validación de renderizado del prototipo se limitó a los datasets disponibles durante la investigación, por lo que la compatibilidad con otros fabricantes requeriría pruebas adicionales con archivos representativos.
Este prototipo fue desarrollado exclusivamente como software de investigación. No ha sido validado clínicamente y no está destinado al diagnóstico, la planificación de tratamientos ni ningún otro uso clínico.
Lo que estableció el trabajo
Desarrollo de investigación
El prototipo fue investigado y desarrollado durante una estancia de investigación MITACS en la University of Alberta.
Investigación DICOM según el fabricante
El proyecto validó el flujo de renderizado con datasets de GE y documentó las estructuras de metadatos de Philips para futuras investigaciones de compatibilidad.
Exploración interactiva del volumen
Los controles de recorte, clipping, resaltado y visibilidad permitieron a los investigadores aislar e inspeccionar regiones de interés.
Galería del proyecto







