vismatch 1.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vismatch/TEMPLATE.py +101 -0
- vismatch/__init__.py +475 -0
- vismatch/assets/example_pairs/false_positive/chartres.jpg +0 -0
- vismatch/assets/example_pairs/false_positive/notre_dame.jpg +0 -0
- vismatch/assets/example_pairs/fresco/fsm.jpg +0 -0
- vismatch/assets/example_pairs/fresco/sist_chapel.jpg +0 -0
- vismatch/assets/example_pairs/indoor/gcs_close.jpg +0 -0
- vismatch/assets/example_pairs/indoor/gcs_far.jpg +0 -0
- vismatch/assets/example_pairs/outdoor/montmartre_close.jpg +0 -0
- vismatch/assets/example_pairs/outdoor/montmartre_far.jpg +0 -0
- vismatch/assets/example_pairs/sat2iss/photo_from_iss.jpg +0 -0
- vismatch/assets/example_pairs/sat2iss/satellite_img.jpg +0 -0
- vismatch/assets/example_pairs/sphereglue/barbershop-00000000.jpg +0 -0
- vismatch/assets/example_pairs/sphereglue/barbershop-00000001.jpg +0 -0
- vismatch/assets/example_pairs/thermal/thermal.jpg +0 -0
- vismatch/assets/example_pairs/thermal/visible.jpg +0 -0
- vismatch/assets/example_test/original.jpg +0 -0
- vismatch/assets/example_test/warped.jpg +0 -0
- vismatch/base_matcher.py +242 -0
- vismatch/im_models/__init__.py +0 -0
- vismatch/im_models/aff_steerers.py +143 -0
- vismatch/im_models/aspanformer.py +74 -0
- vismatch/im_models/dedode.py +150 -0
- vismatch/im_models/duster.py +104 -0
- vismatch/im_models/edm.py +64 -0
- vismatch/im_models/efficient_loftr.py +60 -0
- vismatch/im_models/gim.py +187 -0
- vismatch/im_models/handcrafted.py +81 -0
- vismatch/im_models/keypt2subpx.py +154 -0
- vismatch/im_models/kornia.py +72 -0
- vismatch/im_models/liftfeat.py +44 -0
- vismatch/im_models/lightglue.py +75 -0
- vismatch/im_models/lisrd.py +98 -0
- vismatch/im_models/loftr.py +23 -0
- vismatch/im_models/master.py +107 -0
- vismatch/im_models/matchanything.py +221 -0
- vismatch/im_models/matchformer.py +61 -0
- vismatch/im_models/matching_toolbox.py +238 -0
- vismatch/im_models/minima.py +164 -0
- vismatch/im_models/omniglue.py +91 -0
- vismatch/im_models/rdd.py +250 -0
- vismatch/im_models/ripe.py +55 -0
- vismatch/im_models/roma.py +92 -0
- vismatch/im_models/romav2.py +62 -0
- vismatch/im_models/se2loftr.py +71 -0
- vismatch/im_models/silk.py +405 -0
- vismatch/im_models/sphereglue.py +97 -0
- vismatch/im_models/steerers.py +140 -0
- vismatch/im_models/topicfm.py +93 -0
- vismatch/im_models/ufm.py +57 -0
- vismatch/im_models/xfeat.py +78 -0
- vismatch/im_models/xfeat_steerers.py +151 -0
- vismatch/im_models/xoftr.py +71 -0
- vismatch/third_party/DeDoDe/DeDoDe/__init__.py +2 -0
- vismatch/third_party/DeDoDe/DeDoDe/benchmarks/__init__.py +4 -0
- vismatch/third_party/DeDoDe/DeDoDe/benchmarks/mega_pose_est.py +114 -0
- vismatch/third_party/DeDoDe/DeDoDe/benchmarks/mega_pose_est_mnn.py +119 -0
- vismatch/third_party/DeDoDe/DeDoDe/benchmarks/nll_benchmark.py +57 -0
- vismatch/third_party/DeDoDe/DeDoDe/benchmarks/num_inliers.py +76 -0
- vismatch/third_party/DeDoDe/DeDoDe/checkpoint.py +59 -0
- vismatch/third_party/DeDoDe/DeDoDe/datasets/__init__.py +0 -0
- vismatch/third_party/DeDoDe/DeDoDe/datasets/megadepth.py +269 -0
- vismatch/third_party/DeDoDe/DeDoDe/decoder.py +90 -0
- vismatch/third_party/DeDoDe/DeDoDe/descriptors/__init__.py +0 -0
- vismatch/third_party/DeDoDe/DeDoDe/descriptors/dedode_descriptor.py +50 -0
- vismatch/third_party/DeDoDe/DeDoDe/descriptors/descriptor_loss.py +68 -0
- vismatch/third_party/DeDoDe/DeDoDe/detectors/__init__.py +0 -0
- vismatch/third_party/DeDoDe/DeDoDe/detectors/dedode_detector.py +76 -0
- vismatch/third_party/DeDoDe/DeDoDe/detectors/keypoint_loss.py +185 -0
- vismatch/third_party/DeDoDe/DeDoDe/encoder.py +87 -0
- vismatch/third_party/DeDoDe/DeDoDe/matchers/__init__.py +0 -0
- vismatch/third_party/DeDoDe/DeDoDe/matchers/dual_softmax_matcher.py +38 -0
- vismatch/third_party/DeDoDe/DeDoDe/model_zoo/__init__.py +3 -0
- vismatch/third_party/DeDoDe/DeDoDe/model_zoo/dedode_models.py +249 -0
- vismatch/third_party/DeDoDe/DeDoDe/train.py +76 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/__init__.py +8 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/dinov2.py +359 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/__init__.py +12 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/attention.py +81 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/block.py +252 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/dino_head.py +59 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/drop_path.py +35 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/layer_scale.py +28 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/mlp.py +41 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/patch_embed.py +89 -0
- vismatch/third_party/DeDoDe/DeDoDe/transformer/layers/swiglu_ffn.py +63 -0
- vismatch/third_party/DeDoDe/DeDoDe/utils.py +717 -0
- vismatch/third_party/DeDoDe/data_prep/prep_keypoints.py +103 -0
- vismatch/third_party/DeDoDe/demo/demo_kpts.py +24 -0
- vismatch/third_party/DeDoDe/demo/demo_match.py +46 -0
- vismatch/third_party/DeDoDe/demo/demo_match_dedode_G.py +45 -0
- vismatch/third_party/DeDoDe/demo/demo_scoremap.py +23 -0
- vismatch/third_party/DeDoDe/experiments/dedode_descriptor-B.py +135 -0
- vismatch/third_party/DeDoDe/experiments/dedode_descriptor-G.py +145 -0
- vismatch/third_party/DeDoDe/experiments/dedode_detector.py +126 -0
- vismatch/third_party/DeDoDe/experiments/eval/eval_dedode_descriptor-B.py +38 -0
- vismatch/third_party/DeDoDe/experiments/eval/eval_dedode_descriptor-G.py +38 -0
- vismatch/third_party/DeDoDe/setup.py +11 -0
- vismatch/third_party/EDM/configs/data/__init__.py +0 -0
- vismatch/third_party/EDM/configs/data/base.py +37 -0
- vismatch/third_party/EDM/configs/data/megadepth_test_1500.py +23 -0
- vismatch/third_party/EDM/configs/data/megadepth_trainval_832.py +32 -0
- vismatch/third_party/EDM/configs/data/scannet_test_1500.py +24 -0
- vismatch/third_party/EDM/configs/data/scannet_trainval.py +31 -0
- vismatch/third_party/EDM/configs/edm/indoor/edm_base.py +15 -0
- vismatch/third_party/EDM/configs/edm/outdoor/edm_base.py +17 -0
- vismatch/third_party/EDM/deploy/export_onnx.py +69 -0
- vismatch/third_party/EDM/deploy/run_onnx.py +138 -0
- vismatch/third_party/EDM/runtime_single_pair.py +73 -0
- vismatch/third_party/EDM/src/__init__.py +0 -0
- vismatch/third_party/EDM/src/config/default.py +184 -0
- vismatch/third_party/EDM/src/datasets/megadepth.py +164 -0
- vismatch/third_party/EDM/src/datasets/sampler.py +95 -0
- vismatch/third_party/EDM/src/datasets/scannet.py +147 -0
- vismatch/third_party/EDM/src/edm/__init__.py +2 -0
- vismatch/third_party/EDM/src/edm/backbone/resnet.py +116 -0
- vismatch/third_party/EDM/src/edm/edm.py +204 -0
- vismatch/third_party/EDM/src/edm/head/coarse_matching.py +158 -0
- vismatch/third_party/EDM/src/edm/head/fine_matching.py +383 -0
- vismatch/third_party/EDM/src/edm/neck/__init__.py +1 -0
- vismatch/third_party/EDM/src/edm/neck/loftr_module/__init__.py +1 -0
- vismatch/third_party/EDM/src/edm/neck/loftr_module/transformer.py +418 -0
- vismatch/third_party/EDM/src/edm/neck/neck.py +156 -0
- vismatch/third_party/EDM/src/edm/utils/geometry.py +58 -0
- vismatch/third_party/EDM/src/edm/utils/supervision.py +255 -0
- vismatch/third_party/EDM/src/lightning/data.py +450 -0
- vismatch/third_party/EDM/src/lightning/lightning_edm.py +379 -0
- vismatch/third_party/EDM/src/losses/edm_loss.py +206 -0
- vismatch/third_party/EDM/src/optimizers/__init__.py +57 -0
- vismatch/third_party/EDM/src/utils/augment.py +65 -0
- vismatch/third_party/EDM/src/utils/comm.py +271 -0
- vismatch/third_party/EDM/src/utils/dataloader.py +24 -0
- vismatch/third_party/EDM/src/utils/dataset.py +192 -0
- vismatch/third_party/EDM/src/utils/metrics.py +299 -0
- vismatch/third_party/EDM/src/utils/misc.py +113 -0
- vismatch/third_party/EDM/src/utils/plotting.py +186 -0
- vismatch/third_party/EDM/src/utils/profiler.py +40 -0
- vismatch/third_party/EDM/src/utils/warppers.py +428 -0
- vismatch/third_party/EDM/src/utils/warppers_utils.py +172 -0
- vismatch/third_party/EDM/test.py +132 -0
- vismatch/third_party/EDM/train.py +156 -0
- vismatch/third_party/EfficientLoFTR/configs/data/__init__.py +0 -0
- vismatch/third_party/EfficientLoFTR/configs/data/base.py +35 -0
- vismatch/third_party/EfficientLoFTR/configs/data/megadepth_test_1500.py +13 -0
- vismatch/third_party/EfficientLoFTR/configs/data/megadepth_trainval_832.py +24 -0
- vismatch/third_party/EfficientLoFTR/configs/data/scannet_test_1500.py +16 -0
- vismatch/third_party/EfficientLoFTR/configs/loftr/eloftr_full.py +36 -0
- vismatch/third_party/EfficientLoFTR/configs/loftr/eloftr_optimized.py +37 -0
- vismatch/third_party/EfficientLoFTR/src/__init__.py +0 -0
- vismatch/third_party/EfficientLoFTR/src/config/default.py +182 -0
- vismatch/third_party/EfficientLoFTR/src/datasets/megadepth.py +133 -0
- vismatch/third_party/EfficientLoFTR/src/datasets/sampler.py +77 -0
- vismatch/third_party/EfficientLoFTR/src/datasets/scannet.py +129 -0
- vismatch/third_party/EfficientLoFTR/src/lightning/data.py +357 -0
- vismatch/third_party/EfficientLoFTR/src/lightning/lightning_loftr.py +272 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/__init__.py +4 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/backbone/__init__.py +11 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/backbone/backbone.py +37 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/backbone/repvgg.py +224 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/loftr.py +124 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/loftr_module/__init__.py +2 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/loftr_module/fine_preprocess.py +112 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/loftr_module/linear_attention.py +103 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/loftr_module/transformer.py +164 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/coarse_matching.py +241 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/fine_matching.py +156 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/full_config.py +50 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/geometry.py +54 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/opt_config.py +50 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/position_encoding.py +50 -0
- vismatch/third_party/EfficientLoFTR/src/loftr/utils/supervision.py +275 -0
- vismatch/third_party/EfficientLoFTR/src/losses/loftr_loss.py +229 -0
- vismatch/third_party/EfficientLoFTR/src/optimizers/__init__.py +42 -0
- vismatch/third_party/EfficientLoFTR/src/utils/augment.py +55 -0
- vismatch/third_party/EfficientLoFTR/src/utils/comm.py +265 -0
- vismatch/third_party/EfficientLoFTR/src/utils/dataloader.py +23 -0
- vismatch/third_party/EfficientLoFTR/src/utils/dataset.py +186 -0
- vismatch/third_party/EfficientLoFTR/src/utils/metrics.py +264 -0
- vismatch/third_party/EfficientLoFTR/src/utils/misc.py +106 -0
- vismatch/third_party/EfficientLoFTR/src/utils/plotting.py +154 -0
- vismatch/third_party/EfficientLoFTR/src/utils/profiler.py +39 -0
- vismatch/third_party/EfficientLoFTR/src/utils/warppers.py +426 -0
- vismatch/third_party/EfficientLoFTR/src/utils/warppers_utils.py +171 -0
- vismatch/third_party/EfficientLoFTR/test.py +143 -0
- vismatch/third_party/EfficientLoFTR/train.py +154 -0
- vismatch/third_party/LISRD/lisrd/__init__.py +0 -0
- vismatch/third_party/LISRD/lisrd/datasets/__init__.py +7 -0
- vismatch/third_party/LISRD/lisrd/datasets/base_dataset.py +38 -0
- vismatch/third_party/LISRD/lisrd/datasets/coco.py +148 -0
- vismatch/third_party/LISRD/lisrd/datasets/flashes.py +170 -0
- vismatch/third_party/LISRD/lisrd/datasets/hpatches.py +135 -0
- vismatch/third_party/LISRD/lisrd/datasets/mixed_dataset.py +53 -0
- vismatch/third_party/LISRD/lisrd/datasets/rdnim.py +117 -0
- vismatch/third_party/LISRD/lisrd/datasets/utils/data_augmentation.py +168 -0
- vismatch/third_party/LISRD/lisrd/datasets/utils/data_reader.py +48 -0
- vismatch/third_party/LISRD/lisrd/datasets/utils/homographies.py +215 -0
- vismatch/third_party/LISRD/lisrd/datasets/vidit.py +152 -0
- vismatch/third_party/LISRD/lisrd/evaluation/__init__.py +0 -0
- vismatch/third_party/LISRD/lisrd/evaluation/descriptor_evaluation.py +142 -0
- vismatch/third_party/LISRD/lisrd/experiment.py +129 -0
- vismatch/third_party/LISRD/lisrd/export_features.py +148 -0
- vismatch/third_party/LISRD/lisrd/models/__init__.py +7 -0
- vismatch/third_party/LISRD/lisrd/models/backbones/__init__.py +0 -0
- vismatch/third_party/LISRD/lisrd/models/backbones/net_vlad.py +62 -0
- vismatch/third_party/LISRD/lisrd/models/backbones/vgg.py +46 -0
- vismatch/third_party/LISRD/lisrd/models/base_model.py +336 -0
- vismatch/third_party/LISRD/lisrd/models/keypoint_detectors.py +34 -0
- vismatch/third_party/LISRD/lisrd/models/lisrd.py +328 -0
- vismatch/third_party/LISRD/lisrd/models/lisrd_sift.py +289 -0
- vismatch/third_party/LISRD/lisrd/third_party/super_point_magic_leap/demo_superpoint.py +734 -0
- vismatch/third_party/LISRD/lisrd/utils/geometry_utils.py +123 -0
- vismatch/third_party/LISRD/lisrd/utils/losses.py +191 -0
- vismatch/third_party/LISRD/lisrd/utils/metrics.py +66 -0
- vismatch/third_party/LISRD/lisrd/utils/pytorch_utils.py +14 -0
- vismatch/third_party/LISRD/lisrd/utils/stdout_capturing.py +81 -0
- vismatch/third_party/LISRD/notebooks/utils.py +103 -0
- vismatch/third_party/LISRD/setup.py +4 -0
- vismatch/third_party/LiftFeat/dataset/__init__.py +0 -0
- vismatch/third_party/LiftFeat/dataset/coco_augmentor.py +298 -0
- vismatch/third_party/LiftFeat/dataset/coco_wrapper.py +175 -0
- vismatch/third_party/LiftFeat/dataset/dataset_utils.py +183 -0
- vismatch/third_party/LiftFeat/dataset/megadepth.py +177 -0
- vismatch/third_party/LiftFeat/dataset/megadepth_wrapper.py +167 -0
- vismatch/third_party/LiftFeat/demo.py +116 -0
- vismatch/third_party/LiftFeat/evaluation/HPatch_evaluation.py +182 -0
- vismatch/third_party/LiftFeat/evaluation/MegaDepth1500_evaluation.py +105 -0
- vismatch/third_party/LiftFeat/evaluation/eval_utils.py +127 -0
- vismatch/third_party/LiftFeat/loss/loss.py +291 -0
- vismatch/third_party/LiftFeat/models/interpolator.py +34 -0
- vismatch/third_party/LiftFeat/models/liftfeat_wrapper.py +172 -0
- vismatch/third_party/LiftFeat/models/model.py +419 -0
- vismatch/third_party/LiftFeat/tools/demo_match_video.py +145 -0
- vismatch/third_party/LiftFeat/tools/demo_vo.py +163 -0
- vismatch/third_party/LiftFeat/train.py +369 -0
- vismatch/third_party/LiftFeat/utils/VisualOdometry.py +339 -0
- vismatch/third_party/LiftFeat/utils/__init__.py +0 -0
- vismatch/third_party/LiftFeat/utils/alike_wrapper.py +45 -0
- vismatch/third_party/LiftFeat/utils/config.py +16 -0
- vismatch/third_party/LiftFeat/utils/depth_anything_wrapper.py +150 -0
- vismatch/third_party/LiftFeat/utils/featurebooster.py +247 -0
- vismatch/third_party/LiftFeat/utils/post_process.py +21 -0
- vismatch/third_party/LightGlue/benchmark.py +255 -0
- vismatch/third_party/LightGlue/lightglue/__init__.py +7 -0
- vismatch/third_party/LightGlue/lightglue/aliked.py +760 -0
- vismatch/third_party/LightGlue/lightglue/disk.py +55 -0
- vismatch/third_party/LightGlue/lightglue/dog_hardnet.py +41 -0
- vismatch/third_party/LightGlue/lightglue/lightglue.py +662 -0
- vismatch/third_party/LightGlue/lightglue/sift.py +216 -0
- vismatch/third_party/LightGlue/lightglue/superpoint.py +227 -0
- vismatch/third_party/LightGlue/lightglue/utils.py +165 -0
- vismatch/third_party/LightGlue/lightglue/viz2d.py +203 -0
- vismatch/third_party/MINIMA/demo.py +201 -0
- vismatch/third_party/MINIMA/src/__init__.py +0 -0
- vismatch/third_party/MINIMA/src/config/default.py +203 -0
- vismatch/third_party/MINIMA/src/config/default_for_megadepth_dense.py +203 -0
- vismatch/third_party/MINIMA/src/config/default_for_megadepth_sparse.py +203 -0
- vismatch/third_party/MINIMA/src/utils/__init__.py +0 -0
- vismatch/third_party/MINIMA/src/utils/culculate_auc.py +28 -0
- vismatch/third_party/MINIMA/src/utils/data_io.py +156 -0
- vismatch/third_party/MINIMA/src/utils/data_io_loftr.py +152 -0
- vismatch/third_party/MINIMA/src/utils/data_io_roma.py +186 -0
- vismatch/third_party/MINIMA/src/utils/data_io_sp_lg.py +158 -0
- vismatch/third_party/MINIMA/src/utils/load_model.py +164 -0
- vismatch/third_party/MINIMA/src/utils/metrics.py +214 -0
- vismatch/third_party/MINIMA/src/utils/misc.py +101 -0
- vismatch/third_party/MINIMA/src/utils/plotting.py +291 -0
- vismatch/third_party/MINIMA/src/utils/sample_h.py +142 -0
- vismatch/third_party/MINIMA/test_relative_homo_depth.py +683 -0
- vismatch/third_party/MINIMA/test_relative_homo_event.py +722 -0
- vismatch/third_party/MINIMA/test_relative_homo_mmim.py +669 -0
- vismatch/third_party/MINIMA/test_relative_pose_infrared.py +500 -0
- vismatch/third_party/MINIMA/test_relative_pose_mega_1500.py +487 -0
- vismatch/third_party/MINIMA/test_relative_pose_mega_1500_syn.py +516 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/benchmark.py +255 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/__init__.py +7 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/aliked.py +758 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/disk.py +55 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/dog_hardnet.py +41 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/lightglue.py +655 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/sift.py +216 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/superpoint.py +227 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/utils.py +165 -0
- vismatch/third_party/MINIMA/third_party/LightGlue/lightglue/viz2d.py +184 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/__init__.py +0 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/base.py +35 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/megadepth_test_1500.py +11 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/megadepth_trainval_640.py +22 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/megadepth_trainval_840.py +22 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/scannet_test_1500.py +11 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/data/scannet_trainval.py +17 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ds.py +6 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ds_dense.py +8 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ot.py +6 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ot_dense.py +8 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/loftr_ds.py +5 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/loftr_ds_dense.py +7 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/loftr_ot.py +5 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/loftr_ot_dense.py +7 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/scannet/loftr_ds_eval.py +16 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/indoor/scannet/loftr_ds_eval_new.py +18 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ds.py +16 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ds_dense.py +17 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ot.py +16 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ot_dense.py +17 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/loftr_ds.py +15 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/loftr_ds_dense.py +16 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/loftr_ot.py +15 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/configs/loftr/outdoor/loftr_ot_dense.py +16 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/demo/demo_loftr.py +240 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/__init__.py +0 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/config/default.py +171 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/datasets/megadepth.py +127 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/datasets/sampler.py +77 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/datasets/scannet.py +114 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/lightning/data.py +320 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/lightning/lightning_loftr.py +249 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/__init__.py +2 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/backbone/__init__.py +11 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/backbone/resnet_fpn.py +199 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/loftr.py +81 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/loftr_module/__init__.py +2 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/loftr_module/fine_preprocess.py +59 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/loftr_module/linear_attention.py +81 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/loftr_module/transformer.py +101 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/coarse_matching.py +261 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/cvpr_ds_config.py +50 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/fine_matching.py +74 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/geometry.py +54 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/position_encoding.py +42 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/loftr/utils/supervision.py +151 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/losses/loftr_loss.py +192 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/optimizers/__init__.py +42 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/augment.py +55 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/comm.py +265 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/dataloader.py +23 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/dataset.py +185 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/metrics.py +193 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/misc.py +101 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/plotting.py +154 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/src/utils/profiler.py +39 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/test.py +68 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/demo_superglue.py +259 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/match_pairs.py +425 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/models/__init__.py +0 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/models/matching.py +84 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/models/superglue.py +283 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/models/superpoint.py +202 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/third_party/SuperGluePretrainedNetwork/models/utils.py +555 -0
- vismatch/third_party/MINIMA/third_party/LoFTR/train.py +123 -0
- vismatch/third_party/MINIMA/third_party/RoMa/demo/demo_3D_effect.py +47 -0
- vismatch/third_party/MINIMA/third_party/RoMa/demo/demo_fundamental.py +34 -0
- vismatch/third_party/MINIMA/third_party/RoMa/demo/demo_match.py +50 -0
- vismatch/third_party/MINIMA/third_party/RoMa/demo/demo_match_opencv_sift.py +43 -0
- vismatch/third_party/MINIMA/third_party/RoMa/demo/demo_match_tiny.py +77 -0
- vismatch/third_party/MINIMA/third_party/RoMa/experiments/eval_roma_outdoor.py +57 -0
- vismatch/third_party/MINIMA/third_party/RoMa/experiments/eval_tiny_roma_v1_outdoor.py +84 -0
- vismatch/third_party/MINIMA/third_party/RoMa/experiments/roma_indoor.py +320 -0
- vismatch/third_party/MINIMA/third_party/RoMa/experiments/train_roma_outdoor.py +307 -0
- vismatch/third_party/MINIMA/third_party/RoMa/experiments/train_tiny_roma_v1_outdoor.py +498 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/__init__.py +8 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/__init__.py +6 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/hpatches_sequences_homog_benchmark.py +113 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/megadepth_dense_benchmark.py +106 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/megadepth_pose_estimation_benchmark.py +118 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/megadepth_pose_estimation_benchmark_poselib.py +119 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/benchmarks/scannet_benchmark.py +143 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/checkpointing/__init__.py +1 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/checkpointing/checkpoint.py +60 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/datasets/__init__.py +2 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/datasets/megadepth.py +232 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/datasets/scannet.py +160 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/losses/__init__.py +1 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/losses/robust_loss.py +161 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/losses/robust_loss_tiny_roma.py +160 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/__init__.py +1 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/encoders.py +122 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/matcher.py +766 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/model_zoo/__init__.py +73 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/model_zoo/roma_models.py +170 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/tiny.py +304 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/__init__.py +48 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/dinov2.py +359 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/__init__.py +12 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/attention.py +81 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/block.py +252 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/dino_head.py +59 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/drop_path.py +35 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/layer_scale.py +28 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/mlp.py +41 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/patch_embed.py +89 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/models/transformer/layers/swiglu_ffn.py +63 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/train/__init__.py +1 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/train/train.py +102 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/utils/__init__.py +16 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/utils/kde.py +13 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/utils/local_correlation.py +48 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/utils/transforms.py +118 -0
- vismatch/third_party/MINIMA/third_party/RoMa/romatch/utils/utils.py +662 -0
- vismatch/third_party/MINIMA/third_party/RoMa/setup.py +9 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/data/__init__.py +0 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/data/base.py +35 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/data/megadepth_trainval_840.py +22 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/data/megadepth_vistir_trainval_640.py +23 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/data/pretrain.py +8 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/xoftr/outdoor/visible_thermal.py +17 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/configs/xoftr/pretrain/pretrain.py +12 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/pretrain.py +125 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/__init__.py +0 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/config/default.py +203 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/datasets/megadepth.py +143 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/datasets/pretrain_dataset.py +156 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/datasets/sampler.py +77 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/datasets/scannet.py +114 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/datasets/vistir.py +109 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/lightning/data.py +346 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/lightning/data_pretrain.py +125 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/lightning/lightning_xoftr.py +334 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/lightning/lightning_xoftr_pretrain.py +171 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/losses/xoftr_loss.py +170 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/losses/xoftr_loss_pretrain.py +37 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/optimizers/__init__.py +42 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/augment.py +113 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/comm.py +265 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/data_io.py +144 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/dataloader.py +23 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/dataset.py +279 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/metrics.py +211 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/misc.py +101 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/plotting.py +227 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/pretrain_utils.py +83 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/utils/profiler.py +39 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/__init__.py +2 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/backbone/__init__.py +1 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/backbone/resnet.py +95 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/utils/geometry.py +107 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/utils/position_encoding.py +36 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/utils/supervision.py +290 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr.py +94 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/__init__.py +4 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/coarse_matching.py +305 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/fine_matching.py +170 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/fine_process.py +321 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/linear_attention.py +81 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_module/transformer.py +101 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/src/xoftr/xoftr_pretrain.py +209 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/test.py +68 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/test_relative_pose.py +330 -0
- vismatch/third_party/MINIMA/third_party/XoFTR/train.py +126 -0
- vismatch/third_party/MatchAnything/app.py +27 -0
- vismatch/third_party/MatchAnything/imcui/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/api/__init__.py +47 -0
- vismatch/third_party/MatchAnything/imcui/api/client.py +232 -0
- vismatch/third_party/MatchAnything/imcui/api/core.py +308 -0
- vismatch/third_party/MatchAnything/imcui/api/server.py +170 -0
- vismatch/third_party/MatchAnything/imcui/hloc/__init__.py +65 -0
- vismatch/third_party/MatchAnything/imcui/hloc/colmap_from_nvm.py +216 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extract_features.py +607 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/alike.py +61 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/aliked.py +32 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/cosplace.py +44 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/d2net.py +60 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/darkfeat.py +44 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/dedode.py +86 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/dir.py +78 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/disk.py +35 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/dog.py +135 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/eigenplaces.py +57 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/example.py +56 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/fire.py +72 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/fire_local.py +84 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/lanet.py +63 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/netvlad.py +146 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/openibl.py +26 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/r2d2.py +73 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/rekd.py +60 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/rord.py +59 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/sfd2.py +44 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/sift.py +216 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/superpoint.py +51 -0
- vismatch/third_party/MatchAnything/imcui/hloc/extractors/xfeat.py +33 -0
- vismatch/third_party/MatchAnything/imcui/hloc/localize_inloc.py +179 -0
- vismatch/third_party/MatchAnything/imcui/hloc/localize_sfm.py +243 -0
- vismatch/third_party/MatchAnything/imcui/hloc/match_dense.py +1158 -0
- vismatch/third_party/MatchAnything/imcui/hloc/match_features.py +459 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/__init__.py +3 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/adalam.py +68 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/aspanformer.py +66 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/cotr.py +77 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/dkm.py +53 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/dual_softmax.py +71 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/duster.py +109 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/eloftr.py +97 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/gim.py +200 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/gluestick.py +99 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/imp.py +50 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/lightglue.py +67 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/loftr.py +58 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/mast3r.py +96 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/matchanything.py +191 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/mickey.py +50 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/nearest_neighbor.py +66 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/omniglue.py +80 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/roma.py +80 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/sgmnet.py +106 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/sold2.py +144 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/superglue.py +33 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/topicfm.py +60 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/xfeat_dense.py +54 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/xfeat_lightglue.py +48 -0
- vismatch/third_party/MatchAnything/imcui/hloc/matchers/xoftr.py +90 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pairs_from_covisibility.py +60 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pairs_from_exhaustive.py +64 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pairs_from_poses.py +68 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pairs_from_retrieval.py +133 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/4Seasons/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/4Seasons/localize.py +89 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/4Seasons/prepare_reference.py +51 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/4Seasons/utils.py +231 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/7Scenes/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/7Scenes/create_gt_sfm.py +134 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/7Scenes/pipeline.py +139 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/7Scenes/utils.py +34 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Aachen/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Aachen/pipeline.py +109 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Aachen_v1_1/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Aachen_v1_1/pipeline.py +104 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Aachen_v1_1/pipeline_loftr.py +104 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/CMU/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/CMU/pipeline.py +133 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Cambridge/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Cambridge/pipeline.py +140 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/Cambridge/utils.py +145 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/RobotCar/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/RobotCar/colmap_from_nvm.py +176 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/RobotCar/pipeline.py +143 -0
- vismatch/third_party/MatchAnything/imcui/hloc/pipelines/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/hloc/reconstruction.py +194 -0
- vismatch/third_party/MatchAnything/imcui/hloc/triangulation.py +311 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/__init__.py +12 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/base_model.py +56 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/database.py +412 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/geometry.py +16 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/io.py +77 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/parsers.py +59 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/read_write_model.py +588 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/viz.py +146 -0
- vismatch/third_party/MatchAnything/imcui/hloc/utils/viz_3d.py +203 -0
- vismatch/third_party/MatchAnything/imcui/hloc/visualization.py +178 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/configs/models/eloftr_model.py +128 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/configs/models/roma_model.py +27 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/notebooks/notebooks_utils/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/notebooks/notebooks_utils/plotting.py +344 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/config/default.py +344 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/datasets/common_data_pair.py +214 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/lightning/lightning_loftr.py +343 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/backbone/__init__.py +61 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/backbone/repvgg.py +319 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/backbone/resnet_fpn.py +1094 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/backbone/s2dnet.py +131 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr.py +273 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr_module/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr_module/fine_preprocess.py +350 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr_module/linear_attention.py +217 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr_module/transformer.py +1768 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/loftr_module/transformer_utils.py +76 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/utils/coarse_matching.py +266 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/utils/fine_matching.py +493 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/utils/geometry.py +298 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/utils/position_encoding.py +131 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/loftr/utils/supervision.py +475 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/optimizers/__init__.py +50 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/augment.py +55 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/colmap/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/colmap/database.py +417 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/colmap/eval_helper.py +232 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/colmap/read_write_model.py +509 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/colmap.py +530 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/comm.py +265 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/dataloader.py +23 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/dataset.py +518 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/easydict.py +148 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/geometry.py +366 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/homography_utils.py +366 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/metrics.py +445 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/misc.py +101 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/plotting.py +248 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/profiler.py +39 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/ray_utils.py +134 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/sample_homo.py +58 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/src/utils/utils.py +600 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo/demo_3D_effect.py +46 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo/demo_fundamental.py +32 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo/demo_fundamental_model_warpper.py +34 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo/demo_match.py +50 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo/demo_match_opencv_sift.py +43 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/demo_single_pair.py +329 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/experiments/roma_indoor.py +320 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/experiments/roma_outdoor.py +327 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/notebooks/notebooks_utils/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/notebooks/notebooks_utils/plotting.py +331 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/__init__.py +8 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/benchmarks/__init__.py +4 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/benchmarks/hpatches_sequences_homog_benchmark.py +113 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/benchmarks/megadepth_dense_benchmark.py +106 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/benchmarks/megadepth_pose_estimation_benchmark.py +140 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/benchmarks/scannet_benchmark.py +143 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/checkpointing/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/checkpointing/checkpoint.py +60 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/datasets/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/datasets/megadepth.py +230 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/datasets/scannet.py +160 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/losses/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/losses/robust_loss.py +157 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/matchanything_roma_model.py +104 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/blocks.py +241 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/criterion.py +37 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/croco.py +253 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/croco_downstream.py +122 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/curope/__init__.py +4 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/curope/curope2d.py +40 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/curope/setup.py +34 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/dpt_block.py +450 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/head_downstream.py +58 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/masking.py +25 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/croco/pos_embed.py +159 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/__init__.py +29 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/base_opt.py +375 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/commons.py +90 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/init_im_poses.py +312 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/optimizer.py +230 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/cloud_opt/pair_viewer.py +125 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/__init__.py +42 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/base/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/base/base_stereo_view_dataset.py +220 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/base/batched_sampler.py +74 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/base/easy_dataset.py +157 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/co3d.py +146 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/utils/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/utils/cropping.py +119 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/datasets/utils/transforms.py +11 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/heads/__init__.py +19 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/heads/dpt_head.py +114 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/heads/linear_head.py +41 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/heads/postprocess.py +58 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/image_pairs.py +83 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/inference.py +165 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/losses.py +297 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/model.py +167 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/optim_factory.py +14 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/patch_embed.py +70 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/post_process.py +60 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/__init__.py +2 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/device.py +76 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/geometry.py +361 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/image.py +104 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/misc.py +121 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/utils/path_to_croco.py +19 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/dust3r/viz.py +320 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/encoders.py +137 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/matcher.py +937 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/model_zoo/__init__.py +53 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/model_zoo/roma_models.py +162 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/__init__.py +47 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/dinov2.py +359 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/__init__.py +12 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/attention.py +81 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/block.py +252 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/dino_head.py +59 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/drop_path.py +35 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/layer_scale.py +28 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/mlp.py +41 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/patch_embed.py +89 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/models/transformer/layers/swiglu_ffn.py +63 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/roma_adpat_model.py +32 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/train/__init__.py +1 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/train/train.py +102 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/utils/__init__.py +18 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/utils/kde.py +8 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/utils/local_correlation.py +44 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/utils/transforms.py +118 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/roma/utils/utils.py +661 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/third_party/ROMA/setup.py +9 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/tools/__init__.py +0 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/tools/evaluate_datasets.py +239 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/tools/tools_utils/data_io.py +94 -0
- vismatch/third_party/MatchAnything/imcui/third_party/MatchAnything/tools/tools_utils/plot.py +77 -0
- vismatch/third_party/MatchAnything/imcui/ui/__init__.py +5 -0
- vismatch/third_party/MatchAnything/imcui/ui/app_class.py +824 -0
- vismatch/third_party/MatchAnything/imcui/ui/sfm.py +164 -0
- vismatch/third_party/MatchAnything/imcui/ui/utils.py +1085 -0
- vismatch/third_party/MatchAnything/imcui/ui/viz.py +511 -0
- vismatch/third_party/MatchAnything/tests/test_basic.py +111 -0
- vismatch/third_party/MatchFormer/config/data/__init__.py +0 -0
- vismatch/third_party/MatchFormer/config/data/base.py +35 -0
- vismatch/third_party/MatchFormer/config/data/megadepth_test_1500.py +11 -0
- vismatch/third_party/MatchFormer/config/data/scannet_test_1500.py +11 -0
- vismatch/third_party/MatchFormer/config/defaultmf.py +88 -0
- vismatch/third_party/MatchFormer/model/backbone/__init__.py +17 -0
- vismatch/third_party/MatchFormer/model/backbone/coarse_matching.py +228 -0
- vismatch/third_party/MatchFormer/model/backbone/fine_matching.py +74 -0
- vismatch/third_party/MatchFormer/model/backbone/fine_preprocess.py +59 -0
- vismatch/third_party/MatchFormer/model/backbone/match_LA_large.py +254 -0
- vismatch/third_party/MatchFormer/model/backbone/match_LA_lite.py +254 -0
- vismatch/third_party/MatchFormer/model/backbone/match_SEA_large.py +291 -0
- vismatch/third_party/MatchFormer/model/backbone/match_SEA_lite.py +291 -0
- vismatch/third_party/MatchFormer/model/data.py +320 -0
- vismatch/third_party/MatchFormer/model/datasets/dataset.py +231 -0
- vismatch/third_party/MatchFormer/model/datasets/megadepth.py +126 -0
- vismatch/third_party/MatchFormer/model/datasets/sampler.py +77 -0
- vismatch/third_party/MatchFormer/model/datasets/scannet.py +113 -0
- vismatch/third_party/MatchFormer/model/lightning_loftr.py +102 -0
- vismatch/third_party/MatchFormer/model/matchformer.py +54 -0
- vismatch/third_party/MatchFormer/model/utils/augment.py +55 -0
- vismatch/third_party/MatchFormer/model/utils/comm.py +265 -0
- vismatch/third_party/MatchFormer/model/utils/dataloader.py +23 -0
- vismatch/third_party/MatchFormer/model/utils/metrics.py +193 -0
- vismatch/third_party/MatchFormer/model/utils/misc.py +101 -0
- vismatch/third_party/MatchFormer/model/utils/profiler.py +39 -0
- vismatch/third_party/MatchFormer/test.py +55 -0
- vismatch/third_party/RIPE/app.py +272 -0
- vismatch/third_party/RIPE/demo.py +51 -0
- vismatch/third_party/RIPE/ripe/__init__.py +1 -0
- vismatch/third_party/RIPE/ripe/benchmarks/imw_2020.py +320 -0
- vismatch/third_party/RIPE/ripe/data/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/data/data_transforms.py +204 -0
- vismatch/third_party/RIPE/ripe/data/datasets/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/data/datasets/acdc.py +154 -0
- vismatch/third_party/RIPE/ripe/data/datasets/dataset_combinator.py +88 -0
- vismatch/third_party/RIPE/ripe/data/datasets/disk_imw.py +160 -0
- vismatch/third_party/RIPE/ripe/data/datasets/disk_megadepth.py +157 -0
- vismatch/third_party/RIPE/ripe/data/datasets/tokyo247.py +134 -0
- vismatch/third_party/RIPE/ripe/data/datasets/tokyo_query_v3.py +78 -0
- vismatch/third_party/RIPE/ripe/losses/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/losses/contrastive_loss.py +88 -0
- vismatch/third_party/RIPE/ripe/matcher/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/matcher/concurrent_matcher.py +97 -0
- vismatch/third_party/RIPE/ripe/matcher/pose_estimator_poselib.py +31 -0
- vismatch/third_party/RIPE/ripe/model_zoo/__init__.py +1 -0
- vismatch/third_party/RIPE/ripe/model_zoo/vgg_hyper.py +39 -0
- vismatch/third_party/RIPE/ripe/models/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/models/backbones/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/models/backbones/backbone_base.py +61 -0
- vismatch/third_party/RIPE/ripe/models/backbones/vgg.py +99 -0
- vismatch/third_party/RIPE/ripe/models/backbones/vgg_utils.py +143 -0
- vismatch/third_party/RIPE/ripe/models/ripe.py +303 -0
- vismatch/third_party/RIPE/ripe/models/upsampler/hypercolumn_features.py +54 -0
- vismatch/third_party/RIPE/ripe/models/upsampler/interpolate_sparse2d.py +37 -0
- vismatch/third_party/RIPE/ripe/scheduler/__init__.py +0 -0
- vismatch/third_party/RIPE/ripe/scheduler/constant.py +6 -0
- vismatch/third_party/RIPE/ripe/scheduler/expDecay.py +26 -0
- vismatch/third_party/RIPE/ripe/scheduler/linearLR.py +37 -0
- vismatch/third_party/RIPE/ripe/scheduler/linear_with_plateaus.py +44 -0
- vismatch/third_party/RIPE/ripe/train.py +410 -0
- vismatch/third_party/RIPE/ripe/utils/__init__.py +2 -0
- vismatch/third_party/RIPE/ripe/utils/image_utils.py +62 -0
- vismatch/third_party/RIPE/ripe/utils/pose_error.py +62 -0
- vismatch/third_party/RIPE/ripe/utils/pylogger.py +32 -0
- vismatch/third_party/RIPE/ripe/utils/utils.py +192 -0
- vismatch/third_party/RIPE/ripe/utils/wandb_utils.py +16 -0
- vismatch/third_party/RoMa/demo/demo_3D_effect.py +47 -0
- vismatch/third_party/RoMa/demo/demo_fundamental.py +34 -0
- vismatch/third_party/RoMa/demo/demo_match.py +50 -0
- vismatch/third_party/RoMa/demo/demo_match_opencv_sift.py +43 -0
- vismatch/third_party/RoMa/demo/demo_match_tiny.py +77 -0
- vismatch/third_party/RoMa/experiments/eval_roma_outdoor.py +57 -0
- vismatch/third_party/RoMa/experiments/eval_tiny_roma_v1_outdoor.py +84 -0
- vismatch/third_party/RoMa/experiments/roma_indoor.py +320 -0
- vismatch/third_party/RoMa/experiments/train_roma_outdoor.py +307 -0
- vismatch/third_party/RoMa/experiments/train_tiny_roma_v1_outdoor.py +498 -0
- vismatch/third_party/RoMa/romatch/__init__.py +8 -0
- vismatch/third_party/RoMa/romatch/benchmarks/__init__.py +6 -0
- vismatch/third_party/RoMa/romatch/benchmarks/hpatches_sequences_homog_benchmark.py +113 -0
- vismatch/third_party/RoMa/romatch/benchmarks/megadepth_dense_benchmark.py +106 -0
- vismatch/third_party/RoMa/romatch/benchmarks/megadepth_pose_estimation_benchmark.py +118 -0
- vismatch/third_party/RoMa/romatch/benchmarks/megadepth_pose_estimation_benchmark_poselib.py +119 -0
- vismatch/third_party/RoMa/romatch/benchmarks/scannet_benchmark.py +143 -0
- vismatch/third_party/RoMa/romatch/checkpointing/__init__.py +1 -0
- vismatch/third_party/RoMa/romatch/checkpointing/checkpoint.py +60 -0
- vismatch/third_party/RoMa/romatch/datasets/__init__.py +2 -0
- vismatch/third_party/RoMa/romatch/datasets/megadepth.py +232 -0
- vismatch/third_party/RoMa/romatch/datasets/scannet.py +160 -0
- vismatch/third_party/RoMa/romatch/losses/__init__.py +1 -0
- vismatch/third_party/RoMa/romatch/losses/robust_loss.py +161 -0
- vismatch/third_party/RoMa/romatch/losses/robust_loss_tiny_roma.py +160 -0
- vismatch/third_party/RoMa/romatch/models/__init__.py +1 -0
- vismatch/third_party/RoMa/romatch/models/encoders.py +122 -0
- vismatch/third_party/RoMa/romatch/models/matcher.py +748 -0
- vismatch/third_party/RoMa/romatch/models/model_zoo/__init__.py +73 -0
- vismatch/third_party/RoMa/romatch/models/model_zoo/roma_models.py +170 -0
- vismatch/third_party/RoMa/romatch/models/tiny.py +304 -0
- vismatch/third_party/RoMa/romatch/models/transformer/__init__.py +48 -0
- vismatch/third_party/RoMa/romatch/models/transformer/dinov2.py +359 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/__init__.py +12 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/attention.py +81 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/block.py +252 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/dino_head.py +59 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/drop_path.py +35 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/layer_scale.py +28 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/mlp.py +41 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/patch_embed.py +89 -0
- vismatch/third_party/RoMa/romatch/models/transformer/layers/swiglu_ffn.py +63 -0
- vismatch/third_party/RoMa/romatch/train/__init__.py +1 -0
- vismatch/third_party/RoMa/romatch/train/train.py +102 -0
- vismatch/third_party/RoMa/romatch/utils/__init__.py +16 -0
- vismatch/third_party/RoMa/romatch/utils/kde.py +13 -0
- vismatch/third_party/RoMa/romatch/utils/local_correlation.py +48 -0
- vismatch/third_party/RoMa/romatch/utils/transforms.py +118 -0
- vismatch/third_party/RoMa/romatch/utils/utils.py +654 -0
- vismatch/third_party/RoMa/setup.py +9 -0
- vismatch/third_party/RoMaV2/demo/demo_covariance.py +52 -0
- vismatch/third_party/RoMaV2/demo/demo_match.py +55 -0
- vismatch/third_party/RoMaV2/src/romav2/__init__.py +8 -0
- vismatch/third_party/RoMaV2/src/romav2/benchmarks/__init__.py +4 -0
- vismatch/third_party/RoMaV2/src/romav2/benchmarks/mega1500.py +115 -0
- vismatch/third_party/RoMaV2/src/romav2/benchmarks/satast.py +463 -0
- vismatch/third_party/RoMaV2/src/romav2/benchmarks/scannet1500.py +125 -0
- vismatch/third_party/RoMaV2/src/romav2/benchmarks/wxbs.py +104 -0
- vismatch/third_party/RoMaV2/src/romav2/device.py +9 -0
- vismatch/third_party/RoMaV2/src/romav2/dpt.py +516 -0
- vismatch/third_party/RoMaV2/src/romav2/features.py +190 -0
- vismatch/third_party/RoMaV2/src/romav2/geometry.py +261 -0
- vismatch/third_party/RoMaV2/src/romav2/io.py +24 -0
- vismatch/third_party/RoMaV2/src/romav2/local_correlation.py +152 -0
- vismatch/third_party/RoMaV2/src/romav2/logging.py +97 -0
- vismatch/third_party/RoMaV2/src/romav2/matcher.py +207 -0
- vismatch/third_party/RoMaV2/src/romav2/normalizers.py +17 -0
- vismatch/third_party/RoMaV2/src/romav2/refiner.py +277 -0
- vismatch/third_party/RoMaV2/src/romav2/romav2.py +533 -0
- vismatch/third_party/RoMaV2/src/romav2/types.py +75 -0
- vismatch/third_party/RoMaV2/src/romav2/vis.py +36 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/__init__.py +304 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/attention.py +181 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/block.py +293 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/ffn_layers.py +83 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/layer_scale.py +29 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/patch_embed.py +94 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/rms_norm.py +24 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/rope.py +133 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/rope_mixed.py +111 -0
- vismatch/third_party/RoMaV2/src/romav2/vit/utils.py +48 -0
- vismatch/third_party/RoMaV2/tests/test_bidirectional.py +93 -0
- vismatch/third_party/RoMaV2/tests/test_fps.py +49 -0
- vismatch/third_party/RoMaV2/tests/test_mega1500.py +22 -0
- vismatch/third_party/RoMaV2/tests/test_scannet1500.py +21 -0
- vismatch/third_party/RoMaV2/tests/test_smoke.py +15 -0
- vismatch/third_party/Se2_LoFTR/configs/data/__init__.py +0 -0
- vismatch/third_party/Se2_LoFTR/configs/data/base.py +35 -0
- vismatch/third_party/Se2_LoFTR/configs/data/megadepth_test_1500.py +11 -0
- vismatch/third_party/Se2_LoFTR/configs/data/megadepth_trainval_640.py +22 -0
- vismatch/third_party/Se2_LoFTR/configs/data/megadepth_trainval_840.py +22 -0
- vismatch/third_party/Se2_LoFTR/configs/data/scannet_test_1500.py +11 -0
- vismatch/third_party/Se2_LoFTR/configs/data/scannet_trainval.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ds.py +6 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ds_dense.py +8 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ot.py +6 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/buggy_pos_enc/loftr_ot_dense.py +8 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/loftr_ds.py +5 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/loftr_ds_dense.py +7 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/loftr_ot.py +5 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/loftr_ot_dense.py +7 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/scannet/loftr_ds_eval.py +16 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/indoor/scannet/loftr_ds_eval_new.py +18 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ds.py +16 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ds_dense.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ot.py +16 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/buggy_pos_enc/loftr_ot_dense.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds_dense.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds_e2.py +20 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds_e2_dense.py +23 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds_e2_dense_8rot.py +23 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ds_e2_dense_big.py +22 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ot.py +17 -0
- vismatch/third_party/Se2_LoFTR/configs/loftr/outdoor/loftr_ot_dense.py +18 -0
- vismatch/third_party/Se2_LoFTR/demo/demo_loftr.py +240 -0
- vismatch/third_party/Se2_LoFTR/src/__init__.py +0 -0
- vismatch/third_party/Se2_LoFTR/src/config/default.py +173 -0
- vismatch/third_party/Se2_LoFTR/src/datasets/megadepth.py +127 -0
- vismatch/third_party/Se2_LoFTR/src/datasets/sampler.py +77 -0
- vismatch/third_party/Se2_LoFTR/src/datasets/scannet.py +114 -0
- vismatch/third_party/Se2_LoFTR/src/lightning/data.py +320 -0
- vismatch/third_party/Se2_LoFTR/src/lightning/lightning_loftr.py +249 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/__init__.py +2 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/backbone/__init__.py +17 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/backbone/resnet_e2.py +170 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/backbone/resnet_fpn.py +199 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/loftr.py +81 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/loftr_module/__init__.py +2 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/loftr_module/fine_preprocess.py +59 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/loftr_module/linear_attention.py +81 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/loftr_module/transformer.py +101 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/coarse_matching.py +261 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/cvpr_ds_config.py +50 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/fine_matching.py +74 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/geometry.py +54 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/position_encoding.py +42 -0
- vismatch/third_party/Se2_LoFTR/src/loftr/utils/supervision.py +151 -0
- vismatch/third_party/Se2_LoFTR/src/losses/loftr_loss.py +192 -0
- vismatch/third_party/Se2_LoFTR/src/optimizers/__init__.py +42 -0
- vismatch/third_party/Se2_LoFTR/src/utils/augment.py +55 -0
- vismatch/third_party/Se2_LoFTR/src/utils/comm.py +265 -0
- vismatch/third_party/Se2_LoFTR/src/utils/dataloader.py +23 -0
- vismatch/third_party/Se2_LoFTR/src/utils/dataset.py +185 -0
- vismatch/third_party/Se2_LoFTR/src/utils/metrics.py +193 -0
- vismatch/third_party/Se2_LoFTR/src/utils/misc.py +104 -0
- vismatch/third_party/Se2_LoFTR/src/utils/plotting.py +154 -0
- vismatch/third_party/Se2_LoFTR/src/utils/profiler.py +39 -0
- vismatch/third_party/Se2_LoFTR/test.py +68 -0
- vismatch/third_party/Se2_LoFTR/train.py +123 -0
- vismatch/third_party/SphereGlue/demo_SphereGlue.py +141 -0
- vismatch/third_party/SphereGlue/model/sphereglue.py +230 -0
- vismatch/third_party/SphereGlue/utils/Utils.py +191 -0
- vismatch/third_party/SphereGlue/utils/demo_mydataset.py +119 -0
- vismatch/third_party/Steerers/rotation_steerers/matchers/dual_softmax_matcher.py +44 -0
- vismatch/third_party/Steerers/rotation_steerers/matchers/max_matches.py +205 -0
- vismatch/third_party/Steerers/rotation_steerers/matchers/max_similarity.py +115 -0
- vismatch/third_party/Steerers/rotation_steerers/steerers.py +37 -0
- vismatch/third_party/Steerers/setup.py +14 -0
- vismatch/third_party/TopicFM/configs/megadepth_test.py +17 -0
- vismatch/third_party/TopicFM/configs/megadepth_test_topicfmfast.py +17 -0
- vismatch/third_party/TopicFM/configs/megadepth_test_topicfmplus.py +20 -0
- vismatch/third_party/TopicFM/configs/megadepth_train.py +36 -0
- vismatch/third_party/TopicFM/configs/megadepth_train_topicfmfast.py +34 -0
- vismatch/third_party/TopicFM/configs/megadepth_train_topicfmplus.py +37 -0
- vismatch/third_party/TopicFM/configs/scannet_test.py +15 -0
- vismatch/third_party/TopicFM/configs/scannet_test_topicfmfast.py +15 -0
- vismatch/third_party/TopicFM/configs/scannet_test_topicfmplus.py +19 -0
- vismatch/third_party/TopicFM/src/__init__.py +11 -0
- vismatch/third_party/TopicFM/src/config/default.py +174 -0
- vismatch/third_party/TopicFM/src/datasets/aachen.py +29 -0
- vismatch/third_party/TopicFM/src/datasets/custom_dataloader.py +126 -0
- vismatch/third_party/TopicFM/src/datasets/inloc.py +29 -0
- vismatch/third_party/TopicFM/src/datasets/megadepth.py +170 -0
- vismatch/third_party/TopicFM/src/datasets/sampler.py +77 -0
- vismatch/third_party/TopicFM/src/datasets/scannet.py +115 -0
- vismatch/third_party/TopicFM/src/lightning_trainer/data.py +292 -0
- vismatch/third_party/TopicFM/src/lightning_trainer/trainer.py +244 -0
- vismatch/third_party/TopicFM/src/losses/loss.py +228 -0
- vismatch/third_party/TopicFM/src/models/__init__.py +1 -0
- vismatch/third_party/TopicFM/src/models/backbone/__init__.py +12 -0
- vismatch/third_party/TopicFM/src/models/backbone/convnext.py +165 -0
- vismatch/third_party/TopicFM/src/models/backbone/fpn.py +114 -0
- vismatch/third_party/TopicFM/src/models/modules/__init__.py +2 -0
- vismatch/third_party/TopicFM/src/models/modules/encoder.py +266 -0
- vismatch/third_party/TopicFM/src/models/modules/fine_preprocess.py +59 -0
- vismatch/third_party/TopicFM/src/models/modules/linear_attention.py +84 -0
- vismatch/third_party/TopicFM/src/models/topic_fm.py +100 -0
- vismatch/third_party/TopicFM/src/models/utils/coarse_matching.py +213 -0
- vismatch/third_party/TopicFM/src/models/utils/fine_matching.py +172 -0
- vismatch/third_party/TopicFM/src/models/utils/geometry.py +54 -0
- vismatch/third_party/TopicFM/src/models/utils/supervision.py +167 -0
- vismatch/third_party/TopicFM/src/optimizers/__init__.py +42 -0
- vismatch/third_party/TopicFM/src/utils/augment.py +55 -0
- vismatch/third_party/TopicFM/src/utils/comm.py +265 -0
- vismatch/third_party/TopicFM/src/utils/dataloader.py +23 -0
- vismatch/third_party/TopicFM/src/utils/dataset.py +206 -0
- vismatch/third_party/TopicFM/src/utils/metrics.py +193 -0
- vismatch/third_party/TopicFM/src/utils/misc.py +101 -0
- vismatch/third_party/TopicFM/src/utils/plotting.py +313 -0
- vismatch/third_party/TopicFM/src/utils/profiler.py +39 -0
- vismatch/third_party/TopicFM/test.py +70 -0
- vismatch/third_party/TopicFM/third_party/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/aspan/indoor/aspan_test.py +7 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/aspan/indoor/aspan_train.py +8 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/aspan/outdoor/aspan_test.py +18 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/aspan/outdoor/aspan_train.py +17 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/base.py +35 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/megadepth_test_1500.py +13 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/megadepth_trainval_832.py +22 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/scannet_test_1500.py +11 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/configs/data/scannet_trainval.py +17 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/demo/demo.py +63 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/demo/demo_utils.py +44 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/__init__.py +2 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspan_module/__init__.py +3 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspan_module/attention.py +198 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspan_module/fine_preprocess.py +59 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspan_module/loftr.py +112 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspan_module/transformer.py +244 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/aspanformer.py +133 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/backbone/__init__.py +11 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/backbone/resnet_fpn.py +199 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/coarse_matching.py +331 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/cvpr_ds_config.py +50 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/fine_matching.py +74 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/geometry.py +54 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/position_encoding.py +61 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/ASpanFormer/utils/supervision.py +151 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/config/default.py +180 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/datasets/__init__.py +3 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/datasets/megadepth.py +127 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/datasets/sampler.py +77 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/datasets/scannet.py +113 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/lightning/data.py +326 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/lightning/lightning_aspanformer.py +276 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/losses/aspan_loss.py +231 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/optimizers/__init__.py +42 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/augment.py +55 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/comm.py +265 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/dataloader.py +23 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/dataset.py +222 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/metrics.py +260 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/misc.py +139 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/plotting.py +219 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/src/utils/profiler.py +39 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/test.py +69 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/tools/SensorData.py +125 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/tools/extract.py +47 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/tools/preprocess_scene.py +242 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/tools/reader.py +39 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/tools/undistort_mega.py +69 -0
- vismatch/third_party/TopicFM/third_party/aspanformer/train.py +134 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/base.py +35 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/megadepth_test_1500.py +11 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/megadepth_trainval_640.py +22 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/megadepth_trainval_840.py +22 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/scannet_test_1500.py +11 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/data/scannet_trainval.py +17 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/buggy_pos_enc/loftr_ds.py +6 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/buggy_pos_enc/loftr_ds_dense.py +8 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/buggy_pos_enc/loftr_ot.py +6 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/buggy_pos_enc/loftr_ot_dense.py +8 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/loftr_ds.py +5 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/loftr_ds_dense.py +7 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/loftr_ot.py +5 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/loftr_ot_dense.py +7 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/scannet/loftr_ds_eval.py +16 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/indoor/scannet/loftr_ds_eval_new.py +18 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/buggy_pos_enc/loftr_ds.py +16 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/buggy_pos_enc/loftr_ds_dense.py +17 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/buggy_pos_enc/loftr_ot.py +16 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/buggy_pos_enc/loftr_ot_dense.py +17 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/loftr_ds.py +15 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/loftr_ds_dense.py +16 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/loftr_ot.py +15 -0
- vismatch/third_party/TopicFM/third_party/loftr/configs/loftr/outdoor/loftr_ot_dense.py +16 -0
- vismatch/third_party/TopicFM/third_party/loftr/demo/demo_loftr.py +240 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/config/default.py +171 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/datasets/megadepth.py +127 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/datasets/sampler.py +77 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/datasets/scannet.py +114 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/lightning/data.py +320 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/lightning/lightning_loftr.py +249 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/__init__.py +2 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/backbone/__init__.py +11 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/backbone/resnet_fpn.py +199 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/loftr.py +81 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/loftr_module/__init__.py +2 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/loftr_module/fine_preprocess.py +59 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/loftr_module/linear_attention.py +81 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/loftr_module/transformer.py +101 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/coarse_matching.py +261 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/cvpr_ds_config.py +50 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/fine_matching.py +74 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/geometry.py +54 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/position_encoding.py +42 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/loftr/utils/supervision.py +151 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/losses/loftr_loss.py +192 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/optimizers/__init__.py +42 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/augment.py +55 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/comm.py +265 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/dataloader.py +23 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/dataset.py +185 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/metrics.py +193 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/misc.py +101 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/plotting.py +154 -0
- vismatch/third_party/TopicFM/third_party/loftr/src/utils/profiler.py +39 -0
- vismatch/third_party/TopicFM/third_party/loftr/test.py +68 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/demo_superglue.py +259 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/match_pairs.py +425 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/models/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/models/matching.py +84 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/models/superglue.py +283 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/models/superpoint.py +202 -0
- vismatch/third_party/TopicFM/third_party/loftr/third_party/SuperGluePretrainedNetwork/models/utils.py +555 -0
- vismatch/third_party/TopicFM/third_party/loftr/train.py +123 -0
- vismatch/third_party/TopicFM/third_party/matchformer/config/data/__init__.py +0 -0
- vismatch/third_party/TopicFM/third_party/matchformer/config/data/base.py +35 -0
- vismatch/third_party/TopicFM/third_party/matchformer/config/data/megadepth_test_1500.py +11 -0
- vismatch/third_party/TopicFM/third_party/matchformer/config/data/scannet_test_1500.py +11 -0
- vismatch/third_party/TopicFM/third_party/matchformer/config/defaultmf.py +88 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/__init__.py +17 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/coarse_matching.py +228 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/fine_matching.py +74 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/fine_preprocess.py +59 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/match_LA_large.py +254 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/match_LA_lite.py +254 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/match_SEA_large.py +291 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/backbone/match_SEA_lite.py +291 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/data.py +320 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/datasets/dataset.py +231 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/datasets/megadepth.py +126 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/datasets/sampler.py +77 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/datasets/scannet.py +113 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/lightning_loftr.py +102 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/matchformer.py +54 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/augment.py +55 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/comm.py +265 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/dataloader.py +23 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/metrics.py +193 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/misc.py +101 -0
- vismatch/third_party/TopicFM/third_party/matchformer/model/utils/profiler.py +39 -0
- vismatch/third_party/TopicFM/third_party/matchformer/test.py +55 -0
- vismatch/third_party/TopicFM/train.py +123 -0
- vismatch/third_party/TopicFM/visualization.py +123 -0
- vismatch/third_party/TopicFM/viz/__init__.py +1 -0
- vismatch/third_party/TopicFM/viz/configs/__init__.py +0 -0
- vismatch/third_party/TopicFM/viz/methods/__init__.py +0 -0
- vismatch/third_party/TopicFM/viz/methods/base.py +70 -0
- vismatch/third_party/TopicFM/viz/methods/topicfmv2.py +208 -0
- vismatch/third_party/UFM/UniCeption/examples/models/cosmos/autoencoding.py +48 -0
- vismatch/third_party/UFM/UniCeption/examples/models/dust3r/convert_dust3r_weights_to_uniception.py +331 -0
- vismatch/third_party/UFM/UniCeption/examples/models/dust3r/dust3r.py +261 -0
- vismatch/third_party/UFM/UniCeption/examples/models/dust3r/profile_dust3r.py +47 -0
- vismatch/third_party/UFM/UniCeption/scripts/check_dependencies.py +48 -0
- vismatch/third_party/UFM/UniCeption/scripts/download_checkpoints.py +50 -0
- vismatch/third_party/UFM/UniCeption/scripts/install_croco_rope.py +61 -0
- vismatch/third_party/UFM/UniCeption/scripts/prepare_offline_install.py +398 -0
- vismatch/third_party/UFM/UniCeption/scripts/validate_installation.py +212 -0
- vismatch/third_party/UFM/UniCeption/setup.py +185 -0
- vismatch/third_party/UFM/UniCeption/tests/models/encoders/conftest.py +26 -0
- vismatch/third_party/UFM/UniCeption/tests/models/encoders/test_encoders.py +202 -0
- vismatch/third_party/UFM/UniCeption/tests/models/encoders/viz_image_encoders.py +294 -0
- vismatch/third_party/UFM/UniCeption/tests/models/info_sharing/viz_mulit_view_cross_attn_transformers.py +337 -0
- vismatch/third_party/UFM/UniCeption/uniception/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/__init__.py +225 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/base.py +157 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/cosmos.py +137 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/croco.py +457 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/dense_rep_encoder.py +344 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/dinov2.py +333 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/global_rep_encoder.py +115 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/image_normalizations.py +35 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/list.py +10 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/patch_embedder.py +235 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/radio.py +367 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/encoders/utils.py +86 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/factory/__init__.py +3 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/factory/dust3r.py +332 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/__init__.py +39 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/alternating_attention_transformer.py +973 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/base.py +116 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/cross_attention_transformer.py +612 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/diff_cross_attention_transformer.py +588 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/info_sharing/global_attention_transformer.py +1154 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/__init__.py +14 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/image_cli.py +175 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/image_lib.py +123 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/__init__.py +60 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/distributions.py +41 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/layers2d.py +326 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/layers3d.py +965 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/patching.py +310 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/quantizers.py +510 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/modules/utils.py +115 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/__init__.py +39 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/configs.py +146 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/continuous_image.py +86 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/continuous_video.py +98 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/discrete_image.py +113 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/networks/discrete_video.py +115 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/utils.py +402 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/video_cli.py +195 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/cosmos_tokenizer/video_lib.py +145 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/blocks.py +249 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/curope/__init__.py +4 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/curope/curope2d.py +39 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/curope/setup.py +33 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/dpt_block.py +530 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/patch_embed.py +127 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/libs/croco/pos_embed.py +155 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/__init__.py +18 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/adaptors.py +1765 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/base.py +210 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/cosmos.py +211 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/dpt.py +676 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/global_head.py +142 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/linear.py +95 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/mlp_feature.py +114 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/mlp_head.py +114 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/moge_conv.py +342 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/prediction_heads/pose_head.py +181 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/utils/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/utils/config.py +34 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/utils/intermediate_feature_return.py +85 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/utils/positional_encoding.py +23 -0
- vismatch/third_party/UFM/UniCeption/uniception/models/utils/transformer_blocks.py +1072 -0
- vismatch/third_party/UFM/UniCeption/uniception/utils/__init__.py +0 -0
- vismatch/third_party/UFM/UniCeption/uniception/utils/profile.py +13 -0
- vismatch/third_party/UFM/UniCeption/uniception/utils/viz.py +99 -0
- vismatch/third_party/UFM/example_inference.py +138 -0
- vismatch/third_party/UFM/gradio_demo.py +238 -0
- vismatch/third_party/UFM/setup.py +86 -0
- vismatch/third_party/UFM/uniflowmatch/__init__.py +16 -0
- vismatch/third_party/UFM/uniflowmatch/cli.py +217 -0
- vismatch/third_party/UFM/uniflowmatch/models/__init__.py +25 -0
- vismatch/third_party/UFM/uniflowmatch/models/base.py +334 -0
- vismatch/third_party/UFM/uniflowmatch/models/ufm.py +1323 -0
- vismatch/third_party/UFM/uniflowmatch/models/unet_encoder.py +90 -0
- vismatch/third_party/UFM/uniflowmatch/models/utils.py +16 -0
- vismatch/third_party/UFM/uniflowmatch/utils/__init__.py +63 -0
- vismatch/third_party/UFM/uniflowmatch/utils/flow_resizing.py +1091 -0
- vismatch/third_party/UFM/uniflowmatch/utils/geometry.py +612 -0
- vismatch/third_party/UFM/uniflowmatch/utils/viz.py +97 -0
- vismatch/third_party/XoFTR/configs/data/__init__.py +0 -0
- vismatch/third_party/XoFTR/configs/data/base.py +35 -0
- vismatch/third_party/XoFTR/configs/data/megadepth_trainval_840.py +22 -0
- vismatch/third_party/XoFTR/configs/data/megadepth_vistir_trainval_640.py +23 -0
- vismatch/third_party/XoFTR/configs/data/pretrain.py +8 -0
- vismatch/third_party/XoFTR/configs/xoftr/outdoor/visible_thermal.py +17 -0
- vismatch/third_party/XoFTR/configs/xoftr/pretrain/pretrain.py +12 -0
- vismatch/third_party/XoFTR/pretrain.py +125 -0
- vismatch/third_party/XoFTR/src/__init__.py +0 -0
- vismatch/third_party/XoFTR/src/config/default.py +203 -0
- vismatch/third_party/XoFTR/src/datasets/megadepth.py +143 -0
- vismatch/third_party/XoFTR/src/datasets/pretrain_dataset.py +156 -0
- vismatch/third_party/XoFTR/src/datasets/sampler.py +77 -0
- vismatch/third_party/XoFTR/src/datasets/scannet.py +114 -0
- vismatch/third_party/XoFTR/src/datasets/vistir.py +109 -0
- vismatch/third_party/XoFTR/src/lightning/data.py +346 -0
- vismatch/third_party/XoFTR/src/lightning/data_pretrain.py +125 -0
- vismatch/third_party/XoFTR/src/lightning/lightning_xoftr.py +334 -0
- vismatch/third_party/XoFTR/src/lightning/lightning_xoftr_pretrain.py +171 -0
- vismatch/third_party/XoFTR/src/losses/xoftr_loss.py +170 -0
- vismatch/third_party/XoFTR/src/losses/xoftr_loss_pretrain.py +37 -0
- vismatch/third_party/XoFTR/src/optimizers/__init__.py +42 -0
- vismatch/third_party/XoFTR/src/utils/augment.py +113 -0
- vismatch/third_party/XoFTR/src/utils/comm.py +265 -0
- vismatch/third_party/XoFTR/src/utils/data_io.py +144 -0
- vismatch/third_party/XoFTR/src/utils/dataloader.py +23 -0
- vismatch/third_party/XoFTR/src/utils/dataset.py +279 -0
- vismatch/third_party/XoFTR/src/utils/metrics.py +211 -0
- vismatch/third_party/XoFTR/src/utils/misc.py +101 -0
- vismatch/third_party/XoFTR/src/utils/plotting.py +227 -0
- vismatch/third_party/XoFTR/src/utils/pretrain_utils.py +83 -0
- vismatch/third_party/XoFTR/src/utils/profiler.py +39 -0
- vismatch/third_party/XoFTR/src/xoftr/__init__.py +2 -0
- vismatch/third_party/XoFTR/src/xoftr/backbone/__init__.py +1 -0
- vismatch/third_party/XoFTR/src/xoftr/backbone/resnet.py +95 -0
- vismatch/third_party/XoFTR/src/xoftr/utils/geometry.py +107 -0
- vismatch/third_party/XoFTR/src/xoftr/utils/position_encoding.py +36 -0
- vismatch/third_party/XoFTR/src/xoftr/utils/supervision.py +290 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr.py +94 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/__init__.py +4 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/coarse_matching.py +305 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/fine_matching.py +170 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/fine_process.py +321 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/linear_attention.py +81 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_module/transformer.py +101 -0
- vismatch/third_party/XoFTR/src/xoftr/xoftr_pretrain.py +209 -0
- vismatch/third_party/XoFTR/test.py +68 -0
- vismatch/third_party/XoFTR/test_relative_pose.py +330 -0
- vismatch/third_party/XoFTR/train.py +126 -0
- vismatch/third_party/accelerated_features/hubconf.py +15 -0
- vismatch/third_party/accelerated_features/minimal_example.py +49 -0
- vismatch/third_party/accelerated_features/modules/__init__.py +4 -0
- vismatch/third_party/accelerated_features/modules/dataset/__init__.py +5 -0
- vismatch/third_party/accelerated_features/modules/dataset/augmentation.py +314 -0
- vismatch/third_party/accelerated_features/modules/dataset/megadepth/__init__.py +7 -0
- vismatch/third_party/accelerated_features/modules/dataset/megadepth/megadepth.py +174 -0
- vismatch/third_party/accelerated_features/modules/dataset/megadepth/megadepth_warper.py +170 -0
- vismatch/third_party/accelerated_features/modules/dataset/megadepth/utils.py +160 -0
- vismatch/third_party/accelerated_features/modules/interpolator.py +33 -0
- vismatch/third_party/accelerated_features/modules/lighterglue.py +56 -0
- vismatch/third_party/accelerated_features/modules/model.py +154 -0
- vismatch/third_party/accelerated_features/modules/training/__init__.py +4 -0
- vismatch/third_party/accelerated_features/modules/training/losses.py +224 -0
- vismatch/third_party/accelerated_features/modules/training/train.py +311 -0
- vismatch/third_party/accelerated_features/modules/training/utils.py +200 -0
- vismatch/third_party/accelerated_features/modules/xfeat.py +402 -0
- vismatch/third_party/accelerated_features/realtime_demo.py +295 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/alike.py +143 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/alnet.py +164 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/demo.py +167 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/hseq/eval.py +162 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/hseq/extract.py +159 -0
- vismatch/third_party/accelerated_features/third_party/ALIKE/soft_detect.py +194 -0
- vismatch/third_party/accelerated_features/third_party/__init__.py +4 -0
- vismatch/third_party/accelerated_features/third_party/alike_wrapper.py +110 -0
- vismatch/third_party/affine-steerers/affine_steerers/__init__.py +7 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/__init__.py +5 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/hpatches.py +92 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/hpatches_oracle_steer.py +108 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/mega_pose_est.py +116 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/mega_pose_est_mnn.py +162 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/nll_benchmark.py +57 -0
- vismatch/third_party/affine-steerers/affine_steerers/benchmarks/num_inliers.py +76 -0
- vismatch/third_party/affine-steerers/affine_steerers/checkpoint.py +82 -0
- vismatch/third_party/affine-steerers/affine_steerers/datasets/__init__.py +0 -0
- vismatch/third_party/affine-steerers/affine_steerers/datasets/homog.py +284 -0
- vismatch/third_party/affine-steerers/affine_steerers/datasets/megadepth.py +408 -0
- vismatch/third_party/affine-steerers/affine_steerers/decoder.py +90 -0
- vismatch/third_party/affine-steerers/affine_steerers/descriptors/__init__.py +0 -0
- vismatch/third_party/affine-steerers/affine_steerers/descriptors/dedode_descriptor.py +77 -0
- vismatch/third_party/affine-steerers/affine_steerers/descriptors/descriptor_loss.py +358 -0
- vismatch/third_party/affine-steerers/affine_steerers/detectors/__init__.py +0 -0
- vismatch/third_party/affine-steerers/affine_steerers/detectors/dedode_detector.py +75 -0
- vismatch/third_party/affine-steerers/affine_steerers/detectors/keypoint_loss.py +215 -0
- vismatch/third_party/affine-steerers/affine_steerers/encoder.py +87 -0
- vismatch/third_party/affine-steerers/affine_steerers/matchers/__init__.py +0 -0
- vismatch/third_party/affine-steerers/affine_steerers/matchers/dual_softmax_matcher.py +816 -0
- vismatch/third_party/affine-steerers/affine_steerers/model_zoo/__init__.py +3 -0
- vismatch/third_party/affine-steerers/affine_steerers/model_zoo/dedode_models.py +298 -0
- vismatch/third_party/affine-steerers/affine_steerers/steerers.py +732 -0
- vismatch/third_party/affine-steerers/affine_steerers/train.py +90 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/__init__.py +8 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/dinov2.py +359 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/__init__.py +12 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/attention.py +81 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/block.py +252 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/dino_head.py +59 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/drop_path.py +35 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/layer_scale.py +28 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/mlp.py +41 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/patch_embed.py +89 -0
- vismatch/third_party/affine-steerers/affine_steerers/transformer/layers/swiglu_ffn.py +63 -0
- vismatch/third_party/affine-steerers/affine_steerers/utils.py +1422 -0
- vismatch/third_party/affine-steerers/experiments/aff_equi_B.py +182 -0
- vismatch/third_party/affine-steerers/experiments/aff_equi_G.py +193 -0
- vismatch/third_party/affine-steerers/experiments/aff_steer_B.py +213 -0
- vismatch/third_party/affine-steerers/experiments/aff_steer_G.py +223 -0
- vismatch/third_party/affine-steerers/experiments/aff_steer_pretrain_B.py +187 -0
- vismatch/third_party/affine-steerers/experiments/aff_steer_pretrain_G.py +198 -0
- vismatch/third_party/affine-steerers/setup.py +15 -0
- vismatch/third_party/aspanformer/configs/aspan/indoor/aspan_test.py +7 -0
- vismatch/third_party/aspanformer/configs/aspan/indoor/aspan_train.py +8 -0
- vismatch/third_party/aspanformer/configs/aspan/outdoor/aspan_test.py +19 -0
- vismatch/third_party/aspanformer/configs/aspan/outdoor/aspan_train.py +17 -0
- vismatch/third_party/aspanformer/configs/data/__init__.py +0 -0
- vismatch/third_party/aspanformer/configs/data/base.py +35 -0
- vismatch/third_party/aspanformer/configs/data/megadepth_test_1500.py +13 -0
- vismatch/third_party/aspanformer/configs/data/megadepth_trainval_832.py +22 -0
- vismatch/third_party/aspanformer/configs/data/scannet_test_1500.py +11 -0
- vismatch/third_party/aspanformer/configs/data/scannet_trainval.py +17 -0
- vismatch/third_party/aspanformer/demo/demo.py +63 -0
- vismatch/third_party/aspanformer/demo/demo_utils.py +44 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/__init__.py +2 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspan_module/__init__.py +3 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspan_module/attention.py +198 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspan_module/fine_preprocess.py +59 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspan_module/loftr.py +112 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspan_module/transformer.py +244 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/aspanformer.py +152 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/backbone/__init__.py +11 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/backbone/resnet_fpn.py +199 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/coarse_matching.py +331 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/cvpr_ds_config.py +50 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/fine_matching.py +74 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/geometry.py +54 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/position_encoding.py +61 -0
- vismatch/third_party/aspanformer/src/ASpanFormer/utils/supervision.py +151 -0
- vismatch/third_party/aspanformer/src/__init__.py +0 -0
- vismatch/third_party/aspanformer/src/config/default.py +180 -0
- vismatch/third_party/aspanformer/src/datasets/__init__.py +3 -0
- vismatch/third_party/aspanformer/src/datasets/megadepth.py +127 -0
- vismatch/third_party/aspanformer/src/datasets/sampler.py +77 -0
- vismatch/third_party/aspanformer/src/datasets/scannet.py +113 -0
- vismatch/third_party/aspanformer/src/lightning/data.py +326 -0
- vismatch/third_party/aspanformer/src/lightning/lightning_aspanformer.py +276 -0
- vismatch/third_party/aspanformer/src/losses/aspan_loss.py +231 -0
- vismatch/third_party/aspanformer/src/optimizers/__init__.py +42 -0
- vismatch/third_party/aspanformer/src/utils/augment.py +55 -0
- vismatch/third_party/aspanformer/src/utils/comm.py +265 -0
- vismatch/third_party/aspanformer/src/utils/dataloader.py +23 -0
- vismatch/third_party/aspanformer/src/utils/dataset.py +222 -0
- vismatch/third_party/aspanformer/src/utils/metrics.py +260 -0
- vismatch/third_party/aspanformer/src/utils/misc.py +139 -0
- vismatch/third_party/aspanformer/src/utils/plotting.py +219 -0
- vismatch/third_party/aspanformer/src/utils/profiler.py +39 -0
- vismatch/third_party/aspanformer/test.py +69 -0
- vismatch/third_party/aspanformer/tools/SensorData.py +125 -0
- vismatch/third_party/aspanformer/tools/extract.py +47 -0
- vismatch/third_party/aspanformer/tools/preprocess_scene.py +242 -0
- vismatch/third_party/aspanformer/tools/reader.py +39 -0
- vismatch/third_party/aspanformer/tools/undistort_mega.py +69 -0
- vismatch/third_party/aspanformer/train.py +134 -0
- vismatch/third_party/duster/croco/datasets/__init__.py +0 -0
- vismatch/third_party/duster/croco/datasets/crops/extract_crops_from_images.py +159 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/__init__.py +0 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/generate_from_metadata.py +92 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/generate_from_metadata_files.py +27 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/generate_multiview_images.py +177 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/multiview_habitat_sim_generator.py +390 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/pack_metadata_files.py +69 -0
- vismatch/third_party/duster/croco/datasets/habitat_sim/paths.py +129 -0
- vismatch/third_party/duster/croco/datasets/pairs_dataset.py +109 -0
- vismatch/third_party/duster/croco/datasets/transforms.py +95 -0
- vismatch/third_party/duster/croco/demo.py +55 -0
- vismatch/third_party/duster/croco/models/blocks.py +241 -0
- vismatch/third_party/duster/croco/models/criterion.py +37 -0
- vismatch/third_party/duster/croco/models/croco.py +249 -0
- vismatch/third_party/duster/croco/models/croco_downstream.py +122 -0
- vismatch/third_party/duster/croco/models/curope/__init__.py +4 -0
- vismatch/third_party/duster/croco/models/curope/curope2d.py +40 -0
- vismatch/third_party/duster/croco/models/curope/setup.py +34 -0
- vismatch/third_party/duster/croco/models/dpt_block.py +450 -0
- vismatch/third_party/duster/croco/models/head_downstream.py +58 -0
- vismatch/third_party/duster/croco/models/masking.py +25 -0
- vismatch/third_party/duster/croco/models/pos_embed.py +157 -0
- vismatch/third_party/duster/croco/pretrain.py +254 -0
- vismatch/third_party/duster/croco/stereoflow/augmentor.py +290 -0
- vismatch/third_party/duster/croco/stereoflow/criterion.py +251 -0
- vismatch/third_party/duster/croco/stereoflow/datasets_flow.py +630 -0
- vismatch/third_party/duster/croco/stereoflow/datasets_stereo.py +674 -0
- vismatch/third_party/duster/croco/stereoflow/engine.py +280 -0
- vismatch/third_party/duster/croco/stereoflow/test.py +216 -0
- vismatch/third_party/duster/croco/stereoflow/train.py +253 -0
- vismatch/third_party/duster/croco/utils/misc.py +463 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/find_scenes.py +78 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/habitat_renderer/__init__.py +2 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/habitat_renderer/habitat_sim_envmaps_renderer.py +170 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/habitat_renderer/multiview_crop_generator.py +93 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/habitat_renderer/projections.py +151 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/habitat_renderer/projections_conversions.py +45 -0
- vismatch/third_party/duster/datasets_preprocess/habitat/preprocess_habitat.py +121 -0
- vismatch/third_party/duster/datasets_preprocess/path_to_root.py +13 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_arkitscenes.py +355 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_blendedMVS.py +149 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_co3d.py +295 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_megadepth.py +198 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_scannetpp.py +400 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_staticthings3d.py +130 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_waymo.py +257 -0
- vismatch/third_party/duster/datasets_preprocess/preprocess_wildrgbd.py +209 -0
- vismatch/third_party/duster/demo.py +45 -0
- vismatch/third_party/duster/dust3r/__init__.py +2 -0
- vismatch/third_party/duster/dust3r/cloud_opt/__init__.py +33 -0
- vismatch/third_party/duster/dust3r/cloud_opt/base_opt.py +405 -0
- vismatch/third_party/duster/dust3r/cloud_opt/commons.py +90 -0
- vismatch/third_party/duster/dust3r/cloud_opt/init_im_poses.py +316 -0
- vismatch/third_party/duster/dust3r/cloud_opt/modular_optimizer.py +145 -0
- vismatch/third_party/duster/dust3r/cloud_opt/optimizer.py +248 -0
- vismatch/third_party/duster/dust3r/cloud_opt/pair_viewer.py +127 -0
- vismatch/third_party/duster/dust3r/datasets/__init__.py +50 -0
- vismatch/third_party/duster/dust3r/datasets/arkitscenes.py +102 -0
- vismatch/third_party/duster/dust3r/datasets/base/__init__.py +2 -0
- vismatch/third_party/duster/dust3r/datasets/base/base_stereo_view_dataset.py +220 -0
- vismatch/third_party/duster/dust3r/datasets/base/batched_sampler.py +74 -0
- vismatch/third_party/duster/dust3r/datasets/base/easy_dataset.py +157 -0
- vismatch/third_party/duster/dust3r/datasets/blendedmvs.py +104 -0
- vismatch/third_party/duster/dust3r/datasets/co3d.py +165 -0
- vismatch/third_party/duster/dust3r/datasets/habitat.py +107 -0
- vismatch/third_party/duster/dust3r/datasets/megadepth.py +123 -0
- vismatch/third_party/duster/dust3r/datasets/scannetpp.py +96 -0
- vismatch/third_party/duster/dust3r/datasets/staticthings3d.py +96 -0
- vismatch/third_party/duster/dust3r/datasets/utils/__init__.py +2 -0
- vismatch/third_party/duster/dust3r/datasets/utils/cropping.py +124 -0
- vismatch/third_party/duster/dust3r/datasets/utils/transforms.py +11 -0
- vismatch/third_party/duster/dust3r/datasets/waymo.py +93 -0
- vismatch/third_party/duster/dust3r/datasets/wildrgbd.py +67 -0
- vismatch/third_party/duster/dust3r/demo.py +287 -0
- vismatch/third_party/duster/dust3r/heads/__init__.py +19 -0
- vismatch/third_party/duster/dust3r/heads/dpt_head.py +115 -0
- vismatch/third_party/duster/dust3r/heads/linear_head.py +41 -0
- vismatch/third_party/duster/dust3r/heads/postprocess.py +58 -0
- vismatch/third_party/duster/dust3r/image_pairs.py +104 -0
- vismatch/third_party/duster/dust3r/inference.py +150 -0
- vismatch/third_party/duster/dust3r/losses.py +299 -0
- vismatch/third_party/duster/dust3r/model.py +211 -0
- vismatch/third_party/duster/dust3r/optim_factory.py +14 -0
- vismatch/third_party/duster/dust3r/patch_embed.py +70 -0
- vismatch/third_party/duster/dust3r/post_process.py +60 -0
- vismatch/third_party/duster/dust3r/training.py +377 -0
- vismatch/third_party/duster/dust3r/utils/__init__.py +2 -0
- vismatch/third_party/duster/dust3r/utils/device.py +76 -0
- vismatch/third_party/duster/dust3r/utils/geometry.py +366 -0
- vismatch/third_party/duster/dust3r/utils/image.py +128 -0
- vismatch/third_party/duster/dust3r/utils/misc.py +121 -0
- vismatch/third_party/duster/dust3r/utils/parallel.py +79 -0
- vismatch/third_party/duster/dust3r/utils/path_to_croco.py +19 -0
- vismatch/third_party/duster/dust3r/viz.py +381 -0
- vismatch/third_party/duster/dust3r_visloc/__init__.py +2 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/__init__.py +6 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/aachen_day_night.py +24 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/base_colmap.py +282 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/base_dataset.py +19 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/cambridge_landmarks.py +19 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/inloc.py +167 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/sevenscenes.py +123 -0
- vismatch/third_party/duster/dust3r_visloc/datasets/utils.py +118 -0
- vismatch/third_party/duster/dust3r_visloc/evaluation.py +65 -0
- vismatch/third_party/duster/dust3r_visloc/localization.py +140 -0
- vismatch/third_party/duster/train.py +13 -0
- vismatch/third_party/duster/visloc.py +193 -0
- vismatch/third_party/gim/demo.py +479 -0
- vismatch/third_party/gim/dkm/__init__.py +4 -0
- vismatch/third_party/gim/dkm/benchmarks/__init__.py +4 -0
- vismatch/third_party/gim/dkm/benchmarks/hpatches_sequences_homog_benchmark.py +114 -0
- vismatch/third_party/gim/dkm/benchmarks/megadepth1500_benchmark.py +124 -0
- vismatch/third_party/gim/dkm/benchmarks/megadepth_dense_benchmark.py +86 -0
- vismatch/third_party/gim/dkm/benchmarks/scannet_benchmark.py +143 -0
- vismatch/third_party/gim/dkm/checkpointing/__init__.py +1 -0
- vismatch/third_party/gim/dkm/checkpointing/checkpoint.py +31 -0
- vismatch/third_party/gim/dkm/datasets/__init__.py +1 -0
- vismatch/third_party/gim/dkm/datasets/megadepth.py +177 -0
- vismatch/third_party/gim/dkm/datasets/scannet.py +151 -0
- vismatch/third_party/gim/dkm/losses/__init__.py +1 -0
- vismatch/third_party/gim/dkm/losses/depth_match_regression_loss.py +128 -0
- vismatch/third_party/gim/dkm/models/__init__.py +4 -0
- vismatch/third_party/gim/dkm/models/dkm.py +745 -0
- vismatch/third_party/gim/dkm/models/encoders.py +148 -0
- vismatch/third_party/gim/dkm/models/model_zoo/DKMv3.py +148 -0
- vismatch/third_party/gim/dkm/models/model_zoo/__init__.py +39 -0
- vismatch/third_party/gim/dkm/train/__init__.py +1 -0
- vismatch/third_party/gim/dkm/train/train.py +67 -0
- vismatch/third_party/gim/dkm/utils/__init__.py +13 -0
- vismatch/third_party/gim/dkm/utils/kde.py +26 -0
- vismatch/third_party/gim/dkm/utils/local_correlation.py +40 -0
- vismatch/third_party/gim/dkm/utils/transforms.py +104 -0
- vismatch/third_party/gim/dkm/utils/utils.py +341 -0
- vismatch/third_party/gim/gluefactory/__init__.py +17 -0
- vismatch/third_party/gim/gluefactory/datasets/__init__.py +25 -0
- vismatch/third_party/gim/gluefactory/datasets/augmentations.py +244 -0
- vismatch/third_party/gim/gluefactory/datasets/base_dataset.py +206 -0
- vismatch/third_party/gim/gluefactory/datasets/eth3d.py +254 -0
- vismatch/third_party/gim/gluefactory/datasets/homographies.py +311 -0
- vismatch/third_party/gim/gluefactory/datasets/hpatches.py +145 -0
- vismatch/third_party/gim/gluefactory/datasets/image_folder.py +59 -0
- vismatch/third_party/gim/gluefactory/datasets/image_pairs.py +100 -0
- vismatch/third_party/gim/gluefactory/datasets/megadepth.py +514 -0
- vismatch/third_party/gim/gluefactory/datasets/utils.py +131 -0
- vismatch/third_party/gim/gluefactory/eval/__init__.py +20 -0
- vismatch/third_party/gim/gluefactory/eval/eth3d.py +202 -0
- vismatch/third_party/gim/gluefactory/eval/eval_pipeline.py +109 -0
- vismatch/third_party/gim/gluefactory/eval/hpatches.py +203 -0
- vismatch/third_party/gim/gluefactory/eval/inspect.py +61 -0
- vismatch/third_party/gim/gluefactory/eval/io.py +109 -0
- vismatch/third_party/gim/gluefactory/eval/megadepth1500.py +189 -0
- vismatch/third_party/gim/gluefactory/eval/utils.py +272 -0
- vismatch/third_party/gim/gluefactory/geometry/depth.py +88 -0
- vismatch/third_party/gim/gluefactory/geometry/epipolar.py +155 -0
- vismatch/third_party/gim/gluefactory/geometry/gt_generation.py +558 -0
- vismatch/third_party/gim/gluefactory/geometry/homography.py +342 -0
- vismatch/third_party/gim/gluefactory/geometry/utils.py +167 -0
- vismatch/third_party/gim/gluefactory/geometry/wrappers.py +425 -0
- vismatch/third_party/gim/gluefactory/models/__init__.py +30 -0
- vismatch/third_party/gim/gluefactory/models/backbones/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/models/backbones/dinov2.py +30 -0
- vismatch/third_party/gim/gluefactory/models/base_model.py +157 -0
- vismatch/third_party/gim/gluefactory/models/cache_loader.py +139 -0
- vismatch/third_party/gim/gluefactory/models/extractors/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/models/extractors/aliked.py +786 -0
- vismatch/third_party/gim/gluefactory/models/extractors/disk_kornia.py +108 -0
- vismatch/third_party/gim/gluefactory/models/extractors/grid_extractor.py +60 -0
- vismatch/third_party/gim/gluefactory/models/extractors/keynet_affnet_hardnet.py +74 -0
- vismatch/third_party/gim/gluefactory/models/extractors/mixed.py +76 -0
- vismatch/third_party/gim/gluefactory/models/extractors/sift.py +234 -0
- vismatch/third_party/gim/gluefactory/models/extractors/sift_kornia.py +46 -0
- vismatch/third_party/gim/gluefactory/models/extractors/superpoint_open.py +210 -0
- vismatch/third_party/gim/gluefactory/models/lines/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/models/lines/deeplsd.py +106 -0
- vismatch/third_party/gim/gluefactory/models/lines/lsd.py +88 -0
- vismatch/third_party/gim/gluefactory/models/lines/wireframe.py +312 -0
- vismatch/third_party/gim/gluefactory/models/matchers/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/models/matchers/adalam.py +0 -0
- vismatch/third_party/gim/gluefactory/models/matchers/depth_matcher.py +82 -0
- vismatch/third_party/gim/gluefactory/models/matchers/gluestick.py +776 -0
- vismatch/third_party/gim/gluefactory/models/matchers/homography_matcher.py +66 -0
- vismatch/third_party/gim/gluefactory/models/matchers/kornia_loftr.py +66 -0
- vismatch/third_party/gim/gluefactory/models/matchers/lightglue.py +632 -0
- vismatch/third_party/gim/gluefactory/models/matchers/lightglue_pretrained.py +36 -0
- vismatch/third_party/gim/gluefactory/models/matchers/nearest_neighbor_matcher.py +97 -0
- vismatch/third_party/gim/gluefactory/models/triplet_pipeline.py +99 -0
- vismatch/third_party/gim/gluefactory/models/two_view_pipeline.py +114 -0
- vismatch/third_party/gim/gluefactory/models/utils/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/models/utils/losses.py +73 -0
- vismatch/third_party/gim/gluefactory/models/utils/metrics.py +50 -0
- vismatch/third_party/gim/gluefactory/models/utils/misc.py +70 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/__init__.py +15 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/base_estimator.py +33 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/homography/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/homography/homography_est.py +74 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/homography/opencv.py +53 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/homography/poselib.py +40 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/relative_pose/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/relative_pose/opencv.py +64 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/relative_pose/poselib.py +44 -0
- vismatch/third_party/gim/gluefactory/robust_estimators/relative_pose/pycolmap.py +52 -0
- vismatch/third_party/gim/gluefactory/scripts/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/scripts/export_local_features.py +127 -0
- vismatch/third_party/gim/gluefactory/scripts/export_megadepth.py +173 -0
- vismatch/third_party/gim/gluefactory/settings.py +6 -0
- vismatch/third_party/gim/gluefactory/superpoint.py +361 -0
- vismatch/third_party/gim/gluefactory/train.py +691 -0
- vismatch/third_party/gim/gluefactory/utils/__init__.py +0 -0
- vismatch/third_party/gim/gluefactory/utils/benchmark.py +33 -0
- vismatch/third_party/gim/gluefactory/utils/experiments.py +134 -0
- vismatch/third_party/gim/gluefactory/utils/export_predictions.py +81 -0
- vismatch/third_party/gim/gluefactory/utils/image.py +130 -0
- vismatch/third_party/gim/gluefactory/utils/misc.py +44 -0
- vismatch/third_party/gim/gluefactory/utils/patches.py +50 -0
- vismatch/third_party/gim/gluefactory/utils/stdout_capturing.py +134 -0
- vismatch/third_party/gim/gluefactory/utils/tensor.py +48 -0
- vismatch/third_party/gim/gluefactory/utils/tools.py +269 -0
- vismatch/third_party/gim/gluefactory/visualization/global_frame.py +289 -0
- vismatch/third_party/gim/gluefactory/visualization/tools.py +465 -0
- vismatch/third_party/gim/gluefactory/visualization/two_view_frame.py +158 -0
- vismatch/third_party/gim/gluefactory/visualization/visualize_batch.py +57 -0
- vismatch/third_party/gim/gluefactory/visualization/viz2d.py +486 -0
- vismatch/third_party/imatch-toolbox/configs/d2net.yml +26 -0
- vismatch/third_party/imatch-toolbox/configs/dogaffnethardnet.yml +10 -0
- vismatch/third_party/imatch-toolbox/configs/ncnet.yml +7 -0
- vismatch/third_party/imatch-toolbox/configs/patch2pix.yml +56 -0
- vismatch/third_party/imatch-toolbox/configs/patch2pix_superglue.yml +58 -0
- vismatch/third_party/imatch-toolbox/configs/r2d2.yml +31 -0
- vismatch/third_party/imatch-toolbox/configs/sift.yml +27 -0
- vismatch/third_party/imatch-toolbox/configs/superglue.yml +69 -0
- vismatch/third_party/imatch-toolbox/configs/superpoint.yml +21 -0
- vismatch/third_party/imatch-toolbox/environment.yml +14 -0
- vismatch/third_party/imatch-toolbox/immatch/__init__.py +8 -0
- vismatch/third_party/imatch-toolbox/immatch/eval_aachen.py +88 -0
- vismatch/third_party/imatch-toolbox/immatch/eval_hpatches.py +117 -0
- vismatch/third_party/imatch-toolbox/immatch/eval_inloc.py +45 -0
- vismatch/third_party/imatch-toolbox/immatch/eval_relapose.py +231 -0
- vismatch/third_party/imatch-toolbox/immatch/eval_robotcar.py +83 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/__init__.py +0 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/base.py +89 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/d2net.py +69 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/dogaffnethardnet.py +94 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/nn_matching.py +31 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/patch2pix.py +126 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/r2d2.py +64 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/sift.py +67 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/superglue.py +62 -0
- vismatch/third_party/imatch-toolbox/immatch/modules/superpoint.py +56 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/__init__.py +13 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/colmap/data_parsing.py +257 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/colmap/database.py +362 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/colmap/read_write_model.py +506 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/data_io.py +111 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/hpatches_helper.py +242 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/localize_sfm_helper.py +403 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/metrics.py +90 -0
- vismatch/third_party/imatch-toolbox/immatch/utils/model_helper.py +27 -0
- vismatch/third_party/imatch-toolbox/setup.py +36 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/extract_features.py +156 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/extract_kapture.py +248 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/dataset.py +239 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/exceptions.py +6 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/loss.py +340 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/model.py +121 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/model_test.py +187 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/pyramid.py +129 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/lib/utils.py +167 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/megadepth_utils/preprocess_scene.py +242 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/megadepth_utils/undistort_reconstructions.py +69 -0
- vismatch/third_party/imatch-toolbox/third_party/d2net/train.py +279 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/data_pairs/precompute_immatch_val_ovs.py +20 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/environment.yml +21 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/modules.py +167 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/ncn/conv4d.py +91 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/ncn/extract_ncmatches.py +158 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/ncn/model.py +333 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/patch2pix.py +403 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/resnet.py +191 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/networks/utils.py +111 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/train_patch2pix.py +374 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/colmap/data_loading.py +169 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/colmap/read_database.py +175 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/colmap/read_write_model.py +483 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/common/plotting.py +393 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/common/setup_helper.py +59 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/common/visdom_helper.py +95 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/datasets/__init__.py +1 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/datasets/data_parsing.py +145 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/datasets/dataset_megadepth.py +141 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/datasets/preprocess.py +184 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/eval/geometry.py +90 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/eval/measure.py +161 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/eval/model_helper.py +129 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/train/eval_epoch_immatch.py +99 -0
- vismatch/third_party/imatch-toolbox/third_party/patch2pix/utils/train/helper.py +196 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/__init__.py +33 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/aachen.py +146 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/dataset.py +77 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/imgfolder.py +23 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/pair_dataset.py +287 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/datasets/web_images.py +64 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/extract.py +183 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/extract_kapture.py +194 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/ap_loss.py +67 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/losses.py +56 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/patchnet.py +134 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/reliability_loss.py +59 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/repeatability_loss.py +66 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/nets/sampler.py +390 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/common.py +41 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/dataloader.py +367 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/trainer.py +76 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/transforms.py +513 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/transforms_tools.py +230 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/tools/viz.py +191 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/train.py +138 -0
- vismatch/third_party/imatch-toolbox/third_party/r2d2/viz_heatmaps.py +122 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/demo_superglue.py +259 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/match_pairs.py +425 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/models/__init__.py +0 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/models/matching.py +84 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/models/superglue.py +283 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/models/superpoint.py +202 -0
- vismatch/third_party/imatch-toolbox/third_party/superglue/models/utils.py +555 -0
- vismatch/third_party/keypt2subpx/dataprocess/aliked.py +163 -0
- vismatch/third_party/keypt2subpx/dataprocess/dedode.py +215 -0
- vismatch/third_party/keypt2subpx/dataprocess/splg.py +162 -0
- vismatch/third_party/keypt2subpx/dataprocess/spnn.py +157 -0
- vismatch/third_party/keypt2subpx/dataprocess/superpoint_densescore.py +357 -0
- vismatch/third_party/keypt2subpx/dataprocess/xfeat.py +187 -0
- vismatch/third_party/keypt2subpx/dataset.py +145 -0
- vismatch/third_party/keypt2subpx/hubconf.py +38 -0
- vismatch/third_party/keypt2subpx/logger.py +127 -0
- vismatch/third_party/keypt2subpx/model.py +183 -0
- vismatch/third_party/keypt2subpx/settings.py +108 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/__init__.py +17 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/__init__.py +25 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/augmentations.py +244 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/base_dataset.py +206 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/eth3d.py +254 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/homographies.py +311 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/hpatches.py +145 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/image_folder.py +59 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/image_pairs.py +100 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/megadepth.py +510 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/datasets/utils.py +131 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/__init__.py +20 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/eth3d.py +202 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/eval_pipeline.py +109 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/hpatches.py +203 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/inspect.py +61 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/io.py +109 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/megadepth1500.py +189 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/eval/utils.py +272 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/depth.py +88 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/epipolar.py +155 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/gt_generation.py +558 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/homography.py +342 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/utils.py +167 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/geometry/wrappers.py +425 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/__init__.py +30 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/backbones/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/backbones/dinov2.py +30 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/base_model.py +157 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/cache_loader.py +139 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/aliked.py +786 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/disk_kornia.py +108 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/grid_extractor.py +60 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/keynet_affnet_hardnet.py +74 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/mixed.py +76 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/sift.py +234 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/sift_kornia.py +46 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/extractors/superpoint_open.py +210 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/lines/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/lines/deeplsd.py +106 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/lines/lsd.py +88 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/lines/wireframe.py +312 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/adalam.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/depth_matcher.py +82 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/gluestick.py +776 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/homography_matcher.py +66 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/kornia_loftr.py +66 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/lightglue.py +612 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/lightglue_pretrained.py +36 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/matchers/nearest_neighbor_matcher.py +97 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/triplet_pipeline.py +99 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/two_view_pipeline.py +114 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/utils/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/utils/losses.py +73 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/utils/metrics.py +50 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/models/utils/misc.py +70 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/__init__.py +15 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/base_estimator.py +33 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/homography/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/homography/homography_est.py +74 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/homography/opencv.py +53 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/homography/poselib.py +40 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/relative_pose/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/relative_pose/opencv.py +64 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/relative_pose/poselib.py +44 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/robust_estimators/relative_pose/pycolmap.py +52 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/scripts/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/scripts/export_local_features.py +127 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/scripts/export_megadepth.py +173 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/settings.py +6 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/train.py +691 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/benchmark.py +33 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/experiments.py +134 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/export_predictions.py +81 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/image.py +130 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/misc.py +44 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/patches.py +50 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/stdout_capturing.py +134 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/tensor.py +48 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/utils/tools.py +269 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/visualization/global_frame.py +289 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/visualization/tools.py +465 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/visualization/two_view_frame.py +158 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/visualization/visualize_batch.py +57 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory/visualization/viz2d.py +486 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory_nonfree/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory_nonfree/superglue.py +342 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/gluefactory_nonfree/superpoint.py +356 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/tests/__init__.py +0 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/tests/test_eval_utils.py +88 -0
- vismatch/third_party/keypt2subpx/submodules/glue_factory/tests/test_integration.py +132 -0
- vismatch/third_party/keypt2subpx/summarize.py +44 -0
- vismatch/third_party/keypt2subpx/test.py +225 -0
- vismatch/third_party/keypt2subpx/train.py +180 -0
- vismatch/third_party/keypt2subpx/utils.py +150 -0
- vismatch/third_party/mast3r/demo.py +51 -0
- vismatch/third_party/mast3r/demo_dust3r_ga.py +99 -0
- vismatch/third_party/mast3r/demo_glomap.py +52 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/__init__.py +0 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/crops/extract_crops_from_images.py +159 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/__init__.py +0 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/generate_from_metadata.py +92 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/generate_from_metadata_files.py +27 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/generate_multiview_images.py +177 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/multiview_habitat_sim_generator.py +390 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/pack_metadata_files.py +69 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/habitat_sim/paths.py +129 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/pairs_dataset.py +109 -0
- vismatch/third_party/mast3r/dust3r/croco/datasets/transforms.py +95 -0
- vismatch/third_party/mast3r/dust3r/croco/demo.py +55 -0
- vismatch/third_party/mast3r/dust3r/croco/models/blocks.py +241 -0
- vismatch/third_party/mast3r/dust3r/croco/models/criterion.py +37 -0
- vismatch/third_party/mast3r/dust3r/croco/models/croco.py +249 -0
- vismatch/third_party/mast3r/dust3r/croco/models/croco_downstream.py +122 -0
- vismatch/third_party/mast3r/dust3r/croco/models/curope/__init__.py +4 -0
- vismatch/third_party/mast3r/dust3r/croco/models/curope/curope2d.py +40 -0
- vismatch/third_party/mast3r/dust3r/croco/models/curope/setup.py +34 -0
- vismatch/third_party/mast3r/dust3r/croco/models/dpt_block.py +450 -0
- vismatch/third_party/mast3r/dust3r/croco/models/head_downstream.py +58 -0
- vismatch/third_party/mast3r/dust3r/croco/models/masking.py +25 -0
- vismatch/third_party/mast3r/dust3r/croco/models/pos_embed.py +157 -0
- vismatch/third_party/mast3r/dust3r/croco/pretrain.py +254 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/augmentor.py +290 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/criterion.py +251 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/datasets_flow.py +630 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/datasets_stereo.py +674 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/engine.py +280 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/test.py +216 -0
- vismatch/third_party/mast3r/dust3r/croco/stereoflow/train.py +253 -0
- vismatch/third_party/mast3r/dust3r/croco/utils/misc.py +463 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/find_scenes.py +78 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/habitat_sim_envmaps_renderer.py +170 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/multiview_crop_generator.py +93 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/projections.py +151 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/projections_conversions.py +45 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/habitat/preprocess_habitat.py +121 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/path_to_root.py +13 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_arkitscenes.py +355 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_blendedMVS.py +149 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_co3d.py +295 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_megadepth.py +198 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_scannetpp.py +390 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_staticthings3d.py +130 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_waymo.py +257 -0
- vismatch/third_party/mast3r/dust3r/datasets_preprocess/preprocess_wildrgbd.py +209 -0
- vismatch/third_party/mast3r/dust3r/demo.py +45 -0
- vismatch/third_party/mast3r/dust3r/dust3r/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/__init__.py +33 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/base_opt.py +405 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/commons.py +90 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/init_im_poses.py +316 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/modular_optimizer.py +145 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/optimizer.py +248 -0
- vismatch/third_party/mast3r/dust3r/dust3r/cloud_opt/pair_viewer.py +127 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/__init__.py +50 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/arkitscenes.py +102 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/base/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/base/base_stereo_view_dataset.py +220 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/base/batched_sampler.py +74 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/base/easy_dataset.py +157 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/blendedmvs.py +104 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/co3d.py +165 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/habitat.py +107 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/megadepth.py +123 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/scannetpp.py +96 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/staticthings3d.py +96 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/utils/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/utils/cropping.py +124 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/utils/transforms.py +11 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/waymo.py +93 -0
- vismatch/third_party/mast3r/dust3r/dust3r/datasets/wildrgbd.py +67 -0
- vismatch/third_party/mast3r/dust3r/dust3r/demo.py +287 -0
- vismatch/third_party/mast3r/dust3r/dust3r/heads/__init__.py +19 -0
- vismatch/third_party/mast3r/dust3r/dust3r/heads/dpt_head.py +115 -0
- vismatch/third_party/mast3r/dust3r/dust3r/heads/linear_head.py +41 -0
- vismatch/third_party/mast3r/dust3r/dust3r/heads/postprocess.py +58 -0
- vismatch/third_party/mast3r/dust3r/dust3r/image_pairs.py +104 -0
- vismatch/third_party/mast3r/dust3r/dust3r/inference.py +150 -0
- vismatch/third_party/mast3r/dust3r/dust3r/losses.py +299 -0
- vismatch/third_party/mast3r/dust3r/dust3r/model.py +211 -0
- vismatch/third_party/mast3r/dust3r/dust3r/optim_factory.py +14 -0
- vismatch/third_party/mast3r/dust3r/dust3r/patch_embed.py +70 -0
- vismatch/third_party/mast3r/dust3r/dust3r/post_process.py +60 -0
- vismatch/third_party/mast3r/dust3r/dust3r/training.py +377 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/device.py +76 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/geometry.py +366 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/image.py +128 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/misc.py +121 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/parallel.py +79 -0
- vismatch/third_party/mast3r/dust3r/dust3r/utils/path_to_croco.py +19 -0
- vismatch/third_party/mast3r/dust3r/dust3r/viz.py +381 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/__init__.py +2 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/__init__.py +6 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/aachen_day_night.py +24 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/base_colmap.py +282 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/base_dataset.py +19 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/cambridge_landmarks.py +19 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/inloc.py +167 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/sevenscenes.py +123 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/datasets/utils.py +118 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/evaluation.py +65 -0
- vismatch/third_party/mast3r/dust3r/dust3r_visloc/localization.py +140 -0
- vismatch/third_party/mast3r/dust3r/train.py +13 -0
- vismatch/third_party/mast3r/dust3r/visloc.py +193 -0
- vismatch/third_party/mast3r/kapture_mast3r_mapping.py +127 -0
- vismatch/third_party/mast3r/make_pairs.py +105 -0
- vismatch/third_party/mast3r/mast3r/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/catmlp_dpt_head.py +239 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/sparse_ga.py +1078 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/triangulation.py +80 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/tsdf_optimizer.py +273 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/utils/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/utils/losses.py +32 -0
- vismatch/third_party/mast3r/mast3r/cloud_opt/utils/schedules.py +17 -0
- vismatch/third_party/mast3r/mast3r/colmap/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/colmap/database.py +383 -0
- vismatch/third_party/mast3r/mast3r/colmap/mapping.py +196 -0
- vismatch/third_party/mast3r/mast3r/datasets/__init__.py +62 -0
- vismatch/third_party/mast3r/mast3r/datasets/base/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/datasets/base/mast3r_base_stereo_view_dataset.py +355 -0
- vismatch/third_party/mast3r/mast3r/datasets/utils/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/datasets/utils/cropping.py +219 -0
- vismatch/third_party/mast3r/mast3r/demo.py +381 -0
- vismatch/third_party/mast3r/mast3r/demo_glomap.py +343 -0
- vismatch/third_party/mast3r/mast3r/fast_nn.py +223 -0
- vismatch/third_party/mast3r/mast3r/image_pairs.py +115 -0
- vismatch/third_party/mast3r/mast3r/losses.py +508 -0
- vismatch/third_party/mast3r/mast3r/model.py +213 -0
- vismatch/third_party/mast3r/mast3r/retrieval/graph.py +77 -0
- vismatch/third_party/mast3r/mast3r/retrieval/model.py +271 -0
- vismatch/third_party/mast3r/mast3r/retrieval/processor.py +129 -0
- vismatch/third_party/mast3r/mast3r/utils/__init__.py +2 -0
- vismatch/third_party/mast3r/mast3r/utils/coarse_to_fine.py +214 -0
- vismatch/third_party/mast3r/mast3r/utils/collate.py +62 -0
- vismatch/third_party/mast3r/mast3r/utils/misc.py +17 -0
- vismatch/third_party/mast3r/mast3r/utils/path_to_dust3r.py +19 -0
- vismatch/third_party/mast3r/train.py +48 -0
- vismatch/third_party/mast3r/visloc.py +538 -0
- vismatch/third_party/omniglue/__init__.py +19 -0
- vismatch/third_party/omniglue/demo.py +89 -0
- vismatch/third_party/omniglue/src/omniglue/__init__.py +17 -0
- vismatch/third_party/omniglue/src/omniglue/dino_extract.py +215 -0
- vismatch/third_party/omniglue/src/omniglue/omniglue_extract.py +159 -0
- vismatch/third_party/omniglue/src/omniglue/superpoint_extract.py +214 -0
- vismatch/third_party/omniglue/src/omniglue/utils.py +274 -0
- vismatch/third_party/omniglue/third_party/dinov2/__init__.py +0 -0
- vismatch/third_party/omniglue/third_party/dinov2/dino.py +411 -0
- vismatch/third_party/omniglue/third_party/dinov2/dino_utils.py +341 -0
- vismatch/third_party/rdd/RDD/RDD.py +262 -0
- vismatch/third_party/rdd/RDD/RDD_helper.py +181 -0
- vismatch/third_party/rdd/RDD/dataset/__init__.py +0 -0
- vismatch/third_party/rdd/RDD/dataset/megadepth/__init__.py +2 -0
- vismatch/third_party/rdd/RDD/dataset/megadepth/megadepth.py +313 -0
- vismatch/third_party/rdd/RDD/dataset/megadepth/megadepth_warper.py +75 -0
- vismatch/third_party/rdd/RDD/dataset/megadepth/utils.py +848 -0
- vismatch/third_party/rdd/RDD/matchers/__init__.py +3 -0
- vismatch/third_party/rdd/RDD/matchers/dense_matcher.py +137 -0
- vismatch/third_party/rdd/RDD/matchers/dual_softmax_matcher.py +31 -0
- vismatch/third_party/rdd/RDD/matchers/lightglue.py +667 -0
- vismatch/third_party/rdd/RDD/models/backbone.py +147 -0
- vismatch/third_party/rdd/RDD/models/deformable_transformer.py +270 -0
- vismatch/third_party/rdd/RDD/models/descriptor.py +116 -0
- vismatch/third_party/rdd/RDD/models/detector.py +141 -0
- vismatch/third_party/rdd/RDD/models/interpolator.py +33 -0
- vismatch/third_party/rdd/RDD/models/ops/functions/__init__.py +13 -0
- vismatch/third_party/rdd/RDD/models/ops/functions/ms_deform_attn_func.py +74 -0
- vismatch/third_party/rdd/RDD/models/ops/modules/__init__.py +12 -0
- vismatch/third_party/rdd/RDD/models/ops/modules/ms_deform_attn.py +125 -0
- vismatch/third_party/rdd/RDD/models/ops/setup.py +78 -0
- vismatch/third_party/rdd/RDD/models/ops/test.py +92 -0
- vismatch/third_party/rdd/RDD/models/position_encoding.py +48 -0
- vismatch/third_party/rdd/RDD/models/soft_detect.py +176 -0
- vismatch/third_party/rdd/RDD/utils/__init__.py +1 -0
- vismatch/third_party/rdd/RDD/utils/misc.py +531 -0
- vismatch/third_party/rdd/benchmarks/air_ground.py +250 -0
- vismatch/third_party/rdd/benchmarks/mega_1500.py +259 -0
- vismatch/third_party/rdd/benchmarks/mega_view.py +252 -0
- vismatch/third_party/rdd/benchmarks/scannet_1500.py +251 -0
- vismatch/third_party/rdd/benchmarks/utils.py +112 -0
- vismatch/third_party/rdd/configs/default.yaml +19 -0
- vismatch/third_party/rdd/sfm/extract_rdd.py +145 -0
- vismatch/third_party/rdd/sfm/match_rdd.py +259 -0
- vismatch/third_party/rdd/third_party/LightGlue/.github/workflows/code-quality.yml +24 -0
- vismatch/third_party/rdd/third_party/LightGlue/benchmark.py +255 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/__init__.py +7 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/aliked.py +760 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/disk.py +55 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/dog_hardnet.py +41 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/lightglue.py +662 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/sift.py +216 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/superpoint.py +227 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/utils.py +165 -0
- vismatch/third_party/rdd/third_party/LightGlue/lightglue/viz2d.py +203 -0
- vismatch/third_party/rdd/third_party/__init__.py +1 -0
- vismatch/third_party/rdd/third_party/aliked_wrapper.py +17 -0
- vismatch/third_party/rdd/training/losses/descriptor_loss.py +73 -0
- vismatch/third_party/rdd/training/losses/detector_loss.py +499 -0
- vismatch/third_party/rdd/training/train.py +473 -0
- vismatch/third_party/rdd/training/utils.py +246 -0
- vismatch/utils.py +390 -0
- vismatch/viz.py +222 -0
- vismatch-1.1.1.dist-info/METADATA +265 -0
- vismatch-1.1.1.dist-info/RECORD +2042 -0
- vismatch-1.1.1.dist-info/WHEEL +5 -0
- vismatch-1.1.1.dist-info/entry_points.txt +4 -0
- vismatch-1.1.1.dist-info/licenses/LICENSE +28 -0
- vismatch-1.1.1.dist-info/top_level.txt +4 -0
- vismatch_extract.py +103 -0
- vismatch_match.py +114 -0
- vismatch_test.py +186 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# Copyright (C) 2024-present Naver Corporation. All rights reserved.
|
|
2
|
+
# Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
|
|
3
|
+
#
|
|
4
|
+
# --------------------------------------------------------
|
|
5
|
+
# geometry utilitary functions
|
|
6
|
+
# --------------------------------------------------------
|
|
7
|
+
import torch
|
|
8
|
+
import numpy as np
|
|
9
|
+
from scipy.spatial import cKDTree as KDTree
|
|
10
|
+
|
|
11
|
+
from dust3r.utils.misc import invalid_to_zeros, invalid_to_nans
|
|
12
|
+
from dust3r.utils.device import to_numpy
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def xy_grid(W, H, device=None, origin=(0, 0), unsqueeze=None, cat_dim=-1, homogeneous=False, **arange_kw):
|
|
16
|
+
""" Output a (H,W,2) array of int32
|
|
17
|
+
with output[j,i,0] = i + origin[0]
|
|
18
|
+
output[j,i,1] = j + origin[1]
|
|
19
|
+
"""
|
|
20
|
+
if device is None:
|
|
21
|
+
# numpy
|
|
22
|
+
arange, meshgrid, stack, ones = np.arange, np.meshgrid, np.stack, np.ones
|
|
23
|
+
else:
|
|
24
|
+
# torch
|
|
25
|
+
arange = lambda *a, **kw: torch.arange(*a, device=device, **kw)
|
|
26
|
+
meshgrid, stack = torch.meshgrid, torch.stack
|
|
27
|
+
ones = lambda *a: torch.ones(*a, device=device)
|
|
28
|
+
|
|
29
|
+
tw, th = [arange(o, o + s, **arange_kw) for s, o in zip((W, H), origin)]
|
|
30
|
+
grid = meshgrid(tw, th, indexing='xy')
|
|
31
|
+
if homogeneous:
|
|
32
|
+
grid = grid + (ones((H, W)),)
|
|
33
|
+
if unsqueeze is not None:
|
|
34
|
+
grid = (grid[0].unsqueeze(unsqueeze), grid[1].unsqueeze(unsqueeze))
|
|
35
|
+
if cat_dim is not None:
|
|
36
|
+
grid = stack(grid, cat_dim)
|
|
37
|
+
return grid
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def geotrf(Trf, pts, ncol=None, norm=False):
|
|
41
|
+
""" Apply a geometric transformation to a list of 3-D points.
|
|
42
|
+
|
|
43
|
+
H: 3x3 or 4x4 projection matrix (typically a Homography)
|
|
44
|
+
p: numpy/torch/tuple of coordinates. Shape must be (...,2) or (...,3)
|
|
45
|
+
|
|
46
|
+
ncol: int. number of columns of the result (2 or 3)
|
|
47
|
+
norm: float. if != 0, the resut is projected on the z=norm plane.
|
|
48
|
+
|
|
49
|
+
Returns an array of projected 2d points.
|
|
50
|
+
"""
|
|
51
|
+
assert Trf.ndim >= 2
|
|
52
|
+
if isinstance(Trf, np.ndarray):
|
|
53
|
+
pts = np.asarray(pts)
|
|
54
|
+
elif isinstance(Trf, torch.Tensor):
|
|
55
|
+
pts = torch.as_tensor(pts, dtype=Trf.dtype)
|
|
56
|
+
|
|
57
|
+
# adapt shape if necessary
|
|
58
|
+
output_reshape = pts.shape[:-1]
|
|
59
|
+
ncol = ncol or pts.shape[-1]
|
|
60
|
+
|
|
61
|
+
# optimized code
|
|
62
|
+
if (isinstance(Trf, torch.Tensor) and isinstance(pts, torch.Tensor) and
|
|
63
|
+
Trf.ndim == 3 and pts.ndim == 4):
|
|
64
|
+
d = pts.shape[3]
|
|
65
|
+
if Trf.shape[-1] == d:
|
|
66
|
+
pts = torch.einsum("bij, bhwj -> bhwi", Trf, pts)
|
|
67
|
+
elif Trf.shape[-1] == d + 1:
|
|
68
|
+
pts = torch.einsum("bij, bhwj -> bhwi", Trf[:, :d, :d], pts) + Trf[:, None, None, :d, d]
|
|
69
|
+
else:
|
|
70
|
+
raise ValueError(f'bad shape, not ending with 3 or 4, for {pts.shape=}')
|
|
71
|
+
else:
|
|
72
|
+
if Trf.ndim >= 3:
|
|
73
|
+
n = Trf.ndim - 2
|
|
74
|
+
assert Trf.shape[:n] == pts.shape[:n], 'batch size does not match'
|
|
75
|
+
Trf = Trf.reshape(-1, Trf.shape[-2], Trf.shape[-1])
|
|
76
|
+
|
|
77
|
+
if pts.ndim > Trf.ndim:
|
|
78
|
+
# Trf == (B,d,d) & pts == (B,H,W,d) --> (B, H*W, d)
|
|
79
|
+
pts = pts.reshape(Trf.shape[0], -1, pts.shape[-1])
|
|
80
|
+
elif pts.ndim == 2:
|
|
81
|
+
# Trf == (B,d,d) & pts == (B,d) --> (B, 1, d)
|
|
82
|
+
pts = pts[:, None, :]
|
|
83
|
+
|
|
84
|
+
if pts.shape[-1] + 1 == Trf.shape[-1]:
|
|
85
|
+
Trf = Trf.swapaxes(-1, -2) # transpose Trf
|
|
86
|
+
pts = pts @ Trf[..., :-1, :] + Trf[..., -1:, :]
|
|
87
|
+
elif pts.shape[-1] == Trf.shape[-1]:
|
|
88
|
+
Trf = Trf.swapaxes(-1, -2) # transpose Trf
|
|
89
|
+
pts = pts @ Trf
|
|
90
|
+
else:
|
|
91
|
+
pts = Trf @ pts.T
|
|
92
|
+
if pts.ndim >= 2:
|
|
93
|
+
pts = pts.swapaxes(-1, -2)
|
|
94
|
+
|
|
95
|
+
if norm:
|
|
96
|
+
pts = pts / pts[..., -1:] # DONT DO /= BECAUSE OF WEIRD PYTORCH BUG
|
|
97
|
+
if norm != 1:
|
|
98
|
+
pts *= norm
|
|
99
|
+
|
|
100
|
+
res = pts[..., :ncol].reshape(*output_reshape, ncol)
|
|
101
|
+
return res
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def inv(mat):
|
|
105
|
+
""" Invert a torch or numpy matrix
|
|
106
|
+
"""
|
|
107
|
+
if isinstance(mat, torch.Tensor):
|
|
108
|
+
return torch.linalg.inv(mat)
|
|
109
|
+
if isinstance(mat, np.ndarray):
|
|
110
|
+
return np.linalg.inv(mat)
|
|
111
|
+
raise ValueError(f'bad matrix type = {type(mat)}')
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def depthmap_to_pts3d(depth, pseudo_focal, pp=None, **_):
|
|
115
|
+
"""
|
|
116
|
+
Args:
|
|
117
|
+
- depthmap (BxHxW array):
|
|
118
|
+
- pseudo_focal: [B,H,W] ; [B,2,H,W] or [B,1,H,W]
|
|
119
|
+
Returns:
|
|
120
|
+
pointmap of absolute coordinates (BxHxWx3 array)
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
if len(depth.shape) == 4:
|
|
124
|
+
B, H, W, n = depth.shape
|
|
125
|
+
else:
|
|
126
|
+
B, H, W = depth.shape
|
|
127
|
+
n = None
|
|
128
|
+
|
|
129
|
+
if len(pseudo_focal.shape) == 3: # [B,H,W]
|
|
130
|
+
pseudo_focalx = pseudo_focaly = pseudo_focal
|
|
131
|
+
elif len(pseudo_focal.shape) == 4: # [B,2,H,W] or [B,1,H,W]
|
|
132
|
+
pseudo_focalx = pseudo_focal[:, 0]
|
|
133
|
+
if pseudo_focal.shape[1] == 2:
|
|
134
|
+
pseudo_focaly = pseudo_focal[:, 1]
|
|
135
|
+
else:
|
|
136
|
+
pseudo_focaly = pseudo_focalx
|
|
137
|
+
else:
|
|
138
|
+
raise NotImplementedError("Error, unknown input focal shape format.")
|
|
139
|
+
|
|
140
|
+
assert pseudo_focalx.shape == depth.shape[:3]
|
|
141
|
+
assert pseudo_focaly.shape == depth.shape[:3]
|
|
142
|
+
grid_x, grid_y = xy_grid(W, H, cat_dim=0, device=depth.device)[:, None]
|
|
143
|
+
|
|
144
|
+
# set principal point
|
|
145
|
+
if pp is None:
|
|
146
|
+
grid_x = grid_x - (W - 1) / 2
|
|
147
|
+
grid_y = grid_y - (H - 1) / 2
|
|
148
|
+
else:
|
|
149
|
+
grid_x = grid_x.expand(B, -1, -1) - pp[:, 0, None, None]
|
|
150
|
+
grid_y = grid_y.expand(B, -1, -1) - pp[:, 1, None, None]
|
|
151
|
+
|
|
152
|
+
if n is None:
|
|
153
|
+
pts3d = torch.empty((B, H, W, 3), device=depth.device)
|
|
154
|
+
pts3d[..., 0] = depth * grid_x / pseudo_focalx
|
|
155
|
+
pts3d[..., 1] = depth * grid_y / pseudo_focaly
|
|
156
|
+
pts3d[..., 2] = depth
|
|
157
|
+
else:
|
|
158
|
+
pts3d = torch.empty((B, H, W, 3, n), device=depth.device)
|
|
159
|
+
pts3d[..., 0, :] = depth * (grid_x / pseudo_focalx)[..., None]
|
|
160
|
+
pts3d[..., 1, :] = depth * (grid_y / pseudo_focaly)[..., None]
|
|
161
|
+
pts3d[..., 2, :] = depth
|
|
162
|
+
return pts3d
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def depthmap_to_camera_coordinates(depthmap, camera_intrinsics, pseudo_focal=None):
|
|
166
|
+
"""
|
|
167
|
+
Args:
|
|
168
|
+
- depthmap (HxW array):
|
|
169
|
+
- camera_intrinsics: a 3x3 matrix
|
|
170
|
+
Returns:
|
|
171
|
+
pointmap of absolute coordinates (HxWx3 array), and a mask specifying valid pixels.
|
|
172
|
+
"""
|
|
173
|
+
camera_intrinsics = np.float32(camera_intrinsics)
|
|
174
|
+
H, W = depthmap.shape
|
|
175
|
+
|
|
176
|
+
# Compute 3D ray associated with each pixel
|
|
177
|
+
# Strong assumption: there are no skew terms
|
|
178
|
+
assert camera_intrinsics[0, 1] == 0.0
|
|
179
|
+
assert camera_intrinsics[1, 0] == 0.0
|
|
180
|
+
if pseudo_focal is None:
|
|
181
|
+
fu = camera_intrinsics[0, 0]
|
|
182
|
+
fv = camera_intrinsics[1, 1]
|
|
183
|
+
else:
|
|
184
|
+
assert pseudo_focal.shape == (H, W)
|
|
185
|
+
fu = fv = pseudo_focal
|
|
186
|
+
cu = camera_intrinsics[0, 2]
|
|
187
|
+
cv = camera_intrinsics[1, 2]
|
|
188
|
+
|
|
189
|
+
u, v = np.meshgrid(np.arange(W), np.arange(H))
|
|
190
|
+
z_cam = depthmap
|
|
191
|
+
x_cam = (u - cu) * z_cam / fu
|
|
192
|
+
y_cam = (v - cv) * z_cam / fv
|
|
193
|
+
X_cam = np.stack((x_cam, y_cam, z_cam), axis=-1).astype(np.float32)
|
|
194
|
+
|
|
195
|
+
# Mask for valid coordinates
|
|
196
|
+
valid_mask = (depthmap > 0.0)
|
|
197
|
+
return X_cam, valid_mask
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def depthmap_to_absolute_camera_coordinates(depthmap, camera_intrinsics, camera_pose, **kw):
|
|
201
|
+
"""
|
|
202
|
+
Args:
|
|
203
|
+
- depthmap (HxW array):
|
|
204
|
+
- camera_intrinsics: a 3x3 matrix
|
|
205
|
+
- camera_pose: a 4x3 or 4x4 cam2world matrix
|
|
206
|
+
Returns:
|
|
207
|
+
pointmap of absolute coordinates (HxWx3 array), and a mask specifying valid pixels."""
|
|
208
|
+
X_cam, valid_mask = depthmap_to_camera_coordinates(depthmap, camera_intrinsics)
|
|
209
|
+
|
|
210
|
+
X_world = X_cam # default
|
|
211
|
+
if camera_pose is not None:
|
|
212
|
+
# R_cam2world = np.float32(camera_params["R_cam2world"])
|
|
213
|
+
# t_cam2world = np.float32(camera_params["t_cam2world"]).squeeze()
|
|
214
|
+
R_cam2world = camera_pose[:3, :3]
|
|
215
|
+
t_cam2world = camera_pose[:3, 3]
|
|
216
|
+
|
|
217
|
+
# Express in absolute coordinates (invalid depth values)
|
|
218
|
+
X_world = np.einsum("ik, vuk -> vui", R_cam2world, X_cam) + t_cam2world[None, None, :]
|
|
219
|
+
|
|
220
|
+
return X_world, valid_mask
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def colmap_to_opencv_intrinsics(K):
|
|
224
|
+
"""
|
|
225
|
+
Modify camera intrinsics to follow a different convention.
|
|
226
|
+
Coordinates of the center of the top-left pixels are by default:
|
|
227
|
+
- (0.5, 0.5) in Colmap
|
|
228
|
+
- (0,0) in OpenCV
|
|
229
|
+
"""
|
|
230
|
+
K = K.copy()
|
|
231
|
+
K[0, 2] -= 0.5
|
|
232
|
+
K[1, 2] -= 0.5
|
|
233
|
+
return K
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def opencv_to_colmap_intrinsics(K):
|
|
237
|
+
"""
|
|
238
|
+
Modify camera intrinsics to follow a different convention.
|
|
239
|
+
Coordinates of the center of the top-left pixels are by default:
|
|
240
|
+
- (0.5, 0.5) in Colmap
|
|
241
|
+
- (0,0) in OpenCV
|
|
242
|
+
"""
|
|
243
|
+
K = K.copy()
|
|
244
|
+
K[0, 2] += 0.5
|
|
245
|
+
K[1, 2] += 0.5
|
|
246
|
+
return K
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
def normalize_pointcloud(pts1, pts2, norm_mode='avg_dis', valid1=None, valid2=None, ret_factor=False):
|
|
250
|
+
""" renorm pointmaps pts1, pts2 with norm_mode
|
|
251
|
+
"""
|
|
252
|
+
assert pts1.ndim >= 3 and pts1.shape[-1] == 3
|
|
253
|
+
assert pts2 is None or (pts2.ndim >= 3 and pts2.shape[-1] == 3)
|
|
254
|
+
norm_mode, dis_mode = norm_mode.split('_')
|
|
255
|
+
|
|
256
|
+
if norm_mode == 'avg':
|
|
257
|
+
# gather all points together (joint normalization)
|
|
258
|
+
nan_pts1, nnz1 = invalid_to_zeros(pts1, valid1, ndim=3)
|
|
259
|
+
nan_pts2, nnz2 = invalid_to_zeros(pts2, valid2, ndim=3) if pts2 is not None else (None, 0)
|
|
260
|
+
all_pts = torch.cat((nan_pts1, nan_pts2), dim=1) if pts2 is not None else nan_pts1
|
|
261
|
+
|
|
262
|
+
# compute distance to origin
|
|
263
|
+
all_dis = all_pts.norm(dim=-1)
|
|
264
|
+
if dis_mode == 'dis':
|
|
265
|
+
pass # do nothing
|
|
266
|
+
elif dis_mode == 'log1p':
|
|
267
|
+
all_dis = torch.log1p(all_dis)
|
|
268
|
+
elif dis_mode == 'warp-log1p':
|
|
269
|
+
# actually warp input points before normalizing them
|
|
270
|
+
log_dis = torch.log1p(all_dis)
|
|
271
|
+
warp_factor = log_dis / all_dis.clip(min=1e-8)
|
|
272
|
+
H1, W1 = pts1.shape[1:-1]
|
|
273
|
+
pts1 = pts1 * warp_factor[:, :W1 * H1].view(-1, H1, W1, 1)
|
|
274
|
+
if pts2 is not None:
|
|
275
|
+
H2, W2 = pts2.shape[1:-1]
|
|
276
|
+
pts2 = pts2 * warp_factor[:, W1 * H1:].view(-1, H2, W2, 1)
|
|
277
|
+
all_dis = log_dis # this is their true distance afterwards
|
|
278
|
+
else:
|
|
279
|
+
raise ValueError(f'bad {dis_mode=}')
|
|
280
|
+
|
|
281
|
+
norm_factor = all_dis.sum(dim=1) / (nnz1 + nnz2 + 1e-8)
|
|
282
|
+
else:
|
|
283
|
+
# gather all points together (joint normalization)
|
|
284
|
+
nan_pts1 = invalid_to_nans(pts1, valid1, ndim=3)
|
|
285
|
+
nan_pts2 = invalid_to_nans(pts2, valid2, ndim=3) if pts2 is not None else None
|
|
286
|
+
all_pts = torch.cat((nan_pts1, nan_pts2), dim=1) if pts2 is not None else nan_pts1
|
|
287
|
+
|
|
288
|
+
# compute distance to origin
|
|
289
|
+
all_dis = all_pts.norm(dim=-1)
|
|
290
|
+
|
|
291
|
+
if norm_mode == 'avg':
|
|
292
|
+
norm_factor = all_dis.nanmean(dim=1)
|
|
293
|
+
elif norm_mode == 'median':
|
|
294
|
+
norm_factor = all_dis.nanmedian(dim=1).values.detach()
|
|
295
|
+
elif norm_mode == 'sqrt':
|
|
296
|
+
norm_factor = all_dis.sqrt().nanmean(dim=1)**2
|
|
297
|
+
else:
|
|
298
|
+
raise ValueError(f'bad {norm_mode=}')
|
|
299
|
+
|
|
300
|
+
norm_factor = norm_factor.clip(min=1e-8)
|
|
301
|
+
while norm_factor.ndim < pts1.ndim:
|
|
302
|
+
norm_factor.unsqueeze_(-1)
|
|
303
|
+
|
|
304
|
+
res = pts1 / norm_factor
|
|
305
|
+
if pts2 is not None:
|
|
306
|
+
res = (res, pts2 / norm_factor)
|
|
307
|
+
if ret_factor:
|
|
308
|
+
res = res + (norm_factor,)
|
|
309
|
+
return res
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
@torch.no_grad()
|
|
313
|
+
def get_joint_pointcloud_depth(z1, z2, valid_mask1, valid_mask2=None, quantile=0.5):
|
|
314
|
+
# set invalid points to NaN
|
|
315
|
+
_z1 = invalid_to_nans(z1, valid_mask1).reshape(len(z1), -1)
|
|
316
|
+
_z2 = invalid_to_nans(z2, valid_mask2).reshape(len(z2), -1) if z2 is not None else None
|
|
317
|
+
_z = torch.cat((_z1, _z2), dim=-1) if z2 is not None else _z1
|
|
318
|
+
|
|
319
|
+
# compute median depth overall (ignoring nans)
|
|
320
|
+
if quantile == 0.5:
|
|
321
|
+
shift_z = torch.nanmedian(_z, dim=-1).values
|
|
322
|
+
else:
|
|
323
|
+
shift_z = torch.nanquantile(_z, quantile, dim=-1)
|
|
324
|
+
return shift_z # (B,)
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
@torch.no_grad()
|
|
328
|
+
def get_joint_pointcloud_center_scale(pts1, pts2, valid_mask1=None, valid_mask2=None, z_only=False, center=True):
|
|
329
|
+
# set invalid points to NaN
|
|
330
|
+
_pts1 = invalid_to_nans(pts1, valid_mask1).reshape(len(pts1), -1, 3)
|
|
331
|
+
_pts2 = invalid_to_nans(pts2, valid_mask2).reshape(len(pts2), -1, 3) if pts2 is not None else None
|
|
332
|
+
_pts = torch.cat((_pts1, _pts2), dim=1) if pts2 is not None else _pts1
|
|
333
|
+
|
|
334
|
+
# compute median center
|
|
335
|
+
_center = torch.nanmedian(_pts, dim=1, keepdim=True).values # (B,1,3)
|
|
336
|
+
if z_only:
|
|
337
|
+
_center[..., :2] = 0 # do not center X and Y
|
|
338
|
+
|
|
339
|
+
# compute median norm
|
|
340
|
+
_norm = ((_pts - _center) if center else _pts).norm(dim=-1)
|
|
341
|
+
scale = torch.nanmedian(_norm, dim=1).values
|
|
342
|
+
return _center[:, None, :, :], scale[:, None, None, None]
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
def find_reciprocal_matches(P1, P2):
|
|
346
|
+
"""
|
|
347
|
+
returns 3 values:
|
|
348
|
+
1 - reciprocal_in_P2: a boolean array of size P2.shape[0], a "True" value indicates a match
|
|
349
|
+
2 - nn2_in_P1: a int array of size P2.shape[0], it contains the indexes of the closest points in P1
|
|
350
|
+
3 - reciprocal_in_P2.sum(): the number of matches
|
|
351
|
+
"""
|
|
352
|
+
tree1 = KDTree(P1)
|
|
353
|
+
tree2 = KDTree(P2)
|
|
354
|
+
|
|
355
|
+
_, nn1_in_P2 = tree2.query(P1, workers=8)
|
|
356
|
+
_, nn2_in_P1 = tree1.query(P2, workers=8)
|
|
357
|
+
|
|
358
|
+
reciprocal_in_P1 = (nn2_in_P1[nn1_in_P2] == np.arange(len(nn1_in_P2)))
|
|
359
|
+
reciprocal_in_P2 = (nn1_in_P2[nn2_in_P1] == np.arange(len(nn2_in_P1)))
|
|
360
|
+
assert reciprocal_in_P1.sum() == reciprocal_in_P2.sum()
|
|
361
|
+
return reciprocal_in_P2, nn2_in_P1, reciprocal_in_P2.sum()
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
def get_med_dist_between_poses(poses):
|
|
365
|
+
from scipy.spatial.distance import pdist
|
|
366
|
+
return np.median(pdist([to_numpy(p[:3, 3]) for p in poses]))
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Copyright (C) 2024-present Naver Corporation. All rights reserved.
|
|
2
|
+
# Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
|
|
3
|
+
#
|
|
4
|
+
# --------------------------------------------------------
|
|
5
|
+
# utilitary functions about images (loading/converting...)
|
|
6
|
+
# --------------------------------------------------------
|
|
7
|
+
import os
|
|
8
|
+
import torch
|
|
9
|
+
import numpy as np
|
|
10
|
+
import PIL.Image
|
|
11
|
+
from PIL.ImageOps import exif_transpose
|
|
12
|
+
import torchvision.transforms as tvf
|
|
13
|
+
os.environ["OPENCV_IO_ENABLE_OPENEXR"] = "1"
|
|
14
|
+
import cv2 # noqa
|
|
15
|
+
|
|
16
|
+
try:
|
|
17
|
+
from pillow_heif import register_heif_opener # noqa
|
|
18
|
+
register_heif_opener()
|
|
19
|
+
heif_support_enabled = True
|
|
20
|
+
except ImportError:
|
|
21
|
+
heif_support_enabled = False
|
|
22
|
+
|
|
23
|
+
ImgNorm = tvf.Compose([tvf.ToTensor(), tvf.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def img_to_arr(img):
|
|
27
|
+
if isinstance(img, str):
|
|
28
|
+
img = imread_cv2(img)
|
|
29
|
+
return img
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def imread_cv2(path, options=cv2.IMREAD_COLOR):
|
|
33
|
+
""" Open an image or a depthmap with opencv-python.
|
|
34
|
+
"""
|
|
35
|
+
if path.endswith(('.exr', 'EXR')):
|
|
36
|
+
options = cv2.IMREAD_ANYDEPTH
|
|
37
|
+
img = cv2.imread(path, options)
|
|
38
|
+
if img is None:
|
|
39
|
+
raise IOError(f'Could not load image={path} with {options=}')
|
|
40
|
+
if img.ndim == 3:
|
|
41
|
+
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
|
|
42
|
+
return img
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def rgb(ftensor, true_shape=None):
|
|
46
|
+
if isinstance(ftensor, list):
|
|
47
|
+
return [rgb(x, true_shape=true_shape) for x in ftensor]
|
|
48
|
+
if isinstance(ftensor, torch.Tensor):
|
|
49
|
+
ftensor = ftensor.detach().cpu().numpy() # H,W,3
|
|
50
|
+
if ftensor.ndim == 3 and ftensor.shape[0] == 3:
|
|
51
|
+
ftensor = ftensor.transpose(1, 2, 0)
|
|
52
|
+
elif ftensor.ndim == 4 and ftensor.shape[1] == 3:
|
|
53
|
+
ftensor = ftensor.transpose(0, 2, 3, 1)
|
|
54
|
+
if true_shape is not None:
|
|
55
|
+
H, W = true_shape
|
|
56
|
+
ftensor = ftensor[:H, :W]
|
|
57
|
+
if ftensor.dtype == np.uint8:
|
|
58
|
+
img = np.float32(ftensor) / 255
|
|
59
|
+
else:
|
|
60
|
+
img = (ftensor * 0.5) + 0.5
|
|
61
|
+
return img.clip(min=0, max=1)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _resize_pil_image(img, long_edge_size):
|
|
65
|
+
S = max(img.size)
|
|
66
|
+
if S > long_edge_size:
|
|
67
|
+
interp = PIL.Image.LANCZOS
|
|
68
|
+
elif S <= long_edge_size:
|
|
69
|
+
interp = PIL.Image.BICUBIC
|
|
70
|
+
new_size = tuple(int(round(x*long_edge_size/S)) for x in img.size)
|
|
71
|
+
return img.resize(new_size, interp)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def load_images(folder_or_list, size, square_ok=False, verbose=True, patch_size=16):
|
|
75
|
+
""" open and convert all images in a list or folder to proper input format for DUSt3R
|
|
76
|
+
"""
|
|
77
|
+
if isinstance(folder_or_list, str):
|
|
78
|
+
if verbose:
|
|
79
|
+
print(f'>> Loading images from {folder_or_list}')
|
|
80
|
+
root, folder_content = folder_or_list, sorted(os.listdir(folder_or_list))
|
|
81
|
+
|
|
82
|
+
elif isinstance(folder_or_list, list):
|
|
83
|
+
if verbose:
|
|
84
|
+
print(f'>> Loading a list of {len(folder_or_list)} images')
|
|
85
|
+
root, folder_content = '', folder_or_list
|
|
86
|
+
|
|
87
|
+
else:
|
|
88
|
+
raise ValueError(f'bad {folder_or_list=} ({type(folder_or_list)})')
|
|
89
|
+
|
|
90
|
+
supported_images_extensions = ['.jpg', '.jpeg', '.png']
|
|
91
|
+
if heif_support_enabled:
|
|
92
|
+
supported_images_extensions += ['.heic', '.heif']
|
|
93
|
+
supported_images_extensions = tuple(supported_images_extensions)
|
|
94
|
+
|
|
95
|
+
imgs = []
|
|
96
|
+
for path in folder_content:
|
|
97
|
+
if not path.lower().endswith(supported_images_extensions):
|
|
98
|
+
continue
|
|
99
|
+
img = exif_transpose(PIL.Image.open(os.path.join(root, path))).convert('RGB')
|
|
100
|
+
W1, H1 = img.size
|
|
101
|
+
if size == 224:
|
|
102
|
+
# resize short side to 224 (then crop)
|
|
103
|
+
img = _resize_pil_image(img, round(size * max(W1/H1, H1/W1)))
|
|
104
|
+
else:
|
|
105
|
+
# resize long side to 512
|
|
106
|
+
img = _resize_pil_image(img, size)
|
|
107
|
+
W, H = img.size
|
|
108
|
+
cx, cy = W//2, H//2
|
|
109
|
+
if size == 224:
|
|
110
|
+
half = min(cx, cy)
|
|
111
|
+
img = img.crop((cx-half, cy-half, cx+half, cy+half))
|
|
112
|
+
else:
|
|
113
|
+
halfw = ((2 * cx) // patch_size) * patch_size / 2
|
|
114
|
+
halfh = ((2 * cy) // patch_size) * patch_size / 2
|
|
115
|
+
if not (square_ok) and W == H:
|
|
116
|
+
halfh = 3*halfw/4
|
|
117
|
+
img = img.crop((cx-halfw, cy-halfh, cx+halfw, cy+halfh))
|
|
118
|
+
|
|
119
|
+
W2, H2 = img.size
|
|
120
|
+
if verbose:
|
|
121
|
+
print(f' - adding {path} with resolution {W1}x{H1} --> {W2}x{H2}')
|
|
122
|
+
imgs.append(dict(img=ImgNorm(img)[None], true_shape=np.int32(
|
|
123
|
+
[img.size[::-1]]), idx=len(imgs), instance=str(len(imgs))))
|
|
124
|
+
|
|
125
|
+
assert imgs, 'no images foud at '+root
|
|
126
|
+
if verbose:
|
|
127
|
+
print(f' (Found {len(imgs)} images)')
|
|
128
|
+
return imgs
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Copyright (C) 2024-present Naver Corporation. All rights reserved.
|
|
2
|
+
# Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
|
|
3
|
+
#
|
|
4
|
+
# --------------------------------------------------------
|
|
5
|
+
# utilitary functions for DUSt3R
|
|
6
|
+
# --------------------------------------------------------
|
|
7
|
+
import torch
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def fill_default_args(kwargs, func):
|
|
11
|
+
import inspect # a bit hacky but it works reliably
|
|
12
|
+
signature = inspect.signature(func)
|
|
13
|
+
|
|
14
|
+
for k, v in signature.parameters.items():
|
|
15
|
+
if v.default is inspect.Parameter.empty:
|
|
16
|
+
continue
|
|
17
|
+
kwargs.setdefault(k, v.default)
|
|
18
|
+
|
|
19
|
+
return kwargs
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def freeze_all_params(modules):
|
|
23
|
+
for module in modules:
|
|
24
|
+
try:
|
|
25
|
+
for n, param in module.named_parameters():
|
|
26
|
+
param.requires_grad = False
|
|
27
|
+
except AttributeError:
|
|
28
|
+
# module is directly a parameter
|
|
29
|
+
module.requires_grad = False
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def is_symmetrized(gt1, gt2):
|
|
33
|
+
x = gt1['instance']
|
|
34
|
+
y = gt2['instance']
|
|
35
|
+
if len(x) == len(y) and len(x) == 1:
|
|
36
|
+
return False # special case of batchsize 1
|
|
37
|
+
ok = True
|
|
38
|
+
for i in range(0, len(x), 2):
|
|
39
|
+
ok = ok and (x[i] == y[i + 1]) and (x[i + 1] == y[i])
|
|
40
|
+
return ok
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def flip(tensor):
|
|
44
|
+
""" flip so that tensor[0::2] <=> tensor[1::2] """
|
|
45
|
+
return torch.stack((tensor[1::2], tensor[0::2]), dim=1).flatten(0, 1)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def interleave(tensor1, tensor2):
|
|
49
|
+
res1 = torch.stack((tensor1, tensor2), dim=1).flatten(0, 1)
|
|
50
|
+
res2 = torch.stack((tensor2, tensor1), dim=1).flatten(0, 1)
|
|
51
|
+
return res1, res2
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def transpose_to_landscape(head, activate=True):
|
|
55
|
+
""" Predict in the correct aspect-ratio,
|
|
56
|
+
then transpose the result in landscape
|
|
57
|
+
and stack everything back together.
|
|
58
|
+
"""
|
|
59
|
+
def wrapper_no(decout, true_shape):
|
|
60
|
+
B = len(true_shape)
|
|
61
|
+
assert true_shape[0:1].allclose(true_shape), 'true_shape must be all identical'
|
|
62
|
+
H, W = true_shape[0].cpu().tolist()
|
|
63
|
+
res = head(decout, (H, W))
|
|
64
|
+
return res
|
|
65
|
+
|
|
66
|
+
def wrapper_yes(decout, true_shape):
|
|
67
|
+
B = len(true_shape)
|
|
68
|
+
# by definition, the batch is in landscape mode so W >= H
|
|
69
|
+
H, W = int(true_shape.min()), int(true_shape.max())
|
|
70
|
+
|
|
71
|
+
height, width = true_shape.T
|
|
72
|
+
is_landscape = (width >= height)
|
|
73
|
+
is_portrait = ~is_landscape
|
|
74
|
+
|
|
75
|
+
# true_shape = true_shape.cpu()
|
|
76
|
+
if is_landscape.all():
|
|
77
|
+
return head(decout, (H, W))
|
|
78
|
+
if is_portrait.all():
|
|
79
|
+
return transposed(head(decout, (W, H)))
|
|
80
|
+
|
|
81
|
+
# batch is a mix of both portraint & landscape
|
|
82
|
+
def selout(ar): return [d[ar] for d in decout]
|
|
83
|
+
l_result = head(selout(is_landscape), (H, W))
|
|
84
|
+
p_result = transposed(head(selout(is_portrait), (W, H)))
|
|
85
|
+
|
|
86
|
+
# allocate full result
|
|
87
|
+
result = {}
|
|
88
|
+
for k in l_result | p_result:
|
|
89
|
+
x = l_result[k].new(B, *l_result[k].shape[1:])
|
|
90
|
+
x[is_landscape] = l_result[k]
|
|
91
|
+
x[is_portrait] = p_result[k]
|
|
92
|
+
result[k] = x
|
|
93
|
+
|
|
94
|
+
return result
|
|
95
|
+
|
|
96
|
+
return wrapper_yes if activate else wrapper_no
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def transposed(dic):
|
|
100
|
+
return {k: v.swapaxes(1, 2) for k, v in dic.items()}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def invalid_to_nans(arr, valid_mask, ndim=999):
|
|
104
|
+
if valid_mask is not None:
|
|
105
|
+
arr = arr.clone()
|
|
106
|
+
arr[~valid_mask] = float('nan')
|
|
107
|
+
if arr.ndim > ndim:
|
|
108
|
+
arr = arr.flatten(-2 - (arr.ndim - ndim), -2)
|
|
109
|
+
return arr
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def invalid_to_zeros(arr, valid_mask, ndim=999):
|
|
113
|
+
if valid_mask is not None:
|
|
114
|
+
arr = arr.clone()
|
|
115
|
+
arr[~valid_mask] = 0
|
|
116
|
+
nnz = valid_mask.view(len(valid_mask), -1).sum(1)
|
|
117
|
+
else:
|
|
118
|
+
nnz = arr.numel() // len(arr) if len(arr) else 0 # number of point per image
|
|
119
|
+
if arr.ndim > ndim:
|
|
120
|
+
arr = arr.flatten(-2 - (arr.ndim - ndim), -2)
|
|
121
|
+
return arr, nnz
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Copyright (C) 2024-present Naver Corporation. All rights reserved.
|
|
2
|
+
# Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
|
|
3
|
+
#
|
|
4
|
+
# --------------------------------------------------------
|
|
5
|
+
# utilitary functions for multiprocessing
|
|
6
|
+
# --------------------------------------------------------
|
|
7
|
+
from tqdm import tqdm
|
|
8
|
+
from multiprocessing.dummy import Pool as ThreadPool
|
|
9
|
+
from multiprocessing import cpu_count
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def parallel_threads(function, args, workers=0, star_args=False, kw_args=False, front_num=1, Pool=ThreadPool, **tqdm_kw):
|
|
13
|
+
""" tqdm but with parallel execution.
|
|
14
|
+
|
|
15
|
+
Will essentially return
|
|
16
|
+
res = [ function(arg) # default
|
|
17
|
+
function(*arg) # if star_args is True
|
|
18
|
+
function(**arg) # if kw_args is True
|
|
19
|
+
for arg in args]
|
|
20
|
+
|
|
21
|
+
Note:
|
|
22
|
+
the <front_num> first elements of args will not be parallelized.
|
|
23
|
+
This can be useful for debugging.
|
|
24
|
+
"""
|
|
25
|
+
while workers <= 0:
|
|
26
|
+
workers += cpu_count()
|
|
27
|
+
if workers == 1:
|
|
28
|
+
front_num = float('inf')
|
|
29
|
+
|
|
30
|
+
# convert into an iterable
|
|
31
|
+
try:
|
|
32
|
+
n_args_parallel = len(args) - front_num
|
|
33
|
+
except TypeError:
|
|
34
|
+
n_args_parallel = None
|
|
35
|
+
args = iter(args)
|
|
36
|
+
|
|
37
|
+
# sequential execution first
|
|
38
|
+
front = []
|
|
39
|
+
while len(front) < front_num:
|
|
40
|
+
try:
|
|
41
|
+
a = next(args)
|
|
42
|
+
except StopIteration:
|
|
43
|
+
return front # end of the iterable
|
|
44
|
+
front.append(function(*a) if star_args else function(**a) if kw_args else function(a))
|
|
45
|
+
|
|
46
|
+
# then parallel execution
|
|
47
|
+
out = []
|
|
48
|
+
with Pool(workers) as pool:
|
|
49
|
+
# Pass the elements of args into function
|
|
50
|
+
if star_args:
|
|
51
|
+
futures = pool.imap(starcall, [(function, a) for a in args])
|
|
52
|
+
elif kw_args:
|
|
53
|
+
futures = pool.imap(starstarcall, [(function, a) for a in args])
|
|
54
|
+
else:
|
|
55
|
+
futures = pool.imap(function, args)
|
|
56
|
+
# Print out the progress as tasks complete
|
|
57
|
+
for f in tqdm(futures, total=n_args_parallel, **tqdm_kw):
|
|
58
|
+
out.append(f)
|
|
59
|
+
return front + out
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def parallel_processes(*args, **kwargs):
|
|
63
|
+
""" Same as parallel_threads, with processes
|
|
64
|
+
"""
|
|
65
|
+
import multiprocessing as mp
|
|
66
|
+
kwargs['Pool'] = mp.Pool
|
|
67
|
+
return parallel_threads(*args, **kwargs)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def starcall(args):
|
|
71
|
+
""" convenient wrapper for Process.Pool """
|
|
72
|
+
function, args = args
|
|
73
|
+
return function(*args)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def starstarcall(args):
|
|
77
|
+
""" convenient wrapper for Process.Pool """
|
|
78
|
+
function, args = args
|
|
79
|
+
return function(**args)
|