Parskatt / RoMa

[CVPR 2024] RoMa: Robust Dense Feature Matching; RoMa is the robust dense feature matcher capable of estimating pixel-dense warps and reliable certainties for almost any image pair.
https://parskatt.github.io/RoMa/
MIT License
434 stars 33 forks source link

The Difference Between "forward_symmetric" and "forward" #30

Open fighterzzzh opened 2 months ago

fighterzzzh commented 2 months ago

Hello, great job! I have a question to ask. What is the difference between "forward_symmetric" and "forward"? Looking forward to your reply.

Parskatt commented 2 months ago

Hi. The dense warp we compute is unidirectional, and therefore results are asymmetric depnwnding on order of A,B.

We can improve results somewhat by running the decoding and refinement twice (AB, BA). This is more expensive but can be useful in some cases. This is called symmetric.

fighterzzzh commented 2 months ago

Hi. The dense warp we compute is unidirectional, and therefore results are asymmetric depnwnding on order of A,B.

We can improve results somewhat by running the decoding and refinement twice (AB, BA). This is more expensive but can be useful in some cases. This is called symmetric.

Thank you for your answer. I noticed there are two instances of forward inference in the code. Is there any connection with forward_symmetry。

fighterzzzh commented 2 months ago

Hi. The dense warp we compute is unidirectional, and therefore results are asymmetric depnwnding on order of A,B.

We can improve results somewhat by running the decoding and refinement twice (AB, BA). This is more expensive but can be useful in some cases. This is called symmetric.

Additionally, in the outdoor model's matching, the entire module underwent two rounds of inference. The second round of inference included certainty and flow

Parskatt commented 2 months ago

Yes, or rather the refinement stage is repeated but in higher resolution. The is the reason for "upsample_res"