DragGAN-点对点的手动P图

news2024/12/27 11:34:25

原文网站link以及论文链接:
https://vcai.mpi-inf.mpg.de/projects/DragGAN/
https://arxiv.org/pdf/2305.10973.pdf

简介

深度生成模型近年在合成随机真实感图像方面取得了不错的成绩。在现实世界的应用中,这种基于学习的图像合成方法中一个关键功能是对合成视觉内容的可控性。为了满足这种需求,理想的图像合成方法需要满足:

灵活性:可以控制不同的空间属性,包括生成物的位置、姿势、形状、表情和布局
精准度:可以高精度控制空间属性
普适性:可以适用于不同对象类别

为了达到上述的三个需求,论文作者提出了 DragGAN。DragGAN 是一种用于直观的基于点的图像编辑的交互式方法。它利用预训练的 GAN 来合成图像,这些图像不仅能精确地遵循用户输入,而且还能保持真实图像的多样性。作者提出了两个组件来构建整个模型:

1)基于特征的运动监督(Motion supervision),驱动 handle point 朝着 target point 移动。
2)一种新的点跟踪(Point tracking)方法,利用 discriminative generator 的特征来保证 handle points 的位置。

具体来说,运动监督是通过优化潜在编码(latent code)的偏移特征块损失来实现的。每个优化步骤都会使手柄点更接近目标;因此,点跟踪随后通过在特征空间中进行最近邻搜索来执行。整个优化过程会反复进行直到 handle points 和 target point 重合。

在这项工作中,作者展示了在生成对抗网络生成的图像上进行点追踪可以在不使用额外神经网络的情况下实现。揭示了生成对抗网络的特征空间具有足够的区分能力,可以通过特征匹配简单实现追踪。虽然一些先前的工作也利用了语义分割中的区分特征[1][2],这篇文章首次将基于点的编辑问题与区分性生成对抗网络特征的直觉联系起来,并设计了具体的方法。摒弃额外的追踪模型使得我们的方法能够更高效地运行,以支持交互式编辑。

Method

这项工作旨在为 GAN 开发一种交互式图像操作方法,用户只需点击图像定义一些(handle point,target point)对,然后驱动 handle point 到达它们对应的 target point。本篇论文的研究是基于 StyleGAN2 架构 [3](如果有感兴趣的可以留言,后续对论文进行补充)

在这里插入图片描述

本文核心的点是在于每次的优化均由两个子步骤组成

1)运动监督(Motion supervision)
2)点跟踪(Point tracking)

需要注意的是,这个跟踪过程是必要的,因为如果 handle point(例如,狮子的鼻子)没有被准确地跟踪,那么在下一步的运动监督中,错误的点(例如,狮子的脸)将被监督,导致不希望的结果。在跟踪完成后,会基于新的控制点和潜在编码重复上述优化步骤。

运动监督(Motion supervision)

在这项工作中,作者提出了一种不依赖于任何额外神经网络的运动监督损失。关键思想是生成器的中间特征非常有区别性,因此简单的损失就足以监督运动。具体来说,作者考虑了 StyleGAN2 第 6 个块之后的特征图,这在所有特征中表现最佳,因为它在分辨率和区分度之间有很好的平衡。
在这里插入图片描述

如图所示,为了将一个控制点 𝒑𝑖 移动到目标点 𝒕𝑖,作者通过监督 𝒑𝑖 周围的一个小区域(红色圆圈),使其以一个小步长(蓝色圆圈)朝着 𝒕𝑖 移动。使用 Ω1(𝒑𝑖, 𝑟1) 来表示与 𝒑𝑖 的距离小于 𝑟1 的像素,那么运动监督损失为:
在这里插入图片描述
其中,F(𝒒) 表示 𝑭 在像素 𝒒 处的特征值,𝒅𝑖 = 𝒕𝑖 −𝒑𝑖 是一个从 𝒑𝑖 指向 𝒕𝑖 的归一化向量(如果𝒕𝑖 = 𝒑𝑖,则𝒅𝑖 = 0),𝑭0 是对应于初始图像的特征图。注意,第一项对所有控制点 {𝒑𝑖} 进行求和。由于𝒒𝑖 +𝒅𝑖 的分量不是整数,作者通过双线性插值来获得 F(𝒒𝑖 +𝒅𝑖)的值。重要的是,在使用这个损失进行反向传播时,梯度不会通过 F(𝒒𝑖) 进行反向传播。这将促使 𝒑𝑖 移动到 𝒑𝑖 + 𝒅𝑖,而不是反过来。如果给定了二值掩码M,则通过第二项所示的重构损失来固定未被掩码遮挡的区域。在每个运动监督步骤中,这个损失用于优化一个步骤的潜变量𝒘。

