解构 StyleCLIP:文本驱动、按需设计,媲美人类 P 图师
来源 | HyperAI超神经(ID:HyperAI)
作者 | 神经三羊
StyleCLIP 是一种新型「P 图法」,它结合了 StyleGAN 和 CLIP,可以仅依据文本描述,对图像进行修改和处理。
提起 StyleGAN 大家都不陌生。这个由 NVIDIA 发布的新型生成对抗网络,借鉴风格迁移,可以快速生成大量的基于样式的新图像。
StyleGAN 学习能力强大,生成的图像也以假乱真,但是这种基于「看图」,进行学习和二次创作的方法,用的次数多了,也难免有些略显传统和保守。
来自希伯来大学、特拉维夫大学以及 Adobe 研究院的科研人员,创造性地将预训练 StyleGAN 生成器的生成能力,和 CLIP 的视觉语言能力结合起来,推出了一种全新的修改 StyleGAN 图像的方法--由文本驱动,你「写」什么样的要求,就生成什么样的图像。
用 StyleCLIP 进行文本驱动操作的示例第一排为输入图像,第二排为操作结果,每列图像下方对应驱动图像改变的文本
StyleCLIP 到底是何方神圣
StyleCLIP 顾名思义,就是结合了 StyleGAN 和 CLIP。
StyleGAN 通过 Image Inversion 将图像表示成 Latent Code,进而通过编辑修改 Latent Code 控制图像风格。
CLIP 全称 Contrastive Language-Image Pretraining,是一个用 4 亿个图像-文字对,训练出来的神经网络,可依据给定的文字描述,输出最相关的图像。
科研人员在论文中,研究了 3 种结合 StyleGAN 和 CLIP 的方法:
文本引导的潜在向量优化,其中 CLIP 模型被用作损失网络。
训练 Latent Mapper,使潜在向量与特定文本一一对应。
在 StyleGAN 的 StyleSpace 中,把文本描述映射到输入图像的全局方向 (Global Direction),控制图像操作强度以及分离程度。
相关工作
2.1 视觉及语言
联合表示 (Joint representations)
有非常多的任务,都可以习得跨模式视觉和语言 (VL) 表示,如基于文本的图像检索、图像说明和视觉回答。随着 BERT 在各种语言任务中的成功,当下的 VL 方法通常使用 Transformers 来学习联合表示。
文本引导的图像生成和处理
训练一个符合条件的 GAN,从预训练编码器中获得文本嵌入,实现文本引导的图像生成。
2.2 Latent Space 图像处理
StyleGAN 的中间 Latent Space 已被证明,可以实现大量分解和有意义的图像处理操作,比如训练一个网络,把给定图像编码为被处理图像的嵌入向量,从而学习以端到端的方式进行图像处理。
图像处理均直接依据文本输入,用预先训练好的 CLIP 模型进行监督。由于 CLIP 是在数以亿计的文本-图像对儿上训练的,因此该方法是通用的,可以在众多领域中使用,不需要针对特定领域或特定处理进行数据标注。
3、StyleCLIP 文本驱动的图像处理
这项工作探索了文本驱动图像处理的三种方式,所有这些方式都结合了 StyleGAN 的生成能力和 CLIP 丰富的联合视觉-语言表示。
4、Latent 优化
利用 CLIP 指导图像处理的简单方法,是通过 direct latent 代码优化。
5、Latent Mapper
Latent 优化是通用的,因为它对所有源图像-文本描述对都进行了专门的优化。缺点是,编辑一张图像需要耗费数分钟的优化时间,而且该方法对其参数值有些敏感。
文本引导 Mapper 的架构,这里使用的文本提示是「惊讶」,不同的 StyleGAN 层,负责生成的图像的不同层次的细节
6、Global Directions
将文本提示映射到 StyleGAN 的 Style Space 中的单一的、全局的方向,该 Style Space 已被证实,比其他 Latent Space 更具有分离性。
由「grey hair」驱动的图像处理,适用于不同的操作强度和分离阈值
阅读完整论文:
https://arxiv.org/pdf/2103.17249v1.pdf
论文作者:来自以色列高校、专注 GAN
论文一作 Or Patashnik 是特拉维夫大学 CS 专业的一名研究生,主要从事图像生成和处理相关项目。
她对机器学习、计算机图形学和机器视觉都非常感兴趣,主要从事涉及图像生成和处理的项目,已发布数篇 StyleGAN 相关的论文。
论文作者 Or Patashnik(左)及 Zongze Wu(右)
论文的另一位作者 Zongze Wu,则是希伯来大学 Edmond & Lily Safra 脑科学中心的一名博士生,目前主要在 HUJI 机器视觉实验室,跟随 Adobe 研究所的 Dani Lischinski 和 Eli Shechtman 教授开展项目。
Zongze Wu 专注于计算机视觉相关课题,如生成对抗网络、图像处理、图像翻译等。
根据 Zongze Wu 的简历显示,2011-2016 年他就读于同济大学,专业是生物信息学 (Bioinformatics),毕业后 Zongze Wu 进入耶路撒冷希伯来大学的计算神经科学专业继续攻读博士。
结合 StyleGAN 与 CLIP 的三种方法详解
据 StyleCLIP 相关论文介绍,科研人员共研发出了 3 种方法,可以将 StyleGAN 和 CLIP 进行结合,这 3 种方法分别基于 Latent Optimization、Latent Mapper 以及 Global Direction。
1、基于 Latent Optimization
本教程主要介绍了基于迭代优化来做人脸编辑的内容,用户输入一段文本表述,得到和文字匹配的人脸编辑图像。
第一步 准备代码环境
第二步 参数设置
第三步 运行模型
第四步 可视化处理前后的图片
第五步 将优化过程存储为视频输出
完整 notebook 请访问:
https://openbayes.com/console/openbayes/containers/rlJisxxVhhD?path=%2Foptimization_playground.ipynb
2、基于 Latent Mapper
第一步 准备代码环境
第二步 设置参数
第三步 运行模型
第四步 可视化处理前后的图片
完整 notebook 请访问:
https://openbayes.com/console/openbayes/containers/rlJisxxVhhD?path=%2Fmapper_playground.ipynb
3、基于 Global Direction
本教程介绍了将文本信息映射到 StyleGAN 的隐空间中,再进一步修改图像的内容。用户可以输入一段文本表述,得到和文本非常匹配且具备良好特征解耦合性的人脸编辑图片。
第一步 准备代码环境
第二步 设置 StyleCLIP
第三步 设置 e4e
第四步 选择图片,使用 dlib 进行人脸对齐
第五步 将待编辑图片逆推到 StyleGAN 的隐空间中
第六步 输入文本表述
第七步 选择操纵强度 (alpha) 和解耦合阈值 (beta) 进行图片编辑
第八步 生成视频来可视化编辑的中间过程
完整 notebook 请访问:
https://openbayes.com/console/openbayes/containers/rlJisxxVhhD?path=%2Fglobal_direction.ipynb
关于 OpenBayes
OpenBayes 是国内领先的机器智能研究机构,提供算力容器、自动建模、自动调参等多项 AI 开发相关的基础服务。
同时 OpenBayes 还上线了数据集、教程、模型等众多主流公开资源,供开发者快速学习并创建理想的机器学习模型。
现在访问 openbayes.com 并注册,即可享用 600 分钟/周的 vGPU,以及 300 分钟/周 的 CPU 免费计算时,快行动起来,用 StyleCLIP 设计你想要的人脸吧!
完整教程传送门:
https://openbayes.com/console/openbayes/containers/rlJisxxVhhD
你也可点击阅读原文,访问完整教程。
参考:
https://arxiv.org/pdf/2103.17249v1.pdf
https://github.com/orpatashnik/StyleCLIP
相关文章:

