Sangminhong / ACL-SPC_PyTorch

Official implementation of the paper "ACL-SPC: Adaptive Closed-Loop system for Self-Supervised Point Cloud Completion" (CVPR 2023)
34 stars 5 forks source link

How to process the ShapeNet data? #3

Closed tpzou closed 5 months ago

tpzou commented 1 year ago

Hi, @Sangminhong. Thank you for your excellent work!

I would like to ask some questions about ShapeNet data during training and test data processing:

  1. I noticed in the article that incomplete point clouds are obtained by projection and I tried to use pytorch3d for the corresponding operation. But I would still like to know your corresponding code to avoid errors.
  2. Is the point cloud data normalized?
  3. The chamfer loss in the code seems to be different from the usual one (with the addition of torch.sqrt()).
Sangminhong commented 1 year ago

Hi, @Sangminhong. Thank you for your excellent work!

I would like to ask some questions about ShapeNet data during training and test data processing:

1. I noticed in the article that incomplete point clouds are obtained by projection and I tried to use pytorch3d for the corresponding operation. But I would still like to know your corresponding code to avoid errors.

2. Is the point cloud data normalized?

3. The chamfer loss in the code seems to be different from the usual one (with the addition of `torch.sqrt()`).

Sorry for the late reply.

  1. You can use the 'sythesize(pcs_input, R)' function to generate incomplete point cloud from a complete point cloud.
  2. Yes, It is normalized.
  3. Sorry for the confusion. You can use 'chamfer_distance_naive(points1, points2)' function in the loss.py.

Hope I answered your questions properly. If you have more issues, feel free to ask. Thank you

tpzou commented 1 year ago

@Sangminhong , thank you for your reply. Is the incomplete point cloud at the beginning of the training also generated using 'sythesize(pcs_input, R)' function? For a fair comparison, can you provide the .h5 file that can be used directly in the data.py file (NetDataset function)? The incomplete point cloud I generated had poor results on the pre-trained network.

Sangminhong commented 1 year ago

@Sangminhong , thank you for your reply. Is the incomplete point cloud at the beginning of the training also generated using 'sythesize(pcs_input, R)' function? For a fair comparison, can you provide the .h5 file that can be used directly in the data.py file (NetDataset function)? The incomplete point cloud I generated had poor results on the pre-trained network.

Yes we used the same function. If you send me an email to mchiash2@snu.ac.kr , I will give the .h5 file. Thank you

For people who need the .h5 file, please download it from https://github.com/eldar/differentiable-point-clouds as it is mentioned. We followed the same process and it is quite simple. After that if you still have issues, please let me know. Thank you