Cartoon-Stylegan2:快来将你的图片漫画风

该文介绍了一种通过微调预训练的StyleGAN2模型进行无监督图像到图像转换的方法,特别是针对卡通脸生成。通过冻结风格向量和生成器的低分辨率层(FreezeSG)以及结构损失(StructureLoss),模型能够在保持源图像结构的同时生成逼真的卡通图像。此外,实验还涉及了层交换技术以改进结果。文章展示了CartoonGAN在人脸编辑和样式混合等方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
title

Cartoon-Stylegan : Fine-Tuning stylegan2 for cartoon face generation

author

Jihye Back

Link

论文地址:here

Code:here

请添加图片描述


Abstract

最近的研究表明,在无监督图像到图像转换方面取得了显著的成功。然而,由于数据的不平衡,学习各个领域的联合分布仍然具有很大的挑战性。尽管现有模型可以生成逼真的目标图像,但很难保持源图像的结构。另外,在多个领域的大数据上训练生成模型需要大量的时间和计算机资源。为了解决这些限制,我提出了一种新颖的图像到图像转换方法,该方法通过微调 stylegan2 预训练模型来生成目标域的图像。 stylegan2 模型适用于不平衡数据集上的无监督图像到图像翻译;它非常稳定,可以生成逼真的图像,甚至在使用简单的微调技术时可以从有限的数据中正确学习。因此,在这个项目中,我提出了新的方法来保留源图像的结构并在目标域中生成逼真的图像。

背景介绍等

本文通过finetune Stylegan2模型,完成图像到图像的翻译,为了使源图像和目标图像相似,例如制作成对图像,提出了两种方法:

(1)FreezeSG (冻结style向量和generator的初始blocks)。这个很简单,并且可以令目标图像遵循源图像的结构。

(2)Structure Loss(减小源generator和目标generator之间初始block的距离)。在这种loss训练下的模型加入层交换,效果也十分显著。

Method

Baseline : StyleGAN2-ADA + FreezeD

请添加图片描述

这种结构可以生成逼真的图像,但是它无法保持源域的结构。

Ours : FreezeSG (Freeze Style vector and Generator)

请添加图片描述

FreezeG 可以有效地保持源图像的结构。(冻结生成器的参数)

通过各种实验的结果,我发现除了生成器的初始层,样式向量的初始层对于保持结构也很重要。 因此,我冻结了生成器和样式向量的低分辨率层。

上图是通过相加style vector不同层,得到的实验结果。在Stylegan2中,style vector为n * 18 * 512,上图可以发现保留4层后,源图的结构也能大致留下。所以这也是作者想要冻结style vector低分辨率层的原因。

Freeze Style vector and Generator

请添加图片描述

with Layer Swapping

应用 LS 时,FreezeSG 生成的图像与源图像的相似度高于使用 FreezeG 或Baseline(FreezeD + ADA)时的相似度。 然而,由于固定了生成器的低分辨率层的权重,因此在低分辨率层上进行层交换时很难获得有意义的结果。

关于层交换,作者描述的不多,但是是借鉴于https://arxiv.org/abs/2010.05334这篇文章。原文中的介绍如下:

请添加图片描述

请添加图片描述

可以理解为,交换原generator和新generator低分辨率层的权重。(但目前存在的疑问在:如果通过其他pretrained模型进行fintune,冻结了低分辨率层,不也是相当于作了层交换…此处存疑)

Ours : Structure Loss

由于低分辨率层下优先确定图像结构,我将Structure Loss应用于低分辨率层的值,以便生成的图像与源域中的图像相似。 Structure Loss使得源生成器的 RGB 输出在训练期间被微调到与目标生成器的 RGB 输出具有相似的值。

请添加图片描述

Results

下面来看一看CartoonGAN生成的效果。

请添加图片描述

请添加图片描述

作者还描述了一些利用CartoonGAN做一些应用的表现,比如配合StyleCLIP做人脸编辑,又或者在样式混合阶段的表现,此处就不多描述了。

总结

该篇文章更像是作者的实验笔记,在实验过程中验证了记录下来的心得体会。

  • 作者在前人的基础上,加入了冻结style vector的想法,试验效果良好
  • 加入了structure loss,控制新generator生成的图像更贴近源generator生成的图像(更相似)
  • 加入了Layer swap(合并其他的项目)

在这里插入图片描述

### ONNX模型用于视频转画风格的可能性 目前,关于将视频转换为画风格的任务,主要依赖于图像处理和神经网络技术。虽然已有许多研究专注于静态图片的风格迁移[^1],但对于视频到画风格的转换,尤其是基于ONNX格式的模型,仍处于探索阶段。 #### 静态图转化为画风格的技术背景 对于单张图像而言,可以利用预训练好的PyTorch或TensorFlow模型将其导出为ONNX格式,并通过这些模型实现艺术化效果。例如,CycleGAN、StyleGAN以及CartoonGAN等模型被广泛应用于图像的艺术风格转化中。然而,在视频领域应用此类方法时需考虑时间一致性问题——即相邻帧间的变化应保持连贯性而不突兀。 #### 视频专用ONNX模型现状分析 针对您提到的需求,“Stable Video Diffusion”的工作可能提供一定启发,但它主要用于生成高质量动态影像而非特定样式转变;而且其资源消耗较大(推荐至少配备12GB VRAM) 。至于直接可用作Video-to-Comic Style Transformation 的成熟ONNX解决方案,则尚未有公开报道或者标准化产品问世。 如果希望构建这样一个流程,可以从以下几个方面入手: 1. **选择合适的框架并优化性能** 使用支持多平台部署且效率较高的推理引擎如ORT (OpenCV Runtime),加载已有的卡通化算法权重文件(.pth/.ckpt), 转换成兼容性强的中间表示形式—ONNX。 2. **解决跨帧连续性的挑战** 设计额外模块来捕捉前后画面之间的关联特征向量序列, 进而指导每一帧单独渲染过程中的参数调整方向. 以下是简化版伪代码展示如何从现有工具链迁移到目标环境: ```python import onnxruntime as ort from PIL import Image import numpy as np def preprocess_image(image_path): img = Image.open(image_path).resize((256, 256)) input_data = np.array(img).astype('float32') / 255. return np.expand_dims(input_data.transpose([2,0,1]), axis=0) session = ort.InferenceSession("cartoongan.onnx") input_name = session.get_inputs()[0].name output_name = session.get_outputs()[0].name for frame_file in video_frames_files: processed_frame = preprocess_image(frame_file) result = session.run([output_name], {input_name:processed_frame}) save_comic_style(result[0]) ``` 尽管如此,实际开发过程中还需要克服诸多难题比如内存管理不当可能导致崩溃等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值