[download_code]

准备

此代码基于pytorch。它已经在Ubuntu 14.04 LTS上进行了测试。

依赖关系:

CUDA后端:

下载VGG-19:

sh models/download_models.sh

编译cuda_utils.cumakefile为您的机器调整PREFIX以及NVCC_PREFIX):

make clean && make

用法

快速开始

使用提供的脚本生成所有(examples/)结果,只需在Matlab或Octave运行

run('gen_laplacian/gen_laplacian.m')

然后在Python中:

python gen_all.py

最终输出在examples/final_results/

基本用法

  1. 给定具有语义分割掩码的输入和样式图像,以下文件名格式分别将它们放入examples/examples/input/in<id>.pngexamples/style/tar<id>.pngexamples/segmentation/in<id>.pngexamples/segmentation/tar<id>.png;
  2. 使用gen_laplacian/gen_laplacian.mMatlab 计算消光拉普拉斯矩阵。输出矩阵将具有以下文件名形式:gen_laplacian/Input_Laplacian_3x3_1e-7_CSR<id>.mat;

注意:请确保内容图像分辨率与Matlab中的Matting Laplacian计算和Torch中的样式传输一致,否则结果将不正确。

  1. 运行以下脚本以生成分段中间结果:

th neuralstyle_seg.lua -content_image <input> -style_image <style> -content_seg <inputMask> -style_seg <styleMask> -index <id> -serial <intermediate_folder>

  1. 运行以下脚本以生成最终结果:

th deepmatting_seg.lua -content_image <input> -style_image <style> -content_seg <inputMask> -style_seg <styleMask> -index <id> -init_image <intermediate_folder/out<id>_t_1000.png> -serial <final_folder> -f_radius 15 -f_edge 0.01

可以传递-backend cudnn-cudnn_autotune两者Lua脚本(步骤3和4),以潜在地提高速度和内存使用情况。libcudnn.so必须在你的LD_LIBRARY_PATH。这需要cudnn.torch

图像分割

注意:在论文中,我们使用从DilatedNet修改的自动场景分割算法生成所有比较结果。手动分割可以实现更多样化的任务,因此我们提供了掩模examples/segmentation/

我们使用的蒙版颜色(您可以ExtractMask在两个*.lua文件中添加更多颜色):

颜色变量 RGB值 十六进制值
blue 0 0 255 0000ff
green 0 255 0 00ff00
black 0 0 0 000000
white 255 255 255 ffffff
red 255 0 0 ff0000
yellow 255 255 0 ffff00
grey 128 128 128 808080
lightblue 0 255 255 00ffff
purple 255 0 255 ff00ff

 

例子

以下是算法的一些结果(从左到右分别是输入,样式和输出):

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。