{"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/ganseg-learning-to-segment-by-unsupervised","title":"GANSeg: Learning to Segment by Unsupervised Hierarchical Image Generation","arxiv_id":"2112.01036","date":"2021-12-02","proceeding":"CVPR 2022 1","authors":["Xingzhe He","Bastian Wandt","Helge Rhodin"],"abstract":"Segmenting an image into its parts is a frequent preprocess for high-level vision tasks such as image editing. However, annotating masks for supervised training is expensive. Weakly-supervised and unsupervised methods exist, but they depend on the comparison of pairs of images, such as from multi-views, frames of videos, and image augmentation, which limits their applicability. To address this, we propose a GAN-based approach that generates images conditioned on latent masks, thereby alleviating full or weak annotations required in previous approaches. We show that such mask-conditioned image generation can be learned faithfully when conditioning the masks in a hierarchical manner on latent keypoints that define the position of parts explicitly. Without requiring supervision of masks or points, this strategy increases robustness to viewpoint and object positions changes. It also lets us generate image-mask pairs for training a segmentation network, which outperforms the state-of-the-art unsupervised segmentation methods on established benchmarks.","url_abs":"https://arxiv.org/abs/2112.01036v3","url_pdf":"https://arxiv.org/pdf/2112.01036v3.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":"ganseg-learning-to-segment-by-unsupervised","repo_url":"https://github.com/xingzhehe/ganseg","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"image-augmentation","task_name":"Image Augmentation"},{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"unsupervised-facial-landmark-detection","task_name":"Unsupervised Facial Landmark Detection"},{"task_slug":"unsupervised-human-pose-estimation","task_name":"Unsupervised Human Pose Estimation"},{"task_slug":"unsupervised-keypoint-estimation","task_name":"Unsupervised Keypoint Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/unsupervised-facial-landmark-detection-on-5","task":"Unsupervised Facial Landmark Detection","dataset":"MAFL Unaligned","model":"GANSeg","rank_in_archive_order":2,"of":9,"metrics":{"NME":"6.18"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2112.01036","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.01036"}},"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/xingzhehe/ganseg","reach":{"status":"ok"}}],"summary":{"ran_violates":1,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":3,"samples":[{"code_sha256_prefix":"00b4fb3b403fa297","entry":"cal_dice_loss","repo":"xingzhehe/ganseg","repo_kind":"official","path":"train_seg.py","file_url":"https://github.com/xingzhehe/ganseg/blob/HEAD/train_seg.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"00b4fb3b403fa297"}},{"code_sha256_prefix":"8b990fc5a9f8e51b","entry":"gradient_penalty","repo":"xingzhehe/ganseg","repo_kind":"official","path":"train_gan.py","file_url":"https://github.com/xingzhehe/ganseg/blob/HEAD/train_gan.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8b990fc5a9f8e51b"}},{"code_sha256_prefix":"4bae234fe244fb49","entry":"cal_loss","repo":"xingzhehe/ganseg","repo_kind":"official","path":"train_seg.py","file_url":"https://github.com/xingzhehe/ganseg/blob/HEAD/train_seg.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":"4bae234fe244fb49"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}