Inspiration
We were inspired to make this project by image filters implemented in social media apps like SnapChat and Instagram. We believed that these applications of computer vision were impressive, but that they could be pushed even further to make even more unique and interesting art.
What it does
The website takes in two file uploads, a content image, and a style image. The content image is the actual image that you want to keep the shape of and change the style of. The style image is the style/pattern you want to apply to the content image.
How we built it
We built this project by using the Neural Style Transfer (NST) algorithm. NST uses a pre-trained neural network to identify features of an image, which can be used to interpolate the image's style and content. NST then uses information about the style image's style and the content image's content to generate an image with the content of the content image in the style of the style image. Our implementation of NST was done with a pre-trained VGG19 model. To implement NST, we used TensorFlow, NumPy, and Pillow. We also created a web app using Django and set up forms for file uploads and image processing. Our NST was deployed within this web app. We used static files in order to create and display the merged images.
Challenges we ran into
We were not able to complete hosting via Heroku, and we ran out of time at that point, so we couldn't host the site online. In the near future, we hope to be able to host it with more time/resources. We also ran into issues in integrating some of the TensorFlow applications with the Django views/backend, but we were able to persevere and get through it.
Accomplishments that we're proud of
We're proud of getting our image processing, merging, and TensorFlow methods integrated with the Django backend. It took time, but we were able to eventually coordinate it out in the project and have success.
What we learned
We learned significant skills within Django, HTML, especially static files in Django, TensorFlow, and more. Our team has never used Neural Style Transfer before, and it proved to be a great and fun learning experience for us. Neutral Style Transfer is an amazing and beautiful algorithm.
What's next for ImageBlender
We plan on hosting the website on a service like Heroku or Google Cloud. We weren't able to complete hosting, but we really want to get this up on the net. Additionally, we also want to utilize a cloud service to allow users to store images to an account. We also hope to implement it as an application that will be able to directly work with a user's camera, so that using NST will be more quick and convenient. On top of this, we hope to implement NST for video data, so that users can generate stylized videos. We are considering utilizing ConvLSTMs and GANs to do this.
Built With
- css
- django
- html5
- image-processing
- javascript
- neural-style-transfer
- tensorflow
Log in or sign up for Devpost to join the conversation.