• No se han encontrado resultados

Componentes software empleados

III. Materiales empleados y metodología

III.2. Componentes software empleados

III.1.4.4. Guantes

Aunque actualmente las gafas de Realidad Virtual incorporan sensores que permiten reconocer el movimiento de las manos, esto no era posible con los primeros modelos de estos dispositivos. Por ello, adquirimos unos guantes de Realidad Virtual y los empleamos en sustitución de los mandos para diseñar simulaciones más realistas. Además, estos guantes incorporan unos dispositivos de vibración que nos permitían ofrecer una respuesta al usuario frente a la interacción con elementos virtuales. De esta forma el usuario puede sentir que está tocando un objeto virtual.

mostrar el modelo 3D sobre una imagen, e incluso mostrarlo sobre, por ejemplo, una mesa, sin necesidad de ningún código o imagen utilizada como marcador (imagen de referencia que permite obtener información espacial utilizada para proyectar con la perspectiva correcta el modelo 3D). Para conseguir esta característica Vuforia hace uso de las librerías nativas Arcore y Arkit.

III.2.4. ARCORE

Arcore es una librería para la implementación de plataformas de Realidad Aumentada tanto para dispositivos Android como para dispositivos iOS. Esta librería es capaz de crear una nube de puntos del espacio que rodea al dispostivo basándose exclusivamente en las imágenes obtenidas de la cámara, sin necesidad de incluir sensores de profundidad.

La librería, compatible con el entorno de programación Unity3D, permite desarrollar aplicaciones compatibles tanto con dispositivos Android como iOS, lo cual hace que sea una opción muy interesante para desarrollar sistemas de Realidad Aumentada, ya que, a diferencia de Vuforia, se trata además de una librería de uso gratuito.

III.2.5. ARKIT

En la fecha de redacción de esta tesis doctoral, Arkit es la librería de Realidad Aumentada más potente que existe. Esto puede deberse a que tan sólo permite implementar aplicaciones para dispositivos iOS, lo cual supone una ventaja respecto a Arcore, que debe funcionar con dispositivos y sensores muy diferentes entre sí. Es decir, Arkit puede recoger información más precisa sobre el movimiento del usuario al saber exactamente cómo serán los valores que recibirá de los sensores de acelerómetro y giroscopio, sin embargo, Arcore recibe estos valores de sensores muy variados, ya que tiene que lidiar con hardware de muchos fabricantes diferentes.

III.2.6. AR FOUNDATION

AR Foundation es un framework de alto nivel implementado por Unity para permitir una abstracción en el uso de las librerías Arcore y Arkit, permitiendo desarrollar aplicaciones multiplataforma que internamente utilicen estas dos librerías nativas de forma transparente para el programador.

Gracias a AR Foundation podemos implementar aplicaciones de Realidad Aumentada que utilicen las capacidades avanzadas de Arcore y Arkit, empleando Arcore en caso de ejecutar en dispositivos Android compatibles y Arkit para dispositivos iOS compatibles.

III.2.7. Oculus SDK

Oculus proporciona un SDK (Software Development Kit) para implementar aplicaciones de Realidad Virtual para sus dispositivos. Este SDK es compatible con Unity3D, y ofrece un conjunto de scripts y Game Objects reutilizables para abstraer al programador de tareas tan importantes como detectar el movimiento del usuario a través de los sensores incorporados en sus dispositivos. En este caso el SDK ofrece un Game Object "Camera"

que sustituimos por la cámara por defecto de Unity y que renderizará en la pantalla de las gafas todo lo que se encuentra dentro del campo de visión en la escena de Unity. El Game Object tiene asociados scripts que se encargan de mover esta cámara por el mundo de Unity atendiendo al movimiento del usuario en el mundo real.

III.2.8. Google VR

Al igual que el SDK de Oculus, Google proporciona su propio SDK compatible con Unity3D para dispositivos Cardboard.

III.2.9. OpenVR

Valve, empresa desarrolladora de videojuegos, ha desarrollado esta API para facilitar el desarrollo de sistemas de Realidad Virtual para diferentes plataformas hardware.

Además, Valve ha publicado también un plugin para Unity (SteamVR Unity Plugin) que permite acceder a las funcionalidades de OpenVR y desarrollar así sistemas RV para una gran multitud de dispositivos diferentes compatibles.

III.2.10. Windows Mixed Reality

Es una plataforma de Realidad Mixta para dispositivos ejecutando sistema operativo Windows. En nuestro caso, hemos utilizado esta plataforma para trabajar desde Unity con las gafas Lenovo Explorer, realizando una adaptación del simulador original de Realidad Virtual para fijación transpedicular lumbar para este dispositivo (González Izard et al, 2017c) (González Izard et al, 2018b).

III.2.11. Librerías utilizadas para la implementación de los algoritmos de visión artificial

Tanto para el tratamiento de imágenes médicas como para su visualización se han utilizado las bibliotecas Insight Segmentation and Registration Toolkit (ITK) y Visualization Toolkit (VTK).

ITK es un framework de código abierto especializado en el tratamiento de imágenes médicas (Schroeder, 2000). Por otro lado, VTK es una biblioteca de código abierto especializada en la visualización científica, en este caso de imágenes médicas (Geveci, 2012). Ambas librerías han sido desarrolladas por Kitware y son la base utilizada por muchos programas de tratamiento de imágenes médicas, como pueden ser 3DSlicer u Osirix.

Estas librerías se explican en mayor detalle en NEXTMED:AUTOMATIC IMAGING SEGMENTATION,3D RECONSTRUCTION, AND 3DMODEL VISUALIZATION PLATFORM USING AUGMENTED AND VIRTUAL REALITY.

III.2.12. JupyterLab

Para la visualización de los resultados de los diferentes pasos y del progreso de los algoritmos de visión artificial implementados para el proyecto Nextmed, se ha creado una interfaz utilizando JupyterLab. Esta aplicación web permite gestionar fácilmente los diferentes algoritmos en lo que se conoce como cuadernos de implementación, y es muy utilizada por la comunidad de investigadores. Esta interfaz que hemos implementado es muy útil para comprobar el resultado de las diferentes fases del proceso de segmentación.

Esta interfaz, junto a la habilidad de JupyterLab para fijar diferentes interfaces en pantalla al tiempo que se continúa viendo el código fuente, ofrece una estación de trabajo para la visualización y experimentación de una forma ágil, rápida y siendo multiplataforma, ya que es accesible mediante un navegador web.