基于深度学习的图像风格迁移发展总结

前言

本文总结深度学习领域的图像风格迁移发展脉络。重点关注随着GAN、CUT、StyleGAN、CLIP、Diffusion Model 这些网络出现以来,图像风格迁移在其上的发展。本文注重这些网络对图像风格迁移任务的影响,以及背后的关键技术和研究,并总结出一些经典论文作为学习参考。

目录

  • Optimization-based Neural Style Transfer
    • 基础结构
    • AdaIN
  • 基于GAN的风格迁移
    • 基础结构
    • CycleGAN
    • loss优化
      • 水墨画
      • 风景画
      • 卡通画
      • 人脸肖像画
    • CUT对比学习
    • StarGAN 多域风格迁移
  • 基于StyleGAN的风格迁移
    • 基础结构
    • 风格迁移实现
    • few-shot style transfer
      • Fixation and Adaptation
      • Latent Space Adaptation
      • JoJoGAN
  • 基于自然语言语义信息(textual)指导的风格迁移
    • CLIP
    • 语义信息(textual)指导风格迁移
      • CLIPStyle
      • One-Shot Adaptation of GAN in Just One CLIP
      • StyleGAN-NADA
  • 基于Diffusion Model的风格迁移
    • 基础结构
    • 风格迁移实现
      • DISENTANGLED STYLE AND CONTENT REPRESENTATION
      • Inversion-Based
      • ProSpect
      • T2I-Adapter
    • 其余论文

Optimization-based Neural Style Transfer

基础结构

A Neural Algorithm of Artistic Style 2015

基于具有一定图像理解能力的VGG-16网络,对内容图像和风格图像进行特征提取,再根据这些特征的一阶特征矩阵(轮廓)构建content-loss,根据二阶特征矩阵(风格纹理)构建style-loss,使得新生成的图像内容符合内容图像、风格符合风格图像;




两个损失分别负责内容和风格生成的任务,可以生成质量较好的风格化图像,但具有以下缺点:
(1)每张内容/风格图像都要重新训练网络,训练时长也不短
(2)训练不稳定,很容易出现模式坍塌、过拟合等情况
(3)实用场景局限

AdaIN

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization 2017

在依据图像特征构建损失的过程中,有研究人员发现VGG网络中特征的均值/方差代表了风格,在构建损失前对图像特征进行去风格化(去除均值/方差),对网络学习效果和速度有很大的提升;


可以看到,Instance Norm是先去风格化再构建损失的曲线,收敛快、效果好;
AdaIN方法在图像风格迁移任务中被广泛应用,在后续网络中都有运用;

基于GAN的风格迁移

基础结构

Generative Adversarial Nets 2014


‘最锋利的剑与最坚固的盾’ 相互对抗,使得生成器能够从一个噪声空间中学习到向目标图像域的映射,最终生成器能够不断生成我们需要的图像;
直接利用在风格迁移:对预训练好的生成器微调,数据集换成风格图像,微调较少的epoch,即将原域图像映射到风格图像域中;
基于GAN的风格迁移缺点:
(1)模式坍塌、过拟合,当生成器‘记住’少数几幅风格图像,生成时将这些图像复制输出,则‘最锋利的剑与最坚固的盾’的机制将无法再约束模型;(解决:CycleGAN、CUT)
(2)Random noise 是一个抽象数学域,无法有效控制;(解决:StyleGAN、CycleGAN)

CycleGAN

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 2020



使用两组生成器/鉴别器,分别完成原域/目标域相互的转换;这样不仅可以保证输出结果是可控的,也通过循环一致性使得‘最锋利的剑与最坚固的盾’ 对抗机制持续有效,网络无法‘记住’风格图像(需要将输出图像重新转换到原域);

loss优化

仅仅通过对抗机制的损失约束模型,在特定艺术风格领域生成效果无法做到最好,通常需要额外的损失,增强模型学习能力;

水墨画

水墨画;线条、笔画模糊损失;
ChipGAN: A Generative Adversarial Network for Chinese Ink Wash Painting Style Transfer 2018

风景画

风景画:边缘损失
End-to-End Chinese Landscape Painting Creation Using Generative Adversarial Networks 2020

卡通画

卡通画:结构损失、纹理模糊损失、色彩损失
Learning to Cartoonize Using White-box Cartoon Representations 2020

