This projects tries to replicate a popular technique known as Image deionising .i.e noise removal from images.It uses a convolutional autoencoder which is able to remove noise from the image.
Autoencoders is an unsupervised learning technique which learns pixel to pixel mapping. It consists of an encoder-decoder network, out of which encoder tries to compress the image to extract usefull features and the decoder reconstructs the image. The problem with autoencoders is that, the quality of output image is not very detailed. The reasons for the image being not very detailed is that the we are forcing the encoder(the last layers) to learn features of the entire image, the decoder uses this encoding to reconstruct the image. As the features provided were less so is the quality. A very good tutorial for autoencoders
I tool my stone paper scissor game dataset(Although I have provided the dataset in this repo but you can have a look at my "game of stone paper scissors vs man" if you want to know how the data was generated) for training the model. We take those image resize them and add noise to them, the image containg noise is fed as input and the same images without noise are used for y_labels.
We can add noise to the images using opencv
For loading, resizing, saving of images I used opencv
I have used keras for training the autoencoder model.
- Python 3.x
- Tensorflow 1.5
- Keras
- OpenCV 3.4(for loading,resizing images)
- h5py(for saving trained model)
- pyttsx3
- A good grasp over convolutional neural networks. For online resources refer to standford cs231n, deeplearning.ai on coursera or cs231n by standford university
- A good CPU (preferably with a GPU).
- Time
- datetime
- Patience.... A lot of it.
- Start your terminal of cmd depending on your os.
- If you have a NVidia GPU then make sure you have the prerequisites for Tensorflow GPU installation (Refer to official site). Then use this commmand
pip install -r requirements_gpu.txt
- In case you do not have a GPU then use this command
pip install -r requirements_cpu.txt
1)Clone the repo
2)Extract the data folders
3)Install the requirements
4)You can change the name of test image in runner.py
5)Run "runner.py"
If you liked it you will surely like my other repos as well. You can also have a look at my youtube channel "reactor science". If you have any doubts you can contact me on my facebook page "reactor science"
1)Deep learning with python by Francois Chollet
2)keras.io
3)Deeplearning.ai by coursera(prof Andrew Ng)
4)CS231n by stanford
5)Pyimagesearch.com(Adrian Rosenberg)