𝒘可以在W空间或W+空间中进行优化,具体取决于用户是否希望获得更受限制的图像流形。由于W+空间更容易实现超出分布的操作,作者在这项工作中使用W+以获得更好的可编辑性。实际上,作者观察到图像的空间属性主要受到前6层的𝒘的影响,而剩下的层只影响外观。因此,受到样式混合技术的启发[4],只更新前6层的𝒘,同时保持其他层不变以保留外观。这种选择性的优化导致图像内容的轻微移动,从而实现所期望的效果。

Point Tracking

前面的运动监督得到了新的潜在编码𝒘’、新的特征图F’和新的图像I’。由于运动监督步骤并没有直接提供处理点的精确新位置,因此目标是更新每个处理点𝒑𝑖,使其跟踪物体上对应的点。点追踪通常通过光流估计模型或粒子视频方法进行[5]。然而,这些额外的模型会显著影响效率,并且在GAN中可能会出现累积误差,特别是在存在别名伪影的情况下。因此,作者提出了一种适用于 GAN 的新的点追踪方法。关键在于 GAN 的辨别特征很好地捕捉到了密集对应关系,因此可以通过特征块中的最近邻搜索来有效地进行跟踪。具体而言,将初始处理点的特征表示为𝒇𝑖 = F0(𝒑𝑖)。围绕 𝒑𝑖 的区域定义为 Ω2(𝒑𝑖, 𝑟2) = {(𝑥, 𝑦) | |𝑥 - 𝑥𝑝,𝑖 | < 𝑟2, |𝑦 - 𝑦𝑝,𝑖 | < 𝑟2}。然后通过在 Ω2(𝒑𝑖, 𝑟2) 中搜索 𝑓𝑖 的最近邻来获得追踪点的位置。
在这里插入图片描述

通过这种方式,𝒑𝑖 被更新以跟踪物体。对于多个处理点,每个点应用相同的过程。需要注意的是,这里也考虑了StyleGAN2 的第 6 个块之后的特征图 F’。

More Discussions

掩码的影响(Effects of mask)

本文允许用户输入一个表示可移动区域的二值掩码。如下图所示当给出一只狗头的掩码时,其他区域几乎保持不变,只有头部移动。如果没有掩码,操作将移动整个狗的身体。这也表明,基于点的操作通常有多个可能的解决方案,GAN将倾向于在从训练数据中学到的图像流形中找到最接近的解决方案。掩码函数可以帮助减少歧义并保持某些区域固定。
在这里插入图片描述

超出分布的操作(Out-of-distribution manipulation)

下图展示了一些超出分布的操作。可以看到,DragGAN 具有一定的外推能力,可以创建超出训练图像分布的图像,例如极度张开的嘴和大轮子。在某些情况下,用户可能希望始终将图像保持在训练分布中,并防止其达到这种超出分布的操作。实现这一目标的潜在方法是对潜码𝒘添加额外的正则化项。

在这里插入图片描述

局限性

尽管具有一定的外推能力,但质量仍受训练数据的多样性影响。如下图所示,创建与训练分布偏离的人体姿势可能会产生伪影。此外,纹理较少区域的处理点有时会在跟踪中产生更多的漂移,因此建议尽可能选择纹理丰富的处理点。
在这里插入图片描述

社会影响

由于 GragGAN 可以改变图像的空间属性,它可能被滥用来创建具有虚假姿势、表情或形状的真实人物图像。因此,任何使用 GragGAN 的应用或研究都必须严格遵守人格权利和隐私法规。

