{"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/unprocessing-images-for-learned-raw-denoising","title":"Unprocessing Images for Learned Raw Denoising","arxiv_id":"1811.11127","date":"2018-11-27","proceeding":"CVPR 2019 6","authors":["Tim Brooks","Ben Mildenhall","Tianfan Xue","Jiawen Chen","Dillon Sharlet","Jonathan T. Barron"],"abstract":"Machine learning techniques work best when the data used for training\nresembles the data used for evaluation. This holds true for learned\nsingle-image denoising algorithms, which are applied to real raw camera sensor\nreadings but, due to practical constraints, are often trained on synthetic\nimage data. Though it is understood that generalizing from synthetic to real\ndata requires careful consideration of the noise properties of image sensors,\nthe other aspects of a camera's image processing pipeline (gain, color\ncorrection, tone mapping, etc) are often overlooked, despite their significant\neffect on how raw measurements are transformed into finished images. To address\nthis, we present a technique to \"unprocess\" images by inverting each step of an\nimage processing pipeline, thereby allowing us to synthesize realistic raw\nsensor measurements from commonly available internet photos. We additionally\nmodel the relevant components of an image processing pipeline when evaluating\nour loss function, which allows training to be aware of all relevant\nphotometric processing that will occur after denoising. By processing and\nunprocessing model outputs and training data in this way, we are able to train\na simple convolutional neural network that has 14%-38% lower error rates and is\n9x-18x faster than the previous state of the art on the Darmstadt Noise\nDataset, and generalizes to sensors outside of that dataset as well.","url_abs":"http://arxiv.org/abs/1811.11127v1","url_pdf":"http://arxiv.org/pdf/1811.11127v1.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":"unprocessing-images-for-learned-raw-denoising","repo_url":"https://github.com/caiyuanhao1998/PNGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unprocessing-images-for-learned-raw-denoising","repo_url":"https://github.com/goutamgmb/NTIRE21_BURSTSR","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"unprocessing-images-for-learned-raw-denoising","repo_url":"https://github.com/mv-lab/AISP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"unprocessing-images-for-learned-raw-denoising","repo_url":"https://github.com/google-research/google-research/tree/master/unprocessing","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":null}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"noise-estimation","task_name":"Noise Estimation"},{"task_slug":"tone-mapping","task_name":"Tone Mapping"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/color-image-denoising-on-darmstadt-noise","task":"Color Image Denoising","dataset":"Darmstadt Noise Dataset","model":"Image Unprocessing","rank_in_archive_order":1,"of":6,"metrics":{"PSNR (Raw)":"48.88","PSNR (sRGB)":"40.35","SSIM (Raw)":"0.9821","SSIM (sRGB)":"0.9641"},"uses_additional_data":false},{"leaderboard":"/sota/noise-estimation-on-sidd","task":"Noise Estimation","dataset":"SIDD","model":"ULRD","rank_in_archive_order":4,"of":5,"metrics":{"Average KL Divergence":"0.545","PSNR Gap":"4.90"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1811.11127","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}