Recently we stumbled upon a very interesting project, it is called neural-style which is a torch implementation of an artificial system based on a Deep Neural Network that attempts to create artistic images of high perceptual quality.
According to the authors, this tool is based on the paper of Leon A. Gatys, Alexander S. Ecker and Matthias Bethge which is called “A Neural Algorithm of Artistic Style” (which is available to read for free here).
What this tool does is ‘simple’, it takes as input two images, the
style image and the
content image and using the
style image, it tries to recreate the
content image in such way that the
content image looks like it was created using the same technique as the
Following, is an example of a photograph that was recreated using the style of The Starry Night.
This tool offers a ton of possibilities and options, which we still did not play through yet.
Overall, we are very happy with the initial results we got. The final renderings look really nice and the fact that you get to choose your own style images it gives this tool a very nice advantage.
What we did not like though, is that it takes a lot of time and memory to complete the rendering of a single image (especially if you do not use a GPU to speed up the process).
This issue with the resources is normal and expected, unfortunately though it limits the fun out of the system. Each experiment you make is blocking you for some time and you cannot fiddle with the results in real time.
We installed this tool both on a
Fedora GNU/Linux and on an
Ubuntu with success.
Following are the exact commands we used to install it on
Ubuntu and convert our first image (the one above).
cd ~; git clone https://github.com/torch/distro.git ~/torch --recursive; cd ~/torch; bash install-deps; ./install.sh; source ~/.bashrc; sudo apt-get install libprotobuf-dev protobuf-compiler; CC=gcc-5 CXX=g++-5 luarocks install loadcaffe; luarocks install cutorch cd ~/ git clone https://github.com/jcjohnson/neural-style.git; cd neural-style/; sh models/download_models.sh; #After everything is complete, it is time to create our first 'artistic' image. th neural_style.lua -num_iterations 1500 -image_size 1250 -gpu -1 -style_image "/home/bytefreaks/Pictures/Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg" -content_image "/home/bytefreaks/Pictures/Aphrodite Hills Golf Course - Paphos, Cyprus.jpg"
Our input images were the following:
Below are the intermediate steps the tool created until it reached the final rendered image.
- For significantly more information on the project visit this link https://github.com/jcjohnson/neural-style
- To read about the background behind this technology read this paper https://arxiv.org/abs/1508.06576