ranahanocka / MeshCNN

Convolutional Neural Network for 3D meshes in PyTorch
MIT License
1.58k stars 316 forks source link

Regarding augmented data for the classification task #15

Closed amanjain1397 closed 5 years ago

amanjain1397 commented 5 years ago

Hi Rana.

Does the training data include the augmented data generated for the classification task?I have a pretty small dataset to work on, and augmentated data would be really helpful.

I see that .npz files stored in ./train/cache folder. Are these files ever used?

Thanks.

ranahanocka commented 5 years ago

Hi @amanjain1397 ,

Yes, the data is augmented. Each augmentation is saved as an .npz file, the number of augmentations per .obj is defined by the --num_aug flag (for example , you can set --num_aug 40). I think I listed all the augmentation flags under this line in train_options.py.

--scale_verts non-uniformly scale the mesh (i.e., in x, y or z) --slide_verts percentage of vertices which will be shifted along the mesh surface --flip_edges percentage of edges to randomly flip

Also, if you have a way to generate re-meshing of the same object, it would also be a very good data-augmentation. I am looking for scripts to do that, if you have any please feel free to share :)

amanjain1397 commented 5 years ago

Thanks Rana.

Is the augmentated data used while training the model? Because I see the training mesh size always equal to train .objs files only.

ranahanocka commented 5 years ago

Hi @amanjain1397 ,

Sorry I'm not sure I understood? Let's go through the SHREC classification example from this github. First get the data and run training:

bash ./scripts/shrec/get_data.sh
bash ./scripts/shrec/train.sh

Notice that the flag --num_aug 20 . So look at the data in the alien class (datasets/shrec_16/alien/train), consider one mesh T133.obj. Now if you go into alien/train/cache, you should see 20x augmentations of it (being) saved during training:

T133_000.npz
T133_001.npz
...
T133_019.npz

This happens in mesh_prepare.py

amanjain1397 commented 5 years ago

Yeah I got this bit Rana.

I just want to confirm that whether the edge features of these augmented meshes are used for training the model or are they just exported as .npz files just for the sake of visualization?

ranahanocka commented 5 years ago

Yes of course the augmented data (.npz) are used for training.

Not sure what you mean by visualization of .npz files? But anyway, the only visualization script I provided (util/mesh_viewer.py) takes as input the .obj file. Of course, I only provided how to visualize the test .objs anyway, and by default I do not augment the test dataset.

Does this answer your question?

amanjain1397 commented 5 years ago

Right, I got it. Thanks.

ranahanocka commented 5 years ago

Great, Thanks for letting me know :) Marking this as closed