GithubHelp home page GithubHelp logo

rhinoblindado / tfg Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 50.81 MB

Trabajo de Final de Grado realizado en el curso 2021-2022 para el Grado de Ingeniería Informática en la Universidad de Granada.

Shell 9.30% Python 80.56% Jupyter Notebook 10.15%

tfg's Introduction

🇪🇸 Español | 🇬🇧 English


Trabajo de Fin de Grado

📚 Curso 2021-2022, Grado en Ingeniería Informática, ETSIIT UGR.

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

📌 Introducción

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í.

⚙️ Instalación

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.

🗄️ Datos

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.

🔩 Ejecución

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.

Entrenamiento

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.

Test

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.

Ejemplos

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.

🏗️ Frameworks

En este trabajo se utilizaron los frameworks de MeshCNN, MedMeshCNN y MeshCNNPlus.


Bachelor's Thesis

📚 2021-2022 Course, Computer Science Degree, ETSIIT UGR.

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

📌 Introduction

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).

⚙️ Installation

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.

🗄️ Data

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.

🔩 Execution

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.

Training

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.

Test

To use the model on test data, run test.py of the desired framework. It's also recommended to use a Bash script too.

Examples

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.

🏗️ Frameworks

In this work the following frameworks were used: MeshCNN, MedMeshCNN andMeshCNNPlus.

tfg's People

Contributors

rhinoblindado avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.