{"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/knowledge-enhanced-dual-stream-zero-shot","title":"Knowledge-Enhanced Dual-stream Zero-shot Composed Image Retrieval","arxiv_id":"2403.16005","date":"2024-03-24","proceeding":"CVPR 2024 1","authors":["Yucheng Suo","Fan Ma","Linchao Zhu","Yi Yang"],"abstract":"We study the zero-shot Composed Image Retrieval (ZS-CIR) task, which is to retrieve the target image given a reference image and a description without training on the triplet datasets. Previous works generate pseudo-word tokens by projecting the reference image features to the text embedding space. However, they focus on the global visual representation, ignoring the representation of detailed attributes, e.g., color, object number and layout. To address this challenge, we propose a Knowledge-Enhanced Dual-stream zero-shot composed image retrieval framework (KEDs). KEDs implicitly models the attributes of the reference images by incorporating a database. The database enriches the pseudo-word tokens by providing relevant images and captions, emphasizing shared attribute information in various aspects. In this way, KEDs recognizes the reference image from diverse perspectives. Moreover, KEDs adopts an extra stream that aligns pseudo-word tokens with textual concepts, leveraging pseudo-triplets mined from image-text pairs. The pseudo-word tokens generated in this stream are explicitly aligned with fine-grained semantics in the text embedding space. Extensive experiments on widely used benchmarks, i.e. ImageNet-R, COCO object, Fashion-IQ and CIRR, show that KEDs outperforms previous zero-shot composed image retrieval methods.","url_abs":"https://arxiv.org/abs/2403.16005v1","url_pdf":"https://arxiv.org/pdf/2403.16005v1.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":"knowledge-enhanced-dual-stream-zero-shot","repo_url":"https://github.com/suoych/keds","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":null,"task_name":"Triplet"},{"task_slug":"zero-shot-composed-image-retrieval-zs-cir","task_name":"Zero-Shot Composed Image Retrieval (ZS-CIR)"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.16005","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.16005"}},"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/suoych/keds","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/suoych/KEDs","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":9,"ran_honours":1,"unverified":7},"by_repo_kind":{"official":{"samples":17,"ran":10,"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":"fd7c4feaec54d930","entry":"Transformer","repo":"suoych/KEDs","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/KEDs/blob/HEAD/src/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fd7c4feaec54d930"}},{"code_sha256_prefix":"6eeb0850e867ee04","entry":"VisualTransformer","repo":"suoych/KEDs","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/KEDs/blob/HEAD/src/model/model.py","link_basis":"first_harvest_node","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":"6eeb0850e867ee04"}},{"code_sha256_prefix":"b6c1f837e6faaeba","entry":"collate_fn","repo":"suoych/keds","repo_kind":"official","path":"src/data.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/data.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b6c1f837e6faaeba"}},{"code_sha256_prefix":"bd7ba008537a41f8","entry":"find_first_nonzero_indices","repo":"suoych/keds","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/model/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd7ba008537a41f8"}},{"code_sha256_prefix":"0ad517bf07a3dc06","entry":"get_default_params","repo":"suoych/keds","repo_kind":"official","path":"src/params.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/params.py","link_basis":"first_harvest_node","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":"0ad517bf07a3dc06"}},{"code_sha256_prefix":"7d6d8742930e7202","entry":"get_retrieved_features","repo":"suoych/keds","repo_kind":"official","path":"src/eval_utils.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7d6d8742930e7202"}},{"code_sha256_prefix":"c97b5d8516c10994","entry":"is_master","repo":"suoych/keds","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c97b5d8516c10994"}},{"code_sha256_prefix":"be4e00be50540042","entry":"log_and_continue","repo":"suoych/keds","repo_kind":"official","path":"src/data.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/data.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"be4e00be50540042"}},{"code_sha256_prefix":"c97029a509c1d772","entry":"prepare_img","repo":"suoych/keds","repo_kind":"official","path":"src/eval_utils.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c97029a509c1d772"}},{"code_sha256_prefix":"050a8682c03e5b7a","entry":"setup_primary_logging","repo":"suoych/keds","repo_kind":"official","path":"src/logger.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/logger.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"050a8682c03e5b7a"}},{"code_sha256_prefix":"3949802de58e42db","entry":"CLIP","repo":"suoych/KEDs","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/KEDs/blob/HEAD/src/model/model.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":"3949802de58e42db"}},{"code_sha256_prefix":"340afd63600e948b","entry":"build_model","repo":"suoych/keds","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/model/model.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":"340afd63600e948b"}},{"code_sha256_prefix":"73cecca9f3575f09","entry":"concat_all_gather","repo":"suoych/keds","repo_kind":"official","path":"src/model/model.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/model/model.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":"73cecca9f3575f09"}},{"code_sha256_prefix":"16a61f88e426e60e","entry":"download_pretrained_from_hf","repo":"suoych/keds","repo_kind":"official","path":"src/model/clip.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/model/clip.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":"16a61f88e426e60e"}},{"code_sha256_prefix":"576e20dbc1f9c66e","entry":"has_hf_hub","repo":"suoych/keds","repo_kind":"official","path":"src/model/clip.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/model/clip.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":"576e20dbc1f9c66e"}},{"code_sha256_prefix":"65adb49ebd943e40","entry":"load_model_without_definition","repo":"suoych/keds","repo_kind":"official","path":"src/eval_retrieval.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/eval_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":"65adb49ebd943e40"}},{"code_sha256_prefix":"cf91dcd7b37a526e","entry":"load_model_without_definition","repo":"suoych/keds","repo_kind":"official","path":"src/eval_utils.py","file_url":"https://github.com/suoych/keds/blob/HEAD/src/eval_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":"cf91dcd7b37a526e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}