Según las estadísticas, unas 172 millones de personas en todo el mundo sufrirán de anorexia en algún momento a lo largo de su vida. Existen ciertos tratamientos para intentar combatirla, y algunos de ellos son usando técnicas de Realidad Virtual (RV). Un ejemplo de estos tipos de tratamientos es el desarrollado por la Universitat de Barcelona. Como proyecto de final de carrera, opté por ayudar a tratar esta enfermedad, aplicando una serie de mejoras a este método mencionado.
La idea original del tratamiento es la siguiente: se presenta a la paciente una sala virtual mediante unas gafas de realidad virtual. En la sala se encuentran principalmente un espejo y un avatar, que se modela con las proporciones del cuerpo real de la paciente. Al ponerse las gafas, el avatar se mueve como la paciente, y despues de un rato, su subconsciente acaba asociando el cuerpo virtual que ve en el espejo con su cuerpo real. Entonces, durante las posteriores sesiones, se va aumentando el peso del avatar, haciendo que la paciente crea que ella ha aumentado de peso, y con un psicólogo al lado, se va tratando este miedo a engordarse.
Para que el proceso funcione, se necesita que el avatar se mueva como la paciente, pero de la forma que se hace este proceso hoy en día, resulta poco fidedigno. Hasta ahora, se usaban 5 puntos de seguimiento (la cabeza, las manos y los pies), y se inferían el resto (como los codos o las rodillas). Esta inferencia, pero, no era del todo exacta. Por lo tanto, como primer objetivo del TFG, se desarrolló un módulo para un mejor seguimiento.
Este primer módulo es un sistema de seguimiento del cuerpo entero («Full Body Tracking») que hace uso de una única cámara para hacer este seguimiento. Mediante un modelo de aprendizaje automático de Mediapipe como base, y a partir de la creación de un modelo para corregir los resultados, se acabó obteniendo un sistema en Python capaz de detectar aquellos puntos que el sistema original no detectaba. Hay que mencionar que para calibrar este modelo de corrección se tuvo que generar un conjunto de datos sintéticos empleando Unreal Engine 5, dada la imposibilidad de encontrar datos «ground truth» que se ajustaran al modelo que se necesitaba.
Una vez conseguido este sistema, se integró con Unity a la plataforma del sistema original. El resultado lo podéis ver en este video.
Desgraciadamente, continúan existiendo varias dificultades, sobre todo en cuanto a la oclusión, puesto que el sistema no es capaz de ver las partes escondidas detrás. Aun así, uniendo la información del módulo de Python con la información de seguimiento de RV, que solo hace seguimiento de las manos y de la cabeza, y no de los pies, se obtiene un sistema que predice mejor aquellos puntos de los que no se tiene información.
Seguidamente, una vez esto estaba hecho, se decidió como segundo objetivo crear un sistema de realidad aumentada (RA) con la misma finalidad que el de RV. Como la literatura de tratamientos de anorexia con RA es escasa, pareció buena idea hacer una propuesta de solución en esta área. La idea era entonces conseguir un sistema de RA que tuviera el mismo efecto que el ya mencionado, pero sin la necesidad de usar todo su hardware.
Por lo tanto, por este segundo objetivo se quería crear un espejo que mostrara el mundo real, pero donde la paciente se viera reflejada con un aumento de peso. Después de unos intentos fallidos donde se intentaba engordar directamente la imagen de la persona, se optó para emplear el mismo avatar que en RV, pero basándose en la escena entera del espejo. Se acabó desarrollando un sistema donde se muestra el fondo como si fuera un espejo, pero donde se borra a la persona a quien se hace el seguimiento, y se la sustituye por el avatar. Para hacer el seguimiento de esta persona, se utiliza el sistema desarrollado en el primer objetivo. Podéis ver el resultado en el siguiente video.
Se ha hecho pública una demostración del programa de realidad aumentada. La podéis encontrar en el siguiente enlace.