{"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/self-supervised-product-quantization-for-deep","title":"Self-supervised Product Quantization for Deep Unsupervised Image Retrieval","arxiv_id":"2109.02244","date":"2021-09-06","proceeding":"ICCV 2021 10","authors":["Young Kyun Jang","Nam Ik Cho"],"abstract":"Supervised deep learning-based hash and vector quantization are enabling fast and large-scale image retrieval systems. By fully exploiting label annotations, they are achieving outstanding retrieval performances compared to the conventional methods. However, it is painstaking to assign labels precisely for a vast amount of training data, and also, the annotation process is error-prone. To tackle these issues, we propose the first deep unsupervised image retrieval method dubbed Self-supervised Product Quantization (SPQ) network, which is label-free and trained in a self-supervised manner. We design a Cross Quantized Contrastive learning strategy that jointly learns codewords and deep visual descriptors by comparing individually transformed images (views). Our method analyzes the image contents to extract descriptive features, allowing us to understand image representations for accurate retrieval. By conducting extensive experiments on benchmarks, we demonstrate that the proposed method yields state-of-the-art results even without supervised pretraining.","url_abs":"https://arxiv.org/abs/2109.02244v2","url_pdf":"https://arxiv.org/pdf/2109.02244v2.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":"self-supervised-product-quantization-for-deep","repo_url":"https://github.com/youngkyunjang/spq","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"descriptive","task_name":"Descriptive"},{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2109.02244","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.02244"}},"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/youngkyunjang/spq","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/youngkyunJang/SPQ","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"ran":0,"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":"8965599eae16ff64","entry":"Evaluate_mAP","repo":"youngkyunJang/SPQ","repo_kind":"official","path":"Retrieval.py","file_url":"https://github.com/youngkyunJang/SPQ/blob/HEAD/Retrieval.py","link_basis":"first_harvest_node","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":"8965599eae16ff64"}},{"code_sha256_prefix":"0d4aab6cb8ae5bd1","entry":"Indexing","repo":"youngkyunJang/SPQ","repo_kind":"official","path":"Retrieval.py","file_url":"https://github.com/youngkyunJang/SPQ/blob/HEAD/Retrieval.py","link_basis":"first_harvest_node","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":"0d4aab6cb8ae5bd1"}},{"code_sha256_prefix":"9e97433ebda9365c","entry":"Soft_Quantization","repo":"youngkyunJang/SPQ","repo_kind":"official","path":"utils.py","file_url":"https://github.com/youngkyunJang/SPQ/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"9e97433ebda9365c"}},{"code_sha256_prefix":"7c26ee9dd52155b6","entry":"pqDist_one","repo":"youngkyunJang/SPQ","repo_kind":"official","path":"Retrieval.py","file_url":"https://github.com/youngkyunJang/SPQ/blob/HEAD/Retrieval.py","link_basis":"first_harvest_node","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":"7c26ee9dd52155b6"}},{"code_sha256_prefix":"e72045686bd0fbe2","entry":"squared_distances","repo":"youngkyunJang/SPQ","repo_kind":"official","path":"utils.py","file_url":"https://github.com/youngkyunJang/SPQ/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"e72045686bd0fbe2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}