AnimeGANv2:照片动漫化

本文介绍了如何基于PyTorch实现AnimeGANv2项目,将现实图片转化为宫崎骏、新海诚和今敏三种动漫风格。详细阐述了环境配置过程,包括克隆项目、安装所需库和模型转换。提供了使用项目的命令行示例,通过运行test.py实现图片动漫化。项目轻量且支持CPU推理,适合线上部署。
摘要由CSDN通过智能技术生成

简介

本文介绍一个很有趣的基于GAN来将现实图片动漫化的项目,为AnimeGANv2,它可以将现实场景的图片处理为动漫画分,目前支持宫崎骏、新海诚和今敏的三种风格。由于原作者使用的是TensorFlow,环境配置上稍显麻烦,本文介绍的是基于PyTorch的实现,此外,本文侧重于如何在本地使用该项目,具体原理可以参考原论文或者作者的解读

安装

本项目是一个使用PyTorch的AnimeGANv2的实现,作者为bryandlee,项目地址为给出链接,我这里基于该项目进行处理,所以首先需要配置好适合该项目的环境,具体需要的安装步骤如下(所演示的过程均在Ubuntu系统下测试成功)。

首先,将该项目clone到本地,使用如下命令即可完成。

git clone https://github.com/bryandlee/animegan2-pytorch

然后,进入clone到本地的项目中(cd),会看到如下的项目结构,该项目的核心工作就是使用PyTorch构建的生成器模型并将原始TensorFlow的模型参数转换为了PyTorch模型参数,其中构建模型的脚本为model.py而转换模型的脚本对应为convert_weights.py,然后test.py则是封装的一个推理的接口。

.
├── convert_weights.py
├── model.py
├── README.md
├── samples
│   ├── compare
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   └── 3.jpg
│   ├── face_results.jpg
│   ├── faces
│   └── inputs
│       ├── 1.jpg
│       ├── 2.jpg
│       └── 3.jpg
├── test_faces.ipynb
└── test.py

为了使用原始的模型参数,这里首先需要转换TF模型,因此是需要安装TensorFlow的,不过我这里已经将原作者的三个模型(对应三种风格,分别是generator_Hayao_weightgenerator_Paprika_weightgenerator_Shinkai_weight)转换成功了,直接从我的网盘链接(提取码zczc)下载即可,会得到三个预训练模型文件,分别是pytorch_generator_Paprika.ptpytorch_generator_Shinkai.ptpytorch_generator_Hayao.pt,下载后将它们放到项目根目录的models文件夹下(没有则新建)。

接着,就是不需要TensoFlow的环境配置了,我这里给出使用conda虚拟环境的完整命令。

conda create -n animegan python=3.8 -y
conda activate animegan
conda install pytorch=1.6 torchvision cudatoolkit=10.2 -c pytorch -y
pip install opencv-python

至此,本项目需要的所有环境就配置完成了。

现实图片动漫化

想要使用该项目,非常简单,只需要调用test.py文件即可,具体的命令格式如下。

python test.py --checkpoint [模型文件路径] --input_dir [输入图像所在目录] --output_dir [输出目录] --device [设备选择,cpu或者cuda]

例如,我这里有一个测试图片放在根目录的samples下的inputs目录中,我个人喜欢新海诚的风格,想要生成在根目录的results文件夹下,并使用CPU进行推理,因此使用命令python test.py --checkpoint ./models/pytorch_generator_Shinkai.pt --input_dir ./samples/inputs/ --output_dir ./results/ --device cpu即可。

我这里使用测试图片生成的结果如下,左边为原始图像,右边为生成的图像。

在这里插入图片描述

下面的图为项目作者对比的原始图像、Tensor Flow版本生成图像、PyTorch版本生成图像,风格为Paprika。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

本文简单介绍如何使用AnimeGANv2这个开源项目来将现实图片转换为动漫风格图像,该项目对应的模型很轻量,即使线上部署使用CPU推理也不慢。最后,如果读到了这里并且我的文章对你有所帮助,欢迎一键三连,你的支持是我不懈创作的动力。

  • 27
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 27
    评论
### 回答1: AnimeGANv2是一个用于动漫风格转换的深度学习模型,它是在AnimeGAN的基础上进行了改进和优。其架构主要分为两个部分,分别是生成器和判别器。 1. 生成器 AnimeGANv2的生成器采用了类似于U-Net的结构,它由编码器和解码器两部分组成。编码器负责将输入图像逐渐降采样,提取出图像的特征;解码器则将这些特征逐渐上采样,生成与目标风格相似的图像。具体来说,生成器的架构包括以下几个部分: - 输入层:输入原始图像 - 编码器:由多个卷积层和池层组成,用于提取图像的特征 - 解码器:由多个上采样层和卷积层组成,用于将特征还原为目标风格的图像 - 输出层:输出生成的图像 2. 判别器 AnimeGANv2的判别器采用了多尺度判别器的结构,用于对生成的图像进行评估。具体来说,判别器由多个判别器组成,每个判别器对应一个不同的图像尺度。每个判别器都由卷积层和池层组成,用于提取图像的特征。最终,这些特征会被送入一个全连接层,输出生成图像的真假分数。 需要注意的是,AnimeGANv2的生成器和判别器都采用了一些技巧和优,例如使用了条件实例归一(CIN)来增强生成器的控制能力,使用了深度可分离卷积来减少模型参数和计算量等。这些优措施使得AnimeGANv2在生成动漫风格转换图像方面具有比较好的效果和速度。 ### 回答2: AnimeGANv2是一种针对动画风格转换的基于生成对抗网络(GAN)的架构。该架构是对原有AnimeGAN的改进和优,旨在提高绘画效果的质量和准确性。 AnimeGANv2框架主要由两个关键组件组成:生成器和判别器。生成器负责将输入的真实图像转换为具有动画风格的输出图像,而判别器则负责评估生成器输出图像和真实图像之间的差异。 生成器部分采用了注意力机制和残差模块,以更好地保留输入图像的细节和纹理。该设计能够更好地捕捉到动画风格的特征,并生成更具艺术性的图像。此外,生成器还引入了卷积神经网络中的反卷积操作,用于优图像的重建和上采样过程。 判别器部分采用了多尺度鉴别器,分别评估输入的真实图像和生成图像在不同尺度上的差异。这种多尺度的设计使得判别器能够更准确地判断图像的真实性。此外,判别器还加入了辅助分类器,用于判断输出图像的类别,以便进一步提高生成图像的质量和准确性。 AnimeGANv2的训练过程采用了对抗训练的方法,即生成器和判别器相互竞争和优。在训练过程中,生成器通过生成尽可能逼真的图像来欺骗判别器,而判别器则努力区分真实图像和生成图像。通过不断迭代训练和优,AnimeGANv2能够学习到更好的动画风格转换能力。 总的来说,AnimeGANv2通过改进和优生成器和判别器的架构,提高了动画风格转换的效果。它能够更准确、更艺术地将真实图像转换为具有动画风格的输出图像,为动画制作和风格提供了有力的工具。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周先森爱吃素

你的鼓励是我坚持创作的不懈动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值