参考文献
[1] Nontawat Tritrong, Pitchaporn Rewatbowornwong, and Supasorn Suwajanakorn. 2021. Repurposing gans for one-shot semantic part segmentation. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 4475–4485.
[2] Yuxuan Zhang, Huan Ling, Jun Gao, Kangxue Yin, Jean-Francois Lafleche, Adela Barriuso, Antonio Torralba, and Sanja Fidler. 2021. DatasetGAN: Efficient Labeled Data Factory with Minimal Human Effort. In CVPR
[3] Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, and Timo Aila. 2020. Analyzing and improving the image quality of stylegan. In CVPR. 8110–8119
[4] Tero Karras, Samuli Laine, and Timo Aila. 2019. A style-based generator architecture for generative adversarial networks. In CVPR. 4401–4410.
[5] Adam W. Harley, Zhaoyuan Fang, and Katerina Fragkiadaki. 2022. Particle Video Revisited: Tracking Through Occlusions Using Point Trajectories. In ECCV

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

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

相关文章

文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题

三、利用指示器随机变量来计算掷n 个骰子之和的期望值。 文心一言&#xff1a; 为了计算掷n个骰子之和的期望值&#xff0c;我们需要先了解一个重要的概念&#xff1a;指示器随机变量。 指示器随机变量是一种特殊的随机变量&#xff0c;它只有两个取值&#xff1a;0和1。通常…

《计算机网络——自顶向下方法》精炼——3.7(2)

读书有三到&#xff1a;谓心到&#xff0c;眼到&#xff0c;口到。——明朱熹 文章目录 对链接吞吐量的简化描述高带宽路径的TCP公平性 对链接吞吐量的简化描述 为了简化对一条TCP连接吞吐量的描述&#xff0c;我们首先忽略连接过程中处于慢启动状态的时间&#xff0c;因为这一…

AWD练习平台搭建 附虚拟机资源

文章目录 前言基本环境平台搭建系统安装平台部署环境启动实现效果 参考后记 前言 最近需要准备线下AWD了&#xff0c;但是没有那么多金币每天上BugKu的PVP在线AWD对战进行练习&#xff0c;于是想着可以自己搭建一个团队内部使用的AWD攻防平台&#xff0c;浅浅的记录一下 基本…

基于SSM框架的学生信息管理系统

项目介绍 主要功能&#xff1a; 基于Spring、SpringMVC、Mybatis框架LayUI完成了这么一套系统 ①角色登录&#xff1a;管理员登录、教师登录、学生登录 ②基本管理&#xff1a;学生管理、教师管理、班级管理、专业管理、教室管理 ③教务管理&#xff1a;课程管理、开课管理、课…

Packet Tracer - 综合技能练习

Packet Tracer - 综合技能练习 拓扑 地址分配表 32-1913 2^132^8*2^5 256*32 32个C 16 16 (1)172.16.128.0~172.16.143.255 255.255.240.0 (2)172.16.144.0~172.16.159.255 255.255.240.0 G0/0 172.16.159.254 G0/1 172.16.143.254 设备 接口 IP 地址 子网掩码 …

深入理解API网关Kong:初识Kong网关

深入理解API网关Kong&#xff1a;初识Kong网关 介绍 Kong是一个开源的、可扩展的、微服务 API 网关&#xff0c;它已经在全球范围内的各种规模的组织中广泛使用。Kong的设计原则是为了处理服务到服务的通信&#xff0c;通过提供功能丰富的平台&#xff0c;实现对API的全面管理…

Verilog基础之一、触发器实现

目录 一、触发器简介 1.1 触发器作用 1.2 触发器信号 1.3 使用规范 1.4 Vivado综合触发器 二、代码实现 三、综合结果 一、触发器简介 1.1 触发器作用 触发器是工程中基础的单元结构也是相当重要的组成&#xff0c;时序电路的实现离不开触发器。触发器是具有存储功能的器件&…

chatgpt赋能python:Python升序排序不用sort

Python 升序排序不用 sort 如果你在Python编程领域有多年的经验&#xff0c;那么你肯定对sort函数非常熟悉。sort是Python自带的用于列表或数组进行排序的函数。sort函数可以根据元素的值进行升序排序或降序排序&#xff0c;非常方便。但是&#xff0c;如果你需要在不使用sort…

【小白教程】Docker安装使用教程,以及常用命令!

【小白教程】Docker安装使用教程&#xff0c;以及常用命令&#xff01; - 带你薅羊毛最近调试Docker内容&#xff0c;顺手记录一下&#xff0c;我常用的几个命令&#xff01;这里总结一下&#xff0c;方便自己也同时方便大家使用&#xff01; 内容慢慢完善更新&#xff01;如有…

