GAN论文阅读笔记(10)—— High-fidelity GAN Inversion with Padding Space

news2024/11/26 14:47:47

论文:High-fidelity GAN Inversion with Padding Space
paper:136750036.pdf (ecva.net)
code:EzioBy/padinv: [ECCV 2022] PadInv: High-fidelity GAN Inversion with Padding Space (github.com)

关键词:GAN, GAN 反演 ( GAN Inversion ), CV, CNN

1:问题与解决

对于GAN反演当下存在的对于图像空间细节无法很好的恢复的问题,作者认为这可能来源于在卷积层之前对特征图的填充操作(padding)。padding 通常会在原特征图中填充0来扩大特征图的空间维度。这填充的值是固定的而不是在训练阶段学习的,作者认为这可能带来一些归纳偏差,使得生成的图像出现 “纹理粘附” 的问题。

可以理解为:假如我们对一幅特征图做填充操作的常数正好是另一个特征的编码信息,这样就会导致两个特征粘在一起(粘在一些像素上,那部分像素既是特征1的也是特征2的),但特征编码是不同的。如果粘附在一起的特征都是域内特征,这种问题在反演阶段可能并不明显,但是在图像编辑时就会发现像素的粘附,破坏了生成图像的质量。但如果是域外特征和域内特征粘在一起,在 latent space 内通过参数搜索来反演它们就变得很困难。

为解决这个问题,作者提出了一种新的GAN反演方法,称为PadInv,其通过将生成器的填充空间作为除 lantent space 之外的扩展反演空间。具体来说,作者为每个单独的图像调整生成器中使用的填充系数,而不是继承 GAN 训练中假设的归纳偏置(例如,零填充)。这种实例感知的重编程能够用足够的空间信息来补充潜在空间,特别是对于那些超出分布的情况。

2:方法

2.1 网络架构

图1:PadInv 网络
在这里插入图片描述

该网络中编码器 E E E 不仅仅产生图像对于 lantent code 还在同时产生一个系数张量 (图中的 p)来替换生成器 G G G 中卷积层中使用的填充。

2.2 训练

文中采用的损失都是常见的损失函数:

1:重构损失,包括一个逐像素L2损失和一个感知L2损失:
L p i x = ∣ ∣ x − G ( E ( x ) ) ∣ ∣ 2 L_{pix}=||x-G(E(x))||_{2} Lpix=∣∣xG(E(x))2
L p e r = ∣ ∣ ϕ ( x ) − ϕ ( G ( E ( x ) ) ) ∣ ∣ 2 L_{per}= ||\phi(x)-\phi (G(E(x)))||_{2} Lper=∣∣ϕ(x)ϕ(G(E(x)))2
其中 ϕ \phi ϕ 是一种预训练的感知特征提取神经网络。

2:身份损失,这类损失是专门为反演人脸生成模型而设计的:
L i d = 1 − cos ⁡ ( ψ ( x ) , ψ ( G ( E ( x ) ) ) ) L_{id}=1-\cos(\psi(x),\psi(G(E(x)))) Lid=1cos(ψ(x),ψ(G(E(x))))
其中 cos ⁡ \cos cos 为计算余弦相似度, ψ \psi ψ 为一个预训练的身份特征提取神经网络。

3:对比损失。为了避免模糊重建,编码器还被要求与鉴别器竞争,从而产生对抗性训练方式。
L a d v = − E x ∼ X [ D ( G ( E ( x ) ) ) ] L_{adv}=-\mathbb{E}_{x\sim X} \left [ D(G(E(x))) \right ] Ladv=ExX[D(G(E(x)))]
其中 E[·] 为期望运算,X 为实际数据分布。D(·) 表示鉴别器。

4:正则化损失。StyleGAN生成器维护一个平均的 lantent code w ˉ \bar{w} wˉ,它可以看作是潜在空间 w的统计量。我们期望反转的代码尽可能地服从于本地潜在分布:
L r e g = ∣ ∣ E l a n t e n t ( x ) − w ˉ ∣ ∣ 2 L_{reg}=||E_{lantent}(x)-\bar{w} ||_{2} Lreg=∣∣Elantent(x)wˉ2
其中 E l a t e n t ( ⋅ ) E_{latent}(·) Elatent()表示编码器不包括填充的 lantent code。

