{"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/enhancing-boundary-segmentation-for","title":"Enhancing Boundary Segmentation for Topological Accuracy with Skeleton-based Methods","arxiv_id":"2404.18539","date":"2024-04-29","proceeding":null,"authors":["Chuni Liu","Boyuan Ma","Xiaojuan Ban","Yujie Xie","Hao Wang","Weihua Xue","Jingchao Ma","Ke Xu"],"abstract":"Topological consistency plays a crucial role in the task of boundary segmentation for reticular images, such as cell membrane segmentation in neuron electron microscopic images, grain boundary segmentation in material microscopic images and road segmentation in aerial images. In these fields, topological changes in segmentation results have a serious impact on the downstream tasks, which can even exceed the misalignment of the boundary itself. To enhance the topology accuracy in segmentation results, we propose the Skea-Topo Aware loss, which is a novel loss function that takes into account the shape of each object and topological significance of the pixels. It consists of two components. First, a skeleton-aware weighted loss improves the segmentation accuracy by better modeling the object geometry with skeletons. Second, a boundary rectified term effectively identifies and emphasizes topological critical pixels in the prediction errors using both foreground and background skeletons in the ground truth and predictions. Experiments prove that our method improves topological consistency by up to 7 points in VI compared to 13 state-of-art methods, based on objective and subjective assessments across three different boundary segmentation datasets. The code is available at https://github.com/clovermini/Skea_topo.","url_abs":"https://arxiv.org/abs/2404.18539v2","url_pdf":"https://arxiv.org/pdf/2404.18539v2.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":"enhancing-boundary-segmentation-for","repo_url":"https://github.com/clovermini/skea_topo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"enhancing-boundary-segmentation-for","repo_url":"https://github.com/lurenhaothu/CWMI","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"road-segementation","task_name":"Road Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"}],"methods":[{"method_slug":"aware","method_name":"AWARE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2404.18539","atlas_url":"https://app.syntology.ai/?focus=2404.18539","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.18539"}},"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/lurenhaothu/CWMI","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/clovermini/skea_topo","reach":null},{"provenance":"deterministic:regex_extraction","url":"https://github.com/clovermini/Skea","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}}],"summary":{"ran_draft_wrong":5,"unverified":5},"by_repo_kind":{"official":{"samples":6,"ran":2,"repositories":1},"listed":{"samples":4,"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":10,"samples":[{"code_sha256_prefix":"c2b8ec788a34ad87","entry":"calc_back_skelen_torch","repo":"lurenhaothu/CWMI","repo_kind":"listed","path":"model/skea_topo/skea_topo_loss.py","file_url":"https://github.com/lurenhaothu/CWMI/blob/HEAD/model/skea_topo/skea_topo_loss.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c2b8ec788a34ad87"}},{"code_sha256_prefix":"44e29e3bfc655ba1","entry":"get_tfn_conn_torch","repo":"lurenhaothu/CWMI","repo_kind":"listed","path":"model/skea_topo/skea_topo_loss.py","file_url":"https://github.com/lurenhaothu/CWMI/blob/HEAD/model/skea_topo/skea_topo_loss.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"44e29e3bfc655ba1"}},{"code_sha256_prefix":"5300b260789bc6a9","entry":"minus_torch","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5300b260789bc6a9"}},{"code_sha256_prefix":"435cabf056561087","entry":"soft_dilate","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"435cabf056561087"}},{"code_sha256_prefix":"c2a03eabfd1965f1","entry":"topo_preserve_conn_torch","repo":"lurenhaothu/CWMI","repo_kind":"listed","path":"model/skea_topo/skea_topo_loss.py","file_url":"https://github.com/lurenhaothu/CWMI/blob/HEAD/model/skea_topo/skea_topo_loss.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c2a03eabfd1965f1"}},{"code_sha256_prefix":"3169f083231c86bc","entry":"Skea_topo_loss","repo":"lurenhaothu/CWMI","repo_kind":"listed","path":"model/skea_topo/skea_topo_loss.py","file_url":"https://github.com/lurenhaothu/CWMI/blob/HEAD/model/skea_topo/skea_topo_loss.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":"3169f083231c86bc"}},{"code_sha256_prefix":"bd06187a4cda9701","entry":"calc_back_skelen_torch","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.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":"bd06187a4cda9701"}},{"code_sha256_prefix":"ff94f16eed4a7061","entry":"get_tfn_conn_torch","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.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":"ff94f16eed4a7061"}},{"code_sha256_prefix":"b30427670952b4ca","entry":"show","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.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":"b30427670952b4ca"}},{"code_sha256_prefix":"8b29ff685c634c89","entry":"topo_preserve_conn_torch","repo":"clovermini/skea_topo","repo_kind":"official","path":"model/losses/loss.py","file_url":"https://github.com/clovermini/skea_topo/blob/HEAD/model/losses/loss.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":"8b29ff685c634c89"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}