{"id":17526818,"url":"https://github.com/cszn/DPIR","last_synced_at":"2025-03-06T06:30:51.773Z","repository":{"id":41169990,"uuid":"286087789","full_name":"cszn/DPIR","owner":"cszn","description":"Plug-and-Play Image Restoration with Deep Denoiser Prior (IEEE TPAMI 2021) (PyTorch)","archived":false,"fork":false,"pushed_at":"2022-11-21T14:43:45.000Z","size":7004,"stargazers_count":530,"open_issues_count":17,"forks_count":86,"subscribers_count":10,"default_branch":"master","last_synced_at":"2023-11-07T18:00:24.969Z","etag":null,"topics":["demosaicing","denoising","plug-and-play","super-resolution"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cszn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-08T17:23:20.000Z","updated_at":"2023-10-26T14:12:02.000Z","dependencies_parsed_at":"2023-01-21T18:03:19.951Z","dependency_job_id":null,"html_url":"https://github.com/cszn/DPIR","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cszn%2FDPIR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cszn%2FDPIR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cszn%2FDPIR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cszn%2FDPIR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cszn","download_url":"https://codeload.github.com/cszn/DPIR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242161370,"owners_count":20081859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demosaicing","denoising","plug-and-play","super-resolution"],"created_at":"2024-10-20T15:02:32.698Z","updated_at":"2025-03-06T06:30:50.569Z","avatar_url":"https://github.com/cszn.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Deep Plug-and-Play Image Restoration\n\n![visitors](https://visitor-badge.glitch.me/badge?page_id=cszn/DPIR) \n\n[**Kai Zhang**](https://cszn.github.io/), Yawei Li, Wangmeng Zuo, Lei Zhang, Luc Van Gool, Radu Timofte\n\n_[Computer Vision Lab](https://vision.ee.ethz.ch/the-institute.html), ETH Zurich, Switzerland_\n\n[[paper arxiv](https://arxiv.org/pdf/2008.13751.pdf)]   [[paper tpami](https://ieeexplore.ieee.org/abstract/document/9454311)]\n\n\n\n\nDenoising results on BSD68 and Urban100 datasets\n----------\n|  Dataset    | Noise Level | FFDNet-PSNR(RGB) | FFDNet-PSNR(Y) | **DRUNet-PSNR(RGB)** | **DRUNet-PSNR(Y)** |\n|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|\n| CBSD68 |  30    | 30.32  | 32.05  |  30.81 | 32.44 |\n| CBSD68 |   50   | 27.97  | 29.65  |  28.51 | 30.09 |\n| Urban100|  30   | 30.53  | 32.72  |  31.83 | 33.93 |\n| Urban100|   50  | 28.05  | 30.09  |  29.61 | 31.57 |\n\n```PSNR(Y) means the PSNR is calculated on the Y channel of YCbCr space.```\n\n\nAbstract\n----------\nRecent works on plug-and-play image restoration have shown that a denoiser can implicitly serve as the image prior for\nmodel-based methods to solve many inverse problems. Such a property induces considerable advantages for plug-and-play image\nrestoration (e.g., integrating the flexibility of model-based method and effectiveness of learning-based methods) when the denoiser is\ndiscriminatively learned via deep convolutional neural network (CNN) with large modeling capacity. However, while deeper and larger\nCNN models are rapidly gaining popularity, existing plug-and-play image restoration hinders its performance due to the lack of suitable\ndenoiser prior. In order to push the limits of plug-and-play image restoration, we set up a benchmark deep denoiser prior by training a\nhighly flexible and effective CNN denoiser. We then plug the deep denoiser prior as a modular part into a half quadratic splitting based\niterative algorithm to solve various image restoration problems. We, meanwhile, provide a thorough analysis of parameter setting,\nintermediate results and empirical convergence to better understand the working mechanism. Experimental results on three\nrepresentative image restoration tasks, including deblurring, super-resolution and demosaicing, demonstrate that the proposed\nplug-and-play image restoration with deep denoiser prior not only significantly outperforms other state-of-the-art model-based methods\nbut also achieves competitive or even superior performance against state-of-the-art learning-based methods.\n\n\nThe DRUNet Denoiser (state-of-the-art Gaussian denoising performance!)\n----------\n* Network architecture\n\n  \u003cimg src=\"figs/denoiser_arch.png\" width=\"800px\"/\u003e \n\n* Grayscale image denoising\n\n  \u003cimg src=\"figs/grayscale_psnr.png\" width=\"800px\"/\u003e \n\n* Color image denoising\n\n  \u003cimg src=\"figs/color_psnr.png\" width=\"375px\"/\u003e \n  \n|\u003cimg align=\"center\" src=\"figs/test_03_noisy_0750.png\" width=\"320px\"/\u003e | \u003cimg align=\"center\" src=\"figs/test_03_usrnet_2355.png\" width=\"320px\"/\u003e |\n|:---:|:---:|\n|\u003ci\u003e(a) Noisy image with noise level 200\u003c/i\u003e|\u003ci\u003e(b) Result by the proposed DRUNet denoiser\u003c/i\u003e|\n\n**Even trained on noise level range of [0, 50], DRUNet can still perform well on an extremely large unseen noise level of 200.**\n\nImage Deblurring\n----------\n* Visual comparison\n\n  \u003cimg src=\"figs/deblur_1.png\" width=\"800px\"/\u003e \n\n\nSingle Image Super-Resolution\n----------\n* Visual comparison\n\n  \u003cimg src=\"figs/sisr_1.png\" width=\"800px\"/\u003e \n\n\nColor Image Demosaicing\n----------\n* PSNR\n\n  \u003cimg src=\"figs/demosaic_1.png\" width=\"800px\"/\u003e \n\n* Visual comparison\n\n  \u003cimg src=\"figs/demosaic_2.png\" width=\"800px\"/\u003e \n\n\n\nCitation\n----------\n```BibTex\n@article{zhang2021plug,\n  title={Plug-and-Play Image Restoration with Deep Denoiser Prior},\n  author={Zhang, Kai and Li, Yawei and Zuo, Wangmeng and Zhang, Lei and Van Gool, Luc and Timofte, Radu},\n  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},\n  volume={44},\n  number={10},\n  pages={6360-6376},\n  year={2021}\n}\n @inproceedings{zhang2017learning,\n   title={Learning Deep CNN Denoiser Prior for Image Restoration},\n   author={Zhang, Kai and Zuo, Wangmeng and Gu, Shuhang and Zhang, Lei},\n   booktitle={IEEE Conference on Computer Vision and Pattern Recognition},\n   pages={3929--3938},\n   year={2017},\n }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcszn%2FDPIR","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcszn%2FDPIR","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcszn%2FDPIR/lists"}