{"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/gasmono-geometry-aided-self-supervised-1","title":"GasMono: Geometry-Aided Self-Supervised Monocular Depth Estimation for Indoor Scenes","arxiv_id":"2309.16019","date":"2023-09-26","proceeding":"ICCV 2023 1","authors":["Chaoqiang Zhao","Matteo Poggi","Fabio Tosi","Lei Zhou","Qiyu Sun","Yang Tang","Stefano Mattoccia"],"abstract":"This paper tackles the challenges of self-supervised monocular depth estimation in indoor scenes caused by large rotation between frames and low texture. We ease the learning process by obtaining coarse camera poses from monocular sequences through multi-view geometry to deal with the former. However, we found that limited by the scale ambiguity across different scenes in the training dataset, a na\\\"ive introduction of geometric coarse poses cannot play a positive role in performance improvement, which is counter-intuitive. To address this problem, we propose to refine those poses during training through rotation and translation/scale optimization. To soften the effect of the low texture, we combine the global reasoning of vision transformers with an overfitting-aware, iterative self-distillation mechanism, providing more accurate depth guidance coming from the network itself. Experiments on NYUv2, ScanNet, 7scenes, and KITTI datasets support the effectiveness of each component in our framework, which sets a new state-of-the-art for indoor self-supervised monocular depth estimation, as well as outstanding generalization ability. Code and models are available at https://github.com/zxcqlf/GasMono","url_abs":"https://arxiv.org/abs/2309.16019v1","url_pdf":"https://arxiv.org/pdf/2309.16019v1.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":"gasmono-geometry-aided-self-supervised-1","repo_url":"https://github.com/zxcqlf/gasmono","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"monocular-depth-estimation","task_name":"Monocular Depth Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2309.16019","atlas_url":"https://app.syntology.ai/?focus=2309.16019","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.16019"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"deterministic:regex_extraction","url":"https://github.com/zxcqlf/GasMono","reach":{"status":"ok"}}],"summary":{"ran_fixture":2,"ran_honours":1,"ran":9,"unverified":1},"by_repo_kind":{"official":{"samples":13,"ran":12,"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":13,"samples":[{"code_sha256_prefix":"a8814cc5c348b987","entry":"batch_post_process_disparity","repo":"zxcqlf/GasMono","repo_kind":"official","path":"evaluate_nyu.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/evaluate_nyu.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a8814cc5c348b987"}},{"code_sha256_prefix":"edd4f86e8f02732f","entry":"compute_errors","repo":"zxcqlf/GasMono","repo_kind":"official","path":"evaluate_nyu.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/evaluate_nyu.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"edd4f86e8f02732f"}},{"code_sha256_prefix":"572a295bc8e11e7d","entry":"depth_to_disp","repo":"zxcqlf/GasMono","repo_kind":"official","path":"networks/hr_layers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/networks/hr_layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"572a295bc8e11e7d"}},{"code_sha256_prefix":"62287188376f0ba0","entry":"disp_to_depth","repo":"zxcqlf/GasMono","repo_kind":"official","path":"layers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"62287188376f0ba0"}},{"code_sha256_prefix":"50237babd07c2e3b","entry":"dpr_generator","repo":"zxcqlf/GasMono","repo_kind":"official","path":"networks/mpvit.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/networks/mpvit.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"50237babd07c2e3b"}},{"code_sha256_prefix":"8bfc895e86bfc7bc","entry":"load_velodyne_points","repo":"zxcqlf/GasMono","repo_kind":"official","path":"kitti_utils.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/kitti_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8bfc895e86bfc7bc"}},{"code_sha256_prefix":"ff833c099a80a327","entry":"read_calib_file","repo":"zxcqlf/GasMono","repo_kind":"official","path":"kitti_utils.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/kitti_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ff833c099a80a327"}},{"code_sha256_prefix":"ab7c813560099f29","entry":"resnet_multiimage_input","repo":"zxcqlf/GasMono","repo_kind":"official","path":"networks/resnet_encoder.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/networks/resnet_encoder.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ab7c813560099f29"}},{"code_sha256_prefix":"04e9b96b63844176","entry":"sub2ind","repo":"zxcqlf/GasMono","repo_kind":"official","path":"kitti_utils.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/kitti_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"04e9b96b63844176"}},{"code_sha256_prefix":"cdc03d6bfc4d3a34","entry":"transformation_from_parameters","repo":"zxcqlf/GasMono","repo_kind":"official","path":"layers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cdc03d6bfc4d3a34"}},{"code_sha256_prefix":"a739072b350093e7","entry":"upsample","repo":"zxcqlf/GasMono","repo_kind":"official","path":"networks/hr_layers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/networks/hr_layers.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a739072b350093e7"}},{"code_sha256_prefix":"062fcbd32b87f576","entry":"upsample_disp","repo":"zxcqlf/GasMono","repo_kind":"official","path":"networks/hrlayers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/networks/hrlayers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"062fcbd32b87f576"}},{"code_sha256_prefix":"b0592f21d2e516ed","entry":"transformation_from_gtmsrtpose","repo":"zxcqlf/GasMono","repo_kind":"official","path":"layers.py","file_url":"https://github.com/zxcqlf/GasMono/blob/HEAD/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b0592f21d2e516ed"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}