Pointcept / PointTransformerV2

[NeurIPS'22] An official PyTorch implementation of PTv2.
352 stars 24 forks source link

What is the motivation of the part prediction during the testing phase? #46

Closed wxde closed 1 year ago

wxde commented 1 year ago

The work is so wonderful, and i am interested. i have a little question to learn from you. 1、If I understand correctly, what I am confused about the input data is the overall sense in training step, while the input data of part sense was used to predict for testing. What is the reason and will this affect performance? 2、Voxelizing the point cloud, what is the difference between train and test mode. why should to set data_part_list?

Looking forward to your reply

Gofinge commented 1 year ago

Hi, the explanation here (https://github.com/Pointcept/Pointcept#testing) might be helpful.

wxde commented 1 year ago

Thank you for your reply. the explanation is helpful.

wxde commented 1 year ago

Hi @Gofinge, In the prediction stage, a certain point is repeatedly predicted, so the final prediction result is the last prediction of the modified point. If voting on the repeated prediction result is more accurate?

Gofinge commented 1 year ago

In Pointcept, we also adopt TTA, resulting in voting point prediction with various augmentation. As discussed in https://github.com/Pointcept/Pointcept#testing, my experience is that TTA won't significantly push the upper bound of testing results (although recent papers might claim that TTA boosts the performance), but it can make the testing results more stable and easier to achieve the upper bound (compared with w/o TTA, w/ fragment test).

wxde commented 1 year ago

Thank you for your explanation. '''idx_select = np.cumsum(np.insert(count, 0, 0)[0:-1]) + i % count idx_part = idx_sort[idx_select] data_part = dict(index=idx_part) ''' The code in test of voxelize module, many values in idx_part between part and part are the same. Recently, the point final prediction result is the last prediction of part. Therefore, although TTA is not used during the testing phase, can we still improve the prediction accuracy by voting?

Gofinge commented 1 year ago

The testing strategy is a common practice in indoor perception, and I did not explore too much about the influence. Maybe you can verify the difference by introducing a mask to prevent voting during the testing strategy.

wxde commented 1 year ago

OK, Thank you very much!