aefpnc
Image Denoising Using Deep Convolutional Autoencoder with Feature Pyramids
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.0%) to scientific vocabulary
Keywords
Repository
Image Denoising Using Deep Convolutional Autoencoder with Feature Pyramids
Basic Info
- Host: GitHub
- Owner: ekremcet
- Language: Python
- Default Branch: master
- Homepage: https://aefpncdemo.github.io/
- Size: 67.2 MB
Statistics
- Stars: 13
- Watchers: 2
- Forks: 6
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
readme.md
Image Denoising Using Deep Convolutional Autoencoder with Feature Pyramids
[Paper]
Citation
@article{cetinkaya2020denoising,
title={Image denoising using deep convolutional autoencoder with feature pyramids},
author={Cetinkaya, Ekrem and Kirac, M. Furkan},
journal={Turkish Journal of Electrical Engineering \& Computer Sciences},
volume={28},
number={4},
pages={2096-2109},
year={2020},
publisher={The Scientific and Technological Research Council of Turkey}
}
Abstract
Image denoising is one of the fundamental problems in image processing field since it is required by many computer vision applications. Various approaches have been used in image denoising throughout the years from spatial filtering to model based approaches. Having outperformed all traditional methods, neural network based discriminative methods have gained popularity in the recent years. However, most of these methods still struggle to achieve flexibility against various noise levels and types. In this paper, we propose a deep convolutional autoencoder combined with a variant of feature pyramid network for image denoising. We use simulated data in Blender software along with corrupted natural images during training to improve robustness against various noise levels and types. Our experimental results show that proposed method can achieve competitive performance in blind Gaussian denoising with significantly less training time required compared to state-of-the-art methods. Extensive experiments showed us our method gives promising performance in wide range of noise levels with a single network.
Network Architecture
The network takes a single-scale image as input with size M x N and passes it through four components: Early encoder, Feature Pyramid Network Component (FPNC), Smoothing layers and Decoder.

Results
Grayscale Image Denoising
PSNR Values in BSDS68
PSNR Values in Set12
Color Image Denoising
PSNR Values
Blender Render Denoising
Blender Render Time Saving
Requirements
CUDA 10
Pytorch 1.0
Python 3.7
Pandas, Scikit-image, Numpy
Prepare Data
First thing to do is to prepare the data and folders. generatenoisydata.py script can be used for that:
console
foo@bar:~$ python generate_noisy_data.py
Default data folder for test images is /Datasets. This should give noisy versions of test images along with their corresponding CSV files. It also prepares the folder structure of the project.
AEFPNC
│
└───Checkpoints
└───Samples
│ └─── TestSamples
└───TestSets
│ └─── CBSDS68
│ └─── gaussian15
│ └─── gaussian25
│ | ...
│ | CBSDS68_gaussian15.csv
│ | CBSDS68_gaussian25.csv
│ | ...
│ └─── GCBSDS68
│ | ...
│ └─── Kodak24
│ | ...
│ └─── Set12
│ | ...
Training Models
To train the network with your own dataset you need dataset of noisy and clean image pairs. The dataset we used for training our model can be downloaded from Here.
If you want to train the network with your own dataset, you can use generatenoisydata.py script. For example: ```python generatenoisyset("./Datasets/BSDS500", "./TrainingSets", train=True, gray=False)
Train argument will also generate Poisson noise
Above line is going to generate noisy dataset using images in **/Datasets/BSDS500** folder. You can then collect all the noisy images in a single folder that will be the noisy image folder for training. Then you should generate the **CSV** file for training dataset:
python
generate_csv("./TrainingSet/Images", "./TrainingSet/GroundTruths", "TrainingSet")
First argument is noisy image folder, second is ground truth folder, third is the csv name
``` Then you can run the training in train.py by changing the parameters of dataset loader in lines 20-21 to your corresponding dataset folders.
Testing Models
Once you run the generatenoisydata.py, you can run evaluate.py to generate denoised images from test sets given that trained model is in /Checkpoints/AEFPNC.pth. This should save denoised images in different noise levels into /Samples/TestSamples/ folder along with corresponding PSNR and SSIM values for each image and noise level.
Pre-trained models for both color and grayscale denoising can be found in Checkpoints folder. It can also be downloaded from Here. ```python evaluate_dataset("AEFPNC", "Kodak24")
First parameter is the name of checkpoint file and second parameter is the test dataset
```
Owner
- Name: Ekrem Çetinkaya
- Login: ekremcet
- Kind: user
- Location: Klagenfurt / Austria
- Website: https://ekrcet.com/
- Twitter: ekremcetinkaya_
- Repositories: 18
- Profile: https://github.com/ekremcet
Wite
GitHub Events
Total
- Watch event: 2
Last Year
- Watch event: 2