近期,央视《机智过人》的舞台上来了位“三超设计师”——设计能力超强;出图能力超快;抗压能力超强,成功迷惑嘉宾和现场观众,更让撒贝宁出错三连。

节目一开场,这位“设计师”就为现场嘉宾:主持人撒贝宁、演员韩雪、神经科学家鲁白生成了三张独具特色的海报。几乎是说话的瞬间,海报立即生成,出图速度之快让撒贝宁惊呼“秒完”。

鹿班为现场嘉宾设计的海报

这位设计师正是阿里巴巴研制的AI设计师——鹿班。鹿班是为解放人类平面设计师而生,它学习了五百万张人类设计作品,现在它每秒能做八千次设计。自从2016年上线至今,鹿班已经完成了十亿次海报制作,是全球首位大规模投入使用的人工智能平面设计师。

节目中,鹿班将接受设计领域的两轮检验,如果鹿班的作品被现场观众成功找出,则认为鹿班通过检验。究竟AI能否在设计领域达到人类水平?接下来,我们一起走进检验场。

第一轮挑战中,鹿班与一次成稿率在80%以上的设计师、从业十二年的资深设计师等三位同台竞技,各自设计一张以“汽车卓越加速性能”为主题的商业海报。下图即四位设计师的设计成图,大家不妨来猜一猜哪幅是鹿班的作品。

根据现场观众投票,多数观众认为4号作品出自鹿班之手。让观众出乎意料的是2号才是鹿班的创作,这个结果让神经学家鲁白大呼“不服气”。

不信?眼见为实!

接下来,战况升级。中央美术学院院长范迪安教授带来画家与服装设计师来和鹿班同台创作,为《孙子兵法》这本书设计封面。

面对设计难度升级,鹿班能否成功应对?我们马上揭晓鹿班和两位人类设计师为《孙子兵法》设计的封面的作品:

以上图片中有三幅作品,其中哪一张是鹿班的设计?到底观众们有没有猜对?不急,我们先请阿里巴巴资深技术专家星瞳为我们揭秘鹿班背后的技术。

使用场景

视觉生成引擎的使用场景大致可抽象成下图。以显式输入而言,用户可以输入标签需要的风格、色彩、构图等,或者输入一个例子,或者进行一些交互的输入。除显式输入之外还可以有隐式输入,比如人群信息、场景信息、上下文信息等。总的来说,输入可以是千变万化的,但通过规范化之后就会减少变化,使得生成过程可控,输出质量可控。

对视觉生成引擎来说,它要求输入是规范化的。但在输入前,可以加入各种交互方式,如自然语言处理,语音识别等,将其转化成规范化输入。最后输出结构化信息或可视成图。

技术框架和生产流程

其技术框架如下图左侧。首先对视觉内容进行结构化理解,如分类、量化、特征化。其次通过一系列学习、决策变成满足用户需求的结构化信息即数据,最后将数据转化成可视的图像或视频。这一框架依赖于大量的现有数据。其核心是一个设计内核。同时,引入效用循环,利用使用后的反馈来不断迭代和改进系统。

其生产流程分成六个步骤,如下图右侧所示。首先用户提出需求,将需求特征化转变成系统可以理解的结构化信息。其次将信息进行规划得到草图。有了粗略的草图后再将其转变成相对更精确的图,然后调整细节,最后通过数据可视化形成最终的图。当然其中还有很多的trick,以及各部分的优化。

关键算法

下面介绍一些关键算法。我们希望基于下图最左的耐克鞋生成最右的图。先通过规划器得到草图,再通过强化学习获得相对细致的结果,再通过对抗学习及渲染算法得到图片,再通过评估器进行评估,最后形成业务闭环,其中还会有一些基础的能力,包含更强的联合特征(非普通 CNN特征)及多维度检索算法等。

基本上,处理的第一步是将图片中的信息结构化,这也是与现有的识别理解技术结合最紧密的地方。其中的难点和重点包括,对图像中多目标的识别、遮挡和互包含情况如何得到分割的信息等,下图只是个简单的示例。

有了结构化信息之后,需要对信息进行量化。可以量化成特征或量化图。量化过程中会包含很多信息,比如主题风格、布局配色、元素种类、量化空间等。有了这些信息后可以在主题、种类、风格、视觉特征大小位置上,量化成各种码,用相对有限的特征来表达无限的图。

下一步是通过用户的输入,得到一个相对粗略的结果即草图。目前主要使用的是深度序列学习。从图像角度,首先选定一个点的像素颜色再选择位置,再迭代进行操作,最后形成一张图。规划器模拟的就是这个过程。本质上预测过程是一棵树,当然也可以拆成一条条路径。为了简化,可以分成几步进行,比如空间序列,视觉序列。最后形成量化特征模型,主要应用的是LSTM模型。它把设计的过程转化成基于递归、循环的过程。

得到草图后,利用行动器将草图细化。如果将图中的每个元素看作一个Agent,那么它将有若干个可选的行动空间。

假设一张图中有20个元素,每个元素在视觉上有多种可选的行动空间,由其组合成的可选行动空间非常庞大。我们有很多trick可以解决这一问题,比如在空间上,只允许在有限范围内进行变动,且行动方向有序,即状态有序,行动有限。

下一步是如何衡量结果的好坏。图像的评估相对比较主观,主要可以从美学和效果两方面来评估。美学角度可以包括是否对齐、色系搭配是否合理、有无遮挡这些较低级别的判断标准,以及较高级的,比如风格是否一致,是否切合主题。从效果上,产品投放后是否会在点击率等方面实现提升。最后将多个指标形成对应权重并形成多个DeepLR联合模型。

