{"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/memory-aided-contrastive-consensus-learning","title":"Memory-aided Contrastive Consensus Learning for Co-salient Object Detection","arxiv_id":"2302.14485","date":"2023-02-28","proceeding":null,"authors":["Peng Zheng","Jie Qin","Shuo Wang","Tian-Zhu Xiang","Huan Xiong"],"abstract":"Co-Salient Object Detection (CoSOD) aims at detecting common salient objects within a group of relevant source images. Most of the latest works employ the attention mechanism for finding common objects. To achieve accurate CoSOD results with high-quality maps and high efficiency, we propose a novel Memory-aided Contrastive Consensus Learning (MCCL) framework, which is capable of effectively detecting co-salient objects in real time (~150 fps). To learn better group consensus, we propose the Group Consensus Aggregation Module (GCAM) to abstract the common features of each image group; meanwhile, to make the consensus representation more discriminative, we introduce the Memory-based Contrastive Module (MCM), which saves and updates the consensus of images from different groups in a queue of memories. Finally, to improve the quality and integrity of the predicted maps, we develop an Adversarial Integrity Learning (AIL) strategy to make the segmented regions more likely composed of complete objects with less surrounding noise. Extensive experiments on all the latest CoSOD benchmarks demonstrate that our lite MCCL outperforms 13 cutting-edge models, achieving the new state of the art (~5.9% and ~6.2% improvement in S-measure on CoSOD3k and CoSal2015, respectively). Our source codes, saliency maps, and online demos are publicly available at https://github.com/ZhengPeng7/MCCL.","url_abs":"https://arxiv.org/abs/2302.14485v2","url_pdf":"https://arxiv.org/pdf/2302.14485v2.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":"memory-aided-contrastive-consensus-learning","repo_url":"https://github.com/zhengpeng7/mccl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"memory-aided-contrastive-consensus-learning","repo_url":"https://github.com/zhengpeng7/birefnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"co-saliency-detection","task_name":"Co-Salient Object Detection"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"salient-object-detection-1","task_name":"Salient Object Detection"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.14485","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.14485"}},"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/ZhengPeng7/MCCL","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/ZhengPeng7/CoSOD","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}}],"summary":{"ran_honours":1,"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":7,"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":0,"samples":[{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/loss.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"625f65061a0463a9","entry":"generate_smoothed_gt","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"util.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/util.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":"625f65061a0463a9"}},{"code_sha256_prefix":"110272ee975f6b6d","entry":"TripletSemiHardLoss","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/loss.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":"110272ee975f6b6d"}},{"code_sha256_prefix":"38bab455678e350e","entry":"cv_random_flip","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"preproc.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/preproc.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":"38bab455678e350e"}},{"code_sha256_prefix":"1176c2a866d3e5f9","entry":"pairwise_distance_torch","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"loss.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/loss.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":"1176c2a866d3e5f9"}},{"code_sha256_prefix":"8ab40f51c2a14280","entry":"random_crop","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"preproc.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/preproc.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":"8ab40f51c2a14280"}},{"code_sha256_prefix":"39df97377e06e1de","entry":"random_rotate","repo":"ZhengPeng7/MCCL","repo_kind":"official","path":"preproc.py","file_url":"https://github.com/ZhengPeng7/MCCL/blob/HEAD/preproc.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":"39df97377e06e1de"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}