Python实现照片卡通化
前言
之前看到一个有意思的开源项目,主要是可以将一张照片变成卡通漫画的风格。下面给大家放几张官方给出的部分效果图。
看到这个效果图,还是非常经验的。下面我会分享一下这个项目,并且选择一些我自己找的图片试验一下。
项目Github地址:github地址
环境部署
先使用git将项目下载下来。看一下项目结构。
我们看一下需要的环境。
非常简单,只要pytorch就可以了。如果有不太会安装的,可以参考:机器学习基础环境部署
项目使用
看一下readme怎么说明的。
直接使用命令,或者代码执行都可以,我们先看看如果命令操作的话都有哪些参数支持。
if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( '--checkpoint', type=str, default='./weights/paprika.pt', ) parser.add_argument( '--input_dir', type=str, default='./samples/inputs', ) parser.add_argument( '--output_dir', type=str, default='./samples/results', ) parser.add_argument( '--device', type=str, default='cuda:0', ) parser.add_argument( '--upsample_align', type=bool, default=False, help="Align corners in decoder upsampling layers" ) parser.add_argument( '--x32', action="store_true", help="Resize images to multiple of 32" ) args = parser.parse_args() test(args)
可以通过项目结构看到,作者提供了4个模型文件可供选择,可以用--checkpoint参数切换。需要提供图片的输入文件夹,修改--input_dir参数即可,经过我自己的几次验证,发现有的模型适合风景类型的图片,有的适合人像,下面我分成两部使用一下。
景色类图像使用
先看一下我准备的图片,三张风景的照片。
我使用个人认为比较好用的模型是paprika.pt。下面是执行过程。
看看效果
哦,第一张图的漫画效果有所欠缺,但是后面两张还是不错的。没有细品一波算法,猜测一下,可能是颜色区域较多,对比度越明显,可能漫画后的效果会更好。
人像类图像使用
最主要的还是人像,懂的都懂。下面是我准备的图片。
打算使用face_paint_512_v2.pt模型测试一下。下面直接展示处理后的效果。
效果还是很好的,是不是。
总结
我反复测试了不少图片,有的转化的并不是很好,但是大部分还是不错的,瑕不掩瑜。项目还是好项目,只是可能模型本身训练的数据不是非常全面吧。