charlesq34 / pointnet

PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Other
4.71k stars 1.44k forks source link

Questions about sem_seg of S3DIS #118

Open Jaiy opened 6 years ago

Jaiy commented 6 years ago

Hi, thanks for your great work, I'm new to the 3D point cloud. I want to use the S3DIS dataset for the pointcloud sementic segmentation, I found the default dataset is the ModelNet40,how I need to modify the script and the parameters if I want to use the S3DIS dataset? Could please provide some guidances, thanks a lot for your kind help!

mescpla commented 6 years ago

@Jaiy

This is what I understood from what I saw. I hope it helps you: When we do semantic segmentation with PointNet:

                                     pointnet/sem_seg/collect_indoor3d_data.py

/pointnet/Data/Stanford3dDataset_..._Aligned_Version -------------------> /pointnet/Data/Stanford_indoor3d Folder with Area folders which contains .npy documents with the poins room folders which contains .txt documents of every element in each room of each element in the room XYZ RGB info XYZ RGB L info

                       pointnet/sem_seg/gen_indoor3d_h5.py (This uses undoor3d_util)

/pointnet/Data/Stanford_indoor3d -------------------------------> /pointnet/Data/indoor3d_sem_seghdf5_data .npy documents with the poins .h5 documents with the partition of the of every element in each room whole room in 4096 size point clouds XYZ RGB L info data => XYZ RGB X'Y'Z' label => L

And this is how it is prepared the .h5 files that are used during segmentation training and evaluation. If you want to use another dataset I guess you should adapt the programs already indicated (or your own) so you get the same .h5 structure from S3DIS dataset.

NKNguyenLX commented 5 years ago

@mescpla Thank you for your explanation but i still don't understand the XYZ RGB L info data => XYZ RGB X'Y'Z'. What is X'Y'Z' mean? thanks

marescpla commented 5 years ago

@NKNguyenLX

=) X'Y'Z' is XYZ after a normalization process in a room. In other NN I don't think people uses both values (XYZ and X'Y'Z'), but I remind that the author wanted to reflect local and global properties.

During the whole process they do some modifications to the data to help with the classification: Symmetry Function for Unordered Input, Joint Alignment Network, Local and Global Information Aggregation...

You should have a look to the paper for further understanding. It is a really interesting one: https://arxiv.org/pdf/1612.00593.pdf

Here some text(from the paper) that looks to be related with your question:

image

image

Also apologize in case I am wrong with something. I did read the paper and work with the code more than one year ago and I don't remember everything in detail right now. But I hope this help.

Good luck!

NKNguyenLX commented 5 years ago

@mescpla thank you very much ^^