【风格迁移】AdaAttN:使用注意力机制和归一化来保持内容结构的同时转移风格特征

AdaAttN:使用注意力机制和归一化来保持内容结构的同时转移风格特征

    • 提出背景
      • AdaAttN 框架
        • 自适应注意力归一化(AdaAttN)
        • 损失函数
        • 视频风格迁移的扩展
      • 自适应注意力归一化(AdaAttN)的应用场景
    • 全流程优化
      • 基于特征相似度的注意力机制(现有方法)
      • 基于图像语义分割的注意力机制(替代方案)

 


提出背景

论文:https://arxiv.org/pdf/2108.03647.pdf

代码:https://github.com/wzmsltw/AdaAttN

 

在艺术风格迁移中,我们的目标是将一幅图像的风格(例如梵高的画风)应用到另一幅图像上,同时保持原图的内容结构。

尽管已有很多方法尝试解决这个问题,但大多数方法在保持内容图像结构的同时,很难精确地捕捉和复现风格图像的局部细节和纹理。

AdaAttN(自适应注意力归一化)提出了一个新颖的方案,通过三个关键的技术细节来改善这个问题:

  • 注意力图的生成: 通过深层和浅层特征的融合来决定内容图的哪些部分应当接受风格图的影响。
  • 加权均值和标准差图的计算: 用于捕捉风格图的局部细节,并按照这些细节调整内容图的特征。
  • 适应性归一化: 将调整后的内容特征归一化,以便在不同的区域应用不同强度的风格特征。

详细说一下。

  1. 深层和浅层特征的综合注意力分数计算

    • 内容: 综合考虑内容和风格图像的浅层及深层CNN特征来计算空间注意力分数。
    • 这意味着,AdaAttN不仅仅关注图像的高层次(如形状、边缘)特征,也关注低层次(如纹理、颜色)特征。
    • 这样做的原因是,传统的基于注意力的方法主要关注于高层抽象特征,而忽略了图像的低层细节,导致对低层纹理的关注不足并且由高层语义主导。
  2. 每点加权统计的计算

    • 内容: 将风格特征点视为所有空间特征点的注意力加权输出分布,并计算每点加权统计。
    • 在处理风格图像时,AdaAttN考虑到每个点的特征,并根据这些特征的重要性进行加权。
    • 这是为了更精确地复现风格图像的局部纹理和细节,因为不同区域的特征对于最终风格的影响是不同的。
  3. 内容特征的适应性归一化

    • 内容: 根据每点加权的风格特征统计来归一化内容特征,使得内容特征的局部统计与加权的风格特征统计相匹配。
    • 通过调整内容图像的特征,使其在统计上与风格图像的特征相匹配,从而在不改变内容结构的情况下,实现风格的迁移。
    • 这种方法确保了内容图像的每个部分都以适应其对应风格特征点的方式被调整,从而更好地融合风格特征。

AdaAttN通过这三个技术细节,使得风格迁移不仅忠实于风格图像的细节,同时也保持了内容图像的结构。

这种方法在任意风格迁移中实现了更好的平衡,有效提升了生成图像的质量和风格的多样性。

 
打个比方:

  1. 深层和浅层特征的综合注意力分数计算就像是挑选食材。

    在这个过程中,厨师(AdaAttN)不仅仅关注食材的整体(如肉类或蔬菜的种类),也细致考虑每个食材的具体部分(如肉的部位或蔬菜的叶子和茎)。

    这样做的目的是为了确保菜肴(生成的图像)不仅在整体上美味(风格迁移的全局一致性),也在细节上丰富多彩(保留局部纹理和细节)。

  2. 每点加权统计的计算类似于调味。

    在这一步,厨师根据每个食材的特性和菜肴的整体风味需求,精确地调整每种调料的比例(注意力加权)。

    这一过程确保了每一口都能尽可能地展现出最佳的风味组合,无论是肉类的鲜美还是蔬菜的清脆。

  3. 内容特征的适应性归一化就像是最后的烹饪步骤,将所有准备好的食材和调味料结合起来,通过火候的精确控制(归一化处理),使得最终的菜肴不仅保持了食材原有的结构(内容图像的结构保持),还融入了新的风味(风格图像的特征),最终达到既保留了原料本身特色,又融入了新风味的完美平衡。

 

AdaAttN 框架

