3D Face Classification With Graph Neural Networks - GitHub
In this project I built a simple Graph Neural Network model to attack the problem of 3D data classification. The datasets employed in this project are graph-representations of triangular meshes of facial data, obtained with structured-light based 3D system.
Repository structure
The repository is structured as following:
- config.py : Python dictionary containing the hyperparameters for the training procedure.
- data.py: Input data pipeline (loading, pre-processing, ...)
- main.py: Script that handles the training phase
- models.py: Contains the code for a few GNN models
- test.py: Script that handles the testing phase
- graph_data/: Directory containing the datasets
- runs/: Directory containing the experiments
The data
I cannot share my data but, if you want to build a new dataset, follow this procedure: assuming that you have a set of 3D meshes in .obj format you have to group them by class into their relative sub-directories. Let' say you have a dataset like this:
./data/my_dataset/where every subdirectory of my_dataset/ represents an identity, which contains a number of meshes, e.g.
./data/my_dataset/id000/id000_0.obj ./data/my_dataset/id000/id000_1.obj ...You just have to run ./data/to_graph.py and a new directory will be created under ./graph_data/, containing the freshly build dataset of graphs derived by their relative meshes.
This is an example of the data I've dealt with
The model
You can look at my slides to gain insights about the (simple) model(s) I've coded.
Running a new experiment
Once you're set up with the data you just have to set your hyperparameters under ./config.py and run python main.py.
A Tensorboard log containing the hyperparameters, learning curves and histograms will be logged under ./runs/
Every 100 epochs both the model state and optimizer state dictionaries will be saved inside the same sub-directory.
Testing a model
If you want to test a model you just need to pass the relative ./runs/ sub-directory to the ./test.py script. Let's say you want to test the model logged under ./runs/exp_000/, then you just need to run
python test.py --exp_dir ./runs/exp000Dependencies
Running
conda env create -f torchgeom.ymlwill create an environment containing all the packages needed for this project (CUDA 10.2, cudnn 7.6).
The main dependencies are
python 3.7.7 torch 1.5.1 torch_geometric 1.6.0 tensorboard 2.2.2 scipy 1.5.1 numpy 1.18.5 scikit-learn 0.23.1 trimesh 3.8.8 tqdm 4.47.0Từ khóa » W00zie
-
Giovanni W00zie - GitHub
-
W00zie - Home | Facebook
-
W00zie ✨
-
900+ S⭐️U Ideas In 2022 - Pinterest
-
W00zie (@SeeDee_T) | Splatoon, Vault Boy, Character - Pinterest
-
· W00zie · (@seedee_t) • Instagram Photos And Videos
-
W00ZIE User Profile - DeviantArt
-
W00ZIE - YouTube
-
Discover W00ziest 's Popular Videos | TikTok
-
Streaming 4 Friends TODO - SoundCloud
-
W00zie (u/w00zie-) - Reddit
-
Woozie - Nonolive
-
FS - 997 Steering Wheel & Airbag - 6SpeedOnline