{"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/groomed-nms-grouped-mathematically","title":"GrooMeD-NMS: Grouped Mathematically Differentiable NMS for Monocular 3D Object Detection","arxiv_id":"2103.17202","date":"2021-03-31","proceeding":"CVPR 2021 1","authors":["Abhinav Kumar","Garrick Brazil","Xiaoming Liu"],"abstract":"Modern 3D object detectors have immensely benefited from the end-to-end learning idea. However, most of them use a post-processing algorithm called Non-Maximal Suppression (NMS) only during inference. While there were attempts to include NMS in the training pipeline for tasks such as 2D object detection, they have been less widely adopted due to a non-mathematical expression of the NMS. In this paper, we present and integrate GrooMeD-NMS -- a novel Grouped Mathematically Differentiable NMS for monocular 3D object detection, such that the network is trained end-to-end with a loss on the boxes after NMS. We first formulate NMS as a matrix operation and then group and mask the boxes in an unsupervised manner to obtain a simple closed-form expression of the NMS. GrooMeD-NMS addresses the mismatch between training and inference pipelines and, therefore, forces the network to select the best 3D box in a differentiable manner. As a result, GrooMeD-NMS achieves state-of-the-art monocular 3D object detection results on the KITTI benchmark dataset performing comparably to monocular video-based methods. Code and models at https://github.com/abhi1kumar/groomed_nms","url_abs":"https://arxiv.org/abs/2103.17202v1","url_pdf":"https://arxiv.org/pdf/2103.17202v1.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":"groomed-nms-grouped-mathematically","repo_url":"https://github.com/abhi1kumar/groomed_nms","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"2d-object-detection","task_name":"2D Object Detection"},{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"3d-object-detection-from-monocular-images","task_name":"3D Object Detection From Monocular Images"},{"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":[{"leaderboard":"/sota/3d-object-detection-from-monocular-images-on-7","task":"3D Object Detection From Monocular Images","dataset":"KITTI-360","model":"GrooMeD-NMS","rank_in_archive_order":11,"of":11,"metrics":{"AP25":"16.12","AP50":"0.17"},"uses_additional_data":false},{"leaderboard":"/sota/monocular-3d-object-detection-on-kitti-cars","task":"Monocular 3D Object Detection","dataset":"KITTI Cars Moderate","model":"GrooMeD-NMS","rank_in_archive_order":17,"of":29,"metrics":{"AP Medium":"12.32"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.17202","atlas_url":"https://app.syntology.ai/?focus=2103.17202","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.17202"}},"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/abhi1kumar/groomed_nms","reach":null}],"summary":{"ran_draft_wrong":3,"ran_fixture":1,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"04ad3cb3cbd977c2","entry":"cast_to_cpu_cuda_tensor","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"04ad3cb3cbd977c2"}},{"code_sha256_prefix":"43c8ee53afde7f84","entry":"get_groups","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"43c8ee53afde7f84"}},{"code_sha256_prefix":"d9ff1aadcc385d0f","entry":"pruning_function","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.py","link_basis":"first_harvest_node","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":"d9ff1aadcc385d0f"}},{"code_sha256_prefix":"f8a26ac1c00da1b4","entry":"sigmoid_numpy","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f8a26ac1c00da1b4"}},{"code_sha256_prefix":"94bbd14e775148be","entry":"soft_sort","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"94bbd14e775148be"}},{"code_sha256_prefix":"f4865c086d476c14","entry":"differentiable_nms","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.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":"f4865c086d476c14"}},{"code_sha256_prefix":"a18e3e8e59a26e46","entry":"indices_copy","repo":"abhi1kumar/groomed_nms","repo_kind":"official","path":"lib/groomed_nms.py","file_url":"https://github.com/abhi1kumar/groomed_nms/blob/HEAD/lib/groomed_nms.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":"a18e3e8e59a26e46"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}