{"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/2408-03282","title":"AMES: Asymmetric and Memory-Efficient Similarity Estimation for Instance-level Retrieval","arxiv_id":"2408.03282","date":"2024-08-06","proceeding":null,"authors":["Pavel Suma","Giorgos Kordopatis-Zilos","Ahmet Iscen","Giorgos Tolias"],"abstract":"This work investigates the problem of instance-level image retrieval re-ranking with the constraint of memory efficiency, ultimately aiming to limit memory usage to 1KB per image. Departing from the prevalent focus on performance enhancements, this work prioritizes the crucial trade-off between performance and memory requirements. The proposed model uses a transformer-based architecture designed to estimate image-to-image similarity by capturing interactions within and across images based on their local descriptors. A distinctive property of the model is the capability for asymmetric similarity estimation. Database images are represented with a smaller number of descriptors compared to query images, enabling performance improvements without increasing memory consumption. To ensure adaptability across different applications, a universal model is introduced that adjusts to a varying number of local descriptors during the testing phase. Results on standard benchmarks demonstrate the superiority of our approach over both hand-crafted and learned models. In particular, compared with current state-of-the-art methods that overlook their memory footprint, our approach not only attains superior performance but does so with a significantly reduced memory footprint. The code and pretrained models are publicly available at: https://github.com/pavelsuma/ames","url_abs":"https://arxiv.org/abs/2408.03282v1","url_pdf":"https://arxiv.org/pdf/2408.03282v1.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":"2408-03282","repo_url":"https://github.com/pavelsuma/ames","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"re-ranking","task_name":"Re-Ranking"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-retrieval-on-google-landmarks-dataset","task":"Image Retrieval","dataset":"Google Landmarks Dataset v2 (retrieval, testing)","model":"AMES","rank_in_archive_order":1,"of":4,"metrics":{"mAP@100":"37.8"},"uses_additional_data":false},{"leaderboard":"/sota/image-retrieval-on-roxford-hard","task":"Image Retrieval","dataset":"ROxford (Hard)","model":"AMES","rank_in_archive_order":2,"of":23,"metrics":{"mAP":"80"},"uses_additional_data":false},{"leaderboard":"/sota/image-retrieval-on-roxford-medium","task":"Image Retrieval","dataset":"ROxford (Medium)","model":"AMES","rank_in_archive_order":1,"of":23,"metrics":{"mAP":"90.7"},"uses_additional_data":false},{"leaderboard":"/sota/image-retrieval-on-rparis-hard","task":"Image Retrieval","dataset":"RParis (Hard)","model":"AMES","rank_in_archive_order":1,"of":23,"metrics":{"mAP":"89.7"},"uses_additional_data":false},{"leaderboard":"/sota/image-retrieval-on-rparis-medium","task":"Image Retrieval","dataset":"RParis (Medium)","model":"AMES","rank_in_archive_order":1,"of":23,"metrics":{"mAP":"94.9"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2408.03282","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.03282"}},"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/pavelsuma/ames","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":12,"ran_fixture":1},"by_repo_kind":{"official":{"samples":13,"ran":13,"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":"aee9e3a7b1b42f70","entry":"calculate_receptive_boxes","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_cvnet.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_cvnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"aee9e3a7b1b42f70"}},{"code_sha256_prefix":"e0ea19cb7ca9d5a7","entry":"calculate_receptive_boxes","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_dino.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_dino.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e0ea19cb7ca9d5a7"}},{"code_sha256_prefix":"d160a205c24a70f9","entry":"color_norm","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/transforms.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d160a205c24a70f9"}},{"code_sha256_prefix":"50ad0cb6c181e867","entry":"combine","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/merge_hdf5.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/merge_hdf5.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"50ad0cb6c181e867"}},{"code_sha256_prefix":"04a2af9d93b09d8c","entry":"find_divisors","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_dino.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_dino.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"04a2af9d93b09d8c"}},{"code_sha256_prefix":"f75959fc6c795680","entry":"generate_coordinates","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_cvnet.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_cvnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f75959fc6c795680"}},{"code_sha256_prefix":"6f9305ce535ed9d3","entry":"horizontal_flip","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/transforms.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6f9305ce535ed9d3"}},{"code_sha256_prefix":"0412a457791220ef","entry":"load_or_combine","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/prepare_topk_global.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/prepare_topk_global.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0412a457791220ef"}},{"code_sha256_prefix":"1f32bbb8f8d33681","entry":"load_paths","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/prepare_topk_global.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/prepare_topk_global.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1f32bbb8f8d33681"}},{"code_sha256_prefix":"79817d036d710336","entry":"non_maxima_suppression_2d","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_cvnet.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_cvnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"79817d036d710336"}},{"code_sha256_prefix":"bf31e950a3af0841","entry":"non_maxima_suppression_2d","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/extract_dino.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/extract_dino.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bf31e950a3af0841"}},{"code_sha256_prefix":"a93a2142c18e2e88","entry":"read_imlist","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/image_dataset.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/image_dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a93a2142c18e2e88"}},{"code_sha256_prefix":"8e712c383c677282","entry":"zero_pad","repo":"pavelsuma/ames","repo_kind":"official","path":"extract/transforms.py","file_url":"https://github.com/pavelsuma/ames/blob/HEAD/extract/transforms.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e712c383c677282"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}