人脸肖像画

人脸肖像画:边缘损失、基于细粒度鉴别器的五官约束损失
Unpaired Portrait Drawing Generation via Asymmetric Cycle Mapping 2020

CUT

Contrastive Learning for Unpaired Image-to-Image Translation 2020



在GAN的基础上引入特征之间的对比损失,对encoder端的特征按patch划分,然后相同部位的patch应当拉近距离,而不同部位的patch则推远;此方法对于保存原域特征十分有效,且对比损失会利于特征解耦,有利于特征向目标域映射;

(1)对比学习的思想在后续研究中都会有涉及(StyleGAN、Diffusion Model)
(2)对比学习在特定艺术风格迁移任务上,也需要辅助的loss设计,如上

StarGAN 多域风格迁移

StarGAN v2: Diverse Image Synthesis for Multiple Domains 2020





以往的研究都是完成单个域之间的转换,如 马<=>斑马,人脸<=>笑脸,人脸<=>哭脸;有两个缺点:
(1)每两个单域的转换都需要训练一个网络,实用受限;
(2)许多转换任务应当是可以共享参数资源的,如人脸表情的转换;

因此,starGAN提出在风格迁移任务中用域标签标定多个目标域,在网络设计和损失中增加多域分类的任务,使得网络可以根据特定的域标签实现向目标域的风格迁移;

最终,一个主干网络、多个子目标域对应的模块,即可实现单个域向多个目标域的风格迁移;但是仍然有很大的提升空间:

  • 风格迁移的域仍然是有限的,想实现更细致的转化还是很难;如:在伤心脸和哭脸中 间应当还有很多种状态,而不是简单的跳变;
  • 风格style空间的定义仍然是一个不可控的域,无法观察到特征变化与实质结果的对 照,无法对这个style空间进一步控制;

基于StyleGAN的风格迁移

基础结构

A Style-Based Generator Architecture for Generative Adversarial Networks 2020


(1)与传统GAN中latent是随机不可控噪声不同,StyleGAN用一个Mapping网络将latent映射到一个18*512的向量空间,这个向量空间是可解释、可控的,对应着生成图像各个层次的风格特征;
(2)原先的随机噪声由另一端B引入,且同样分多层引入,以实现多层次的风格控制生成;Noise与上层输出合并后经过AdaIN去风格化,以使得A实现对style的控制;
(3)网络结构更大、层数更多,大量数据训练后有强大的生成能力


风格控制能力:替换原图像的某几层latent为目标图的,以实现多层次的控制;如上图,StyleGAN的风格控制是分层次的、且接近线性的,可实现不同程度的控制;如粗粒度对应性别和脸型、中粒度对应脸部特征、细粒度对应皮肤纹理;

问题:StyleGAN的风格控制/迁移只能在其原先的域内完成,如表情/脸型的变化;当想往Latent域外迁移时则做不到,如实现 人脸=>素描;

风格迁移

使用StyleGAN实现向Latent域外迁移,与GAN中的方法一样,通过鉴别器、特定损失设计、对比损失等进行约束,训练模式与普通的GAN相似;

由于预训练好的StyleGAN(大模型雏形)已经有很强的图像表征能力了,因此在实现风格迁移时往往不需要大量目标域图像,研究重点往往放在few-shot style transfer上;使用5-10张目标域的图像对StyleGAN进行微调,使其生成的图像符合目标域特征;

few-shot style transfer

使用StyleGAN微调以实现风格迁移,关键难点在于:
(1)从少量风格图像中充分利用风格特征信息;
(2)保持StyleGAN原域结构不破坏,防止StyleGAN‘记住’少量风格图像欺骗鉴别器,而不去微调完成风格迁移的任务;

Fixation and Adaptation

(1) 固定一个StyleGAN,微调另一个;在输出端运用细粒度的鉴别器以充分利用风格信息,对称生成图像的特征层用KL散度损失以约束StyleGAN原域的结构;

Few-shot Image Generation via Cross-domain Correspondence 2021




(2) 对微调前后的StyleGAN中相同层的self-correlation矩阵进行一致性约束,以确保原域结构不破坏;微调前后输出图像的Latent相互关系约束对齐,以保持StyleGAN原域结构;细粒度的鉴别器充分学习风格特征;

