## 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 ```