nexus 4 下 DualBootInstallation 安装 ubuntu touch
最近折腾ubuntu for phone ubuntu也算是雷声大雨点小,从edge手机开始,到说兼容一大部分谷歌机,到现在缩水说只适配nexus 4 节操掉了一地啊,对付这种情况,ubuntu touch也就可以只装着玩玩了,还好ubuntu 官方…

我的家庭私有云计划-13
嗯,昨天算由感而发啊,大家看看就好了。 嗯,接着说咱们的云。 先说啊,我没打算在这个领域里面完全自研,我还没那么疯,这个呢属于一体化解决方案,我认为还是社会分工合作的结果,不强调…

C语言return函数
return函数 说到return,有必要提及主函数的定义。很多人甚至市面上的一些书籍,都使用了void main( )这一形式 ,其实这是错误的。 C/C 中从来没有定义过void main( ) 。C 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着: The defi…

怎样写出一个较好的高速排序程序
写出一个较好的高速排序程序 高速排序是经常使用的排序算法之中的一个,但要想写出一个又快又准的使用程序,就不是那么简单了须要注意的事项 首先要写正确。通常使用递归实现。其递归相当于二叉树展开,因此假设要用迭代实现的话须要使用一个队…

写代码时发现......还得是 SpringBoot !一篇拿下
关注了很多技术类公众号的读者肯定有这样一个感受,SpringBoot相关的文章铺天盖地,并且SpringBoot相关的文章阅读量、收藏量都很高,这也从侧面反映了SpringBoot技术的火爆。一切都在证明,SpringBoot已经成为了Java程序员必备的技能…

