Spaces:
Running
Running
## Creating a model | |
```python | |
from dkm import DKMv3_outdoor, DKMv3_indoor | |
DKMv3_outdoor() # creates an outdoor trained model | |
DKMv3_indoor() # creates an indoor trained model | |
``` | |
## Model settings | |
Note: Non-exhaustive list | |
```python | |
model.upsample_preds = True/False # Whether to upsample the predictions to higher resolution | |
model.upsample_res = (H_big, W_big) # Which resolution to use for upsampling | |
model.symmetric = True/False # Whether to compute a bidirectional warp | |
model.w_resized = W # width of image used | |
model.h_resized = H # height of image used | |
model.sample_mode = "threshold_balanced" # method for sampling matches. threshold_balanced is what was used in the paper | |
model.sample_threshold = 0.05 # the threshold for sampling, 0.05 works well for megadepth, for IMC2022 we found 0.2 to work better. | |
``` | |
## Running model | |
```python | |
warp, certainty = model.match(im_A, im_B) # produces a warp of shape [B,H,W,4] and certainty of shape [B,H,W] | |
matches, certainty = model.sample(warp, certainty) # samples from the warp using the certainty | |
kpts_A, kpts_B = model.to_pixel_coordinates(matches, H_A, W_A, H_B, W_B) # convenience function to convert normalized matches to pixel coordinates | |
``` | |