{"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/deep-occlusion-aware-instance-segmentation","title":"Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers","arxiv_id":"2103.12340","date":"2021-03-23","proceeding":"CVPR 2021 1","authors":["Lei Ke","Yu-Wing Tai","Chi-Keung Tang"],"abstract":"Segmenting highly-overlapping objects is challenging, because typically no distinction is made between real object contours and occlusion boundaries. Unlike previous two-stage instance segmentation methods, we model image formation as composition of two overlapping layers, and propose Bilayer Convolutional Network (BCNet), where the top GCN layer detects the occluding objects (occluder) and the bottom GCN layer infers partially occluded instance (occludee). The explicit modeling of occlusion relationship with bilayer structure naturally decouples the boundaries of both the occluding and occluded instances, and considers the interaction between them during mask regression. We validate the efficacy of bilayer decoupling on both one-stage and two-stage object detectors with different backbones and network layer choices. Despite its simplicity, extensive experiments on COCO and KINS show that our occlusion-aware BCNet achieves large and consistent performance gain especially for heavy occlusion cases. Code is available at https://github.com/lkeab/BCNet.","url_abs":"https://arxiv.org/abs/2103.12340v1","url_pdf":"https://arxiv.org/pdf/2103.12340v1.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":"deep-occlusion-aware-instance-segmentation","repo_url":"https://github.com/lkeab/BCNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"amodal-instance-segmentation","task_name":"Amodal Instance Segmentation"},{"task_slug":"boundary-detection","task_name":"Boundary Detection"},{"task_slug":"instance-segmentation","task_name":"Instance Segmentation"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"occlusion-handling","task_name":"Occlusion Handling"},{"task_slug":"real-time-instance-segmentation","task_name":"Real-time Instance Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"}],"methods":[{"method_slug":"gcn","method_name":"GCN"},{"method_slug":"bilayer-decoupling","method_name":"bilayer decoupling"}],"datasets_introduced":[],"methods_introduced":[{"slug":"bilayer-decoupling","name":"bilayer decoupling","full_name":"bilayer convolutional neural network"}],"results":[{"leaderboard":"/sota/amodal-instance-segmentation-on-walt","task":"Amodal Instance Segmentation","dataset":"WALT","model":"BCNet","rank_in_archive_order":2,"of":2,"metrics":{"AP":"73.2"},"uses_additional_data":false},{"leaderboard":"/sota/instance-segmentation-on-coco","task":"Instance Segmentation","dataset":"COCO test-dev","model":"BCNet(ResNeXt-101  + FPN+ FCOS)","rank_in_archive_order":59,"of":112,"metrics":{"mask AP":"41.7"},"uses_additional_data":false},{"leaderboard":"/sota/instance-segmentation-on-coco","task":"Instance Segmentation","dataset":"COCO test-dev","model":"BCNet(ResNet-101-FPN + Faster RCNN)","rank_in_archive_order":74,"of":112,"metrics":{"AP50":"61.5","AP75":"43.1","APL":"51.1","APM":"42.4","APS":"22.7","mask AP":"39.8"},"uses_additional_data":false},{"leaderboard":"/sota/instance-segmentation-on-coco","task":"Instance Segmentation","dataset":"COCO test-dev","model":"BCNet(ResNet-101-FPN + FCOS)","rank_in_archive_order":78,"of":112,"metrics":{"AP50":"61.2","AP75":"42.7","APL":"51.0","APM":"42.3","APS":"22.3","mask AP":"39.6"},"uses_additional_data":false},{"leaderboard":"/sota/instance-segmentation-on-kins","task":"Instance Segmentation","dataset":"KINS","model":"BCNet","rank_in_archive_order":1,"of":1,"metrics":{"mAP":"28.87"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.12340","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.12340"}},"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":"deterministic:regex_extraction","url":"https://github.com/lkeab/BCNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"unverified":5},"by_repo_kind":{"official":{"samples":12,"ran":7,"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":"0df9d3b583fbc6cb","entry":"batched_nms","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/nms.py","link_basis":"harvester_set","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":"0df9d3b583fbc6cb"}},{"code_sha256_prefix":"e8526a516b4f9206","entry":"convert_basic_c2_names","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/checkpoint/c2_model_loading.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/checkpoint/c2_model_loading.py","link_basis":"harvester_set","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":"e8526a516b4f9206"}},{"code_sha256_prefix":"52810b504f0d1066","entry":"convert_c2_detectron_names","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/checkpoint/c2_model_loading.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/checkpoint/c2_model_loading.py","link_basis":"harvester_set","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":"52810b504f0d1066"}},{"code_sha256_prefix":"37048c236eb86341","entry":"get_contour_interior","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/boundary.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/boundary.py","link_basis":"harvester_set","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":"37048c236eb86341"}},{"code_sha256_prefix":"9b506f9da113b9eb","entry":"get_instances_contour_interior","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/boundary.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/boundary.py","link_basis":"harvester_set","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":"9b506f9da113b9eb"}},{"code_sha256_prefix":"406f84cf799ed34d","entry":"pad_masks","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/mask_ops.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"406f84cf799ed34d"}},{"code_sha256_prefix":"d03592674030077f","entry":"paste_mask_in_image_old","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/mask_ops.py","link_basis":"harvester_set","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":"d03592674030077f"}},{"code_sha256_prefix":"4845964b76bba6c5","entry":"batched_nms_rotated","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/nms.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":"4845964b76bba6c5"}},{"code_sha256_prefix":"dac8413f65a84dfc","entry":"get_center","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/boundary.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/boundary.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":"dac8413f65a84dfc"}},{"code_sha256_prefix":"2902bf4410253ff7","entry":"interpolate","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/misc.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/misc.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":"2902bf4410253ff7"}},{"code_sha256_prefix":"d3fa37a000ad294d","entry":"nms_rotated","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/nms.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/nms.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":"d3fa37a000ad294d"}},{"code_sha256_prefix":"f74abd7e1355f8cd","entry":"paste_masks_in_image","repo":"lkeab/BCNet","repo_kind":"official","path":"detectron2/layers/mask_ops.py","file_url":"https://github.com/lkeab/BCNet/blob/HEAD/detectron2/layers/mask_ops.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":"f74abd7e1355f8cd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}