As I mentioned in previous post, I'm taking part in 'Get Noticed' contest. It's time to reveal my project.
Neural Network Image Upscaling
Few weeks ago I was wondering - what topic should I choose for my master degree? I knew that I wanted something related to machine learning, because it's the area that I have the smallest experience. Few small projects done in R while studying is not enough for me. So what I've done? There is a very cool Meetup in Poland called PyData Warsaw, that I'm attending always when possible. I've mentioned my problems with finding proper subject, and someone told me about image upscaling. My first thought - what a cool idea! Let's do it!
So, what exactly is upscaling? Take a look at this picture
![upscaling](/content/images/2017/03/superres.jpg)First column represents low-res images for upscaling. Second shows results of a naive approach. Third one is image upscaled using Neural Networks, and last is ground truth. It's not perfect, but in most cases much better than second column.
Initial step is to create machine learning model learned with training dataset. It should consist of many images of the same type, both in hi-res and low-res. Next, when model is ready, we can use it to upscale images not present in training set and review results. Sounds easy, right? But for sure it isn't.
My goals for Get Noticed Contest:
- Learn how neural networks works and get some hands-on experience
- Research papers related to image upscaling
- Decide which type of images I'll work with
- Develop ready to use script with instructions how to run, that will generate model for image upscaling, and second one to use generated model
- Publish my results
My technology of choice is Python (3.6), with TensorFlow library. Probably I'll also use Jupyter Notebook for easier testing. Pretty standard stack for such tasks. Also worth to mention, it's my first real contact with neural networks, so it'll be probably very challenging for me.
You can find project here