{"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/behind-the-curtain-learning-occluded-shapes","title":"Behind the Curtain: Learning Occluded Shapes for 3D Object Detection","arxiv_id":"2112.02205","date":"2021-12-04","proceeding":null,"authors":["Qiangeng Xu","Yiqi Zhong","Ulrich Neumann"],"abstract":"Advances in LiDAR sensors provide rich 3D data that supports 3D scene understanding. However, due to occlusion and signal miss, LiDAR point clouds are in practice 2.5D as they cover only partial underlying shapes, which poses a fundamental challenge to 3D perception. To tackle the challenge, we present a novel LiDAR-based 3D object detection model, dubbed Behind the Curtain Detector (BtcDet), which learns the object shape priors and estimates the complete object shapes that are partially occluded (curtained) in point clouds. BtcDet first identifies the regions that are affected by occlusion and signal miss. In these regions, our model predicts the probability of occupancy that indicates if a region contains object shapes. Integrated with this probability map, BtcDet can generate high-quality 3D proposals. Finally, the probability of occupancy is also integrated into a proposal refinement module to generate the final bounding boxes. Extensive experiments on the KITTI Dataset and the Waymo Open Dataset demonstrate the effectiveness of BtcDet. Particularly, for the 3D detection of both cars and cyclists on the KITTI benchmark, BtcDet surpasses all of the published state-of-the-art methods by remarkable margins. Code is released (https://github.com/Xharlie/BtcDet}{https://github.com/Xharlie/BtcDet).","url_abs":"https://arxiv.org/abs/2112.02205v1","url_pdf":"https://arxiv.org/pdf/2112.02205v1.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":"behind-the-curtain-learning-occluded-shapes","repo_url":"https://github.com/xharlie/btcdet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"behind-the-curtain-learning-occluded-shapes","repo_url":"https://github.com/mystorm16/bsh-det3d","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3d-object-detection","task_name":"3D Object Detection"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"scene-understanding","task_name":"Scene Understanding"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2112.02205","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.02205"}},"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/mystorm16/bsh-det3d","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xharlie/btcdet","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":7,"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":"3778ab300cc46205","entry":"cfg_from_yaml_file","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/config.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/config.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":"3778ab300cc46205"}},{"code_sha256_prefix":"0b15dc5e864c4718","entry":"clustering","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/datasets/findbestfit.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/datasets/findbestfit.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":"0b15dc5e864c4718"}},{"code_sha256_prefix":"ccbe0fc1350b4cc2","entry":"extract_allpnts","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/datasets/finddiff.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/datasets/finddiff.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":"ccbe0fc1350b4cc2"}},{"code_sha256_prefix":"9e6494b06ede8d3a","entry":"extract_template","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/datasets/template.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/datasets/template.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":"9e6494b06ede8d3a"}},{"code_sha256_prefix":"b7ee7b7b0b6ffed4","entry":"get_corner_loss_lidar","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/utils/loss_utils.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/utils/loss_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":"b7ee7b7b0b6ffed4"}},{"code_sha256_prefix":"26d81d4bef629364","entry":"get_normalized_cloud","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/datasets/findbestfit.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/datasets/findbestfit.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":"26d81d4bef629364"}},{"code_sha256_prefix":"392c0cf3a1b07b12","entry":"merge_new_config","repo":"xharlie/btcdet","repo_kind":"official","path":"btcdet/config.py","file_url":"https://github.com/xharlie/btcdet/blob/HEAD/btcdet/config.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":"392c0cf3a1b07b12"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}