{"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/contrastive-learning-with-large-memory-bank","title":"Contrastive Learning with Large Memory Bank and Negative Embedding Subtraction for Accurate Copy Detection","arxiv_id":"2112.04323","date":"2021-12-08","proceeding":null,"authors":["Shuhei Yokoo"],"abstract":"Copy detection, which is a task to determine whether an image is a modified copy of any image in a database, is an unsolved problem. Thus, we addressed copy detection by training convolutional neural networks (CNNs) with contrastive learning. Training with a large memory-bank and hard data augmentation enables the CNNs to obtain more discriminative representation. Our proposed negative embedding subtraction further boosts the copy detection accuracy. Using our methods, we achieved 1st place in the Facebook AI Image Similarity Challenge: Descriptor Track. Our code is publicly available here: \\url{https://github.com/lyakaap/ISC21-Descriptor-Track-1st}","url_abs":"https://arxiv.org/abs/2112.04323v1","url_pdf":"https://arxiv.org/pdf/2112.04323v1.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":"contrastive-learning-with-large-memory-bank","repo_url":"https://github.com/lyakaap/isc21-descriptor-track-1st","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"contrastive-learning-with-large-memory-bank","repo_url":"https://github.com/towhee-io/towhee","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"copy-detection","task_name":"Copy Detection"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2112.04323","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.04323"}},"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/lyakaap/isc21-descriptor-track-1st","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/towhee-io/towhee","reach":null}],"summary":{"ran_fixture":2,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":"6128f6f3a653696b","entry":"argsort","repo":"lyakaap/isc21-descriptor-track-1st","repo_kind":"official","path":"scripts/eval_metrics.py","file_url":"https://github.com/lyakaap/isc21-descriptor-track-1st/blob/HEAD/scripts/eval_metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6128f6f3a653696b"}},{"code_sha256_prefix":"69627785d94085b0","entry":"average_precision","repo":"lyakaap/isc21-descriptor-track-1st","repo_kind":"official","path":"scripts/eval_metrics.py","file_url":"https://github.com/lyakaap/isc21-descriptor-track-1st/blob/HEAD/scripts/eval_metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"69627785d94085b0"}},{"code_sha256_prefix":"ad695e1e64bd704c","entry":"gem","repo":"lyakaap/isc21-descriptor-track-1st","repo_kind":"official","path":"isc_feature_extractor/model.py","file_url":"https://github.com/lyakaap/isc21-descriptor-track-1st/blob/HEAD/isc_feature_extractor/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ad695e1e64bd704c"}},{"code_sha256_prefix":"8b334f476d832488","entry":"precision_recall","repo":"lyakaap/isc21-descriptor-track-1st","repo_kind":"official","path":"scripts/eval_metrics.py","file_url":"https://github.com/lyakaap/isc21-descriptor-track-1st/blob/HEAD/scripts/eval_metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8b334f476d832488"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}