{"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/geonet-unsupervised-learning-of-dense-depth","title":"GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose","arxiv_id":"1803.02276","date":"2018-03-06","proceeding":"CVPR 2018 6","authors":["Zhichao Yin","Jianping Shi"],"abstract":"We propose GeoNet, a jointly unsupervised learning framework for monocular\ndepth, optical flow and ego-motion estimation from videos. The three components\nare coupled by the nature of 3D scene geometry, jointly learned by our\nframework in an end-to-end manner. Specifically, geometric relationships are\nextracted over the predictions of individual modules and then combined as an\nimage reconstruction loss, reasoning about static and dynamic scene parts\nseparately. Furthermore, we propose an adaptive geometric consistency loss to\nincrease robustness towards outliers and non-Lambertian regions, which resolves\nocclusions and texture ambiguities effectively. Experimentation on the KITTI\ndriving dataset reveals that our scheme achieves state-of-the-art results in\nall of the three tasks, performing better than previously unsupervised methods\nand comparably with supervised ones.","url_abs":"http://arxiv.org/abs/1803.02276v2","url_pdf":"http://arxiv.org/pdf/1803.02276v2.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":"geonet-unsupervised-learning-of-dense-depth","repo_url":"https://github.com/yzcjtr/GeoNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"geonet-unsupervised-learning-of-dense-depth","repo_url":"https://github.com/raunaks13/GeoNet-PyTorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"geonet-unsupervised-learning-of-dense-depth","repo_url":"https://github.com/yijie0710/GeoNet_pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"camera-pose-estimation","task_name":"Camera Pose Estimation"},{"task_slug":"image-reconstruction","task_name":"Image Reconstruction"},{"task_slug":"motion-estimation","task_name":"Motion Estimation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/camera-pose-estimation-on-kitti-odometry","task":"Camera Pose Estimation","dataset":"KITTI Odometry Benchmark","model":"GeoNet","rank_in_archive_order":5,"of":7,"metrics":{"Absolute Trajectory Error [m]":"100.75","Average Rotational Error er[%]":"9.40","Average Translational Error et[%]":"26.31"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-kitti-2015","task":"Pose Estimation","dataset":"KITTI 2015","model":"GeoNet","rank_in_archive_order":1,"of":1,"metrics":{"Average End-Point Error":"10.81"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1803.02276","atlas_url":"https://app.syntology.ai/?focus=1803.02276","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.02276"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yzcjtr/GeoNet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yijie0710/GeoNet_pytorch","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/raunaks13/GeoNet-PyTorch","reach":{"status":"ok"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"d83582de454a0b40","entry":"compute_errors","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"kitti_eval/depth_evaluation_utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/kitti_eval/depth_evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d83582de454a0b40"}},{"code_sha256_prefix":"cf98eb3840092327","entry":"convert_disps_to_depths_kitti","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"kitti_eval/depth_evaluation_utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/kitti_eval/depth_evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cf98eb3840092327"}},{"code_sha256_prefix":"46a3f7669dcd8ad5","entry":"euler2mat","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"46a3f7669dcd8ad5"}},{"code_sha256_prefix":"6f8a54ff22b913e2","entry":"load_gt_disp_kitti","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"kitti_eval/depth_evaluation_utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/kitti_eval/depth_evaluation_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6f8a54ff22b913e2"}},{"code_sha256_prefix":"8fc3bf3cf5e6a6ba","entry":"load_image_sequence","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"geonet_test_pose.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/geonet_test_pose.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8fc3bf3cf5e6a6ba"}},{"code_sha256_prefix":"883ac80de85205ef","entry":"pixel2cam","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"883ac80de85205ef"}},{"code_sha256_prefix":"82c27adf53eb9d69","entry":"pose_vec2mat","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"utils.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82c27adf53eb9d69"}},{"code_sha256_prefix":"65362a4a8daa0fdd","entry":"unpack_image_sequence","repo":"yzcjtr/GeoNet","repo_kind":"official","path":"geonet_test_flow.py","file_url":"https://github.com/yzcjtr/GeoNet/blob/HEAD/geonet_test_flow.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"65362a4a8daa0fdd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}