论文解读:Splicing ViT Features for Semantic Appearance Transfer

news2024/11/24 15:20:48

Project webpage: https://splice-vit.github.io

Abstruct

将两张图片中语义相近的目标的结构和风格(外观)拼接

输入一个 Structure/ Appearence 图像对 训练生成器
关键思想是利用 预训练 和固定的视觉转换器 ( ViT ) 模型( 作为外部语义先验 )。
deep Vit features 提取到 structure 和appearance的表示,然后从 learned self-attention 模块 解开
再构建一 个目标函数 ,将所需的 structure 和 appearance 拼接到一起 ,在 Vit 特征空间中将他们融合。

 1Introduction

当前图像风格迁移的研究,大多数方法都使用了生成对抗网络的方法generative adversarial networks (GANs)。这种方法就是在目标图像的区域中生成新的图像 。而本文的目标是保留源图像结构 的同时 描绘上特定 目标图像的视觉 外观。
Neural Style Transfer NST )神经风格转移 方法 ,能由预先 训练的分类 CNN 模型(例如 VGG )表示深层 特征空间中的内容和艺术 风格。 NST 更适合基于 全局的风格迁移, 但是并 不适用 于两幅自然 图片中局部语义相近的目标进行风格迁移
DINO-ViT 以自监督方式进行预训练的ViT模型 提取 appearance 和 structure的深度表示。
为了更好地理解ViT各层的信息编码,文中利用了特征反演可视化技术实现。
研究提供了 两个 关键的观察结果: global token CLS )提供了一种强大的视觉外观表示,它不仅捕获纹理信息,而且捕获更多的全局信息,如物体部分 并且原始图像可以从最深层的特征重构 ,但它们提供了强大的高空间粒度的语义信息。
CLS token:就是 Class Token ,假设将原始图像切分成共9个小图像块,最终的输入序列长度则是10,这里人为的增加了一个向量进行输入,这个人为增加的这个向量被称为 Class Token 。
那么这个 Class Token 有什么作用呢?
如果没有这个向量,也就是将9个向量(1~9)输入 Transformer 结构中进行编码,最终会得到9个编码向量,可对于图像分类任务而言,我们应该选择哪个输出向量进行后续分类呢?
因此,ViT算法提出了一个可学习的嵌入向量 Class Token( 向量0 ),将它与9个向量一起输入到 Transformer 结构中,输出10个编码向量,然后用这个 Class Token 进行分类预测即可。
本文 通过 glbal token [CLS]表示视觉外观,并通过 key 的自相似性表示结构,所有这些都是从 ViT 最后一层提取的。
然后,我们在 structure / appearance 图像的单个输入训练生成器,以产生将所需的视觉外观和结构拼接在ViT特征空间中的图像。我们的框架不需要任何额外的信息,比如语义分割,也不涉及对抗性训练。
此外,我们的模型可以在高分辨率图像上进行训练,产生高质量的高清结果。我们展示了不同自然图像对的各种语义外观转移结果,其中包含物体数量,姿势和外观的显着变化。

2、Related Work

Domain Transfer & Image-to-Image Translation.

