{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/matching-2d-images-in-3d-metric-relative-pose","title":"Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences","arxiv_id":"2404.06337","date":"2024-04-09","proceeding":"CVPR 2024 1","authors":["Axel Barroso-Laguna","Sowmya Munukutla","Victor Adrian Prisacariu","Eric Brachmann"],"abstract":"Given two images, we can estimate the relative camera pose between them by establishing image-to-image correspondences. Usually, correspondences are 2D-to-2D and the pose we estimate is defined only up to scale. Some applications, aiming at instant augmented reality anywhere, require scale-metric pose estimates, and hence, they rely on external depth estimators to recover the scale. We present MicKey, a keypoint matching pipeline that is able to predict metric correspondences in 3D camera space. By learning to match 3D coordinates across images, we are able to infer the metric relative pose without depth measurements. Depth measurements are also not required for training, nor are scene reconstructions or image overlap information. MicKey is supervised only by pairs of images and their relative poses. MicKey achieves state-of-the-art performance on the Map-Free Relocalisation benchmark while requiring less supervision than competing approaches.","url_abs":"https://arxiv.org/abs/2404.06337v1","url_pdf":"https://arxiv.org/pdf/2404.06337v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"matching-2d-images-in-3d-metric-relative-pose","repo_url":"https://github.com/nianticlabs/mickey","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.06337","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.06337"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nianticlabs/mickey","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":3,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":4,"samples":[{"code_sha256_prefix":"b4c5ee4f94a9a717","entry":"project","repo":"nianticlabs/mickey","repo_kind":"official","path":"benchmark/reprojection.py","file_url":"https://github.com/nianticlabs/mickey/blob/HEAD/benchmark/reprojection.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b4c5ee4f94a9a717"}},{"code_sha256_prefix":"66b8da07420ba000","entry":"read_color_image","repo":"nianticlabs/mickey","repo_kind":"official","path":"demo_inference.py","file_url":"https://github.com/nianticlabs/mickey/blob/HEAD/demo_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"66b8da07420ba000"}},{"code_sha256_prefix":"a79b9961b9bd5c55","entry":"subsample_poses","repo":"nianticlabs/mickey","repo_kind":"official","path":"benchmark/utils.py","file_url":"https://github.com/nianticlabs/mickey/blob/HEAD/benchmark/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"a79b9961b9bd5c55"}},{"code_sha256_prefix":"eb9fd1ef58856b2e","entry":"plot_perfect_curve","repo":"nianticlabs/mickey","repo_kind":"official","path":"benchmark/mapfree.py","file_url":"https://github.com/nianticlabs/mickey/blob/HEAD/benchmark/mapfree.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"eb9fd1ef58856b2e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}