Linux 之JavaEE定制篇-搭建JavaEE 环境

Linux 之JavaEE 定制篇-搭建JavaEE 环境 注意 本篇软件链接提供 链接&#xff1a;https://pan.baidu.com/s/1y5qqQvWGQ-iz5M2WUrjD3A?pwdv5l2 提取码&#xff1a;v5l2 如果嫌自己下载麻烦或者难找可以考虑 概述 如果需要在Linux 下进行JavaEE 的开发&#xff0c;我们需要…

极速版手机蓝牙APP开发

极速版手机蓝牙APP开发 零、效果展示一、环境介绍二、开发过程控件布局代码逻辑蓝牙部分摇杆部分其他部分 三、整体优化四、结束语 零、效果展示 “这是一个充满科技风的手机蓝牙APP” 一、环境介绍 App Inventor是一款谷歌公司开发的手机编程软件&#xff0c;主要支持各种…

vue 实现 dragover拖拽到页面底部时元素自动向下滚动

公司要求做一个类似于企业微信的日程功能 然后呢 日程组件 需要能拖拽时间段创建 这里 我们使用 dragstartdragenddragover 记录被拖动位置完成的 如果没接触过 可以查看我的文章 vue记录鼠标拖拽划过位置并将划过位置变色 这里的话 其实可以在dragover中做操作 界面上 drag…

【C++ 基础篇:20】:类的 (const)static 静态成员:面试题:实现一个类,计算程序中创建出了多少个类对象?

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

区块链基础之共识机制

1.1共识机制 1.1.1核心定义 区块链上的共识机制主要解决由谁来构造区块&#xff0c;以及如何维护区块链统一的问题 1.1.2共识机制分类 1.1.3 共识算法 1.1.3.1 POW(工作量证明) 代表项目&#xff1a;BTC 由于不同的节点接受数据有所区别&#xff0c;为了保证数据一致性&a…

改善录音直播收音环境,只需一副监听耳机,丁一号G800S体验

现在很多人已经习惯了使用蓝牙耳机&#xff0c;但在平时直播、录音的时候&#xff0c;把蓝牙耳机当作耳返工具并不好用&#xff0c;经常有延迟高之类的问题&#xff0c;影响我们的录音效果和沟通体验&#xff0c;这时候需要配备一个监听耳机&#xff0c;才能够了解到实际的收音…

斐波那契数列题解(非递归c++方法实现)

在做信奥赛&#xff08;信息学奥赛&#xff09;中的for循环题目时&#xff0c;有一道斐波那契数列&#xff0c;想到的第一个方法是使用递归求解&#xff1b;因为以往题目最多使用的就是递归形式&#xff0c;但鉴于该题目在for循环题目堆&#xff0c;所以就思考了一些新方法&…

果推断17--基于反事实因果推断的度小满额度模型学习笔记

目录 一、原文地址 二、一些问题 2.1如何从RCT随机样本过渡到观测样本因果建模&#xff1f; 2.2反事实学习的核心思想 2.3度小满的连续反事实额度模型 Mono-CFR 2.4Mono-CFR代码实现&#xff08;待补充&#xff09; 2.5CFR学习 2.5.1CFR 2.5.2DR-CFR 参考 一、原文地…

2.C++多线程--危险点分析

1.detach使用时分析 使用detach时&#xff0c;子线程一定不要传入指针 #include<iostream> #include<thread> using namespace std;void my_print(const int& num1,const char* str) {cout << num1 << " " << str << endl; …

MySQL 事务处理语言 TCL

文章目录 事务处理语言 TCL事务简介事务控制并发事务的隔离挑战脏读不可重复读幻读 事务的隔离级别未提交读&#xff08;READ-UNCOMMITED&#xff09;提交读&#xff08;READ COMMITED&#xff09;可重复读&#xff08;REPEATABLE READ&#xff09;可串行化&#xff08;SERIALI…

虹科案例 | 筒仓液位测量可以这么简单?

Part.01 行业挑战 在料箱、料斗或筒仓中使用散装物料的制造商需要准确可靠的液位检测来管理和处理库存&#xff0c;并最大限度地减少生产延迟。 塑料成型、食品加工和建筑材料等行业都依赖于散装材料。随着这些行业越来越接近准时制&#xff08;JIT&#xff09;制造&#xff…