{"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/physics-based-noise-modeling-for-extreme-low","title":"Physics-based Noise Modeling for Extreme Low-light Photography","arxiv_id":"2108.02158","date":"2021-08-04","proceeding":null,"authors":["Kaixuan Wei","Ying Fu","Yinqiang Zheng","Jiaolong Yang"],"abstract":"Enhancing the visibility in extreme low-light environments is a challenging task. Under nearly lightless condition, existing image denoising methods could easily break down due to significantly low SNR. In this paper, we systematically study the noise statistics in the imaging pipeline of CMOS photosensors, and formulate a comprehensive noise model that can accurately characterize the real noise structures. Our novel model considers the noise sources caused by digital camera electronics which are largely overlooked by existing methods yet have significant influence on raw measurement in the dark. It provides a way to decouple the intricate noise structure into different statistical distributions with physical interpretations. Moreover, our noise model can be used to synthesize realistic training data for learning-based low-light denoising algorithms. In this regard, although promising results have been shown recently with deep convolutional neural networks, the success heavily depends on abundant noisy clean image pairs for training, which are tremendously difficult to obtain in practice. Generalizing their trained models to images from new devices is also problematic. Extensive experiments on multiple low-light denoising datasets -- including a newly collected one in this work covering various devices -- show that a deep neural network trained with our proposed noise formation model can reach surprisingly-high accuracy. The results are on par with or sometimes even outperform training with paired real data, opening a new door to real-world extreme low-light photography.","url_abs":"https://arxiv.org/abs/2108.02158v1","url_pdf":"https://arxiv.org/pdf/2108.02158v1.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":"physics-based-noise-modeling-for-extreme-low","repo_url":"https://github.com/Vandermode/ELD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"physics-based-noise-modeling-for-extreme-low","repo_url":"https://github.com/Vandermode/NoiseModel","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-denoising-on-sid-sonya7s2-x100","task":"Image Denoising","dataset":"SID SonyA7S2 x100","model":"ELD","rank_in_archive_order":5,"of":5,"metrics":{"PSNR (Raw)":"41.95","SSIM (Raw)":"0.953"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-sid-sonya7s2-x250","task":"Image Denoising","dataset":"SID SonyA7S2 x250","model":"ELD","rank_in_archive_order":6,"of":10,"metrics":{"PSNR (Raw)":"39.44","SSIM (Raw)":"0.931"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-sid-x100","task":"Image Denoising","dataset":"SID x100","model":"ELD","rank_in_archive_order":6,"of":8,"metrics":{"PSNR (Raw)":"41.95","SSIM":"0.963"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-sid-x300","task":"Image Denoising","dataset":"SID x300","model":"ELD","rank_in_archive_order":6,"of":8,"metrics":{"PSNR (Raw)":"36.36","SSIM":"0.911"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2108.02158","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.02158"}},"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/Vandermode/ELD","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Vandermode/NoiseModel","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":7},"by_repo_kind":{"listed":{"samples":8,"ran":1,"repositories":2}},"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":"031ab536c74127bb","entry":"read_dorf","repo":"Vandermode/ELD","repo_kind":"listed","path":"EMoR/EMoR.py","file_url":"https://github.com/Vandermode/ELD/blob/HEAD/EMoR/EMoR.py","link_basis":"plan_row","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":"031ab536c74127bb"}},{"code_sha256_prefix":"e6313ae77bf51222","entry":"compute_expo_ratio","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"dataset/sid_dataset.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/dataset/sid_dataset.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":"e6313ae77bf51222"}},{"code_sha256_prefix":"103b27cc220783e8","entry":"crop_center","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"dataset/sid_dataset.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/dataset/sid_dataset.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":"103b27cc220783e8"}},{"code_sha256_prefix":"7702313c16b1182f","entry":"get_norm_layer","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"models/networks.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/models/networks.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":"7702313c16b1182f"}},{"code_sha256_prefix":"960d32e3ed442108","entry":"init_loss","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"models/losses.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/models/losses.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":"960d32e3ed442108"}},{"code_sha256_prefix":"dfa0c71130d11161","entry":"read_emor","repo":"Vandermode/ELD","repo_kind":"listed","path":"EMoR/EMoR.py","file_url":"https://github.com/Vandermode/ELD/blob/HEAD/EMoR/EMoR.py","link_basis":"plan_row","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":"dfa0c71130d11161"}},{"code_sha256_prefix":"683ebeade7fc133f","entry":"receptive_field","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"models/networks.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/models/networks.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":"683ebeade7fc133f"}},{"code_sha256_prefix":"ee0657d1b9a5b876","entry":"tensor2im","repo":"Vandermode/NoiseModel","repo_kind":"listed","path":"models/ELD_model.py","file_url":"https://github.com/Vandermode/NoiseModel/blob/HEAD/models/ELD_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":"ee0657d1b9a5b876"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}