cszyzhang / riconv2

The official source codes for the riconv++ (IJCV2022) paper
MIT License
27 stars 5 forks source link

About LRA calculation #7

Closed granadet17 closed 1 year ago

granadet17 commented 1 year ago

Thank you for sharing the code.

I have a question about the LRA calculation. Why didn't you remove the sign ambiguity of the eigen vectors like SHOT feature? Is there any reason?

cszyzhang commented 1 year ago
  1. LRA is much more robust than the LRF of SHOT. Please check Fig. 8 of our IJCV paper which clearly shows this.
  2. Sign ambiguity cannot be removed in many cases especially when the local shape is like a disk or lacking sufficient geometric features. Moreover, the noise can further deteriorate this. Thus, we proposed LRA which has no sign ambiguity problem.
granadet17 commented 1 year ago

Thanks for the reply. I understand now.

I would like to ask one more question about implementation. https://github.com/cszyzhang/riconv2/blob/134122e90305c5d38d0d2f5ec151e908e44f062b/models/riconv2_utils.py#L216-L241

In this function, you wrote https://github.com/cszyzhang/riconv2/blob/134122e90305c5d38d0d2f5ec151e908e44f062b/models/riconv2_utils.py#L236 but, I think the first is not the vec_ref.

cszyzhang commented 1 year ago

Thanks for reporting that line of comment. Yes. the first is not the vec_ref. The vec_ref is the one with largest distance from the center point, while the first one is the center point by itself whose vec is always [0,0,0]. So, we force its sign to 1 to avoid two identical dots after sign operation (Line 237). Otherwise, the 1st dot value and the ref dot value will become identical. I have updated that line of comment. Hope this clarifies.

granadet17 commented 1 year ago

Thank you. Shouldn't you set the sign of vec_ref manually since the cross product of vec_ref and vec_ref is also [0, 0, 0].

cszyzhang commented 1 year ago

So, set one of them to differentiate it from the other.

granadet17 commented 1 year ago

I'm sorry, I misunderstood.

Thank you.