编码器的总损失函数为以上损失函数的加和:

L E = λ pix  L pix  + λ per  L per  + λ i d L i d + λ adv  L a d v + λ reg  L reg  \mathcal{L}_{E}=\lambda_{\text {pix }} \mathcal{L}_{\text {pix }}+\lambda_{\text {per }} \mathcal{L}_{\text {per }}+\lambda_{i d} \mathcal{L}_{i d}+\lambda_{\text {adv }} \mathcal{L}_{a d v}+\lambda_{\text {reg }} \mathcal{L}_{\text {reg }} LE=λpix Lpix +λper Lper +λidLid+λadv Ladv+λreg Lreg 

5:判别器 D D D 损失函数:

L D = E x ∼ X [ D ( G ( E ( x ) ) ) ] − E x ∼ X [ D ( x ) ] − γ 2 E x ∼ X [ ∥ ∇ x D ( x ) ∥ 2 ] , \mathcal{L}_D=\mathbb{E}_{\mathbf{x}\sim\mathcal{X}}[D(G(E(\mathbf{x})))]-\mathbb{E}_{\mathbf{x}\sim\mathcal{X}}[D(\mathbf{x})]-\frac{\gamma}{2}\mathbb{E}_{\mathbf{x}\sim\mathcal{X}}[\|\nabla_{\mathbf{x}}D(\mathbf{x})\|_2], LD=ExX[D(G(E(x)))]ExX[D(x)]2γExX[xD(x)2],
其中 γ \gamma γ 为梯度惩罚的超参数。

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

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

相关文章

MobPush HarmonyOS NEXT 版本集成指南

开发工具:DevEco Studio 集成方式:在线集成 HarmonyOS API支持:> 11 集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查…

React实战学习(一)_棋盘设计

