fukexue / RGM

122 stars 17 forks source link

Bugs in dataloader.py #13

Closed ZhileiChen99 closed 2 years ago

ZhileiChen99 commented 2 years ago

I find that codes in data_loader.py have some bugs. Your 'crop' setting puts resampler before cropper, which is different from the original RPM-Net setting. From my experiments, your setting will make performance better in all metrics.

fukexue commented 2 years ago

Thank you very much for your interest in our work. 1. This is not a bug. We adopt a cropping type similar to RPMNet and a dataloader that sampling before cropping. At the same time, we retrain all the methods under this setting and get the results reported in the paper. 2. The reason why we adopt this setting is that the processing of cropping before sampling can lead to confusing golden standard correspondence, so it will be difficult for us to train directly based on the correspondence. For more improvement, please continue to pay attention to our work.

ZhileiChen99 commented 2 years ago

Thank you for your reply. Could you explain more details about what is confusing golden standard correspondence and the cause of it? Intuitively, if sampling before cropping, source point clouds certainly have exact corresponding points in target point clouds, while under cropping before sampling setting, some correspondences may be incorrect because of the sampling operation. Besides, some works think the crop setting of RPM-Net is more similar to the real partial scenes. What do you think the rationality of your setting compared with RPM-Net?

fukexue commented 2 years ago

A confused correspondence is that point clouds that overlap each other become outliers without matching mutual nearest points. When points in the overlap become outliers, it becomes difficult for the network to predict the exact correspondence. The situation becomes worse when the inaccurate correspondence of the predictions encounters the SVD solver. This situation will be greatly improved when RANSAC is used as the solver, but it will incur more time and computational costs. At the current point cloud resolution, adding Gauss noise can also cause confusion, but it can be relatively alleviated. We try to simulate the real scene as much as possible by adding Gaussian noise to the current settings. Of course, this setting has some limitations and is not perfect, but all methods are fair under the same settings.

fukexue commented 2 years ago

In addition, in the process of real scene registration, grid down-sampling is usually performed on the raw point cloud to make it have the same spatial resolution. At this time, the two corresponding points of the point cloud pair can be approximate to the point after adding Gaussian noise to the center of the grid. Our setting can approximate this situation.

ZhileiChen99 commented 2 years ago

Thank you for your reply! It helps me a lot.