Python的 if .else.elif语句详解
If 语句 是用来判断的 Python 编程中 if 语句用于控制程序执行 用来检测一个条件:如果条件为 (真)true,就会运行这个语法块,如果为Fales 就跳过不执行。 elif是依附于if存在的,两者之间的运算逻辑相同&…

C#中string与byte[]的转换帮助类
在写C#程序时,string和byte[]之间的转换比较烦,在移植一些老程序时感觉很不好。我在C#中使用DES和TripleDES时移植一块老代码时也遇到了同样的情况。为了下次不为同样的事情烦恼,就写了下面的帮助类。 主要实现了以下…

鲲鹏入晋 万里腾飞,鲲鹏应用创新大赛2021山西赛区邀你来战!
2021 年 6 月 29 日,由山西省工业和信息化厅、山西转型综合改革示范区管理委员会为指导单位,华为技术有限公司主办,山西鲲鹏生态创新中心暨华为(山西综改区)DevCloud 创新中心承办,山西长河科技股份有限公司…

tcpdump-根据IP查看程序与服务都用了哪些端口
tcpdump -i em1 -tttt src 116.3.248.157 and port ! 6869 -nn -i 指定端口 -tttt 附带时间戳 -nn 解析域名与端口信息 ############################################# windows下可以使用netstat -nb |find “18999” 与 netstat -ao 结合使用,在通过pid号 查看进程…

快速构建Windows 8风格应用27-漫游应用数据
本篇博文主要介绍漫游应用数据概览、如何构建漫游应用数据、构建漫游应用数据最佳实践。 漫游应用数据概览 1.若应用当中使用了漫游应用数据,用户可以很轻松的在不同的设备间保持应用数据的同步。 2.Windows会将更新的漫游数据同步到云端,并将数据更新到…

jquery和css3打造超梦幻的三维动画背景
今天为大家带来的是一款由jquery和css3实现的超级梦幻的背景效果。绿色的小原点由远到近,由近到远一种飞跃效果。效果非常好看,我们一起看下效果图: 在线预览 源码下载 我们一起看下实现的代码。这是一款由jquey和css3实现的效果。这里引用…

C#时间函数扩展
//本周是本年第几周 private int DatePart(System.DateTime dt) { int weeknow Convert.ToInt32(dt.DayOfWeek);//今天星期几 int daydiff (-1) * (weeknow1);//今日与上周末的天数差 int days System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天 i…

“我被机器解雇了!”Amazon 63岁员工因算法评分太低被自动开除
整理 | Carol出品 | CSDN(ID:CSDNnews)“我被一个机器解雇了。”63岁“老司机”因跟踪算法被开除一觉醒来,63岁的斯蒂芬 诺曼丁(Stephen Normandin)发现自己居然被莫名其妙解雇了。斯蒂芬是Amazon Flex的一…

