Skip to content
This repository was archived by the owner on Dec 3, 2023. It is now read-only.

Neural style transfer implementation in TensorFlow with a couple alterations and improvements.

License

Notifications You must be signed in to change notification settings

sumtype/neural-style-transfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Style Transfer

Neural style transfer implementation in TensorFlow with a couple improvements and quirks. Based on A Neural Algorithm of Artistic Style and improvements in Improving the Neural Algorithm of Artistic Style.

Improvements

  • Geometric weighting scheme for content and style layers.
  • Utilizes all 16 convolutional layers in the VGG-19 model.
  • Calculates Gram matrices using shifted activations.
  • Feature comparisons with blurred chain correlations between local layers.

Quirks

  • Weighs feature comparisons within the same layer, l, and l and l - 1 differently. The first l and l correlation gets additional weight equal to the weight given to l and l - 1 comparisons.
  • Blurs l and l - 1 correlation using a gaussian blur instead of a box blur.
  • Hyperparameters...

Usage

Download some images to work with and the pretrained VGG-19 model (save the model file in the project's root directory, don't change it's name). Install NumPy, SciPy, and TensorFlow. If possible, install the version of TensorFlow that runs on your GPU, this speeds things up considerably. Then run the following in your terminal:

$python3 neural-style-transfer.py [content path] [style path] [output image width] [iterations]

Generated images are saved inside the "output" directory when the process is completed. Inside the "iterations" folder there will be generated images from every 100 iterations processed. Inside the "setup" folder will be the resized content and style images used during processing.

Examples

Content Style Output
Man in a Forest Landscape Cypresses Man in a Forest Landscape + Cypresses

Content: Man in a Forest Landscape (Constant Alexandre Famin, ca. 1870)

Style: Cypresses (Vincent van Gogh, 1889)

Iterations: 5000


Content Style Output
11:00 A.M. Monday, May 9th, 1910. Newsies at Skeeter's Branch, Jefferson near Franklin. They were all smoking. Location: St. Louis, Missouri. Fleur de Lis 11:00 A.M. Monday, May 9th, 1910. Newsies at Skeeter's Branch, Jefferson near Franklin. They were all smoking. Location: St. Louis, Missouri. + Fleur de Lis

Content: 11:00 A.M. Monday, May 9th, 1910. Newsies at Skeeter's Branch, Jefferson near Franklin. They were all smoking. Location: St. Louis, Missouri. (Lewis Hine, May 9, 1910)

Style: Fleur de Lis (Robert Reid, ca. 1895-1900)

Iterations: 5000


Content Style Output
Medinet Habu Rochishin Chopping Off the Head of Nio Medinet Habu + Rochishin Chopping Off the Head of Nio

Content: Medinet Habu (John Beasley Greene, 1854)

Style: Rochishin Chopping Off the Head of Nio (School of Katsushika Hokusai, 18th-19th century)

Iterations: 5000


Content Style Output
Sentinel Rock Yosemite The Beeches Sentinel Rock Yosemite + The Beeches

Content: Sentinel Rock, Yosemite (attributed to Carleton E. Watkins, ca. 1872, printed ca. 1876)

Style: The Beeches (Asher Brown Durand, 1845)

Iterations: 5000

About

Neural style transfer implementation in TensorFlow with a couple alterations and improvements.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages