XuyangBai / D3Feat

[TensorFlow] Official implementation of CVPR'20 oral paper - D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features https://arxiv.org/abs/2003.03164
MIT License
259 stars 38 forks source link

How to determine the inlier threshold for calculating overlap ratio? #28

Closed dinghongkai closed 3 years ago

dinghongkai commented 3 years ago

Hi xuyang,

I have a question about the overlap ratio. As we know, different inlier threshold has much influence on the overlap ratio according to the common definition. Further, the inlier threshold is much related to the point density.

So I calculated the average point density of all subsampled (voxel_size = 0.03) point cloud for 3DMatch dataset and the result is 0.0189. I notice that you just set the inlier threshold same as the voxel_size (that is 0.03). Is there any consideration for such setting?

Thanks, Hongkai

XuyangBai commented 3 years ago

Hi Hongkai,

I use 3cm (equal to the voxel size ) as the threshold when calculating the ground truth overlap ratio between point cloud pairs during the data preprocessing stage, and use 10cm as the inlier threshold during the evaluation stage for a fair comparison with other methods. For the former one, I think there is no strict rule for selecting such a threshold since it is only used for calculating a rough overlapping ratio to select the training pairs, and it should depend on the sensor noise and how precise your application needs (because I also use this 3cm threshold to select the positive pairs for metric learning). And setting it as the average distance between the nearest neighbor also makes sense, and gives the network more similar positive pairs for training in this case(3cm vs. 1.89cm). I think some other papers use 1.5 * voxel_size as the threshold.

Best, Xuyang.

dinghongkai commented 3 years ago

Got it. Thanks a lot for your reply.

Hongkai