假设我们有两幅画:一幅是宁静的村庄景色(内容图像Ic),另一幅是梵高的《星夜》(风格图像Is)。我们的目标是将《星夜》的风格应用到村庄景色上,同时保持村庄的结构不变。

总体框架

  • 问题:我们需要在村庄画中引入《星夜》的风格特征,但是不能改变村庄的布局。
  • 解法:就像是一位艺术家(网络)使用不同的画笔在不同层次上作画。她首先用大画笔(VGG-19网络的浅层特征)描绘出村庄的大致形状,然后用细画笔(VGG-19网络的深层特征)加入《星夜》的风格细节。通过在不同层次上应用AdaAttN模块,艺术家能够确保在添加风格时不会改变原有的结构。

自适应注意力归一化(AdaAttN)

  • 问题:在给村庄添加《星夜》的风格时,我们如何确保每个部分都得到适当的风格强度,不会有过度或不足的地方。
  • 解法:这就像是艺术家在给画面的每个小部分调色。通过注意力图,她确定哪些区域应该更多地体现《星夜》的风格(例如天空部分可能需要更多的蓝色和旋涡状的笔触)。然后,她会根据这些信息为每个部分混合适当的颜色和纹理。

损失函数

  • 问题:在整个绘画过程中,如何确保风格融合得当,既不过分也不欠缺。
  • 解法:这就好比艺术家在完成画作的每个阶段后都会退后一步审视她的作品,对比原始的《星夜》和村庄景色。全局风格损失确保整幅画的风格符合《星夜》,而局部特征损失则确保每个细节(如树木、房屋)都与原作保持一致。

视频风格迁移的扩展

  • 问题:如果我们不仅想要一幅静态的画,还想要一个视频,其中村庄的每一帧都以《星夜》的风格绘制,但又不会有抖动或不连贯的问题。
  • 解法:这就像是艺术家在创作一系列连续的画作。为了确保画作间的连贯性,她使用一种特殊的技术(余弦相似度)来保持帧与帧之间的一致性。跨图像相似性损失则像是一个标准,确保视频中的每一帧都保持与原始场景的相似性,从而避免了抖动。

总的来说,AdaAttN网络就像是艺术家用以创建一系列连贯且风格统一的画作的工具箱,既可以用于单幅画作,也可以扩展到一系列连续的画面(视频)。

通过这个网络,艺术家能够在每一帧中捕捉和应用《星夜》的风格,同时保持村庄景色的原貌。

在这里插入图片描述

在这个网络中,有一个编码器(VGG),三个AdaAttN模块,和一个解码器。

编码器负责从内容图像(Ic)和风格图像(Is)提取特征,这些特征随后通过三个AdaAttN模块进行处理,目的是调整内容特征以匹配风格特征的分布。

每个AdaAttN模块都在VGG网络的不同层级(ReLU3-1,ReLU4-1和ReLU5-1)上操作。

最终,解码器使用这些调整后的特征来生成风格化的图像(Ics)。

网络的训练是通过两种类型的损失函数来指导的:局部特征损失(Llf)和全局风格损失(Lgs),这些损失函数帮助网络学习如何更好地在保持内容结构的同时迁移风格。

  • 问题:如何在任意风格迁移中有效利用深层和浅层特征,并生成高质量的风格化图像。
  • 解法:使用预训练的VGG-19网络作为编码器,提取多尺度特征图,然后通过AdaAttN模块在不同层次(ReLU3-1、ReLU4-1和ReLU5-1层)上综合使用这些特征,最后通过解码器生成风格化图像。
    • 子特征1:多层次特征整合。
      • 之所以使用,是因为不同层次的特征包含了从浅层的纹理细节到深层的语义信息,这对于风格迁移的质量至关重要。
自适应注意力归一化(AdaAttN)
  • 问题:如何在风格迁移中考虑局部风格模式,并实现内容和风格特征之间的细粒度对齐。
  • 解法:通过AdaAttN模块,使用注意力机制在每个点基础上适应性地转移特征分布,同时考虑低层和高层特征。
    • 子特征1:注意力图的生成。
      • 之所以使用,是因为注意力机制能够衡量内容和风格特征之间的相似性,帮助模型聚焦于重要的风格特征。
    • 子特征2:加权均值和标准差图的计算。
      • 之所以使用,是为了更精确地模拟目标风格特征点的分布,提高风格迁移的局部一致性。
    • 子特征3:适应性归一化。
      • 之所以使用,是因为通过调整内容特征,使其与目标风格特征的统计属性对齐,从而在保留内容结构的同时实现风格迁移。

