Home

Awesome

<h2>Ne2Ne Image Denoiser</h2>

A Gaussian Noise denoiser for images, based on the Neighbour2Neighbour algorithm from the paper Neighbor2Neighbor: Self-Supervised Denoising from Single Noisy Images. It leverages subamples of a noisy image as independent noisy pairs to perform training.

Checkout the server directory to run the denoiser application as a Flask server

Results

The results are really good for an unsupervised pipeline, i.e, the training was performed using only noisy images and no clean images were used. Noisy-denoised image pairs follow.

<div align='center' style='margin: 20px;'>

noisy_ 59v21x

</div>

Installing requirements

pip3 install -r requirements.txt

Training

To train the model, run the following command after augmenting the parameters as per the need.

python3 train.py --epochs=15 --var=0.4 --batch=4 --learning_rate=0.001 --data_dir=./data --checkpoint_dir=./checkpoints

Inference/Evaluation

To expermiment with saved model checkpoints, run the following command after updating the arguments. Download the checkpoint from this link: Google Drive

python3 test.py --var=0.5 --data_dir=./data/test --checkpoint=./checkpoints/chckpt_gamma0_var_35.pt

Dataset

I used 350 images from the Berkeley Segmentation Dataset(BSD500) for training. 100 images from the dataset were used for cross-validation, and 50 for test.

Contact

LinkedIn Twitter