Few shot generative model adaption via relaxed spatial structural alignment 2022




(3) 与前两个方法相似,但是引入CUT对比损失加强风格学习能力

CtlGAN: Few-shot Artistic Portraits Generation with Contrastive Transfer Learning 2022

A Closer Look at Few-shot Image Generation 2022

Latent Space Adaptation

不微调StyleGAN网络的参数,而是用一个Adaptor网络学习Latent Space的映射,将原域的Latent Space映射到目标域以实现风格迁移;这个方法基本不破坏StyleGAN原域的结构,但是风格学习能力十分有限;

ONE-SHOT GENERATIVE DOMAIN ADAPTATION 2021

JoJoGAN

JoJoGAN: One Shot Face Stylization 2022

小结

StyleGAN 风格迁移的总结;

优点:
(1)基于StyleGAN的风格迁移可以在少量数据下学习效果很好;
(2)具有风格控制能力(Latent Space),迁移后的网络不同层输入的Latent可以控制使用原域或者目标域的,以实现多层次的风格迁移控制;

缺点:
直接操作Latent Space控制生成还是需要一定的专业知识,要懂得StyleGAN的结构才能完成;

因此,再进一步的研究目标应该是让这个风格控制可以通过自然语言控制;

基于自然语言语义信息(textual)指导的风格迁移

CLIP

Learning Transferable Visual Models From Natural Language Supervision 2021


原始的CLIP:基于对比学习,在大量图-文对数据上进行训练,让图像特征和文本特征在同一个向量空间中对齐;这个空间包含了图像和文本域的相关信息,因此我们可以根据自然语言得到其在图像层面的特征,进一步控制风格迁移的过程;

发展的CLIP:预训练数据越来越多,特征对齐完成度很高,文本信息能够和多层次的图像特征对齐,在控制风格迁移时效果越来越好;

语义信息(textual)指导风格迁移

基本思想:对于原域和目标域有准确的文本描述,网络输出图像和原域图像在CLIP向量空间中的距离应当与文本的距离一样,这个过程用对比损失约束;

语义信息的约束关键在输出端构建损失,而网络是不受限制的,可以是最初始的VGG、CycleGAN,也可以是StyleGAN;

(1) CLIPstyler: Image Style Transfer with a Single Text Condition 2022


(2) 在StyleGAN风格迁移上引入CLIP增强效果,原先训练模式和结构不变

One-Shot Adaptation of GAN in Just One CLIP 2022

(3) 没有使用风格图像,直接依靠CLIP的语义对齐能力,通过文本指导风格迁移

StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators 2022

基于Diffusion Model的风格迁移

相比于StyleGAN,Diffusion Model的图像生成能力进一步增强,且图像生成的控制约束不再通过特定的损失loss,而是解耦成一些condition(textual信息、辅助图像特征等),对于Latent Space的控制更强、实用性更高;

基础结构

原始的Diffusion Model:
Diffusion Models Beat GANs on Image Synthesis NeurlIPS 2021


不像GAN模型那样研究从噪声中逐渐生成完整图像,而是每一步都给原图像加随机噪声,再通过网络从加噪后的图像中还原出噪声,重复500-1000个steps,网络对图像多层次的特征都能学习到,并且能够对这些特征进行 ‘反扩散’ 也即控制;

优化增强的Diffusion Model
High-Resolution Image Synthesis with Latent Diffusion Models 2022




(1)不在原本的像素空间上建模扩散模型,而是构建出一个 Latent Space,增强模型能力
(2)网络对噪声的预测过程中,增加若干控制信号 condition,通过Transformer的交叉注意力机制进行学习;
(3)这里的condition可以是 CLIP 编码的 textual 信息(基于文本的图像生成)、风格图像(风格迁移的实现)、Semantic Map(图像分割的实现)

风格迁移实现

将风格图像嵌入为 condition,微调扩散模型,使得扩散模型能够学习到风格condition;

(1) 基于目标图像的 condition、对比损失优化,微调模型,实现风格迁移

DIFFUSION-BASED IMAGE TRANSLATION USING DIS- ENTANGLED STYLE AND CONTENT REPRESENTATION 2022


(2) 将图像通过 CLIP 编码得到特征 condition,再通过一个额外的Attention层优化

