当前位置: 首页 > 编程日记 > 正文

出身清华,大神朱俊彦再出GauGAN:AI让你变身神笔马良

640?wx_fmt=jpeg

参加 2019 Python开发者日,请扫码咨询 ↑↑↑


作者 | Just

出品 | AI科技大本营(ID:rgznai 100)


一次 TED 演讲中,前锤子科技设计总监罗子雄分享如何入门学设计的经验。


要想学好设计,他提醒观众要先看基础实例教程。由于互联网上培训机构鱼龙混杂,为了卖课,他们都喜欢利用人性的弱点,给出耸人听闻的课程文案,比如像你听过的英语培训机构《三十天教你突破雅思7分》,设计和画画教程的文案也是类似,《如何六步画好人物肖像》。


当然,还有更狠的:《如何两步画好人物肖像》。


两步?这是第一步:


640?wx_fmt=png      


第二步。结束。


640?wx_fmt=png      


这完全是“神笔马良”的效果啊。虽然是调侃,但也描绘了人们在想要学好新事物时一步登天,追求速成的荒诞心态。


可是,也不是人人都想成为每一笔都要自己亲力亲为的画家,对于设计师、插画师等专业人士来说,在保证质量的条件下,要追求项目完工的效率,要想达到这两个目标的最优解,最好的方式,显然是借助科技的力量。


现在要介绍的这款 AI 软件 ,能让你真的见识一下 “X 步画出任何你想要的写实风景画”,它叫 GauGan 系统。


在 3 月 19 日的 GTC 2019 上,Nvidia 推出了这款 AI 绘画系统,该软件使用生成对抗性网络,只要你给出简单的草图,再点击几下,几秒钟就可绘制逼真的风景图像,下面是实打实表演了一个《如何三步画一副写实风景图》,AI 诚不我欺。


640?wx_fmt=gif


GauGan 目前有三种工具:油漆桶、钢笔和铅笔。屏幕底部是天空、树木、云等一系列选定对象,选择任一对象在左侧简单描绘,就会自动生成相应的逼真物体。


要做到这种效果,当然离不开庞大的数据来训练模型。目前,Nvidia 已为 GauGAN 深度学习模型提供了 100 万张从 Flickr 收集的数据。需要指出,GauGAN 并不只是对已有的照片进行拼接,实际上最终生成的图像都是独特的合成图像。所以即便不同的用户做出相同的设置并画出相似的草图,系统中也会通过内置的参数给出生成不同的图像。


也许会有人问,GauGan 以后能不能画人物肖像?尽管目前 Nvidia 没有明确给出可能性,但一个合理的推测是,如果给 GauGan 系统训练足够多的人物肖像数据,画一幅你想要的肖像画应该不成问题。如果你还记得最近那个很火的“这个人不存在”网站,它就利用 Nvidia 开源的 StyleGan 算法随机生成了人脸图像。



GauGan 发布后,网友们也对其可能出现的问题和实际应用展开了讨论。


有网友在 YouTube 上问了个恶作剧问题:将草图中的天地倒置,GauGan 系统会生成什么图像?


回复中点赞最高的网友说神经网络会乱成一团麻,另一位网友的回答还算靠谱,他说 Sky-Net 会排除终结器大军,它们是不会允许这种事发生的。


还有网友在 reddit 上评论称,如果将其应用在 3D 环境中,尤其 VR 世界的游戏开发会更容易。


640?wx_fmt=png


显然,该系统可能对视频游戏设计师、架构师等专业人士很有吸引力,比如能够帮他们提高创建游戏场景的效率。不过目前 Nvidia 没有任何商业化发布的计划,但可能会很快发布一个能让任何人都使用的公开试验版。


Nvidia 也会将 GauGAN 应用到它刚刚发布的一个叫 AI 游乐园的网站上,现在感兴趣的网友在该网站上可以体验基于 AI 的图像修复、艺术风格转换、真实感图像合成功能。


https://www.nvidia.com/en-us/research/ai-playground/


GauGAN 背后的研究论文