上图是,三种风格迁移方法的内部结构和它们各自的工作原理:

(a) AdaIN(自适应实例归一化):这是一种较早的方法,它通过调整内容特征的均值和标准差来匹配风格特征的分布。

(b) SANet(风格-注意力网络):这种方法使用注意力图来重新加权风格特征,然后将其与内容特征融合。

© AdaAttN(自适应注意力归一化):这是作者提出的方法,它不仅使用高层和低层特征来生成注意力图,还计算了加权的风格特征均值(M)和标准差(S),然后用这些统计量来适应性地归一化内容特征。

AdaAttN的主要创新在于它计算每个点的加权统计,并根据这些统计调整内容特征,这样做可以在不同空间位置上更精确地匹配风格和内容特征,从而在保持内容真实性的同时实现复杂的风格迁移。

这种方法也试图克服传统方法在处理局部风格细节时的局限性

损失函数
  • 问题:如何设计损失函数以优化风格迁移的全局效果和局部特征一致性。
  • 解法:综合使用全局风格损失和局部特征损失,前者确保整体风格效果,后者保证风格化图像的局部特征与AdaAttN的转换结果一致。
    • 子特征1:全局风格损失。
      • 之所以使用,是为了在整体上实现风格一致性。
    • 子特征2:局部特征损失。
      • 之所以使用,是因为它可以使模型在局部区域生成更优质的风格化输出,提高风格迁移的细节质量。
视频风格迁移的扩展
  • 问题:如何将任意风格迁移扩展到视频,同时解决帧间一致性和减少抖动的挑战。
  • 解法:通过对注意力机制和损失函数的修改,使模型适用于视频风格迁移,保持帧间的风格一致性和视觉稳定性。
    • 子特征1:使用余弦相似度计算注意力图。
      • 之所以使用,是因为相比Softmax,它能产生更平坦的注意力得分分布,有利于帧间稳定性和一致性。
    • 子特征2:跨图像相似性损失。
      • 之所以使用,是为了确保两个内容图像的风格化结果与原图在局部相似度模式上保持一致,从而提升视频风格迁移的稳定性。

自适应注意力归一化(AdaAttN)的应用场景

自适应注意力归一化(AdaAttN)是一种专门为任意风格迁移设计的解决方案,用于处理以下两个主要问题:

  1. 任意风格迁移中的局部风格细节问题:在任意风格迁移中,往往需要在不同的图像之间迁移风格,同时保持内容的结构不变。

    传统的方法可能在全局上做得不错,但往往无法捕捉到细节。

    这时,AdaAttN通过对风格特征和内容特征的注意力分数进行适应性调整来保留更多的局部细节。

  2. 视频风格迁移中的时间一致性问题:在视频风格迁移中,除了每一帧的风格需要迁移之外,还要保持帧与帧之间的一致性,避免出现抖动。

    AdaAttN能够通过在帧间适应性地调整特征来保持一致性,从而解决这一问题。

共享的是一个核心特征:需要在不同媒介中保持风格和内容特征的一致性

  • 手机拍出的照片色彩鲜艳,而相机拍出的则更为自然。
  • 现在,你想要在这两种设备上获得统一风格的照片,以便它们看起来像是由同一个设备拍摄的。
  • AdaAttN相当于是一种图像编辑滤镜,不论原始照片的色彩如何,它都可以将这两张照片处理成相同的风格。
  • 它会分别分析手机和相机拍摄的照片中的色彩和纹理(内容特征),然后应用一种风格(比如油画效果),使得两张照片在视觉上看起来相似,就像都是同一位艺术家画的一样。
  • “不同媒介”指的是不同设备拍摄的照片,而“保持风格和内容特征的一致性”指的是在两张照片上应用相同风格滤镜的效果,使得它们具有一致的视觉风格,尽管它们的原始拍摄条件不同。

AdaAttN提供了一种共通的解决方案,能够灵活地适应不同层级的特征,并进行适当的归一化处理,以保持局部和全局的风格迁移效果。

因此,AdaAttN这种解法会在面对需要精确控制风格和内容特征的任意风格迁移任务时使用,无论是单个图像还是一系列连续的视频帧。

全流程优化

基于特征相似度的注意力机制(现有方法)