Inversion-Based Creativity Transfer with Diffusion Models 2022




(3) 研究不同step对于生成图像的控制:对应StyleGAN中不同层的控制;将condition分解成若干个控制向量,以实现细致的风格迁移与控制

ProSpect: Expanded Conditioning for the Personalization of Attribute-aware Image Generation 2023


上述三个方法思路相似,通过目标域图像的 condition 微调扩散模型参数,以实现风格迁移,对应 StyleGAN 中的 Fixation and Adaptation;下述方法不微调模型,而是通过调整 Latent Space 的分布,以实现风格迁移,对应 StyleGAN 中的 Adaptor;

(4) 通过额外接入 Adaptor 引入 condition,不调整模型参数,而是让 Adaptor 学习怎样产生符合扩散模型需求的控制向量 condition

T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models 2023

其余论文

(1) 通过 ChatGPT 增强文本提示,并构建对比损失,模型更稳健;提出 cross-attention guidance,观察到 Transformer 中的 cross-attention map 对应了生成图的结构,因此尽力保存这个map的一致

Zero-shot Image-to-Image Translation 2023

(2) 增多Diffusion Model中的condition条件,实现对图像的多层次信息控制

Composer: Creative and Controllable Image Synthesis with Composable Conditions 2023

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/104773.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt(C++)计算一段程序执行经过的时间

一、前言 在许多应用程序和系统中,需要对经过的时间进行计算和记录。例如 可能想要测量某个操作的执行时间,或者记录一个过程中经过的时间以进行性能分析。在这些场景下,准确地计时是非常重要的。 Qt提供了一个功能强大的计时器类QElapsedTimer,可以方便地记录经过的时间…

PostMan 测试项目是否支持跨域

使用PostMan可以方便快速的进行跨域测试。 只需要在请求头中手动添加一个Origin的标头&#xff0c;声明需要跨域跨到的域&#xff08;IP&#xff1a;端口&#xff09;就行&#xff0c;其余参数PostMan会自动生成。添加此标头后&#xff0c;请求会被做为一条跨域的请求来进行处…

python+django+协同过滤算法-基于爬虫的个性化书籍推荐系统(包含报告+源码+开题)

为了提高个性化书籍推荐信息管理的效率&#xff1b;充分利用现有资源&#xff1b;减少不必要的人力、物力和财政支出来实现管理人员更充分掌握个性化书籍推荐信息的管理&#xff1b;开发设计专用系统--基于爬虫的个性化书籍推荐系统来进行管理个性化书籍推荐信息&#xff0c;以…

硬盘中病毒是什么原因?硬盘格式化能清除病毒吗

“我的电脑中了一个非常顽固的病毒&#xff0c;朋友建议我进行硬盘格式化来彻底清除病毒。不知道是不是真的有用&#xff0c;半信半疑下进行了硬盘格式化。当我完成操作后&#xff0c;我发现有些工作文件没有备份到。这可怎么办&#xff1f;想问下大家有没有什么方法去恢复数据…

JS逆向系列之商指针数据解密

文章目录 声明案例地址y解密算法分析ecryptByPrivateKey 解密算法分析写代码前的流程梳理参考代码往期逆向文章推荐声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 案例地址 aHR0cDovL…

《Zookeeper》源码分析(二十)之 Follower

目录 Follower创建Follower实例followLeader()findLeader()connectToLeader()registerWithLeader()syncWithLeader() FollowerZooKeeperServer Follower Leader选举结束后&#xff0c;成为Follower的服务器开始进行Follower的工作&#xff0c;过程如下&#xff1a; 与Leader…

【TI毫米波雷达笔记】SOC外设初始化配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】SOC外设初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; 最基本的工程建立好以后 需要给SOC进行初始化配置 SOC_Cfg socCfg; //SOC配置结构体Task_Params taskParams; //任务参数SOC_Handle socHandle;ESM_init(0U); …

Django基础1——项目实现流程

文章目录 一、前提了解二、准备开发环境2.1 创建项目2.1.1 pycharm创建2.1.2 命令创建 2.2 创建应用 例1&#xff1a;效果实现例2&#xff1a;网页展示日志文件 一、前提了解 基本了解&#xff1a; 官网Django是Python的一个主流Web框架&#xff0c;提供一站式解决方案&#xf…

