Github 项目地址:https://github.com/jiupinjia/stylized-neural-painting

1、配置环境

matplotlib
scikit-image
scikit-learn
scipy
numpy
torch
torchvisoion
opencv-python

2、下载模型

本文章的百度云盘有模型包

3、运行

1、油画效果

渐进渲染

python demo_prog.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --max_divide 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush --net_G zou-fusion-net

使用轻量级渲染器进行渐进式渲染(GPU内存消耗更低,速度更快)

python demo_prog.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --max_divide 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush_light --net_G zou-fusion-net-light

直接从mxm图像网格渲染

python demo.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --m_grid 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush --net_G zou-fusion-net

2、照片到记号笔绘画

渐进渲染

python demo_prog.py --img_path ./test_images/diamond.jpg --canvas_color 'black' --max_m_strokes 500 --max_divide 5 --renderer markerpen --renderer_checkpoint_dir checkpoints_G_markerpen --net_G zou-fusion-net

使用轻量级渲染器进行渐进式渲染(GPU内存消耗更低,速度更快)

python demo_prog.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --max_divide 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush_light --net_G zou-fusion-net-light

直接从mxm图像网格渲染

python demo.py --img_path ./test_images/apple.jpg --canvas_color 'white' --max_m_strokes 500 --m_grid 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush --net_G zou-fusion-net

3、风格迁移

首先,您需要生成绘画并将笔划参数保存到输出目录

python demo.py --img_path ./test_images/sunflowers.jpg --canvas_color 'white' --max_m_strokes 500 --m_grid 5 --renderer oilpaintbrush --renderer_checkpoint_dir checkpoints_G_oilpaintbrush --net_G zou-fusion-net --output_dir ./output

然后,选择一个样式图像,并对生成的笔划参数运行样式传递

python demo_nst.py --renderer oilpaintbrush --vector_file ./output/sunflowers_strokes.npz --style_img_path ./style_images/fire.jpg --content_img_path ./test_images/sunflowers.jpg --canvas_color 'white' --net_G zou-fusion-net --renderer_checkpoint_dir checkpoints_G_oilpaintbrush --transfer_mode 1

您也可以指定–transfer_mode(0:仅传输颜色,1:同时传输颜色和纹理)此外,请注意,在当前版本中,渐进渲染模式不支持样式转换。我们将在不久的将来开发这一功能。

4、生成8位图形艺术品

python demo_8bitart.py --img_path ./test_images/monalisa.jpg --canvas_color 'black' --max_m_strokes 300 --max_divide 4

5、重新训练神经渲染器

也可以选择笔刷类型并从头开始训练笔划渲染器。唯一要做的就是运行以下公用程序。在训练过程中,地面实况笔划是动态生成的,因此您不需要下载任何外部数据集

python train_imitator.py --renderer oilpaintbrush --net_G zou-fusion-net --checkpoint_dir ./checkpoints_G --vis_dir val_out --max_num_epochs 400 --lr 2e-4 --batch_size 64