Guang Chen, Ziqiao Wang, Junqiao Zhao, Tiantian Feng, Qiwen Gu, Xufei Wang, Siyue Tao
We lifted 15 functions out of this paper's own repositories and ran 2 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| Gucci233/MutualVPR | canonical | 2 of 15 |
| Function | Status | Where it lives |
|---|---|---|
| gem | Ran | Gucci233/MutualVPR/cosplace_model/layers.py pointer only (licence: NONE) · get_code("79f68aea8273d062") |
| named_apply | Ran | Gucci233/MutualVPR/backbone/vision_transformer.py pointer only (licence: NONE) · get_code("e7fcb6d9ac9deaf4") |
| cluster_acc | Not yet run | Gucci233/MutualVPR/util.py pointer only (licence: NONE) · get_code("4033a01764a10bf0") |
| cosine_sim | Not yet run | Gucci233/MutualVPR/cosface_loss.py pointer only (licence: NONE) · get_code("d7ebec9a9c0c9b14") |
| eva | Not yet run | Gucci233/MutualVPR/util.py pointer only (licence: NONE) · get_code("7eaa679765840da6") |
| get_backbone | Not yet run | Gucci233/MutualVPR/cosplace_model/cosplace_network.py pointer only (licence: NONE) · get_code("98e6824b3bb0eef9") |
| get_crop_image | Not yet run | Gucci233/MutualVPR/datasets/dataset_utils.py pointer only (licence: NONE) · get_code("f220669505374432") |
| get_pretrained_torchvision_model | Not yet run | Gucci233/MutualVPR/cosplace_model/cosplace_network.py pointer only (licence: NONE) · get_code("4102a46eb0cc1ac7") |
| get_training_query_set | Not yet run | Gucci233/MutualVPR/datasets/pittsburgh.py pointer only (licence: NONE) · get_code("a344fab75c51fe9a") |
| get_whole_training_set | Not yet run | Gucci233/MutualVPR/datasets/pittsburgh.py pointer only (licence: NONE) · get_code("ccc715a4170f75e9") |
| input_transform | Not yet run | Gucci233/MutualVPR/datasets/tokyo247.py pointer only (licence: NONE) · get_code("e7fce521294dd6b0") |
| parse_arguments | Not yet run | Gucci233/MutualVPR/myparser.py pointer only (licence: NONE) · get_code("dd6baf8e06f292e1") |
| parse_dbStruct | Not yet run | Gucci233/MutualVPR/datasets/pittsburgh.py pointer only (licence: NONE) · get_code("b621be8f9984138e") |
| read_images_paths | Not yet run | Gucci233/MutualVPR/datasets/dataset_utils.py pointer only (licence: NONE) · get_code("6e1ab6206b79c01f") |
| read_pano_images_paths | Not yet run | Gucci233/MutualVPR/datasets/dataset_utils.py pointer only (licence: NONE) · get_code("16e7f712c3144990") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Visual Place Recognition (VPR) enables robust localization through image retrieval based on learned descriptors. However, drastic appearance variations of images at the same place caused by viewpoint changes can lead to inconsistent supervision signals, thereby degrading descriptor learning. Existing methods either rely on manually defined cropping rules or labeled data for view differentiation, but they suffer from two major limitations: (1) reliance on labels or handcrafted rules restricts generalization capability; (2) even within the same view direction, occlusions can introduce feature ambiguity. To address these issues, we propose MutualVPR, a mutual learning framework that integrates unsupervised view self-classification and descriptor learning. We first group images by geographic coordinates, then iteratively refine the clusters using K-means to dynamically assign place categories without orientation labels. Specifically, we adopt a DINOv2-based encoder to initialize the clustering. During training, the encoder and clustering co-evolve, progressively separating drastic appearance variations of the same place and enabling consistent supervision. Furthermore, we find that capturing fine-grained image differences at a place enhances robustness. Experiments demonstrate that MutualVPR achieves state-of-the-art (SOTA) performance across multiple datasets, validating the effectiveness of our framework in improving view direction generalization, occlusion robustness. The code can be found at https://github.com/Gucci233/MutualVPR.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2412.09199")
get_code_for_paper("2412.09199")
have("2412.09199")
Connect an agent — have() is free.