a tensorflow implement of the TIP2017 paper Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising
The average PSNR(dB) results of different methods on the BSD68 dataset.
Noise Level | BM3D | WNNM | EPLL | MLP | CSF | TNRD | DnCNN-S | DnCNN-B | DnCNN-tensorflow |
---|---|---|---|---|---|---|---|---|---|
25 | 28.57 | 28.83 | 28.68 | 28.96 | 28.74 | 28.92 | 29.23 | 29.16 | 29.24 |
- Install docker, following the instructions on https://docs.docker.com/engine/installation/
- Install nvidia-docker, to make your GPU available to docker containers
- Create an image that can run the code from the provided Dockerfile. Call the image 'dncnn':
$ docker build --network host -t dncnn .
$ ./rundocker.sh
Then you could train the model.
You should make sure the following environment is contented
tensorflow = 1.0.1
numpy
$ python generate_patches.py
$ python main.py
(note: You can add command line arguments according to the source code, for example
$ python main.py --batch_size 64 )
Here is my training loss:
$ python main.py --phase test
- Clean source code. For instance, merge similar functions(e.g., 'load_images 'and 'load_image' in utils.py)
- Replace PIL with OpenCV.
- Fix bugs, such as #13.
- Support the newest tensorflow(1.4)
- @lizhiyuanUSTC
- @husqin