DragGAN论文阅读

news2025/1/12 1:54:52

文章目录

  • 摘要
  • 问题
  • 3. 算法:
    • 3.1 基于点的交互式操作
    • 3.2 运动监督
    • 3.3 点跟踪
  • 4. 实验
    • 4.1 质量评估
    • 4.2 量化评估
    • 4.3 讨论
  • 结论

论文: 《Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold》
github: https://github.com/XingangPan/DragGAN

摘要

用户想要灵活控制姿态、形状、表情以及生成目标布局。现有方法:GAN通过有标定训练集实现、或者先验3D模型,这缺少灵活度、精确度及泛化性。本文提出DragGAN,主要包括两部分:
1、基于特征的运动监督,驱动点运动到目标位置;
2、点跟踪方法利用生成器特征定位点。
即使对一些有挑战场景,比如遮挡

问题

DragGAN主要解决两个问题:

  1. 移动点到目标位置;
  2. 跟踪点的位置;

DragGAN基于观点:
GAN的特征空间具有足够区分度,可用于运动监督以及精确点跟踪。

3. 算法:

3.1 基于点的交互式操作

图像控制流程如图2所示,对于依据隐向量 w w w及GAN生成图片 I I I,用户可输入一系列处理点 p i p_i pi记忆对应目标点 t i t_i ti,目标是移动图中目标,使得处理点的语义位置达到对应目标点。
如图2,优化过程分为两步:运动监督及点跟踪。强制处理点移动到目标点的损失函数用于优化隐向量 w w w,得到新的隐向量 w ‘ w‘ w及新图片 I ’ I’ I,每次优化仅运动一小步,具体步长是不清楚的,因此需要通过跟踪模块,更新处理点位置。这个过程持续30-200轮迭代。
在这里插入图片描述

3.2 运动监督

在这里插入图片描述

作者提出运动监督损失不依赖于额外的神经网络,由于生成器中间特征已经具有差异性,作者选取StyleGAN2第六个block的特征,作者将其resize到与输出图片尺寸一致。如图3,移动处理点 p p p t t t,损失函数如式1,
在这里插入图片描述

在这里插入图片描述

二值mask M用于保证保证feimask区域不变;隐向量 w w w可在 W W W空间优化也可在 W + W+ W+空间优化, W + W+ W+空间更易在离群数据上操纵, W + W+ W+表示StyleGAN2各个层使用不同隐向量 w w w W W W表示各个层使用相同隐向量 w w w。实验发现图像空间属性受 w w w前六层影响,因此只更新 w w w的前六层。

3.3 点跟踪

通过运动监督模块更新 w w w w ‘ w‘ w,得到新特征图 F ’ F’ F,新图片 I ‘ I‘ I,但无法提供处理点在新图 I ’ I’ I中位置,点跟踪用于更新处理点 p p p。常规点跟踪方案为光流或粒子视频方法,但是不够高效或者产生累计误差,尤其是在GAN生成伪影时。
作者认为GAN的特征捕获稠密点一致性信息,因此可通过最邻近搜寻寻找处理点,如式2,
在这里插入图片描述
在这里插入图片描述

4. 实验

4.1 质量评估

图4作者比较DragGAN与UserControllableLT,DragGAN结果更加自然,移动更加准确;
在这里插入图片描述

图6作者与PIPs、RAFT比较点跟踪方法,作者所提方法更加准确。
在这里插入图片描述

**真实图片操纵。**通过反向GAN编码真实图片至StyleGAN的隐空间,也可操纵真实图像,如图5、13
在这里插入图片描述
在这里插入图片描述

4.2 量化评估

人脸操纵。
作者通过StyleGAN生成两人脸,利用现有工具预测人脸关键点,通过DragGAN将图1人脸关键点迁移至图2人脸关键点位置,计算迁移后图片人脸关键点与图2中人脸关键点距离,以此为评估指标。结果如表1,可视化结果如图7。
在这里插入图片描述
在这里插入图片描述

成对图像重构。
作者利用StyleGAN生成图片 I 1 I_1 I1 I 2 I_2 I2,在光流区域随机采样32个点作为用户输入 U U U,目标为利用 I 1 I_1 I1 U U U重构 I 2 I_2 I2,量化结果如表2所示。
在这里插入图片描述

消融实验
作者比较不同层特征对运动监督、点跟踪的影响,如图3所示,StyleGAN第6个block特征表现最佳。
在这里插入图片描述

4.3 讨论

图8展示可移动区域mask的影响。
在这里插入图片描述
图9展示OOD数据的图像操纵。
在这里插入图片描述

限制:
图14a展示一些限制,对于一些偏离训练集分布的姿态容易产生伪影。
如图14b、c,对于一些缺少结构信息信息的处理点,跟踪时会出现偏移。
在这里插入图片描述

结论

作者提出DragGAN,一种交互式基于点的图像编辑方法,可以依据用户输入操纵图像。这归因于两点:
a. 隐向量优化模块,将处理点移动至目标点;
b. 点跟踪模块准确跟踪处理点轨迹。
DragGAN超越现有基于GAN的图像操纵方法,同时开拓新方向,利用生成先验进行图像操纵。

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

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

相关文章

一文学会Git管理代码仓库

文章目录 一、预备知识1.Linux常用指令2.vim编辑器基本使用 二、Git基础1.工作区、暂存区、本地仓库和远程仓库2.git init3.git add4.git status5.git commit6.git push7.git pull8.git 分支管理(branch、checkout、merge)9.git clone和log10.git diff11.git fetch12.git rm13.…

