Comments (7)
@PatrickRowsomeMovidius The keypoint scores of D2-Net have no absolute meaning. We only train for local uniqueness, but not global order. As such, taking the top-n / bottom-n ranked keypoints is not expected to give you the "best" keypoints.
from d2-net.
Hello @PatrickRowsomeMovidius . @tsattler is right about the scores not being trained for global ordering. Nevertheless, for HPatches sequences, I tried selecting top 2000 highest scores and the results remained similar; this doesn't guarantee that the results will be the same for all datasets, but it is worth investigating further. Thus I have some additional questions:
- Are you using multi-scale or single-scale? Taking top-k for multi-scale is not expected to work since the feature maps are summed together for higher scales.
- I think that
keypoints = np.asarray([row for _, row in sorted(zip(scores, keypoints), key=lambda pair: pair[0])]).squeeze()
sorts in ascending order so you might want to select the last N keypoints (e.g.,keypoints[-N :]
).
from d2-net.
I have one question, how can i get the orientation of keypoint ?
from d2-net.
We do not estimate a feature orientation (only location and eventually scale using an image pyramid). The keypoints can be considered as being upright.
from d2-net.
Hello @PatrickRowsomeMovidius . @tsattler is right about the scores not being trained for global ordering. Nevertheless, for HPatches sequences, I tried selecting top 2000 highest scores and the results remained similar; this doesn't guarantee that the results will be the same for all datasets, but it is worth investigating further. Thus I have some additional questions:
- Are you using multi-scale or single-scale? Taking top-k for multi-scale is not expected to work since the feature maps are summed together for higher scales.
I am using the single scale option. So this should not cause an issue
- I think that
keypoints = np.asarray([row for _, row in sorted(zip(scores, keypoints), key=lambda pair: pair[0])]).squeeze()
sorts in ascending order so you might want to select the last N keypoints (e.g.,keypoints[-N :]
).
Yes, you are right, this does sort in ascending order, this means that my results are more stable now.
Still I see quite poor performance in terms of repeatability when I attempt to only keep the best N keypoints.
from d2-net.
@mihaidusmanu Thanks for answering!
from d2-net.
@PatrickRowsomeMovidius In a recent work related to D2-Net - ASLFeat (https://arxiv.org/pdf/2003.10071.pdf), they seem to be using the soft-detection score for reducing the number of keypoints (section 5.1, paragraph Testing). I suspect this might be helpful for D2-Net features as well, but I didn't experiment with it so far.
I will close the issue. Feel free to open a new one if there are any problems.
from d2-net.
Related Issues (20)
- Issue with preprocessing undistorted images; overlap matrix can not be calculated HOT 2
- d2-net Feature extraction
- unable to download d2_tf.pth HOT 3
- Unable to download weight files! HOT 2
- D2Net model weights HOT 3
- please provide source code to export onnx file HOT 2
- unable to resolve host address ‘dsmn.ml’ HOT 3
- Does the model_test need to train once again? HOT 3
- how to transfer keypoints get from d2-net to keypoint in opencv?I want to homography and perspectiveTransform operations
- Details about how to find correspondences in megadepth dataset
- -
- Failed to download models HOT 6
- MegaDepth saved npz poses as 1x4 array but should be 4x4 HOT 4
- undistorted reconstructions dataset link Error 404 HOT 2
- Question about the image undistortion HOT 1
- Undistorted and preprocessed images for our dataset HOT 1
- Uploading weights to Hugging Face
- Extracting features encountered RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu) HOT 1
- Error in model retraining parameters
- Inquiry about D2Net for Brain Tumor Segmentation on BraTS2018 Dataset HOT 1
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 d2-net.