Clasificación automática de criterios morfológicos para estimación de la edad a partir de modelos 3D de la sínfisis del pubis
Autor
- Valentino Lugli
Directores
- Dr. Sergio Damas Arroyo
- Dr. Pablo Mesejo Santiago
En este TFG se desarrolló un modelo de una red neuronal convolucional capaz de procesar directamente mallas 3D de huesos de la sínfisis del pubis, hueso ubicado en la pelvis. La red se desarrolló utilizando el framework MeshCNN y obtiene un accuracy de 70% en los datos de prueba, así como una métrica F1 de 0.70.
La memoria se encuentra disponible para su lectura aquí.
Se requiere tener Anaconda instalado.
Una vez descargado el repositorio, se debe crear un enviroment de Anaconda para las librerías. Dos ficheros .yml
se encuentran en condaEnvs
y contienen las librerías necesarias para el funcionamiento de los frameworks.
Para los experimentos se utilizaron los siguientes datasets:
- SHREC16
- 700 mallas: 384 para entrenamiento, 96 para validación y 120 para test.
- 20 categorías.
- Dataset balanceado.
- Resolución máxima de 750 aristas.
- SphereCubes
- 20 mallas: 6 para entrenamiento, 2 para validación y 2 para test.
- 2 categorías, esfera y cubo.
- Dataset balanceado.
- Resolución máxima de 1440 aristas.
- Nodule-50-30K
- 50 mallas: 34 para entrenamiento, 6 para validación y 10 para test
- 2 categorías, existencia o ausencia de nódulo óseo en la superficie de la sínfisis del pubis.
- Dataset balanceado.
- Resolución máxima de 30 000 aristas.
- Nodule-98-30K
- 98 mallas: 66 para entrenamiento, 10 para validación y 20 para test.
- 2 categorías, existencia o ausencia de nódulo óseo en la superficie de la sínfisis del pubis.
- Dataset balanceado.
- Resolución máxima de 30 000 aristas.
Los datasets SHREC16 y SphereCubes se encuentran disponibles en /data/datasets/
en formato ZIP que debe ser descomprimido previamente a utilizarse.
Los datasets Nodule-50-30K y Nodule-98-30K no se encuentran disponibles debido a un acuerdo de confidencialidad con la Universidad de Granada.
Una lista de los parámetros que utiliza MeshCNN y sus derivados se puede observar aquí.
Debido a que se utilizó principalmente MeshCNN para los experimentos, existen parámetros o funcionalidades que no se encuentran disponibles en los frameworks restantes.
Para realizar un entrenamiento, es necesario ejecutar el fichero train.py
del framework seleccionado. Debido a la cantidad de parámetros que contiene el framework, es mejor utilizar ficheros de Bash que contengan los parámetros necesarios.
Para realizar una ejecución de la red con los datos de test, se debe ejecutar el fichero test.py
del framework seleccionado. Se recomienda igualmente utilizar ficheros Bash.
Se tienen dos ejemplos preparados para su ejecución
$> bash ./scripts/local_SHREC16.sh
, o
$> bash ./scripts/local_SphereCubes.sh
Esto iniciará un entrenamiento de un modelo sobre el framework de MeshCNN que al finalizar también obtendrá las estadísticas del modelo en el conjunto de test.
Se incluye una plantilla para ejecuciones locales, ejecuciones en Google Colab y Slurm en sus respectivas carpetas dentro de scripts
.
En este trabajo se utilizaron los frameworks de MeshCNN, MedMeshCNN y MeshCNNPlus.
Automatic classification of morphological criteria for age estimation using 3D scans of the pubic symphysis.
Author
- Valentino Lugli
Directors
- Dr. Sergio Damas Arroyo
- Dr. Pablo Mesejo Santiago
In this Bachelor's Thesis a neural network model was developed capable of processing 3D meshes of scanned pubic symphyses, a bone located in the pelvis. It uses the MeshCNN framework and has an accuracy of 70% with a F1 metric of 0.7 in test data.
The report is available to be read here (Spanish).
Requires Anaconda.
Once the repository has been downloaded, an Anaconda environment must be created for the libraries. Two .yml
files located in condaEnvs
contain the needed libraries for the frameworks.
For the experiments, the following datates were used:
- SHREC16
- 700 meshes: 384 for training, 96 for validation and 120 for test.
- 20 categories.
- Balanced dataset.
- 750 edges max resolution.
- SphereCubes
- 20 meshes: 6 for training, 2 for validation and 2 for test.
- 2 categories, sphere and cube.
- Balanced dataset.
- 1440 edges max resolution.
- Nodule-50-30K
- 50 meshes: 34 for training, 6 for validation and 10 for test.
- 2 categories, existence or absence of bony nodule in the surface of the pubic symphysis.
- Balanced dataset.
- 30 000 edges max resolution.
- Nodule-98-30K
- 98 Meshes: 66 for training, 10 for validation and 20 for test.
- 2 categories, existence or absence of bony nodule in the surface of the pubic symphysis.
- Balanced dataset.
- 30 000 edges max resolution.
The SHREC16 and SphereCubes datasets are available in ZIP format at /data/datasets/
. These need to be uncompressed before being used.
The Nodule-50-30K and Nodule-98-30K are not available due to a confidentiality agreement with the University of Granada.
A list of parameters for MeshCNN and derivatives is available here.
Due to the fact that MeshCNN was used for the experiments, some parameters or functionalities are not available in the other frameworks.
To train a model, run train.py
of the desired framework. Due to the huge amount of parameters that the script takes, it's recommended to use a Bash script with the necessary parameters.
To use the model on test data, run test.py
of the desired framework. It's also recommended to use a Bash script too.
There are two training and test examples available, and can be run with:
$> bash ./scripts/local_SHREC16.sh
, or
$> bash ./scripts/local_SphereCubes.sh
This will start training the model in the MeshCNN framework. After finishing it will also run on the test data, printing relevant statistics for the model.
A template is included for local, Google Colab or Slurm executions in their respective folders inside scripts
.
In this work the following frameworks were used: MeshCNN, MedMeshCNN andMeshCNNPlus.