微信开放平台手机APP支付
PHP对接APP微信支付 微信开放平台手机APP支付总结 1. 微信开放平台手机APP支付总结 支付功能链接: https://pay.weixin.qq.com/wiki/doc/api/index.html APP支付功能文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter8_3 Demo下载地址: https://pay.weixin.q…

VS2005创建CLR自定义触发器
第一步:在Visual Studio 2005中编写代码 using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; public partial class Triggers { // Enter existing table or view for the target and unc…

Adobe推出HTML5动画设计工具Edge
2019独角兽企业重金招聘Python工程师标准>>> HTML5和Flash,是敌对?是共存? 尽管Flash现在依然牢牢占据着网络动画的大半江山,但这种状况终将会被改变。 那么,Edge的推出是否意味着Adobe将放弃和屈服于Flash…

AI 算法给手画线稿自动上色指南来了
测试图片作者 | 叶庭云来源 | 修炼Python生成线稿图像手绘效果的特征:黑白灰色、边界线条较重、相同或相近色彩趋于白色、略有光源效果。手绘风格是在对图像进行灰度化的基础上由立体效果和明暗效果叠加而成的,灰度实际代表了图像的明暗变化,…

mysqldump和xtrabackup备份原理实现说明
MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现。物理备份的特点是:拷贝相关…

C语言100个经典的算法
POJ上做做ACM的题 语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法 题目:古典问题:有一对兔子,从出生后第3个月…

PornHub:修复百年前情色电影
全球最大不可描述网站 PornHub 最近在自己的官网上,注册了一个名为 「Remastured」的视频发布账号,中文意为「重制」。截止目前,这个账号已经上传了 21 个视频(包含一部项目介绍视频),共计两万的订阅用户和…

jquery 插件开发的作用域及基础
2019独角兽企业重金招聘Python工程师标准>>> 之前一直有开发jquery插件的冲动,所以一直想学习如何进行插件开发,最近一个项目需要使用图片上传组件及自动无限下拉组件,百度地图组件,所以趁着这次我就把他们全部插件化了…

WSUS Troubleshooting guide
Troubleshooting guide for issues where WSUS clients are not reporting in 来自于WSUS TEAM BLOG This guide is written to assist specifically in troubleshooting WSUS when clients are not reporting in. We will examine common troubleshooting considerations that…

在PHP语言中使用JSON
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。 一、json_encode() 该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子: $arr array (a>1,b>2,c&g…

【动态规划】最长公共子序列与最长公共子串
1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogsbelong比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与母串保持一致,我们将其称为公共子序列。最长公共子序列ÿ…

限量!“Java成长笔记”Spring Boot/Sentinel/Nacos高并发
前言本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以…

时区切换导致quartz定时任务没有触发问题
时区切换对Quartz的cron表达式有影响,切换的1小时内停止触发定时任务,导致sla没有定时清空内存计数,误发限流。 美国夏令时PST切换到冬令时PDT,会有时间跳变。不带时区跳变的,会出现时间重叠或不连续 问题复现 mac本机…

C#之消息队列的简要说明
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Messaging ; using System.Threading ; namespace WinMsmq { /// <summary> /// Form1 的摘要说…

Arm收购进展、元宇宙、GPU涨价……听听黄仁勋怎么说
今年的台北国际电脑展 (Computex) 于 6 月 1-5 日在线上召开,期间 NVIDIA CEO 黄仁勋接受了媒体的线上群访,本文对采访内容进行了翻译与整理。对厨房情有独钟的黄教主,走出了厨房,选择了 NVIDIA 新办公大楼 Voyager(旅…

要立刷金组flag了T_T
刷了那么多银组,发现自己好多不会啊... 果然太弱 在这感谢hzwer神犇的blog。。 大部分题解都从黄学长这里来orz。 orz。。。。 果然我太水

Centos7更改root密码
方法一#Step1:重启linux命令:rebootinit 6shutdown -r now#Step2:进grub改启动参数启动界面按“e”ro 改为rw init/sysroot/bin/shCtrlX保存做的更改,这时已经进入操作界面了#Step3:CtrlD然后init 6重启电脑࿰…