jchibane / if-net

Implicit Feature Network (IF-Net) - Codebase
305 stars 59 forks source link

Questions about the evaluation on point cloud completion #16

Closed XLechter closed 3 years ago

XLechter commented 3 years ago

As I understand, the network input is the the (grid_coords, input_voxelized points). I found the grid_coords is sampled using the boundary_sampling , but these points are sampled based on the groud truth .off model and you add displacement sto each point. It seems that the evaluation process is also done with this progress. But if I have a raw incomplete point cloud, how can I decide the grid_coords? I don't know if I misunderstand your work, thank you so much.

jchibane commented 3 years ago

Hi @XLechter ,

points in 3D space are sampled on the ground truth to create training data. (Done using boundary_sampling, yes) There are no displacements / noise added to the gt. This is what the network should learn to reproduce.

To train a network you need pairs of raw incomplete point clouds and the corresponding ground truth, to train the network to go from the raw to the ground truth.

Please check the paper and supplementary for details.

Best, Julian

XLechter commented 3 years ago

Hi @jchibane , Thanks for your reply. My main concern is about how can I effectively decide the grid_coords in the forward pass during the testing, if I don't have the corresponding ground truth in the test set and want to see the completion results. As I see the the grid_coords is stored in the boundary_sigma_samples.npz, but this file is also generated from the groud truth.

XLechter commented 3 years ago

I read the your paper and find that you sample 50% of the point samples very near the surface with a small σ1, and 50% in the further away surroundings and with a larger σ2, but I am confused about how this sampling process works in the inference.

jchibane commented 3 years ago

Hi @XLechter,

for testing you do not need samples generated by boundary_samples. At test time (i.e. in the generation script) the network is asked to classify all points within a dense grid of points surrounding the partial data. These classifications are then converted to a mesh using marching cubes.

Best, Julian

XLechter commented 3 years ago

Hi, @jchibane , Thank you for your quick reply. I see the code in the generation script. This perfectly solves my concerns. Thanks again for your time!