汽车IVI中控开发入门及进阶(九):显示屏

前言: 显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。 正文: 显示屏 主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的…

Java企业级开发学习笔记(4.4)Spring Boot加载自定义配置文件

一、使用PropertySource加载自定义配置文件 1.1 创建Spring Boot项目 创建Spring Boot项目 单击【创建】按钮 1.2 创建自定义配置文件 在resources里创建myconfig.properties文件 设置文件编码 设置学生的四个属性值 1.3 创建自定义配置类 在cn.kox.boot包里创建confi…

毕业季Android开发面试,有哪些常见的题?

前言 对于计算机行业早已烂大街,随之而来的毕业季。还会有大批的程序员涌进来,而我们想要继续进入Android开发岗位的人员,最先考虑的是面试。面试题是我们决定踏进工作的重要环节。 对于刚毕业的实习生来说,如何在应聘中脱颖而出…

uniapp 使用app-plus自定义导航栏(titleNView)右侧自定义图标+文字按钮

前言 最近在使用uni-app写H5移动端时候,在pages.json文件配置导航栏的图标时发现不生效 去官网查阅了很久,意思是不支持本地图片,支持iconfont.ttf(iconfont本地下载)格式图片 意思是在导航栏的图标需要在iconfont图…

Synchronized 偏向锁、轻量级锁、自旋锁、锁消除

一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实…

【从Spring Cloud到Spring Cloud Alibaba,这些改变你都知道吗?】—— 每天一点小知识

💧 从 S p r i n g C l o u d 到 S p r i n g C l o u d A l i b a b a ,这些改变你都知道吗? \color{#FF1493}{从Spring Cloud到Spring Cloud Alibaba,这些改变你都知道吗?} 从SpringCloud到SpringCloudAlibaba&#…

【LeetCode训练营 189】轮转数组详解

💯 博客内容:【LeetCode训练营 189】轮转数组详解 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信! 💖 欢迎大…

Tensorflow训练代码1.x接口自动升级2.x踩坑记录

Tensorflow训练代码1.x接口自动升级2.x踩坑记录 TF准备工作环境问题解决自动升级脚本,从TF1.0调通到TF2.0 一起学AI系列博客:目录索引 本文小结Tensorflow训练代码1.x接口自动升级2.x踩坑过程和问题解决的方法。 TF准备工作 Tensorflow环境准备 前提已…

【MySQL高级篇笔记-多版本并发控制MVCC(下) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、什么是MVCC 二、快照读与当前读 1、快照读 2、当前读 三、复习 1、再谈隔离级别 2、隐藏字段、Undo Log版本链 四、MVCC实现原理之ReadView 1、什么是ReadView 2、设计思路 3、ReadView的规则 4、MVCC整体操作流程…

操作系统(5.2)--请求分页储存管理模式

目录 请求分页的硬件支持 1.页表机制 2.缺页中断机构 3.地址变换机构 请求分页中的内存分配 1.最小物理块数的确定 2.内存分配策略 3.物理块分配算法(采用固定分配策略时) 页面调度策略 1.何时调入页面 2.从何处调入页面 3.页面调入过程 请求分页的硬件支持 内存、…

基础知识学习---牛客网C++面试宝典(四)C/C++基础之STL

1、本栏用来记录社招找工作过程中的内容,包括基础知识学习以及面试问题的记录等,以便于后续个人回顾学习; 暂时只有2023年3月份,第一次社招找工作的过程; 2、个人经历: 研究生期间课题是SLAM在无人机上的应…

TCP协议流程详解,抓包分析

目录 TCP概念TCP工作层TCP协议头部解析TCP抓包解析TCP三次握手,数据收发,四次挥手抓包TCP状态迁移 TCP概念 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议&…

MyBatis操作数据库(查询功能)

目录 一、MyBatis的概念 二、配置MyBits环境 三、 MyBatis连接数据库查询操作(示例) 创建MySQL数据库表 配置MyBatis 配置连接数据库和MyBatis xml文件 ​编辑 四、添加业务代码 实体类entity 数据持久层mapper 创建接口类 创建xml文件 服务层…

偏向锁、轻量级锁、重量级锁、自旋锁、自适应自旋锁

1. 偏向锁 偏向锁就是在运行过程中,对象的锁偏向某个线程。即在开启偏向锁机制的情况下,某个线程获得锁,当该线程下次再想要获得锁时,不需要重新申请获得锁(即忽略synchronized关键词),直接就可…

python 房价数据可视化以数据缺失处理、及回归算法

基本信息概述 房价数据为他国地区使用工具为JupyterLab、python3用到的包 绘图包:seaborn、matplotlib数据处理包:numpy、pandas统计计算包:math、scipy回归模型包:make_pipeline、 RobustScaler、ElasticNet,Lasso、KernelRidge…

设计模式(十四):行为型之策略模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

1、pyinstaller的说明: pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支…

进程管道:父进程和子进程

在接下来的对pipe调用的研究中,我们将学习如何在子进程中运行一个与其父进程完全不同的另外一个程序,而不是仅仅运行一个相同程序。我们用exec调用来完成这一工作。这里的一个难点是,通过exec调用的进程需要知道应该访问哪个文件描述符。在前…

设计模式(十三):行为型之模板方法模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…