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:同时传输颜色和纹理)此外,请注意,在当前版本中,渐进渲染模式不支持样式转换。我们将在不久的将来开发这一功能。
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