需求: 左上侧:状态左下侧:棋盘,保证胜利就结束 和 下过来的不能在下右侧:“时光机”,保证可以回顾,索引 语法: 父子之间属性传递(props)子父组件传递(写法上&…

第十三章 常用类

一、包装类 1. 包装类的分类 (1)针对八种基本数据类型相应的引用类型—包装类 (2)有了类的特点,就可以调用类中的方法。 2. 包装类和基本数据的转换 jdk5 前的手动装箱和拆箱方式,装箱:基本…

使用SpringBoot整合filter

SpringBoot整合filter,和整合servlet类似,也有两种玩儿法 1、创建一个SpringBoot工程,在工程中创建一个filter过滤器,然后用注解WebFilter配置拦截的映射 2、启动类还是使用ServletComponentScan注解来扫描拦截器注解WebFilter 另…

通过百度文心智能体创建STM32编程助手-实操

一、前言 文心智能体平台AgentBuilder 是百度推出的基于文心大模型的智能体(Agent)平台,支持广大开发者根据自身行业领域、应用场景,选取不同类型的开发方式,打造大模型时代的产品能力。开发者可以通过 prompt 编排的…

主从复制、哨兵以及Cluster集群

目录 1.Redis高可用 2.Redis主从复制 2.1 主从复制的作用 2.2 主从复制流程 2.3 搭建Redis主从复制 2.3.1 修改Redis配置文件(Master节点操作) 2.3.2 修改Redis配置文件(Slave节点操作) 2.3.2 验证主从复制结果 3.Redis哨…

Oracle新特性速递:未来数据库技术的无限可能

文章目录 一、自治数据库:智能化与自动化的革命二、机器学习集成:智能数据分析的新境界三、区块链技术:确保数据完整性与透明性四、云原生数据库:灵活扩展与快速部署五、人工智能优化器:智能查询执行计划《Oracle从入门…

Pow(x,n)快速冥算法

快速幂算法 快速幂算法是一种通过分治和递归的方式来计算幂运算的方法,其核心思想是利用分治和递归减少乘法的次数来显著提高效率。 基本原理: 给定 x 和 n,计算 x^n 的过程如下: 基本情况处理:如果指数 n 是 0&…

【STM32修改串口波特率】

STM32微控制器中的串口波特率调整通常涉及到USART(通用同步接收器/发送器)模块的配置。USART模块提供了多个寄存器来设置波特率,其中关键的寄存器包括BRR(波特率寄存器)和USART_CR1(控制寄存器1&#xff09…

【嵌入式操作系统(Linux篇)】实验期末复习(1)

以下是关于嵌入式操作系统(Linux篇)的实验汇总,大概率都是会考的 特别是shell程序和文件IO的操作 嵌入式操作系统实验小结—涉及期末大题 (一)Linux操作系统的使用实验 1、认识Linux操作系统的目录结构 请进入自己…

【C++课程设计——演讲比赛系统】

文章目录 前言一、演讲比赛程序需求二、每个功能模块的实现1. 创建管理类(.h文件)2.1. 创建管理类(.cpp文件)3.创建参赛选手类(.h)4.将整体逻辑进行封装 测试项目总结 前言 在学习完C的stl容器后,我们来写一下小项目对其进行应用! 项目名称为&#xff1…

cocos creator 调试插件

适用 Cocos Creator 3.4 版本,cocos creator 使用google浏览器调试时,我们可以把事实运行的节点以节点树的形式显示在浏览器上,支持运行时动态调整位置等、、、 将下载的preview-template插件解压后放在工程根目录下,然后重新运行…

day23-- 39. 组合总和+40.组合总和II + 131.分割回文串

一、 39. 组合总和 题目链接:https://leetcode.cn/problems/combination-sum/ 文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解:https://www.bilibili.com/video/BV1KT4y1M7HJ 1.1 初见思路…

JAVA期末速成库(10)第十一章

一、习题介绍 Check Point:P416 11.1,11.6,11.7,11.8,11.12,11.17,11.24 Programming Exercise:11.1 二、习题及答案 Check Point: 11.1 True or false? A subcl…

Windows下activemq集群配置(broker-network)

1.activemq版本信息 activemq:apache-activemq-5.18.4 2.activemq架构 3.activemq集群配置 activemq集群配置基于Networks of Brokers 这种HA方案的优点:是占用的节点数更少(只需要2个节点),而且2个broker都可以响应消息的接收与发送。不足&#xff…

003-GeoGebra如何无缝嵌入到PPT里

GeoGebra无缝嵌入到PPT里真是一个头疼的问题,已成功解决,这里记录一下,希望可以帮助到更多人。 注意,后续所有的文章说的PPT都是Offce Power Point, 不要拿着WPS的bug来问我哦,我已经戒WPS了(此处表示无奈&…

基于Spring Boot的校园失物招领系统

1 项目介绍 1.1 研究的背景及意义 在网络时代飞速发展的今天,随着网络技术日臻完善,我们的生活方式正经历深刻变革。在物质追求日益增长的同时,提升个人精神境界也成为了现代人的共同向往,而阅读则是滋养心灵、丰富精神世界的重…

Ubuntu Server 和 Ubuntu Desktop 组合使用

1.常见的组合使用方式 Ubuntu Server 和 Ubuntu Desktop 确实可以组合使用,但具体要看你的需求和使用场景。以下是一些常见的组合使用方式: 单一设备上安装:你可以在一台设备上同时安装 Ubuntu Server 和 Ubuntu Desktop。这样,你…

【SQL Server数据库】视图的使用

一、用SQL语句完成下列功能。 1.建立一视图View_CSTeacher,列出计算机系各个老师的资料(姓名、性别、职称)。 create view View_CSTeacher asselect Teac_name, Teac_sex, TechPostfrom Teacherwhere Depar_id in (select Depar_id from Deparment whe…

SpringCloudAlibaba基础四 微服务调用组件OpenFeign

JAVA 项目中如何实现接口调用? 1)Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 …