GauGAN 系统的创建在一篇名为《空间自适应归一化的语义图像合成》(或称 SPADE 项目)的论文中有详细介绍,这篇论文由 UC Berkeley, NVIDIA, MIT CSAIL 实验室的 4 名研究人员共同写就,已公开发布在 Arxiv 上。值得一提的是,该论文将在 6 月的 CVPR 2019 大会上做口头报告。


640?wx_fmt=png


所谓空间自适应归一化是一个简单但有效的层,用于在给定输入语义布局的情况下合成照片级的逼真图像。论文摘要提到,以前的方法直接是将语义布局作为输入提供给网络,然后通过卷积、标准化和非线性层进行处理。


他们则证明这并不是最理想的,因为归一化层倾向于“洗掉”语义信息。为了解决这个问题,他们建议使用输入布局通过空间自适应的、学习的变换来调整归一化层中的激活。与现有方法相比,几个具有挑战性的数据集上的实验表明,该方法在视觉保真度和与输入布局的对齐性方面具有优势。


640?wx_fmt=png


实际上,GauGAN 是基于去年推出的能同样呈现虚拟世界的 Pix2Pix 系统,但后者在仿真风景方面存有一定瑕疵,从上图比对效果中就可以明显看到。


最后,他们的模型允许用户轻松地控制合成结果的样式和内容,以及创建多模态结果。


方法简述


640?wx_fmt=png


在许多诸如批量标准化(Batch Normalization)这样的常见的标准化技术中,在实际标准化步骤之后应用了学习的仿射层(如在 PyTorch 和 TensorFlow 中)。而在 SPADE 项目中,仿射层是从语义分割映射来学习的。这类似于条件归一化,只是学习仿射参数现在需要空间自适应,这意味着我们将对每个语义标签使用不同程度的缩放和偏向。


使用这种简单的方法,语义信号可以作用于所有层的输出,不受可能丢失此类信息的规范化进程的影响。此外,因为语义信息是通过 SPADE 中的层提供,所以随机潜在向量可以作为网络的输入,其可以用于操纵所生成图像的样式。


更多详情,参见论文:https://arxiv.org/abs/1903.07291


Flickr 图像中的应用


如前所述,GauGAN 的神经网络是通过 100 张开源的 Flickr 图像进行训练,它还能够理解如雪、树木、水等超 180 个物体之间的关系。对物体之间如何相互关联的理解意味着河水旁的树会有倒影,或者当季节变化时并且地面上有雪时,就会绘成没有叶子的树。也就是说,神经网络能够根据它对真实图像的了解对最终生成图像的相关细节进行合理填充。


640?wx_fmt=png


由于 SPADE 适用于不同的标签,因此可以使用现有的语义分割网络对其进行训练,以学习从语义映射到照片的反向映射。这些图片是由 SPADE 从 Flickr 上抓取的 4 万张图片进行训练生成的。


论文作者称,他们将很快发布代码、训练模型和所有图像。


GitHub地址:https://github.com/nvlabs/spade/


论文作者中的华人面孔


论文的四位作者中,有两位是华人科学家。其中一位是朱俊彦,他于 2012 年获得清华大学计算机科学系的工学学士学位,2017 年获得 UC Berkeley 电气工程与计算机科学系的博士学位,他的导师是 Alexei Efros。2018 年,朱俊彦获得了 UC Berkeley 颁发的 David J. Sakrison Memorial Prize,以及的 Nvidia 的 Pioneer Research Award。目前,他是 MIT 计算机与人工智能实验室(CSAIL)的一名博士后研究员。


640?wx_fmt=png      


朱俊彦被称为计算机图形学领域现代机器学习应用的开拓者,他发表了第一篇用深度神经网络系统地解决自然图像合成问题的论文,其重点科研成果 CycleGAN,不仅为计算机图形学等领域的研究人员所用,也成为视觉艺术家广泛使用的工具。


640?wx_fmt=png


另一位是 Ming-Yu Liu,2016 年加入 NVIDIA,现为 Nvidia Research 首席研究科学家,他的研究重点是图像生成和理解的生成模型。此前,他是三菱电机研究实验室(MERL)的首席研究科学家。他于 2012 年获得了马里兰大学帕克分校电气与计算机工程系的博士学位。他的物体姿态估算系统于 2014 年被 R&D 杂志评为最具创新性的百项技术产品之一。在 CVPR 2018 中,他在 WAD 挑战中的语义分割竞争领域适应和鲁棒视觉挑战中的光流竞赛中获得了第一名。


