Add RoMa keypoint matcher
Author: tcourat
Pull request: no
Labels: name: New model

name: Vision

### Model description

RoMa is a state of the art deep keypoint detector and matcher.  It falls in the "fully dense" matcher category, contrary to semi-dense matchers like LoFTR or Sparse matchers like Superpoint+SuperGlue. 

When you want the best performance when you do not have many limitation from speed or memory, then RoMa is giving among the best results.

The paper introduces several key contributions:
* Feature Integration: Combines DINOv2’s coarse features with fine ConvNet features for robust, precise localization.
* Transformer-Based Match Decoder: Predicts anchor probabilities instead of coordinates.
* Improved Loss Formulation: Uses classification-based regression for global matches and robust regression for refinement.

### Open source status

- [x] The model implementation is available
- [x] The model weights are available

### Provide useful links for the implementation

Paper : https://arxiv.org/abs/2305.15404
Code : https://github.com/Parskatt/RoMa

Comments:
cc @qubvel @NielsRogge 

btw we have EfficientLoFTR matcher PR in progress 
 - #36355 

As this appears to have been inactive for a while: Is this still open and if so in progress? Otherwise I'd be happy to pick this up if it's ok that it will most likely take me quite a while. @qubvel @Rocketknight1 

@henrikm11 great, feel free to start working on it!

I would also like this please! How are you getting on @henrikm11 ?

It's been 2.5 months since the last activity. @alexdzm, feel free to take this up if there is no response in a couple of days.

@alexdzm @qubvel sorry for the delay! I am working on it,  but life has been unexpectedly busy recently. It looks like I should be able to devote some more time to this starting next week and I am also totally open to making this a collaborative effort!

@henrikm11 Could you share the PR you are working off with your current progress please? If there is a way to parallelise this easily I can help out!

Hi @henrikm11, thanks a lot for your update, completely understandable that life can get busy! To help move this forward, it might be best if we let someone else start working on the issue now, and you’re very welcome to continue contributing alongside them. Adding a model to Transformers can be a long process (especially for the first time), so having more than one contributor can really help

Hi @qubvel, thanks for taking the initiative to move this forward. Best of luck @alexdzm! Hopefully, I will find some time again soon to contribute more. If that happens to be the case in the very near future and @alexdzm is open to get a helping hand, do you mind if I ping you?

cc @yonigozlan 

@qubvel its been a while since the last activity on this. Is this issue still relevant to be worked upon? If yes, I would love to start working on it. 


@srishtiii28: In my opinion, this would still be interesting. As far as I am aware, RoMa v2 has been proposed which seems to be an architectural upgrade (https://arxiv.org/abs/2511.15706) and was trained with a more diverse dataset. However, the foundational model training efforts (MatchAnything and MINIMA, see https://arxiv.org/abs/2501.07556 and https://github.com/LSXI7/MINIMA) are both based on the first RoMa architecture and show quite good generalization ability. Integrating RoMa in such a manner that these different weights can be utilized would be beneficial in my opinion. 

Thanks @durmaz07 , I will check that out and work on it!

@durmaz07 i have linked a PR can you please check it out. thanks!



> [@durmaz07](https://github.com/durmaz07) i have linked a PR can you please check it out. thanks!

@srishtiii28: Thanks for your efforts! I am not a contributor to transformers, just a user of recent image matching models. @tcourat or @qubvel probably can assign a suitable reviewer and potentially merge your PR.