Comments (3)
@GabbySuwichaya @22wei22 I can advice something for SuperPoint.
-
Orientation. It is probably safe to assume all zero -- otherwise SP would probably match them. If that does not suit you, see the recommendation for the scale.
-
Scale. I would recommend to start with small fixed scale, e.g. 32 pix, extract patches around SP keypoints and feed them into https://github.com/bluedream1121/self-sca-ori Thus you will have a scale and orientation. I am going to integrate the methods I mentioned into kornia
Alternatively, you can estimate orientation using OriNet from kornia
However, if you are using SuperPoint, it is much better to use SuperGlue with it instead of AdaLAM. And for AdaLAM I would recommend KeyNetHardNet instead
from adalam.
Hello! Thank you very much for releasing the implementation of this work. The runtime & performance are quite impressive.
- Here, I would like to ask for your suggestion on how to extend this work. Actually, do you have a version of this work for batch processing over multiple images at the same time? Is it possible?
- Also, could you please recommend how to estimate the scale and orientation components of local features? I have actually used the SuperPoint as the local feature. I am not sure how to get these two components ?
@GabbySuwichaya
I want to use the SuperPoint as the local feature. I meet the same thing how to get scale and orientation. do you have some idea?
from adalam.
Hi @GabbySuwichaya, hi @22wei22
Let me comment point by point:
- I don't have other versions of this work, and this does not support processing multiple images together in batches. It is a feasible extension, and could be useful in the case when you have lots of images with few correspondences, so that you can fit all of them into a single batch in GPU. Implementation-wise, if you wish to proceed to such extension, it could be made by adding another layer of indexing (currently each local neighborhood is indexed, you can also index each image in batch to distinguish them while keeping variable-length vectors to compute). It's a bit tricky to code, but surely feasible. However, from my personal taste, I would rather suggest to extend it in some direction which could be interesting research-wise. Examples of open questions could be:
- Can we make the selection more robust to noisy correspondences, to alleviate the need for orientation+scale as extra filters?
- Can we add some meaningful learned component to catch some complex correlations on top of affine regularities?
- How can we go beyond the first-nearest-neighbor matches to alleviate the need for good descriptors?
- Regarding scale and orientation, these don't always come defined with a given keypoint. When they are not defined like with SuperPoint, my best suggestion could be to try to estimate them like SIFT does, and emulate them. They will not be exactly the same, since scale is intrinsically connected with the way SIFT selects where to pick keypoints, but they might be good estimates. In AdaLAM you can also change the confidence you give to the scale and orientation filters, so it might be the case to adjust those confidences for emulated scale and orientation. Unfortunately I don't have ready-made code for this, but I think you should be able to find something online, worst case there's a lot of documentation on how SIFT works. You can also use AdaLAM without scale and orientation, but from my experience (also with SuperPoint) it works far from optimally.
In any case, thank you a lot for your interest and let me know if you plan to work on an extension of AdaLAM!
from adalam.
Related Issues (16)
- About matching to the same point HOT 2
- Could you help explain in extract_local_patterns Line 60 HOT 5
- AdaLAM to kornia? HOT 2
- Question about the function of confidence_based_inlier_selection too HOT 9
- No match HOT 1
- Questions for the parameters modification? HOT 4
- What would be the best way to adapt the code to process 2D-3D correspondences?
- Question about sqlite3.OperationalError: unable to open database file?
- what about the performance compared with superglue?
- use ratio test when no correspondences survive HOT 2
- it seems that the program cannot run successfully. HOT 3
- Creating a colmap dataset HOT 2
- setup env for cpu HOT 4
- Run example.py but get empty matches HOT 9
- some questions In function of confidence_based_inlier_selection HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from adalam.