Python实现照片卡通化

前言

之前看到一个有意思的开源项目,主要是可以将一张照片变成卡通漫画的风格。下面给大家放几张官方给出的部分效果图。

Python实现照片卡通化_第1张图片

Python实现照片卡通化_第2张图片

看到这个效果图,还是非常经验的。下面我会分享一下这个项目,并且选择一些我自己找的图片试验一下。

项目Github地址:github地址 

环境部署

先使用git将项目下载下来。看一下项目结构。

Python实现照片卡通化_第3张图片

我们看一下需要的环境。

Python实现照片卡通化_第4张图片

非常简单,只要pytorch就可以了。如果有不太会安装的,可以参考:机器学习基础环境部署 

项目使用

看一下readme怎么说明的。

Python实现照片卡通化_第5张图片

直接使用命令,或者代码执行都可以,我们先看看如果命令操作的话都有哪些参数支持。

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参数即可,经过我自己的几次验证,发现有的模型适合风景类型的图片,有的适合人像,下面我分成两部使用一下。

景色类图像使用

先看一下我准备的图片,三张风景的照片。

Python实现照片卡通化_第6张图片

Python实现照片卡通化_第7张图片

Python实现照片卡通化_第8张图片

我使用个人认为比较好用的模型是paprika.pt。下面是执行过程。

看看效果

Python实现照片卡通化_第9张图片

Python实现照片卡通化_第10张图片

Python实现照片卡通化_第11张图片

 哦,第一张图的漫画效果有所欠缺,但是后面两张还是不错的。没有细品一波算法,猜测一下,可能是颜色区域较多,对比度越明显,可能漫画后的效果会更好。

人像类图像使用

最主要的还是人像,懂的都懂。下面是我准备的图片。

Python实现照片卡通化_第12张图片

Python实现照片卡通化_第13张图片

Python实现照片卡通化_第14张图片

打算使用face_paint_512_v2.pt模型测试一下。下面直接展示处理后的效果。

Python实现照片卡通化_第15张图片

Python实现照片卡通化_第16张图片

Python实现照片卡通化_第17张图片

效果还是很好的,是不是。

总结

我反复测试了不少图片,有的转化的并不是很好,但是大部分还是不错的,瑕不掩瑜。项目还是好项目,只是可能模型本身训练的数据不是非常全面吧。

 以上就是Python实现照片卡通化的详细内容,更多关于Python照片卡通化的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(Python实现照片卡通化)