{"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/monocd-monocular-3d-object-detection-with","title":"MonoCD: Monocular 3D Object Detection with Complementary Depths","arxiv_id":"2404.03181","date":"2024-04-04","proceeding":"CVPR 2024 1","authors":["Longfei Yan","Pei Yan","Shengzhou Xiong","Xuanyu Xiang","Yihua Tan"],"abstract":"Monocular 3D object detection has attracted widespread attention due to its potential to accurately obtain object 3D localization from a single image at a low cost. Depth estimation is an essential but challenging subtask of monocular 3D object detection due to the ill-posedness of 2D to 3D mapping. Many methods explore multiple local depth clues such as object heights and keypoints and then formulate the object depth estimation as an ensemble of multiple depth predictions to mitigate the insufficiency of single-depth information. However, the errors of existing multiple depths tend to have the same sign, which hinders them from neutralizing each other and limits the overall accuracy of combined depth. To alleviate this problem, we propose to increase the complementarity of depths with two novel designs. First, we add a new depth prediction branch named complementary depth that utilizes global and efficient depth clues from the entire image rather than the local clues to reduce the correlation of depth predictions. Second, we propose to fully exploit the geometric relations between multiple depth clues to achieve complementarity in form. Benefiting from these designs, our method achieves higher complementarity. Experiments on the KITTI benchmark demonstrate that our method achieves state-of-the-art performance without introducing extra data. In addition, complementary depth can also be a lightweight and plug-and-play module to boost multiple existing monocular 3d object detectors. Code is available at https://github.com/elvintanhust/MonoCD.","url_abs":"https://arxiv.org/abs/2404.03181v1","url_pdf":"https://arxiv.org/pdf/2404.03181v1.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":"monocd-monocular-3d-object-detection-with","repo_url":"https://github.com/elvintanhust/monocd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"depth-prediction","task_name":"Depth Prediction"},{"task_slug":"monocular-3d-object-detection","task_name":"Monocular 3D Object Detection"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.03181","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.03181"}},"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/elvintanhust/monocd","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/elvintanhust/MonoCD","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"ran_fixture":1,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":6,"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":0,"samples":[{"code_sha256_prefix":"8d31e92618998e55","entry":"Depth_Refine_Loss","repo":"elvintanhust/MonoCD","repo_kind":"official","path":"model/head/depth_losses.py","file_url":"https://github.com/elvintanhust/MonoCD/blob/HEAD/model/head/depth_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8d31e92618998e55"}},{"code_sha256_prefix":"6cbf46794989b731","entry":"cat","repo":"elvintanhust/monocd","repo_kind":"official","path":"model/utils.py","file_url":"https://github.com/elvintanhust/monocd/blob/HEAD/model/utils.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6cbf46794989b731"}},{"code_sha256_prefix":"5a951495ac113177","entry":"strip_prefix_if_present","repo":"elvintanhust/monocd","repo_kind":"official","path":"utils/model_serialization.py","file_url":"https://github.com/elvintanhust/monocd/blob/HEAD/utils/model_serialization.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5a951495ac113177"}},{"code_sha256_prefix":"65a16c264996059d","entry":"affine_transform","repo":"elvintanhust/monocd","repo_kind":"official","path":"model/heatmap_coder.py","file_url":"https://github.com/elvintanhust/monocd/blob/HEAD/model/heatmap_coder.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":"65a16c264996059d"}},{"code_sha256_prefix":"c044d44b5a7087e4","entry":"gaussian_radius","repo":"elvintanhust/monocd","repo_kind":"official","path":"model/heatmap_coder.py","file_url":"https://github.com/elvintanhust/monocd/blob/HEAD/model/heatmap_coder.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":"c044d44b5a7087e4"}},{"code_sha256_prefix":"194052ec40659a42","entry":"get_transfrom_matrix","repo":"elvintanhust/monocd","repo_kind":"official","path":"model/heatmap_coder.py","file_url":"https://github.com/elvintanhust/monocd/blob/HEAD/model/heatmap_coder.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":"194052ec40659a42"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}