domain transfer:就是适配分布,特别地是指适配marginal distribution,但是没有考虑类别信息。如何做domain transfer:在传统深度网路的loss上,再加另一个confusion loss,作为classifier能否将两个domain进行分开的loss。两个loss一起计算,就是domain transfer。(https://zhuanlan.zhihu.com/p/30621691 迁移学习导论作者 很厉害

这些方法的目标是学习domains(图像域)目标域之间的映射典型方法是训练一个GAN网络。(注:图像域:图像内容被赋予了相同属性。 图像翻译:将图像内容从一个图像域X转换到另一个图像域Y,将原始图像的某种属性X移除,重新赋予新属性Y

SA(Swapping Autoencoder)训练了一个特定的GAN来分解图片的结构和纹理,然后在两张图片的图像域中交换

单样本image-to-image translation已经出现。

(跟SA相比,本文的方法不限于特定图像域也不需要数据集进行训练,不涉及到对抗训练。)

以上这些方法只能利用低维信息并缺少语义理解。

Neural Style Transfer (NST)

STROTSS使用预训练的VGG表示风格和自相似性,在基于优化的框架中捕获结构,在全局方式下进行风格迁移。

Semantic Style transfer 方法在两张图片语义相近的两部分区域匹配,这个方法仅限于色彩变换,或依赖于额外的语义输入。

本文的目标是在两张自然场景图片中语义相近的两个目标间进行风格迁移这个目标是随机并灵活的。

DINO - ViT

论文导读:DINO-自监督视觉Transformers https://new.qq.com/rain/a/20211202A02CHQ00

DINO:基于Vit的自监督算法: https://zhuanlan.zhihu.com/p/439244656

DINO- ViT 特征在精细的空间粒度上捕捉到丰富的语义信息,例如描述语义对象部分;该表示在不同但相关 object classes 之间共享。
DINO- ViT 启发, 我们 以一个新的生成方向利用了 DINO- ViT 特征的力量 —— 我们得出了新的感知损失,能够拼接语义相关对象的结构和语义外观

3Method

原始structure图:Is,目标appearance图:It,生成新的图片Io

 Io=Is中的objects “paintedIt中与之语义相关对象的视觉外观风格。

输入图片对{IsIt,训练一个生成器GɵIS=Io

损失函数:用自监督的DINO-ViT(预训练ViT模型)确定训练损失。

structure/appearance图片输入到模型中,训练Gɵ生成目标图片。

LappIoIt损失(交叉熵?)

LstructureIoIs的损失

 

1、 for a given pair{Is, It}, we train a generator Gθ(Is) = Io.

2To establish our training losses, we leverage DINO-ViT – a self-supervised, pre-trained ViT model – which is kept fixed and serves as an external high-level prior.

3、We propose new deep representations for structure and appearance in DINO-ViT feature space:

  we represent structure via the self-similarity of keys in the deepest attention module (Self-Sim), and appearance via the [CLS] token in the deepest layer.

4we train Gθ to output an image, that when fed into DINO-ViT, matches the source structure and target appearance representations.

  our training objective is twofold: (i) Lapp that encourages the deep appearance representation of Io and It to match, and (ii) Lstructure,which encourages the deep structure representation of Io and Is to match.

3.1 Vision Transformers – overview  ViT模型回顾

参考博文:

1、vit网络模型简介 https://blog.csdn.net/m0_63156697/article/details/126889774

2、ViTVision Transformer解析(更详细) https://zhuanlan.zhihu.com/p/445122996

3、ViT学习笔记(有代码) https://blog.csdn.net/m0_53374472/article/details/127665215

 

 

 论文中的vit表述

1 an image I is processed as a sequence of n non-overlapping patches as follows:

2spatial tokens are formed by linearly embedding each patch to a d-dimensional vector

3and adding learned positional embeddings.

4 An additional learnable token, a.k.a [CLS] token, serves as a global representation of the image.

The set of tokens are then passed through L Transformer layers:each consists of layer normalization (LN), Multihead Self-Attention (MSA) modules, and MLP blocks:

 5、After the last layer, the [CLS] token is passed through an additional MLP to form the final output, e.g., output distribution over a set of labels。

In our framework, we leverage DINO-ViT , in which the model has been trained in a self-supervised manner using a self-distillation approach(自蒸馏方法).

3.2 Structure & Appearance in ViT’s Feature Space

appearance :一种具有空间灵活性的表示,即在捕获全局外观信息和风格的同时 可以忽视 对象的姿势和场景的空间布局 。为此,我们利用[CLS] token 作为全局图像表示。
structure :对局部纹理模式具有鲁棒性的表示 ,同时保留对象及其周围的空间布局、形状和感知语义 为此, 利用从 DINO-ViT 中提取深层空间特征 ,并使用 key 的自相似性作为结构表示:

 cos-simkey之间的余弦相似度(见公式1),自相似性维度:

 •Understanding and visualizing DINO-ViT’s features

we take a feature inversion approach – given an image, we extract target features, and optimize for an image that matches the extracted features .
we incorporate “Deep Image Prior“ [30], i.e ., we optimize for the weights of a CNN F θ that translates a fixed random noise z to an output image:

 •φ(I) denotes the target features.

|| · ||F denotes Frobenius norm( F- 范数 : 一种矩阵范数 ), 矩阵 A Frobenius 范数定义为矩阵 A各项元素的绝对值平方的总和开根,

 

To better understand our ViT-based representations, we take a feature inversion approach
1. From shallow to deep layers, the [CLS] token gradually accumulates appearance information. Earlier layers mostly capture local texture patterns, while in deeper layers, more global information such as object parts emerges.
2. The [CLS] token encodes appearance information in a spatially flexible manner, i.e., different object parts can stretch, deform or be flipped. Figure 4shows multiple runs of our inversions per image; in all runs, we can notice similar global information, but the diversity across runs demonstrate the spatial flexibility of the representation.
跨层反转 CLS
Each input image (a) is fed to DINO-ViT to compute its global [CLS] token at different layers.
Inversion results: starting from a noise image, we optimize for an image that would match the original [CLS] token at a specific layer. 从噪声图像开始,在特定层和 CLS token 匹配
While earlier layers capture local texture, higher level information such as object parts emerges at the deeper layers 图片中的 全局 对象出现在更深的层
key 的反转结果:结论:原始图像可以用这样的表示重建

如果不考虑keyappearance信息,只考虑key的自相似性self-similarity

 

 3.3. Splicing ViT Features

 training our generator:

 其中α和β表示两项之间的相对权重。目标函数的驱动损失为Lapp,所有实验均设α = 0.1, β = 0.1。

Appearance loss:The term Lapp. encourages the output image to match the appearance of It, and is defined as the difference in [CLS] token between the generated and appearance image:

 

 

 我们将Identity Loss应用于最深层ViT层中的key,这是输入图像的语义可逆表示

Data augmentations and training

一对图像的输入{It,Is},通过应用增益,例如crops 和 color jittering创建额外的训练样例

Gθ对多个内部示例进行了训练。因此,它必须为包含N个例子的数据集习得一个好的映射函数,而不是解决单个实例的测试时间优化问题。

 4result

 

数据集:
Animal Faces HQ (AFHQ) dataset
images crawled from Flickr Mountain

   own dataset, named Wild-Pairs。 The image resolution ranges from 512px to 2000px.

4.1 Comparisons to Prior Work:Qualitative comparison(定性比较)

 

 4.1 Comparisons to Prior Work: Quantitative comparison(定量比较)

Human Perceptual Evaluation(人类感知评估):The participants(参与者) are asked:“Which image best shows the shape/structure of image A combined with the appearance/style of image B?”.

Semantic layout preservation(语义布局保存):A key property of our method is the ability to preserve the semantic layout of the scene (while significantly changing the appearance of objects)

 4.2 Ablation

 4.3  Limitations(方法的限制)

 •对象在语义上是相关的,但有一个图像是高度不现实的(因此超出了DINO-ViT的分布)

 

 方法不能在语义上将鸟与飞机联系起来。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Smartbi内置用户登陆绕过漏洞复现

0x01 产品简介 Smartbi大数据分析产品融合BI定义的所有阶段,对接各种业务数据库、数据仓库和大数据分析平台,进行加工处理、分析挖掘和可视化展现;满足所有用户的各种数据分析应用需求,如大数据分析、可视化分析、探索式分析、复杂…

Push vs Pull

Push好在两点:1.把结果下推到下流节点,与控制流解耦合,有利于cache 2.对于有向无环图,而不仅仅是树的query plan有更好的效果 解释: pull伪代码 push 伪代码 解释一下push,就是把操作下推到叶子节点&#…

4-JVM类加载

目录 1.类加载过程 1.1.加载(去车站) 1.2.验证(过安检) 1.3.准备(候车) 1.4.解析(检票) 1.5.初始化(上车) 2.双亲委派模型 2.1.什么是双亲委派模型&a…

首次曝光!乔布斯这些从未公开的照片,揭露乔布斯的另一面

昨个,大神在群里分享了一本关于乔布斯的书籍。 这本书收录了他的照片、电子邮件、演讲稿和访谈,很多私人的邮件和访谈是第一次看到。 书中用乔布斯自己的视角,记录了他一生的轨迹,包括他的童年,创立、离开、重归苹果的…

【Matter】如何在Linux平台下测试Matter应用级通信(虚拟设备)

如何在Linux平台下测试Matter应用级通信(虚拟设备) 准备工作 1. 递归克隆Matter仓库 执行如下命令: git clone --recurse-submodules gitgithub.com:project-chip/connectedhomeip.git如果克隆过程中发生报错,请执行如下命令来同步子模块:…

【好书精读】网络是怎样连接的 之 委托协议栈发送消息

(该图由AI制作 学习AI绘图 联系我) 目录 数据收发操作概览 创建套接字阶段 连接阶段:把管道接上去 通信阶段:传递消息 断开阶段:收发数据结束 数据收发操作概览 知道了 IP 地址之后 , 就可以委托操…

Spring Boot高阶篇笔记

一、Spring Boot整合Redis缓存 JSR-107、Spring缓存抽象、整合Redis 1、JSR107 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。 • CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应…

打造Top级期货交易系统!成为投资高手!

交易系统在期货市场中得到广泛的应用,技术分析是期货交易系统的重要组成部分之一。技术分析是依靠市场数据来预测未来期货行情的一种方法,通过对期货历史市场信息进行形态分析和统计计算等手段,获取市场行情的走向,为后续的期货交…

初识MFC第一天

文章目录 前言一、初识MFC二、初始相关API附录 前言 刚开始进入Win32开发时,会发现一些变量类型似乎在C语言中未曾见过。其实这些变量类型或是与C/C已有的数据类型相近的,是通过C语言的原始类型重新定义而成的。引入这些数据类型的主要目的是为了便于程…

2023届网课生就业难:挑战与策略探析

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

One-Class SVM详解

简介 One-Class SVM(Support Vector Machine)是一种无监督学习算法,用于异常检测和离群点检测。它的目标是通过仅使用正常数据来建模,识别出与正常模式不同的异常数据点。 One-Class SVM的工作原理如下: 数据映射&a…

潮玩盲盒APP系统开发

盲盒抽奖App软件界面应该包括以下几个部分: 首页:首页需要展示正在进行的抽奖活动、热门盲盒商品和刚刚开奖的中奖名单,让用户快速了解当前的热门活动和优惠。 抽奖详情页:抽奖详情页需要展示抽奖主题、奖品图片、中奖规则…

高频前端面试题汇总之计算机网络篇

一、HTTP协议 1. GET和POST的请求的区别 Post 和 Get 是 HTTP 请求的两种方法,其区别如下: 应用场景: GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景,比如说请求一个网页的资源。而 P…

SAX解析XML返回对应格式的Map对象

前言 最近有一个解析大型xml的需求,xml大小7M,其中xml结构非常复杂,元素各种嵌套 不乏有元素下对象,元素下集合,集合下对象,集合下集合,兄弟节点,元素下对象下集合,同一元…

数字时代,你想成为一只“弱鸡”,还是一个“超级个体”?

电话延伸了人类的耳朵,屏幕延伸了人类的眼睛,汽车这样的交通工具延伸了人类的腿脚,人类的生存能力开始变得和技术相关,而这个趋势仍在加剧。 如今,Web3延伸了人的综合体验,AI延伸了人类的大脑,它…

MySQL(视图、存储过程与函数、流程控制、触发器)

第一章 视图 1 什么是视图 为了提高复杂的SQL语句的复用性和表的操作的安全性 ,MySQL数据库管理系统提高了视图特性,所谓视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是视图并…

2023年前端面试汇总 - JavaScript

1. 数据类型 1.1. JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: Symbol …

避开这12个压测误区保证有效压测

压测本质上其实就是经验的问题,至于技术我认为现在都是配套了,也有人配套的东西也搞不清,那还是经验的问题。提醒下,这篇对野路子玩压测的人蛮有用的。 一、压测的误区 首先讲压测误区,每个误区我会简单的总结下&…

作为超级自动化的重要先驱,流程挖掘正在成为组织运营标配

正在成为组织运营标配的流程挖掘,到底有哪些商业价值? 作为超级自动化的重要先驱,流程挖掘正在成为组织运营标配 文/王吉伟 AIGC正在影响越来越多的行业,流程挖掘领域亦不例外。 Mindzie首先宣布集成生成式AI,使用户…

带你详细了解Redis事务锁机制-加实列演示-上

Redis_事务_锁机制_秒杀 Redis 的事务是什么? 1、Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行 2、事务在执行的过程中,不会被其他客户端发送来的命令请求所打断 3、Redis 事务的主要作用就是串联多个命令防止别的命令…