但在衡量结果之前,需要形成像素级别可见的图。这里有以下几种构造器分类,包括临摹、迁移、创造、搭配与生成。

前面介绍了,如何通过用户的需求形成可见的图。后续还需要进行投放和反馈并进行优化,形成效用外循环。这样才能使得系统效用不断得到提升,形成一个在线闭环,这也是智能设计相对设计师的一大优势。

从技术角度来说,鹿班可以满足海量无选择客户的需求。相信在未来,可以做到“所想,即所见”。节目的最后,撒贝宁、韩雪、鲁白纷纷为鹿班站台,鹿班也因此成功入选 “2018智能先锋”。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

阿里AI设计师一秒出图,小撒连连惊呼,真相是...的更多相关文章

  1. 如何规范移动应用交互设计?UI/UX设计师须知的11个小技巧

    以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 十年前,手机的使用只是为了沟通. 而近几年,情况发生了很大变化,我们很难找到不使用手机的人.手机在极 ...

  2. 基于.Net core3.0 开发的斗图小程序后端+斗图小程序

    为啥要写这么一个小程序? 作为互联网的原住民. 90后程序员的我,从高中开始发QQ小表情. 到之后的熊猫头,蘑菇头. 可以说表情包陪伴我从学校到社会,从青少年到中年.. 而且因为斗图厉害,还找到一个女 ...

  3. android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图

    屏幕适配 首先理解下各个尺寸单位代表的意思 尺寸含义 px: 像素 dip: Density-independent pixel 独立像素密度 dpi: dot per inch 分辨率 ppi: p ...

  4. ArcGIS出图调整

    上周为了出一张高分辨率的结合表,大致学了一下出图的过程. (1)打开基础数据的图层属性栏,将某一项属性值显示出来,如下图设置: 注意,字体尽量设置得小一点,否则出图的时候,字太大,会很乱. (2)打开 ...

  5. GIS案例学习笔记-ArcGIS整图大图出图实例教程

    GIS案例学习笔记-ArcGIS整图大图出图实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 通过出图比例尺(1:2000),地图范围测算图纸大小. 图 ...

  6. 基础篇:4.1)规范化:3d工程图纸出图步骤详解

    本章目的:按照工程图出图步骤,更方便出具规范的工程图. 1.工程出图步骤 这是作者个人归纳的步骤,供同行业工程师参考完善. 以solidworks为例,工程出图步骤如下:1.1)打开绘制的3d零件图, ...

  7. 100款机械CAD图纸,想要出图快,勤练是最有效的方式之一!

    提升CAD出图效率最有效的方式就是勤加练习,所以跟着小匠每天练习3个,30天把这100个常用的CAD机械图纸练完,再看你的出图效率!贵在坚持! 100个机械CAD图纸,请收好

  8. 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线【图】_品牌资讯_服饰_太平洋时尚网

    聚焦设计交易与商业落地 DANG·DHUB设计师平台上线[图]_品牌资讯_服饰_太平洋时尚网 聚焦设计交易与商业落地 DANG·DHUB设计师平台上线

  9. 如何增强ArcGIS插值图出图效果

    如何增强ArcGIS插值图出图效果 by 李远祥 在一些科研领域,经常会遇到使用插值的方式进行处理,并生成最终的插值图.插值图在ArcGIS里面非常容易生成,只要具备了采用点数据,通过ArcToolB ...

随机推荐

  1. JAVA 8 主要新特性 ----------------(七)新时间日期 API ----- Duration “时间”间隔

    Duration:用于计算两个“时间”间隔 简介: 用法: 1.Zero常量 实例: Duration duration = Duration.ZERO; System.out.println(&qu ...

  2. Android从入门到进阶——布局

    一.组件 1.UI组件 (Android.view.View的子类或者间接子类) 2.容器组件(Android.view.ViewGroup子类或者间接子类) 二.UI组件:TextView,Spin ...

  3. 写给笨蛋徒弟的学习手册(3)—C#中15个预定义数据类型

    在C#中学习中,你会很早的遇到预定义数据类型这个概念,但你有没有仔细想过它存在的意义?正所谓“存在即合理”,预定义数据类型的存在目的主要有俩个方面,一是为了增加程序的安全性,同时减轻编译器负担,加快编 ...

  4. Shell条件测试和流程控制-4

  5. Hive(一)

    1. HIVE概念: Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本 ...

  6. spring 装配

    spring 3种装配方式: 支持混合配置:不管使用JavaConfig还是使用XML进行装配,通常都会创建一个根配置(root configuration), 这个配置会将两个或更多的装配类和/或X ...

  7. git的认识2

    我的GitHub 地址:https://github.com/lvjiaze130 唯一的感觉就是厉害了,还有看了一些个教学视频发现他们在git bush上打的东西我竟然都看不懂,是英文吗?太不好懂了 ...

  8. Java面试中的“劲敌”线程,9个疑问全面解析

    作者:我是攻城师 (一)创建线程的方式 (1)实现Runnable接口 (2)继承Thread类 推荐使用接口,能够做到定义与实现分离,耦合更低 (二)关于线程的优先级 thread2.setPrio ...

  9. 基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决)

    在虽然日常生活中,QQ,微信等即时聊天工具几乎主导了人们的生活,但是邮件依然是现代生活不可缺少的一部分.这篇文章主要讲述使用node.js 中的nodemail模块操作阿里云的企业邮箱发送邮件 (52 ...

  10. win10怎么查看激活到期时间如何看是否永久激活

    win10怎么查看激活到期时间如何看是否永久激活     我们知道Windows系统需要激活后才可以使用全部功能,那么你的Windows10激活了吗?如何查看激活时间呢?是不是永久激活的?带着这些问题 ...