Skip to content

asalp/Block-Based-CS-NNs

Repository files navigation

Block-Based Compressed Sensing of images with Neural Networks

In this research project I implemented Block-Based Compressed Sensing of images with Neural Networks based on "A DEEP LEARNING APPROACH TO BLOCK-BASED COMPRESSED SENSING OF IMAGES" paper by Amir Adler, David Boublil, Michael Elad, Michael Zibulevsky.

You can find the original paper here: https://arxiv.org/pdf/1606.01519.pdf

Implementation

I implemented this project in python3 using Keras.

Hyper parameters:

  • R is compression size
  • B is sensing block size
  • T is redundancy factor

The Neural Network looks something like this (the number of the nodes in each layer depends on R, B, and T):

img

Process

I started with the best hyper parameters they found in their research. R = 0.25, T = 8 and K = 2 (#number of reconstruction layers)

Having R, T, K as fixed numbers, I changed the sensing matrix size to B = 8, 16, 32. I shared the results in separate files. (Loss and PSNR plots, reconstrcuted and original images are shown in the codes)

Then I picked the best sensing block size and I trained model again with R = 0.1, 0.2, 0.3, 0.4, 0.5. (I didn't share the results here)

As expected, when R increased the Average PSNR increased as well.

Here are the results shown on train and test set:

img

img2

Training

I trained on AWS EC2 p2.xlarge instance.

About

Block-Based Compressed Sensing using NNs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published