【Java 高阶】一文精通 Spring MVC - 转换器(五)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

【AWS】安装配置适用于 Eclipse 的 AWS 工具包

目录 0.环境 1.步骤 1&#xff09;安装Eclipse 2&#xff09;安装AWS工具包 ① 在这个路径下点开安装软件的界面 ② 点击【Add】打开添加窗口 ③ 输入aws的工具包地址 ④ 勾选需要的工具&#xff0c;点击【Next】 ⑤ 将要安装的工具&#xff0c;点击【Next】 ⑥ 选择接受…

Android应用启动流程:从启动到可交互的过程解析

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读1.1 启动知识储备1.2 Zygote进程1.3 SystemServer进程1.4 …

用手势操控现实:OpenCV 音量控制与 AI 换脸技术解析

基于opencv的手势控制音量和ai换脸 HandTrackingModule.py import cv2 import mediapipe as mp import timeclass handDetector():def __init__(self, mode False, maxHands 2, model_complexity 1, detectionCon 0.5, trackCon 0.5):self.mode modeself.maxHands max…

Docker容器:docker-compose管理创建LNMP服务并运行Wordpress网站平台

文章目录 一&#xff0e;项目环境1. 环境描述2.项目需求 二&#xff0e;部署过程1.安装Docker2.安装Docker加速器3.Docker-Compose安装部署4.准备依赖文件、配置nginx5.配置mysql6.配置php7.编写docker-compose.yml8.验证 三.容器快照&#xff0c;然后将Docker镜像打包成tar包备…

【3D激光SLAM】LOAM源代码解析--laserOdometry.cpp

系列文章目录 【3D激光SLAM】LOAM源代码解析–scanRegistration.cpp 【3D激光SLAM】LOAM源代码解析–laserOdometry.cpp 【3D激光SLAM】LOAM源代码解析–laserMapping.cpp 【3D激光SLAM】LOAM源代码解析–transformMaintenance.cpp 写在前面 本系列文章将对LOAM源代码进行讲解…

SpringCloud学习笔记(五)_Consul注册中心

本章使用的Consul版本是 1.7.2 项目架构图如下&#xff1a; 搭建服务提供者 1、新建一个maven项目&#xff08;test-springcloud-provider-payment8006&#xff09; 结构如下&#xff1a; 2、引入依赖&#xff0c;编辑pom文件 1 <!-- spring-cloud 整合 consul --> 2…

图数据库Neo4j学习五渲染图数据库neo4jd3

文章目录 1.现成的工具2.Neo4j JavaScript Driver3.neovis4.neo4jd34.1neo4jd3和neovis对比4.2获取neo4jd34.3neo4jd3的数据结构4.4Spring data neo4.4.1 定义返回数据格式4.4.1.1NeoResults4.4.1.2GraphVO4.4.1.3NodeVO4.4.1.4ShipVO 4.4.2 SDN查询解析4.4.2.1 Repo查询语句4.…

stm32的位带操作

在51单片机中&#xff0c;我们可以使用P2^1来对单片机的某一位进行操作&#xff0c;到了stm32&#xff0c;我们通过位带操作&#xff0c;将寄存器的每一位映射到一个32位的地址。如下是我查资料摘录的一些图片。 映射方式 SRAM: AliasAddr 0x22000000 (A-0X20000000)*8*4n*4…

Git 安装、配置并把项目托管到码云 Gitee

错误聚集篇&#xff1a; 由于我 git 碰见大量错误&#xff0c;所以集合了一下&#xff1a; git 把项目托管到 码云出现的错误集合_打不着的大喇叭的博客-CSDN博客https://blog.csdn.net/weixin_49931650/article/details/132460492 1、安装 git 1.1 安装步骤 1.1.1 下载对应…

Cesium常用功能封装,js编码,每个功能独立封装——第1篇

Cesium常用功能封装&#xff0c;js编码&#xff0c;每个功能独立封装&#xff0c;方便直接应用到项目中。 本脚手架项目是前后端一整套&#xff0c;包括权限管理。前端框架采用Vue3 js ElementUI-Plus&#xff0c;后端采用Spring Boot Mysql Redis&#xff0c;GIS引擎本项目…

​LeetCode解法汇总1267. 统计参与通信的服务器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 这里有一幅…