{"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/learning-auxiliary-monocular-contexts-helps","title":"Learning Auxiliary Monocular Contexts Helps Monocular 3D Object Detection","arxiv_id":"2112.04628","date":"2021-12-09","proceeding":null,"authors":["Xianpeng Liu","Nan Xue","Tianfu Wu"],"abstract":"Monocular 3D object detection aims to localize 3D bounding boxes in an input single 2D image. It is a highly challenging problem and remains open, especially when no extra information (e.g., depth, lidar and/or multi-frames) can be leveraged in training and/or inference. This paper proposes a simple yet effective formulation for monocular 3D object detection without exploiting any extra information. It presents the MonoCon method which learns Monocular Contexts, as auxiliary tasks in training, to help monocular 3D object detection. The key idea is that with the annotated 3D bounding boxes of objects in an image, there is a rich set of well-posed projected 2D supervision signals available in training, such as the projected corner keypoints and their associated offset vectors with respect to the center of 2D bounding box, which should be exploited as auxiliary tasks in training. The proposed MonoCon is motivated by the Cramer-Wold theorem in measure theory at a high level. In implementation, it utilizes a very simple end-to-end design to justify the effectiveness of learning auxiliary monocular contexts, which consists of three components: a Deep Neural Network (DNN) based feature backbone, a number of regression head branches for learning the essential parameters used in the 3D bounding box prediction, and a number of regression head branches for learning auxiliary contexts. After training, the auxiliary context regression branches are discarded for better inference efficiency. In experiments, the proposed MonoCon is tested in the KITTI benchmark (car, pedestrain and cyclist). It outperforms all prior arts in the leaderboard on car category and obtains comparable performance on pedestrian and cyclist in terms of accuracy. Thanks to the simple design, the proposed MonoCon method obtains the fastest inference speed with 38.7 fps in comparisons","url_abs":"https://arxiv.org/abs/2112.04628v1","url_pdf":"https://arxiv.org/pdf/2112.04628v1.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":"learning-auxiliary-monocular-contexts-helps","repo_url":"https://github.com/Xianpeng919/MonoCon","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-auxiliary-monocular-contexts-helps","repo_url":"https://github.com/2gunsu/monocon-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"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"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/monocular-3d-object-detection-on-kitti-cars","task":"Monocular 3D Object Detection","dataset":"KITTI Cars Moderate","model":"MonoCon","rank_in_archive_order":6,"of":29,"metrics":{"AP Medium":"16.46"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2112.04628","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.04628"}},"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/Xianpeng919/MonoCon","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2gunsu/monocon-pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":10,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":12,"ran":11,"repositories":1},"listed":{"samples":3,"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":12,"samples":[{"code_sha256_prefix":"8d35a41368d8dd47","entry":"average_precision","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/indoor_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/indoor_eval.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":"8d35a41368d8dd47"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/models/backbones/dla.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/models/backbones/dla.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"2283234eb1863906","entry":"eval_det_cls","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/indoor_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/indoor_eval.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":"2283234eb1863906"}},{"code_sha256_prefix":"7f5f5b45cabc7d55","entry":"fast_hist","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/seg_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/seg_eval.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":"7f5f5b45cabc7d55"}},{"code_sha256_prefix":"8e0fe6a5879c5be2","entry":"gaussian2D","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.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":"8e0fe6a5879c5be2"}},{"code_sha256_prefix":"8750f1686af02600","entry":"gaussian_radius","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.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":"8750f1686af02600"}},{"code_sha256_prefix":"63ff0ac2249fbb30","entry":"gen_gaussian_target","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/mmdetection-2.11.0-extra-monocon/mmdet/models/utils/gaussian_target.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":"63ff0ac2249fbb30"}},{"code_sha256_prefix":"a589d35b09bfb8db","entry":"generate_record","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/create_data_tools_monocon/data_converter/kitti_converter.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/create_data_tools_monocon/data_converter/kitti_converter.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":"a589d35b09bfb8db"}},{"code_sha256_prefix":"fcd32f0316ac7cac","entry":"get_acc","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/seg_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/seg_eval.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":"fcd32f0316ac7cac"}},{"code_sha256_prefix":"3c9867a84d7c18d9","entry":"get_model_url","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/models/backbones/dla.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/models/backbones/dla.py","link_basis":"plan_row","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":"3c9867a84d7c18d9"}},{"code_sha256_prefix":"4018d47e1ea5a2ce","entry":"per_class_iou","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/seg_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/seg_eval.py","link_basis":"first_harvest_node","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":"4018d47e1ea5a2ce"}},{"code_sha256_prefix":"3e68c67f05177852","entry":"eval_map_recall","repo":"Xianpeng919/MonoCon","repo_kind":"official","path":"monocon/mmdet3d/core/evaluation/indoor_eval.py","file_url":"https://github.com/Xianpeng919/MonoCon/blob/HEAD/monocon/mmdet3d/core/evaluation/indoor_eval.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":"3e68c67f05177852"}},{"code_sha256_prefix":"19a94ffb350de071","entry":"reduce_loss","repo":"2gunsu/monocon-pytorch","repo_kind":"listed","path":"losses/utils.py","file_url":"https://github.com/2gunsu/monocon-pytorch/blob/HEAD/losses/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"19a94ffb350de071"}},{"code_sha256_prefix":"d02fb39bb36bc9f7","entry":"weight_reduce_loss","repo":"2gunsu/monocon-pytorch","repo_kind":"listed","path":"losses/utils.py","file_url":"https://github.com/2gunsu/monocon-pytorch/blob/HEAD/losses/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d02fb39bb36bc9f7"}},{"code_sha256_prefix":"768c0597a766ae51","entry":"weighted_loss","repo":"2gunsu/monocon-pytorch","repo_kind":"listed","path":"losses/utils.py","file_url":"https://github.com/2gunsu/monocon-pytorch/blob/HEAD/losses/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"768c0597a766ae51"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}