(本文为 AI科技大本营原创文章,转载请微信联系 1092722531)


投稿、合作请添加AI科技大本营编辑微信:1731967109,备注“公司名称 + 职位” 或“学校 + 专业”,由于人数较多,会在审核后通过。


2019Python开发者日

「2019 Python开发者日」7折票限时开售!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。


目前演讲嘉宾议题已确认,扫描海报二维码,即刻抢购7折优惠票价!更多详细信息请咨询13581782348(微信同号)。


640?wx_fmt=jpeg


你也可以点击阅读原文,查看大会详情。

相关文章:

delphi中的第三方控件如何安装 (转)

最佳答案 由于组件提供的方式不同,所以安装的方法也是不一样的,下面就目前常见的各种形式的组 件的安装方法介绍一下。 1只有一个DCU文件的组件。DCU文件是编译好的单元文件,这样的组件是作者不想把源码公 布。一般来说,作…

【Qt】Qt中使用ssl时报错:qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method

一、问题 在Qt中使用https,运行时报错: qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method二、原因分析 SSLv2由于某些漏洞导致的不安全原因, 在某些linux发行版里的openssl库禁用掉了SSLv2 三、解决办法 重新编译openssl 1、下载openssl git clone …

渡鸦创始人离职百度后的下一个“真相”

参加 2019 Python开发者日,请扫码咨询 ↑↑↑作者 | 琥珀出品 | AI科技大本营(ID:rgznai100)一直以来,渡鸦科技被外界看做是百度一次失败的收购。彼时彼刻,国内外智能音箱市场成为最火爆的兵家必争之地。渡鸦创始人、原…

QuickBI助你成为分析师——数据源FAQ小结

摘要: 添加数据源的时候经常会遇到各种问题,下面来讲解一下常见情况,若仍有疑问扫码咨询哦!使用 Quick BI 分析数据时,需要先指定原始数据所在的数据源,测试连通数据源是数据分析的基础,下面让我…

HTML5 学习笔记(一)- video

直到现在&#xff0c;仍然没有一项可以让网页上显示视频的标准。大多数的视频都是通过插件&#xff08;如Flash&#xff09;来实现播放的&#xff0c;但是并不是所有的浏览器拥有同样的插件。 而伟大的HTML5规定了一个元素<video>来实现这种功能。 <video>支持Ogg、…

【Qt】通过QtCreator源码学习Qt(九):容器算法总结

一、简介 本节总结QtCreator中封装的容器算法接口,源码文件的路径src/libs/utils/algorithm.h。 算法接口包括:判断、查找、删除、统计、排序、转换、拆分、过滤 二、算法源码讲解 1、判断 Utils::anyOf、Utils::allOf Utils::anyOf如果容器中有任一符合条件的元素,则返…

今晚8点直播 | 详解聊天机器人落地及进阶实战

近年来&#xff0c;聊天机器人技术及产品得到了快速的发展。聊天机器人作为人工智能技术的杀手级应用&#xff0c;发展得如火如荼&#xff0c;各种智能硬件层出不穷。本次公开课中&#xff0c;AI科技大本营联合电子工业出版社博文视点邀请到上海瓦歌智能科技有限公司总经理&…

webpack源码之tapable

引言 去年3月的时候当时写了一篇webpack2-update之路,到今天webpack已经到了4.2,更新挺快的,功能也在不断的完善,webpack4特性之一就是零配置, webpack生命力真的很顽强,积极跟上环境的变化,响应社区的需求,不断的迭代,因为parcel在其之前就有这个特性了。直接运行webpack命令,…

常用的 linux命令

为什么80%的码农都做不了架构师&#xff1f;>>> 将目录dir1复制成目录dir2 cp -R file1 file2 同时将文件file1、file2、file3与目录dir1复制到dir2 cp -R file1 file2 file3 dir1 dir2 mv dir1 dir2 移动或修改目录名称 rm -rf 删除文件&目录 vi :q! :wq mk…

