{"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/classification-robustness-to-common-optical","title":"Classification robustness to common optical aberrations","arxiv_id":"2308.15499","date":"2023-08-29","proceeding":null,"authors":["Patrick Müller","Alexander Braun","Margret Keuper"],"abstract":"Computer vision using deep neural networks (DNNs) has brought about seminal changes in people's lives. Applications range from automotive, face recognition in the security industry, to industrial process monitoring. In some cases, DNNs infer even in safety-critical situations. Therefore, for practical applications, DNNs have to behave in a robust way to disturbances such as noise, pixelation, or blur. Blur directly impacts the performance of DNNs, which are often approximated as a disk-shaped kernel to model defocus. However, optics suggests that there are different kernel shapes depending on wavelength and location caused by optical aberrations. In practice, as the optical quality of a lens decreases, such aberrations increase. This paper proposes OpticsBench, a benchmark for investigating robustness to realistic, practically relevant optical blur effects. Each corruption represents an optical aberration (coma, astigmatism, spherical, trefoil) derived from Zernike Polynomials. Experiments on ImageNet show that for a variety of different pre-trained DNNs, the performance varies strongly compared to disk-shaped kernels, indicating the necessity of considering realistic image degradations. In addition, we show on ImageNet-100 with OpticsAugment that robustness can be increased by using optical kernels as data augmentation. Compared to a conventionally trained ResNeXt50, training with OpticsAugment achieves an average performance gain of 21.7% points on OpticsBench and 6.8% points on 2D common corruptions.","url_abs":"https://arxiv.org/abs/2308.15499v1","url_pdf":"https://arxiv.org/pdf/2308.15499v1.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":"classification-robustness-to-common-optical","repo_url":"https://github.com/patmue/classification_robustness","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"image-classification","task_name":"Image Classification"}],"methods":[],"datasets_introduced":[{"slug":"opticsbench","name":"OpticsBench","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.15499","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.15499"}},"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/patmue/classification_robustness","reach":{"status":"ok"}}],"summary":{"ran":12,"unverified":2},"by_repo_kind":{"official":{"samples":14,"ran":12,"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":14,"samples":[{"code_sha256_prefix":"83ebb53ea26f0520","entry":"aug","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/augmix.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/augmix.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"83ebb53ea26f0520"}},{"code_sha256_prefix":"da8917065a340904","entry":"aug_pipelined","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/augmix.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/augmix.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"da8917065a340904"}},{"code_sha256_prefix":"433d5d0144d6b55b","entry":"basic","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/preprocessing.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"433d5d0144d6b55b"}},{"code_sha256_prefix":"2e914edc5d1611b3","entry":"get_training_setup","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/efficientnet_b0.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/efficientnet_b0.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2e914edc5d1611b3"}},{"code_sha256_prefix":"51f781181c4073d1","entry":"get_training_setup","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/efficientnet_b4.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/efficientnet_b4.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"51f781181c4073d1"}},{"code_sha256_prefix":"14296e5fb06a04c8","entry":"get_training_setup_from_paper","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/densenet161.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/densenet161.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"14296e5fb06a04c8"}},{"code_sha256_prefix":"5d6bd8bf0f9b0d59","entry":"get_training_setup_kuan_wang","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/mobilenet_v3_large.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/mobilenet_v3_large.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5d6bd8bf0f9b0d59"}},{"code_sha256_prefix":"8dc2a99e2bc2dbd9","entry":"get_training_setup_kuan_wang_warm_restarts","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/mobilenet_v3_large.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/mobilenet_v3_large.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8dc2a99e2bc2dbd9"}},{"code_sha256_prefix":"e2888ec57abfeea9","entry":"load_recipe","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/alexnet.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/alexnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e2888ec57abfeea9"}},{"code_sha256_prefix":"4f95ed513cf82b44","entry":"load_recipe","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/efficientnet_b0.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/efficientnet_b0.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4f95ed513cf82b44"}},{"code_sha256_prefix":"520904f9e380dd3d","entry":"load_recipe","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/efficientnet_b4.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/efficientnet_b4.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"520904f9e380dd3d"}},{"code_sha256_prefix":"164e7f07ff21f8de","entry":"opticsaugment","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/preprocessing.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"164e7f07ff21f8de"}},{"code_sha256_prefix":"76a81b6e469becc8","entry":"accuracy","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/augmix.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/augmix.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"76a81b6e469becc8"}},{"code_sha256_prefix":"95c7e11d90dc0621","entry":"load_recipe","repo":"patmue/classification_robustness","repo_kind":"official","path":"optics_augment/recipes/densenet161.py","file_url":"https://github.com/patmue/classification_robustness/blob/HEAD/optics_augment/recipes/densenet161.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"95c7e11d90dc0621"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}