yuxumin/PoinTr

About 'rand_idx' PCNdataset

ZHANGH83 opened this issue · 3 comments

Hi xumin! Congrat to your great work!!!
I have a small question about the 'PCNdataset.py'.
It seems that a 'rand_idx' is used to randomly select ONE incomplete pcd within 'n_rendering' during training. So the rest 7 pcds are left un-used, right?
And if my dataset is relatively small, can I use all these 8 incomplete pcds as the input for each ground truth (complete pcd)? Will there be any problems since the ground truth are the same for 8 distinct inputs?

It seems that a 'rand_idx' is used to randomly select ONE incomplete pcd within 'n_rendering' during training. So the rest 7 pcds are left un-used, right?

yes

And if my dataset is relatively small, can I use all these 8 incomplete pcds as the input for each ground truth (complete pcd)?

I think this may have a risk when your batchsize is relative small. (lack diversity for a mini-batch during the training). You can organize incomplete-complete point cloud as pairs and shuffle them during the training to ensure the diversity for each mini-batch.

Thanks for your fast reply!!!
I see. And I will try to enlarge my dataset and use the shuffle strategy to increase the diversity.
By the way, my own dataset has 4096 points for the complete pcds and 2048 for the incomplete pcds, can I simply train the data with name 'PCN'? Will there be any problems? Or I need to define them as a new dataset for training?

Hi, Xumin!
I trained the PointTr with my particle dataset but got poor performance. The predicted result does not complete the missing pcds at the correct position.
1678602645100
And the training loss is like this:
1678603201472
The dataset has 16384 points for complete pcds and the partial pcds have 90% points of the complete pcds. I tried to increase the number of 'num_pred'(28672), 'num_query'(896) and 'trans_dim'(510) to enlarge the complexity of the model, but it doesn't work. So could you help me to find some possible problems, please?