68款大规模机器学习数据集,涵盖CV、语音、NLP | 十年资源集

参加 2019 Python开发者日&#xff0c;请扫码咨询 ↑↑↑作者 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;此前营长为大家分享过不少机器学习相关数据集的资源&#xff0c;例如 Mozilla 的 1400 小时开源语音数据集&#xff1b;ApolloScape 的大规模自动驾…

【Qt】Q_PROPERTY():属性系统

一、简介 Qt属性系统基于元对象Meta-Object系统,因此在使用时,需要继承QObject类并添加宏Q_OBJECT,属性除了具有类成员的功能外,还可以通过元对象系统访问,比如可以使用信号和槽机制。 二、使用方法 在继承QObject的类中,使用宏Q_PROPERTY()来注册属性。 Q_PROPERTY(…

从零开始学 Python 之运算符

从零开始学 Python 之运算符 前言 大家好&#xff0c;这里是「痴海」从零开始学习 Python 系列教程。此文首发于「痴海」公众号&#xff0c;欢迎大家去关注。学习一门语言最好的办法&#xff0c;就是教懂别人。在这公众号&#xff0c;我会从 Python 最基础的教程写起&#xff0…

今天照了大肚照

今天陪老婆去照了大肚照&#xff0c;本来累了一周了好不容易盼到周六想睡个懒觉&#xff0c;结果比平时起床还早&#xff01;要去照相&#xff01;然而一想到俺家小小&#xff0c;我就很激动&#xff0c;为了俺家小小&#xff0c;我一定加倍努力&#xff0c;做一个好爸爸。 …

【Qt】QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE

在看QtCreator源码时,总遇到QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE两个宏,源码中对这两个宏的定义伪代码如下 #if !defined(QT_NAMESPACE) # define QT_BEGIN_NAMESPACE # define QT_END_NAMESPACE #else # define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {# define Q…

Java排序算法:冒泡排序

Java排序算法&#xff1a;冒泡排序//创建数组并赋值int[] data new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i0;i < arr.length-1;i){for(int j 0; j < arr.length-i-1;j){if(arr[j] > arr[j1]){int temp arr[j];arr[j] arr[j1];arr[j1] temp;…

前腾讯AI Lab负责人张潼加入创新工场,任港科大创新工场联合实验室主任

参加 2019 Python开发者日&#xff0c;请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;不过三个月&#xff0c;前腾讯 AI 主任张潼已对外公布了他离职后的新动态。3 月 20 日&#xff0c;创新工场宣布&#xff0c;张潼博士已加盟创新工场…

ESX上ORACLE 10.2RAC(4.在REHAT4.7中安装ORACLE RAC)

四、 安装CRS软件 上传cluster软件到rac1,rac2的/home/oracle目录下 [rootrac1 ~]# cd /home/oracle [rootrac1 oracle]# ls 10201_clusterware_linux32.zip Desktop ocfs2 oracleasm [rootrac1 oracle]# unzip 10201_clusterware_linux32.zip [rootrac2 oracle]# unzip 10201_…

【Qt中文手册】QObject

Qt几乎所有的类都是从QObject直接或间接继承的,但是你真的了解QObject吗?下面先看看QObject在官方手册中的介绍。 一、QObject简介 1、信号和槽 QObject是所有Qt类的基类,是Qt对象模型的核心。该模型的核心功能是信号和槽的通信机制(有吐槽Qt信号和槽的,个人建议不要用…

整理下.net分布式系统架构的思路

最近看到有部分招聘信息&#xff0c;要求应聘者说一下分布式系统架构的思路。今天早晨正好有些时间&#xff0c;我也把我们实际在.net方面网站架构的演化路线整理一下&#xff0c;只是我自己的一些想法&#xff0c;欢迎大家批评指正。 首先说明的是.net下开源内容较少&#xff…

柔性生态布局未来,小鱼易连 2019“深耕视界逐梦小鱼”北京火爆招募

3 月 21 日&#xff0c;小鱼易连 “深耕视界逐梦小鱼”——2019 春季伙伴招募大会北京站在北京东方美爵酒店成功召开。 小鱼易连联合创始人兼 CEO 袁文辉以“深耕视界逐梦小鱼” 为主题&#xff0c;为到场的四百家合作伙伴和媒体完整展示了小鱼易连全面布局产业互联网&#xf…

perl XML创建XML文件

首先安装XML::Writer,XML::Parser等模块 1.执行/usr/bin/perl -MCPAN -e install "YAML" 安装YAML模块 2.进入CPAN模式&#xff0c;进行下载模块操作 $ sudo perl -MCPAN -e shell 3.在CPAN模式下进行安装&#xff0c;nolock_cpan> install XML::Writer XML::Pars…

开发自己的山寨Android注解框架

目录 开发自己的山寨Android注解框架开发自己的山寨Android注解框架 参考 Github黄油刀 Overview 在上一章我们学习了Java的注解(Annotation)&#xff0c;但是我想大家可能感觉&#xff0c;虽然理解了也会学会&#xff0c;但是不知道干什么用&#xff0c;那么请继续忍受我这枯燥…

特斯拉起诉小鹏汽车员工窃取商业机密,何小鹏回应

参加 2019 Python开发者日&#xff0c;请扫码咨询 ↑↑↑整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;3 月 21 日&#xff0c;外媒 TheVerge 报道称&#xff0c;特斯拉正针对多名前雇员和自动驾驶汽车公司 Zoox 提起诉讼&#xff0c;涉嫌盗用公司商业机…

【Qt】一个使用QEventLoop时,遇到的教训

1、问题描述 伪代码如下&#xff1a; QEventLoop eventLoop; QObject::connect(this, &Class::signal, [](){doSomething();eventLoop.exit(0); }); emit signal(); eventLoop.exec();在执行eventLoop.exec()时&#xff0c;造成永不退出。 2、原因分析 本打算在&#x…

基于kryo序列化方案的memcached-session-manager多memcached...

为什么80%的码农都做不了架构师&#xff1f;>>> 上次基于Java IO的序列化方案配置了memcached-session-manager&#xff0c;但是性能不好&#xff0c;现在先简单配置成基于kryo的 Xml代码 <Context path"/mobilemail" docBase"D:\webapp\WebR…

Python持续点火,跟进还是观望?

参加 2019 Python开发者日&#xff0c;请扫码咨询 ↑↑↑Python 这把火&#xff0c;到底烧了多久了&#xff1f;近日&#xff0c;李笑来带着他的 Python 编程书&#xff0c;一路狂收 Star、Fork&#xff0c;火速登顶 GitHub Trending 榜&#xff0c;直接 C 位出道。币圈大佬也玩…

win2d 图片水印

win2d 图片水印 本文告诉大家如何使用 win2d 给图片加上水印。 安装 首先需要使用 Nuget 安装 win2d &#xff0c;安装参见win10 uwp win2d 如果没有更新 dot net core 那么在运行可能会出现下面异常System.TypeLoadException: Requested Windows Runtime type Microsoft.Graph…

【Qt】QtCreator中的单例编程(以ActionManager为例)

1、ActionManager简介 ActionManager类负责注册菜单和菜单项以及键盘快捷键。 ActionManager的公共函数都是静态的,只有使用信号时,才用到单例。 2、ActionManager单例伪代码 头文件中将构造函数和析构函数设置成私有(private),使用instance()函数获取单例 class Acti…

37、C++ Primer 4th笔记,特殊工具与技术,类成员指针

1、成员指针&#xff08;pointer to member&#xff09;包含类的类型以及成员的类型。成员指针只应用于类的非static成员。static类成员不是任何对象的组成部分&#xff0c;所以不需要特殊语法来指向static成员&#xff0c;static成员指针是普通指针。通过指定函数的返回类型&a…

聊一聊javascript执行上下文

跟大家聊聊js的执行上下文 一&#xff0c;相关概念 EC : 执行上下文 ECS : 执行环境栈 VO &#xff1a; 变量对象 AO &#xff1a; 活动对象 scope chain &#xff1a;作用域链 二&#xff0c;执行上下文 javascript运行的代码环境有三种&#xff1a; 全局代码&#xff1a;代码…