资源算法fast-neural-style-ncs

fast-neural-style-ncs

2020-02-21 | |  42 |   0 |   0

WIP Fast Style Transfer for Movidius Neural Compute Stick

To download a trained model checkpoint and export to a graph compatible with mvNCCompile:

  1. bash setup.sh

  2. python export-graph.py

  3. mvNCCompile bn-vgg16-style5/ncs.meta -in="input" -on="output" -s 12 -o ncs_bn.meta

  4. python webcam_ncs.py --graph ncs_bn.graph -- Run the compiled graph on the NCS with webcam images


ORIGINAL README:

Fast Style Transfer in TensorFlow

Add styles from famous paintings to any photo in a fraction of a second! You can even style videos!

图片.png

It takes 100ms on a 2015 Titan X to style the MIT Stata Center (1024×680) like Udnie, by Francis Picabia.

Our implementation is based off of a combination of Gatys' A Neural Algorithm of Artistic Style, Johnson's Perceptual Losses for Real-Time Style Transfer and Super-Resolution, and Ulyanov's Instance Normalization.

Try neural style client-side in your web browser without installing any software (using TensorFire).

Video Stylization

Here we transformed every frame in a video, then combined the results. Click to go to the full demo on YouTube! The style here is Udnie, as above.

fox_udnie.gif

See how to generate these videos here!

Image Stylization

We added styles from various paintings to a photo of Chicago. Click on thumbnails to see full applied style images.

Implementation Details

Our implementation uses TensorFlow to train a fast style transfer network. We use roughly the same transformation network as described in Johnson, except that batch normalization is replaced with Ulyanov's instance normalization, and the scaling/offset of the output tanh layer is slightly different. We use a loss function close to the one described in Gatys, using VGG19 instead of VGG16 and typically using "shallower" layers than in Johnson's implementation (e.g. we use relu1_1 rather than relu1_2). Empirically, this results in larger scale style features in transformations.

Documentation

Training Style Transfer Networks

Use style.py to train a new style transfer network. Run python style.py to view all the possible parameters. Training takes 4-6 hours on a Maxwell Titan X. More detailed documentation hereBefore you run this, you should run setup.sh. Example usage:

python style.py --style path/to/style/img.jpg 
  --checkpoint-dir checkpoint/path 
  --test path/to/test/img.jpg 
  --test-dir path/to/test/dir 
  --content-weight 1.5e1 
  --checkpoint-iterations 1000 
  --batch-size 20

Evaluating Style Transfer Networks

Use evaluate.py to evaluate a style transfer network. Run python evaluate.py to view all the possible parameters. Evaluation takes 100 ms per frame (when batch size is 1) on a Maxwell Titan X. More detailed documentation here. Takes several seconds per frame on a CPU. Models for evaluation are located here. Example usage:

python evaluate.py --checkpoint path/to/style/model.ckpt 
  --in-path dir/of/test/imgs/ 
  --out-path dir/for/results/

Stylizing Video

Use transform_video.py to transfer style into a video. Run python transform_video.py to view all the possible parameters. Requires ffmpegMore detailed documentation here. Example usage:

python transform_video.py --in-path path/to/input/vid.mp4 
  --checkpoint path/to/style/model.ckpt 
  --out-path out/video.mp4 
  --device /gpu:0 
  --batch-size 4

Requirements

You will need the following to run the above:

  • TensorFlow 0.11.0

  • Python 2.7.9, Pillow 3.4.2, scipy 0.18.1, numpy 1.11.2

  • If you want to train (and don't want to wait for 4 months):

    • A decent GPU

    • All the required NVIDIA software to run TF on a GPU (cuda, etc)

  • ffmpeg 3.1.3 if you want to stylize video

Citation

  @misc{engstrom2016faststyletransfer,
    author = {Logan Engstrom},
    title = {Fast Style Transfer},
    year = {2016},
    howpublished = {url{https://github.com/lengstrom/fast-style-transfer/}},
    note = {commit xxxxxxx}
  }

Attributions/Thanks

  • This project could not have happened without the advice (and GPU access) given by Anish Athalye.

    • The project also borrowed some code from Anish's Neural Style

  • Some readme/docs formatting was borrowed from Justin Johnson's Fast Neural Style

  • The image of the Stata Center at the very beginning of the README was taken by Juan Paulo

License

Copyright (c) 2016 Logan Engstrom. Contact me for commercial use (email: engstrom at my university's domain dot edu). Free for research/noncommercial use, as long as proper attribution is given and this copyright notice is retained.


上一篇: mxnet-fast-neural-style

下一篇:fast-neural-style-flask

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...