Closed saadehmd closed 1 week ago
Hi saadehmd,
Thanks for your interest in our work. You are correct. The PCN and ShapeNet datasets are normalized before feeding into the network. For the ShapeNet dataset, it is normalized in line 46 in the ShapeNet55Dataset.py and for the PCN dataset, it is already normalized. To fit the input scale, one possible solution can be:
We also have the function to randomly ScalePoints in the data_transforms.py. It might be possible to obtain a better performance if you apply this random scaling function to the input point cloud during training.
To have a fair comparison with the previous point cloud completion works, we did not use random scaling and kept this part the same as the previous works.
Thanks a lot for publishing such awesome work as code. I quickly tried to run inference on generic car pointclouds (i.e.; Not those from the PCN dataset). I sampled these partial clouds from mesh models i found on internet. Now, it might be that these mesh models have slightly different scales than the models used while training PCN dataset, but i was hoping that wouldn't matter as the network would be pretty much scale-invariant. So i assumed, that the completed shapes of novel objects would be in the same scale as the novel object. But it seems like, the network predicts both coarse(seed points) and dense (output points) in the scale it learned during training. I am using the checkpoint pretrained on PCNDataset at the google drive link provided in the ReadMe
The following output shows Blue points as partial and red as predicted. ![Screenshot from 2024-08-13 13-12-02](https://github.com/user-attachments/asse ts/04c9e524-a366-4a2c-b1dd-5dbe18f550b1)
If i use a 'car.pcd' provided in the PCN test data , it looks like the predicted scale perfectly matches the partial-cloud scale.
Am i getting a wrong understanding here, or is it true that network learns a single scale per category during training which is an average of the scales of all the samples of that object it has seen during training.