Comments (5)
Following the previous post: I have found a way to add the node ['xyz_feat_att'] to the global model, however, its weights are not in the checkpoint file:
The following variables are in the graph, but not found in the checkpoint: detection_block_reliable/detec_conv0/W, detection_block_reliable/detec_conv0/b, detection_block_reliable/detec_conv0/bn/gamma, detection_block_reliable/detec_conv0/bn/beta, detection_block_reliable/detec_conv0/bn/mean/EMA, detection_block_reliable/detec_conv0/bn/variance/EMA, detection_block_reliable/detec_conv1/W, detection_block_reliable/detec_conv1/b, detection_block_reliable/detec_conv1/bn/gamma, detection_block_reliable/detec_conv1/bn/beta, detection_block_reliable/detec_conv1/bn/mean/EMA, detection_block_reliable/detec_conv1/bn/variance/EMA, detection_block_reliable/detec_conv2/W, detection_block_reliable/detec_conv2/b, detection_block_reliable/detec_conv2/bn/gamma, detection_block_reliable/detec_conv2/bn/beta, detection_block_reliable/detec_conv2/bn/mean/EMA, detection_block_reliable/detec_conv2/bn/variance/EMA, detection_block_reliable/detec_conv_fc/W, detection_block_reliable/detec_conv_fc/b
Does that mean the local/global modes are actually two separate models?
from dh3d.
Hi xingruiy,
we provide two models here to evaluate them on two tasks, one for the local descriptor and detector and the other for the global descriptor. They are separate because we use different data splitting strategies for these two tasks for fair comparisons with other methods, you can find more details in our supplementary material Sec.4.2.
The global model does not contain the weights of detector because the detector is not required to compute global features. If you want to get the local and global descriptors in a single forward pass, you can load the global model first and then load the local one. An easy way to implement this is to use the ChainInit from tensorpack
For example, ChainInit([SaverRestore(global_model_path), SaverRestore(local_model_path)])
from dh3d.
Many thanks! @JuanDuGit
That's a very useful tip. I have managed to load both model files by simply giving the SmartInit a list of model file paths:
session_init=get_model_loader(['model1','model2']),
And it worked like a charm!
I still have another question that is related to this:
I know the local features are formatted as 'xyz' [0:3], 'feat' (4:131) and 'att' [131], my question is can attention be simply be interpreted as the saliency of related points? I.e. If I am going to select K salient points, can I simply rank all points from the highest attention to the lowest and select the top K points? Or do I need to run the single_nms
(which I assume is how you actually select K salient points) function that you used to select K points in your script?
from dh3d.
Hi xingruiy,
NMS is used to produce an even distribution of selected keypoints, which is preferable when running the registration in the next step. Based on my own experience, I would recommend not skipping this operation. You can consider adujsting the selection criteria to get different number of keypoints, for example min_response_ratio, nms_radius.
Also, note that in our implementation, 1 - attention
is consider as the saliency of points. Hope this helps~
from dh3d.
Thanks a lot! @JuanDuGit That makes a lot more sense. I will close the issue now.
from dh3d.
Related Issues (12)
- Monocular Relocalization HOT 1
- local feature detector HOT 1
- what kind of graphics driver do you use? HOT 2
- Evaluation results are different from the paper HOT 2
- Change the number of input points HOT 2
- Question about model runtime and relocalization process HOT 1
- Error running code HOT 1
- Point Cloud Retrieval for DSO HOT 1
- Input & output node names HOT 4
- hello, I meet a problem.I use RTX4080,with docker and cuda10.1, tf1.9.0,and I meet the flowing issue: HOT 1
- Hello,It's a nice work,can the process of training be resumed?I meet the warning" If you want to resume old training, either use `AutoResumeTrainConfig` or correctly set the new starting_epoch yourself to avoid inconsistency.",But I don't know how to change the world
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 dh3d.