优点:

  • 通用性:它不依赖于图像内容的具体类型,因此可以广泛应用于各种不同风格和内容的图像。
  • 计算效率:通常,这种方法仅依赖于已有的特征表示,无需额外的训练数据,可以快速计算并实现实时风格迁移。
  • 风格适应性:适用于抽象风格的迁移,因为它关注的是特征层面的相似度而非具体的图像内容。

缺点:

  • 局部细节处理:可能无法精细处理每个局部区域,因为全局特征相似度不足以反映局部内容的独特性。
  • 内容保持:在风格迁移时,可能会牺牲一些内容的结构细节,因为注意力是在特征层面而非像素层面计算的。

基于图像语义分割的注意力机制(替代方案)

优点:

  • 细腻度:能够对图像中的单独对象或区域应用不同的风格处理,提供更细腻的风格迁移效果。
  • 内容保持:通过精确地定位和分割图像中的对象,可以更好地保持原始内容的结构和细节。
  • 目标化处理:可以根据图像内容的语义重要性来决定风格迁移的重点区域。

缺点:

  • 数据和资源要求:需要大量标注的训练数据来训练分割模型,并且在运行时需要更多的计算资源。
  • 泛化性:可能在未见过的对象类型或新的风格上表现不佳,因为分割模型的泛化能力有限。
  • 抽象风格适应性:对于非具象艺术风格,如立体派或表现派,可能无法准确捕捉风格的本质,因为这些风格与具体的图像语义内容关联较少。

如果目标是保持高度的内容忠实度并对特定的对象进行详细的风格调整,那么基于图像语义分割的注意力机制可能是更好的选择。

  • 例如,把他们的猫变成毕加索的立体主义画作。
  • 在这种情况下,你会使用基于图像语义分割的注意力机制。
  • 应用会识别照片中的猫,并且细致地应用毕加索的风格到猫的每个部分,如脸、胡须和毛发,确保转换后的图像保持了猫的结构,同时具有明显的立体主义风格。

然而,如果我们的目标是快速且通用的风格迁移,特别是在实时应用中,或者风格本身非常抽象,不依赖于图像内容的具体类型,那么基于特征相似度的注意力机制可能更为合适。

  • 只想快速给他们的自拍照添加梵高的《星夜》风格,不关心细节的精确性。

这两种方法也可以结合起来,先用语义分割来确定风格迁移的关键区域,然后在这些区域内使用基于特征相似度的注意力机制来实现细节的风格化。

  • 城市风景照,将天空区域详细地转换成梵高风格,同时对其他区域如建筑进行快速风格迁移。
  • 首先使用图像语义分割确定天空的区域,并细致地应用梵高的笔触
  • 而对于建筑等其他区域,则使用基于特征相似度的快速风格迁移

这意味着它可以在需要细致处理特定区域(如宠物、人脸)时提供高精度的风格应用,同时在其他不需要如此精细处理的区域快速完成风格迁移。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DbSchema导出HTML/PDF版表结构

一、连接数据库 登录成功默认显示当前用户的所有资源(表、视图、序列、方法、触发器等),如果不操作将导出此用户的全部信息。 至此连接数据库完成 二、表结构导出 本次不想给用户全部导出,只给导出几张,选择需要…

Linux 学习笔记(10)

十、 进程管理 进程就是运行中的程序,一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的 WWW 服务器是 apache 服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请 求 htt…

C-V2X系列:C-V2X芯片及模组整理总结

C-V2X、车路协同、车联网、智能网联车学习 C-V2X芯片及模组整理总结

http 协议深入介绍

一,http 相关概念 (一)关键名词 1,互联网 是网络的网络,是所有类型网络的母集 2,因特网 世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成…

【旧文搬运】为你的 Laravel 应用添加一个基于 Swoole 的 WebSocket 服务

做了一个基于 Swoole 的 WebSocket 扩展包,可以用来做实时状态推送,或者自定义消息处理实现 im,有需要的可以看看: [giorgio-socket] 使用方法 安装 安装扩展包 composer require wu/giorgio-socket发布配置文件 php artisan vendor:pu…

机器学习:数据处理基操

在处理完数据之后,选择好模型,就可以用训练集训练模型,用测试集输入模型 然后输出需要预测的结果啦~ 一、模块导入 import numpy as np import pandas as pd #读入数据 二、pandas数据 一、dataframe基础 一、dataframe的创建…

图像处理ASIC设计方法 笔记6 数据拼接和帧格式校正

