zoukankan      html  css  js  c++  java
  • Deep Photo的TensorFlow版本

    Prisma这个应用,你可能很熟悉。这是一个能将不同的绘画风格,迁移到照片中,形成不同艺术风格的图片。

    2017年4月,美国康奈尔大学和Adobe的一个研究团队在arvix上通过论文“Deep Photo Style Transfer”, 提出一种叫做“深度摄影风格转换”的演化技术,能将一张照片的风格,迁移到另一张照片中。原论文作者给出了Ubuntu14.04系统下的Torch实现,但是该Torch代码实现需要配置复杂的MATLAB环境,但是浙大的LouieYang将该Torch实现转换成了TensorFlow实现。

    项目地址:https://github.com/LouieYang/deep-photo-styletransfer-tf

    (照片风格迁移示例如下,以下三列从左到右分别是:输入图像、风格图像、Torch效果、TensorFlow效果)

    下面是对这个TF实现的介绍:

    这份TensorFlow实现支持Adam算法和原作者使用的L-BFGS-B算法。当TensorFlow升级到更高版本时,此代码中的ScipyOptimizerInterface函数可能不兼容。

    由于TensorFlow的自动转换功能,这个项目的TensorFlow实现似乎更为简单。此外,这个项目并不依赖MATLAB软件,而是使用了另一个计算库Matting Lapalacian Sparse Matrix.

    1.依赖库:TensorFlow、Numpy、Pillow、Scipy、PYCUDA(仅在CUDA8.0上测试过平滑局部仿射的功能),建议使用Anaconda (注:python科学计算环境),这样仅需再安装TensorFlow和PYCUDA即可。可选装CUDA加速库,建议安装。

    2.下载VGG-19模型权重

    VGG-19模型的权重矩阵由TensorFlow版本的VGG模型微调得到,仅对类别接口进行了少量修改,VGG-19模型权重被存储为npy文件。下载后,将该权重文件复制到此目录下./project/vgg19。

    使用方法:

    1.  使用时你只需要给出目标图像路径(content image)、风格图像路径(style image)、目标图像分割路径(content image segmentation)和风格图像分割路径(style image segmentation),即可运行命令。

    2. 其他选项。设置style_option的值,可得到三种不同的风格迁移方式。当style_option为0时,可得到分割后的中间结果,与Torch代码中neuralstyle_seg.lua文件相似;当style_option为1时,进一步使用这个中间结果生成最终结果,与Torch代码中deepmatting_seg.lua文件相似;当style_option为2时,将这两个步骤组合为一行命令,直接生成最终结果。

    运行命令 python deep_photostyle.py -help 可查看所有选项。

    3. 图像分割

    这个项目不提供图像分割脚本的代码,仅能使用Torch版本的图像分割代码。这个项目的实现使用的掩码颜色与其相同。你也可以自己定义独特的分割模型和掩码颜色,来定制风格迁移系统。

  • 相关阅读:
    careercup-树与图 4.6
    careercup-树与图 4.5
    careercup-树与图 4.4
    careercup-树与图 4.3
    oracle 建表时显示ORA-00904无效的标识符
    Unable to read TLD "META-INF/c.tld" from JAR file
    MIME TYPE
    JavaWeb response对象常用操作
    移动硬盘文件删除后,空间没有变大
    Redis 数据结构解析和命令指南
  • 原文地址:https://www.cnblogs.com/abelsu/p/7364494.html
Copyright © 2011-2022 走看看