Lorenzo Bini
Lars van Asseldonk
Lisa Salomons
Create a folder called "data" in C:UsersUser..
, make sure this data folder contains the Princeton shape benchmark dataset and a folder called cache, that contains a folder called processed_data.
Such that when you open the data folder its path is C:Usersuserdata
containing the subfolders: benchmark and cache, with the following paths: C:Usersuserdatabenchmark
and C:Usersuserdatacache
.
The cache folder contains the processed_data folder resulting in the path: C:Usersuserdatacacheprocessed_data
In the cache map, there should also be an exclude.txt
containing the numbers of the models our normalization method was not able to normalize properly. If not in the cache file the models are included in the database and will have a significant impact on the feature calculation and overall performance.
The datapath to the cache folder can also be changed this can be done in settings.py
by changing the SAVED_DATA path.
Then proceed to run main.py
.
The first run takes a long time as it normalizes the shapes and computes the features, saving it all in their own cache file.
For the following runs, the models and features are reloaded from the cache files in the cache folder. When running the code make sure to read through setting.py
to ensure that the right settings for your goal are selected.
Required for the project are the following programs
pip install glfw
or
conda install -c conda-forge glfw
pip install PyOpenGL
or
conda install -c anaconda pyopengl
pip install matplotlib
or
conda install -c conda-forge matplotlib
pip install numpy
or
conda install numpy
pip install open3d
or
conda install -c open3d-admin open3d
pip install trimesh
or
conda install -c conda-forge trimesh
pip install annoy
or
conda install -c conda-forge python-annoy
From your Python interpreter run main.py
to run the main file with the selected settings in settings.py
.
R/r: Switch between rotating and panning | Delete: Reset the mesh to the initial position | Esc: Close application |
Left Arrow: Move left/Decrease x-rotation | Right Arrow: Move right/Increase x-rotation | |
Up Arrow: Move up/Increase y-rotation | Down Arrow: Move down/Decrease y-rotation | |
+: Zoom-in | -: Zoom-out | |
Enter: Go to next model | v: Toggle vertices |
Run evaluation.py
from your python interpreter command line.
Before running the evaluation script you should be sure to set one of the following to true: USE_DISTANCE_METRIC or USE_RNN in the settings.py file. If USE_DISTANCE_METRIC is set to True make sure that USE_RNNis set to False and vice versa.