第四章大模板卷积ASIC设计方案 P80 实时图SPRM 数据位宽64bit,4个SPRAM,同时得到4行数据 绘制卷积芯片数据路径图,卷积芯片内部模块图 根据这个图,本书后续对各个模块都进行介绍。 P81 第一个模块 图像输入前端FIFO 学习图像处理中好的设计思路:帧格式校验和数据拼接 …

STM32+ESP8266水墨屏天气时钟:ESP8266连接心知天气获取数据

项目背景 利用STM32F103C8T6和ESP8266模块进行通信,获取心知天气的数据。 硬件设计为串口1(PA9和PA10)连接ESP8266. 串口2打印 一.ESP8266连接WIFI ESP8266模块可以通过AT指令控制搭配使用源代码API函数开发,总体开发速度快,难度较低。 说…

板子合集1.0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/JK01WYX/ 文章目录 1.快速幂板子2.gcd得最大公约数3.堆优化的dijkstra板子4.线段树1板子 区间加线段…

Vue--》打造简易直播应用平台项目实战

今天开始使用 vue3 + ts 搭建一个简易直播应用平台项目,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的github上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本…

奇怪的需求之与图片做交互

1.起因 客户想要展示自己的地图,该地图上有各种工作数据,和工作点位,已有的地图不能满足需求.于是提出将这张图片当成大背景 2.经过 鉴于文件格式和尺寸的原因,协商后客户提出将图片做成缩放效果,同时具有点击效果,原先直接进入的主页,现在为点击图片中的某条线路进入主页面…

【论文阅读】多传感器SLAM数据集

一、M2DGR 该数据集主要针对的是地面机器人,文章正文提到,现在许多机器人在进行定位时,其视角以及移动速度与车或者无人机有着较大的差异,这一差异导致在地面机器人完成SLAM任务时并不能直接套用类似的数据集。针对这一问题该团队…

Sentinel 规则持久化,基于Redis持久化【附带源码】

B站视频讲解 学习链接🔗 文章目录 一、理论二、实践2-1、dashboard 请求Redis2-1-1、依赖、配置文件引入2-1-2、常量定义2-1-3、改写唯一id2-1-4、新Provider和Publisher2-1-5、改写V2 2-2、应用服务改造2-2-1、依赖、配置文件引入2-2-2、注册监听器 三、源码获取3…

从0到1实现自助棋牌室系统:技术调研

前言 春节返乡之际,发现老家县城竟然开了近十家棋牌室。巧的是朋友也有意涉足,便咨询我自助棋牌室的软件投入成本。作为程序员的我,在思考了自助棋牌室背后的技术需求后,嗅到了一丝丝商机:何不自己开发一个自助棋牌室…

操作系统的运行机制

目录 一. 特权指令与非特权指令二. 中断和异常2.1. 内中断2.2 外中断 三. 系统调用 注:很多人习惯把Linux、Windows、MacOS的“小黑框”中使用的命令也称为“指令”,其实这是“交互式命令接口”,注意与本节的“指令”区别开。本节中的“指令”指二进制机…

jenkins实战(1)

一, Jenkins官网介绍: Jenkins 持续集成、持续部署 下载地址:Jenkins download and deployment 提供两种类型: LTS(长期版)和Weekly(最近一周的版本) 注: 必须是Java8及以上版本(官网针对这一点有做说明) 二, 安装 下载war包,java -jar XXX --httpPort8081 或 下载war包…

Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)

安装k8有多种方式如: minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip :192.168.113.120 2G运存 2内核 node1 ip :192.168.113.121 2G运存 2内核 node2 ip :192.168.1…

Myqsort:基于冒泡排序算法的C语言实现

我们将详细介绍一个基于冒泡排序算法的自定义排序函数——Mysqrt。该函数通过使用用户提供的比较函数进行元素间的比较&#xff0c;并结合swap交换函数对任意类型的数据进行排序。下面是对代码的逐行解析。 逻辑导图 代码实现 // 头文件 #include<stdio.h>// 定义比较函…

关于uniapp小程序的分包问题

开发uniapp小程序时&#xff0c;在打包上传代码时会出现超出2M的打包限制不能上传&#xff0c;那么我们该怎么做呢&#xff1f; 1.对于图片&#xff0c;将图片从后端服务取&#xff0c;尽量不要放在静态资源&#xff0c;图片体积会影响打包大小。 2.使用分包&#xff0c;tabb…