{"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/arniqa-learning-distortion-manifold-for-image","title":"ARNIQA: Learning Distortion Manifold for Image Quality Assessment","arxiv_id":"2310.14918","date":"2023-10-20","proceeding":null,"authors":["Lorenzo Agnolucci","Leonardo Galteri","Marco Bertini","Alberto del Bimbo"],"abstract":"No-Reference Image Quality Assessment (NR-IQA) aims to develop methods to measure image quality in alignment with human perception without the need for a high-quality reference image. In this work, we propose a self-supervised approach named ARNIQA (leArning distoRtion maNifold for Image Quality Assessment) for modeling the image distortion manifold to obtain quality representations in an intrinsic manner. First, we introduce an image degradation model that randomly composes ordered sequences of consecutively applied distortions. In this way, we can synthetically degrade images with a large variety of degradation patterns. Second, we propose to train our model by maximizing the similarity between the representations of patches of different images distorted equally, despite varying content. Therefore, images degraded in the same manner correspond to neighboring positions within the distortion manifold. Finally, we map the image representations to the quality scores with a simple linear regressor, thus without fine-tuning the encoder weights. The experiments show that our approach achieves state-of-the-art performance on several datasets. In addition, ARNIQA demonstrates improved data efficiency, generalization capabilities, and robustness compared to competing methods. The code and the model are publicly available at https://github.com/miccunifi/ARNIQA.","url_abs":"https://arxiv.org/abs/2310.14918v2","url_pdf":"https://arxiv.org/pdf/2310.14918v2.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":"arniqa-learning-distortion-manifold-for-image","repo_url":"https://github.com/miccunifi/arniqa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-quality-assessment","task_name":"Image Quality Assessment"},{"task_slug":"no-reference-image-quality-assessment","task_name":"No-Reference Image Quality Assessment"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"},{"method_slug":"linear-regression","method_name":"Linear Regression"},{"method_slug":"nt-xent","method_name":"NT-Xent"},{"method_slug":"simclr","method_name":"SimCLR"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/no-reference-image-quality-assessment-on-csiq","task":"No-Reference Image Quality Assessment","dataset":"CSIQ","model":"ARNIQA","rank_in_archive_order":2,"of":8,"metrics":{"PLCC":"0.973","SRCC":"0.962"},"uses_additional_data":false},{"leaderboard":"/sota/no-reference-image-quality-assessment-on-1","task":"No-Reference Image Quality Assessment","dataset":"KADID-10k","model":"ARNIQA","rank_in_archive_order":4,"of":9,"metrics":{"PLCC":"0.912","SRCC":"0.908"},"uses_additional_data":false},{"leaderboard":"/sota/no-reference-image-quality-assessment-on","task":"No-Reference Image Quality Assessment","dataset":"TID2013","model":"ARNIQA","rank_in_archive_order":2,"of":8,"metrics":{"PLCC":"0.901","SRCC":"0.880"},"uses_additional_data":false},{"leaderboard":"/sota/no-reference-image-quality-assessment-on-uhd","task":"No-Reference Image Quality Assessment","dataset":"UHD-IQA","model":"ARNIQA","rank_in_archive_order":4,"of":7,"metrics":{"PLCC":"0.694","SRCC":"0.739"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.14918","atlas_url":"https://app.syntology.ai/?focus=2310.14918","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.14918"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/miccunifi/arniqa","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5},"by_repo_kind":{"official":{"samples":5,"ran":5,"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":"2199de196a9781f4","entry":"fspecial","repo":"miccunifi/arniqa","repo_kind":"official","path":"utils/utils_distortions.py","file_url":"https://github.com/miccunifi/arniqa/blob/HEAD/utils/utils_distortions.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":"2199de196a9781f4"}},{"code_sha256_prefix":"98d1b40edf41b39d","entry":"mapmm","repo":"miccunifi/arniqa","repo_kind":"official","path":"utils/utils_distortions.py","file_url":"https://github.com/miccunifi/arniqa/blob/HEAD/utils/utils_distortions.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":"98d1b40edf41b39d"}},{"code_sha256_prefix":"a4aa5edbfed21ec7","entry":"nt_xent_loss","repo":"miccunifi/arniqa","repo_kind":"official","path":"models/simclr.py","file_url":"https://github.com/miccunifi/arniqa/blob/HEAD/models/simclr.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":"a4aa5edbfed21ec7"}},{"code_sha256_prefix":"6c4115041432e1a2","entry":"resize_crop","repo":"miccunifi/arniqa","repo_kind":"official","path":"utils/utils_data.py","file_url":"https://github.com/miccunifi/arniqa/blob/HEAD/utils/utils_data.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":"6c4115041432e1a2"}},{"code_sha256_prefix":"403df393850e86d3","entry":"sign","repo":"miccunifi/arniqa","repo_kind":"official","path":"utils/utils_distortions.py","file_url":"https://github.com/miccunifi/arniqa/blob/HEAD/utils/utils_distortions.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":"403df393850e86d3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}