【风格迁移】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这种解法会在面对需要精确控制风格和内容特征的任意风格迁移任务时使用,无论是单个图像还是一系列连续的视频帧。

全流程优化

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

优点:

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

缺点:

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

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

优点:

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

缺点:

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

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

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

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

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

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

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

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

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

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

相关文章

go 命令行框架cobra

go 命令行框架cobra go 拉取依赖包go get github.com/spf13/cobra 认识spf13/cobra-cli. cobra 命令行框架在golang中的地位也算得上是大明星级别。像k8s,docker都有使用这个框架构建自己命令行这块的功能. 最最最简单的开始----使用命令行工具cobra-cli来初始化你的demo c…

03-grafana的下拉列表选项制作-grafana的变量

一、准备环境 为了实现下拉列表筛选的样例,我们监控两个linux节点; 目前,我们已经有了一个节点了,再添加一个; 二、grafana的仪表盘变量 如果想给仪表盘自定义下拉列表,那么,需要设置变量&#…

Flink StreamGraph生成过程

文章目录 概要SteramGraph 核心对象SteramGraph 生成过程 概要 在 Flink 中,StreamGraph 是数据流的逻辑表示,它描述了如何在 Flink 作业中执行数据流转换。StreamGraph 是 Flink 运行时生成执行计划的基础。 使用DataStream API开发的应用程序&#x…

分享经典、现代和前沿软件工程课程

随着信息技术的发展,软件已经深入到人类社会生产和生活的各个方面。软件工程是将工程化的方法运用到软件的开发、运行和维护之中,以达到提高软件质量,降低开发成本的目的。软件工程已经成为当今最活跃、最热门的学科之一。 本次软件工程MOOC课…

SAP PP学习笔记05 - BOM配置(Customize)1 - 修正参数

上次学习了BOM相关的内容。 SAP PP学习笔记04 - BOM1 - BOM创建,用途,形式,默认值,群组BOM等_sap销售bom与生产bom-CSDN博客 SAP PP学习笔记04 - BOM2 -通过Serial来做简单的BOM变式配置,副明细,BOM状态&…

Matlab 最小二乘插值(曲线拟合)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在多项式插值时,当数据点个数较多时,插值会导致多项式曲线阶数过高,带来不稳定因素。因此我们可以通过固定幂基函数的最高次数 m(m < n),来对我们要拟合的曲线进行降阶。之前的函数形式就可以变为: 二、实现…

Unity绘制六边形体

现在steam上面有很多下棋类/经营类的游戏都是用六边形的地形&#xff0c;比较美观而且实用&#xff0c;去年在版本末期我也自己尝试做了一个绘制六边体的demo&#xff0c;一年没接触unity竟然都要忘光了&#xff0c;赶紧在这边记录一下。 想cv代码可以直接拉到代码章节 功能 …

力扣周赛387

第一题 代码 package Competition.The387Competitioin;public class Demo1 {public static void main(String[] args) {}public int[] resultArray(int[] nums) {int ans[]new int[nums.length];int arr1[]new int[nums.length];int arr2[]new int[nums.length];if(nums.leng…

[AutoSar]BSW_Com09 CAN driver 模块FULL(BASIC)CAN、FIFO选择

目录 关键词平台说明一、FULL CAN 和Basic CAN 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC)autosar版本4.3.1 >>>>>回到总目录<&…

云计算市场,从追求“规模制胜”到走向“用户分化”

文|智能相对论 作者|叶远风 通常来说&#xff0c;价格战放到任何行业&#xff0c;都不是什么好事。 如今&#xff0c;作为曾经的前沿技术创新&#xff0c;云计算行业正在被迫走入价格战的阴霾当中&#xff0c;引发业界担忧。 ECS&#xff08;云服务器&#xff09;最高降36%…

wordpress外贸独立站

WordPress外贸电商主题 简洁实用的wordpress外贸电商主题&#xff0c;适合做外贸跨境的电商公司官网使用。 https://www.jianzhanpress.com/?p5025 华强北面3C数码WordPress外贸模板 电脑周边、3C数码产品行业的官方网站使用&#xff0c;用WordPress外贸模板快速搭建外贸网…

【c++】继承深度解剖

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么事继承&#xff0c;基类和派生类的使用和…

YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)

目录 摘要 主要想法 GSConv GSConv代码实现 slim-neck slim-neck代码实现 yaml文件 完整代码分享 总结 摘要 目标检测是计算机视觉中重要的下游任务。对于车载边缘计算平台来说&#xff0c;巨大的模型很难达到实时检测的要求。而且&#xff0c;由大量深度可分离卷积层构…

4. 编写app组件

1. 代码 main.ts // 引入createApp用于创建应用 import {createApp} from "vue"// 引入App根组件 import App from ./App.vue createApp(App).mount(#app) App.vue <!-- vue文件可以写三种标签1. template标签&#xff0c;写html结构2. script 脚本标签&…

【论文阅读】微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向:综述

Micro and nanobubbles technologies as a new horizon for CO2-EOR and CO2 geological storage techniques: A review 微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向&#xff1a;综述 期刊信息&#xff1a;Fuel 2023 期刊级别&#xff1a;EI检索 SCI升级版工程技术1区…

微服务 人工智能AI 物联网智慧工地云平台源码

目录 ​编辑 智慧工地架构 智慧工地系统 智慧工地云平台功能模块 1、基础数据管理 2、考勤管理 3、安全隐患管理 4、视频监控 5、塔吊监控 6、升降机监控 7、移动端数据推送 智慧工地管理平台子系统构成 智慧工地物联网解决方案&#xff0c;对工地施工安全人员、设…

在Jupyter-lab中使用RDKit画分子2D图

在Jupyter-lab中使用RDKit画分子2D图 在做完分子对接后&#xff0c;想看看筛选后的分子的结构。因此想利用Jupyter-lab来画分子的2D图。 1. 安装Jupyter-lab与RDKit 系统&#xff1a;Win11已安装conda RDKit 是一个功能强大、灵活易用的化学信息学工具包&#xff0c;广泛应…

YOLOv应用开发与实现

一、背景与简介 YOLO&#xff08;You Only Look Once&#xff09;是一种流行的实时目标检测系统&#xff0c;其核心思想是将目标检测视为回归问题&#xff0c;从而可以在单个网络中进行端到端的训练。YOLOv作为该系列的最新版本&#xff0c;带来了更高的检测精度和更快的处理速…

Node.js基础---npm与包

包 概念&#xff1a;Node.js 中的第三方模块又叫做包 来源&#xff1a;由第三方个人或团队开发出来的&#xff0c;免费使用&#xff0c;且为开源 为什么需要&#xff1a;Node.js的内置模块只有一些底层API&#xff0c;开发效率低 包是基于内置模块封装出来的&#xff0c;提供更…

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS动态字符叠加输出应用本方案的SDI接收HLS多路视频融…