{"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/dualrefine-self-supervised-depth-and-pose","title":"DualRefine: Self-Supervised Depth and Pose Estimation Through Iterative Epipolar Sampling and Refinement Toward Equilibrium","arxiv_id":"2304.03560","date":"2023-04-07","proceeding":"CVPR 2023 1","authors":["Antyanta Bangunharcana","Ahmed Magd","Kyung-Soo Kim"],"abstract":"Self-supervised multi-frame depth estimation achieves high accuracy by computing matching costs of pixel correspondences between adjacent frames, injecting geometric information into the network. These pixel-correspondence candidates are computed based on the relative pose estimates between the frames. Accurate pose predictions are essential for precise matching cost computation as they influence the epipolar geometry. Furthermore, improved depth estimates can, in turn, be used to align pose estimates. Inspired by traditional structure-from-motion (SfM) principles, we propose the DualRefine model, which tightly couples depth and pose estimation through a feedback loop. Our novel update pipeline uses a deep equilibrium model framework to iteratively refine depth estimates and a hidden state of feature maps by computing local matching costs based on epipolar geometry. Importantly, we used the refined depth estimates and feature maps to compute pose updates at each step. This update in the pose estimates slowly alters the epipolar geometry during the refinement process. Experimental results on the KITTI dataset demonstrate competitive depth prediction and odometry prediction performance surpassing published self-supervised baselines.","url_abs":"https://arxiv.org/abs/2304.03560v2","url_pdf":"https://arxiv.org/pdf/2304.03560v2.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":"dualrefine-self-supervised-depth-and-pose","repo_url":"https://github.com/antabangun/dualrefine","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"dualrefine-self-supervised-depth-and-pose","repo_url":"https://github.com/antabangun/coex","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"depth-prediction","task_name":"Depth Prediction"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.03560","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.03560"}},"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/antabangun/dualrefine","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/antabangun/coex","reach":null}],"summary":{"ran":9,"unverified":3},"by_repo_kind":{"listed":{"samples":12,"ran":9,"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":12,"samples":[{"code_sha256_prefix":"6c95e5ff30e64afb","entry":"AttentionCostVolume","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6c95e5ff30e64afb"}},{"code_sha256_prefix":"18047492f074721c","entry":"BasicBlock","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"18047492f074721c"}},{"code_sha256_prefix":"f71bfc07fbf21bdb","entry":"BasicConv","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f71bfc07fbf21bdb"}},{"code_sha256_prefix":"c69dc4c45a088234","entry":"Conv2x","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c69dc4c45a088234"}},{"code_sha256_prefix":"eae7a9d6cf7abf20","entry":"CostVolume","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"eae7a9d6cf7abf20"}},{"code_sha256_prefix":"e1319551ee7b97c5","entry":"FeatUp","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e1319551ee7b97c5"}},{"code_sha256_prefix":"d1af0c900f90009a","entry":"PSMBasicBlock","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d1af0c900f90009a"}},{"code_sha256_prefix":"90e1616a76950902","entry":"Regression","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"90e1616a76950902"}},{"code_sha256_prefix":"be8b7734951931e7","entry":"channelAtt","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"be8b7734951931e7"}},{"code_sha256_prefix":"0c540f6ba2003637","entry":"Aggregation","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"0c540f6ba2003637"}},{"code_sha256_prefix":"0fe16c5160b83416","entry":"CoEx","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"0fe16c5160b83416"}},{"code_sha256_prefix":"8c44be6dba895858","entry":"Feature","repo":"antabangun/coex","repo_kind":"listed","path":"models/stereo/CoEx.py","file_url":"https://github.com/antabangun/coex/blob/HEAD/models/stereo/CoEx.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"8c44be6dba895858"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}