先有Alpha Go在数亿人的眼皮底下,五战四胜将人类从围棋神坛上“拉下马”,后有Prisma风靡全球,一时间人人皆开了梵高、葛饰北斋的“金手指”,深度神经网络渐渐开始从幕后走到台前,从不可见变得可见可触,从赋能于企业走向“赋能”与每一个普通人。
如果说Alpha Go还让普通人仰之弥高,可望不可及的话,那么上至总统下至中学生,人人皆可“调戏”的Prisma可谓是第一款人工智能平民化应用。在手机的硬件军备竞赛人困马乏、了无新意的时代,利用人工智能技术,通过“云端算法”的远程助力,可以在硬件瓶颈之下大幅提高手机的“智能化”水平。
如果说Alpha Go出尽风头是因为背靠Google在深度学习领域的深厚功底,成功非一般创业公司可复制,那么四人团队一个半月时间内开发出的Prisma则意味着:站在人工智能领域前人的成果之上,小团队也有可能touch the sky。
将卷积神经网络应用于“图片合成”乃至“艺术品滤镜”,Prisma并不是第一个。早在去年,DeepArt团队的三名成员就通过两篇论文《Texture Synthesis Using Convolutional Neural Networks》和《A Neural Algorithm of Artistic Style》分步拆解,提出了合成名画风格的照片的具体方法。去年上线的DeepArt.io也得到了WIRED、The Washington Post等媒体的广泛报道,只不过由于是网页版收费服务、处理时间长达半个小时,所以未能如Prisma这般引爆流行。
卷积神经网络是如何生成“星月夜滤镜”?
即使将卷积神经网络用于“艺术品滤镜”,Prisma也不是第一个。这个领域的先驱是DeepArt团队,几篇论文记录了它们从“物体识别——纹理合成——风格提取——图片合成”一步步的研究轨迹。也像我们展示了用于识别猫的图片的卷积神经网络是如何用来让《星月夜》变成一款滤镜的。
不同光照环境之下的同一张人脸
同一张人脸在不同光线之下,轮廓、形状可能完全不同,而物体识别的难点也就是在不同的变量(比如光照条件)之下对物体存在的感知,这意味着神经网络要把图片的内容从风格中抽离出来,也意味着物体识别的神经网络中内在地存在着Prisma的运作机制:从图片中提取艺术风格特征。
问题是如何把梵高的《星月夜》中旋流不息的笔触与梦幻一般的用色“抽象”成一种风格滤镜,然后用在所有的照片之上?这就涉及到卷积神经网络的“过滤原理”。
就像Alpha Go的12层神经网络划被划分为负责选择落子的‘策略网络’(policy network)和则负责计算棋面优劣的‘价值网络’(value network)一样。卷积神经网络也是通过一些可供“调教”的参数,分层处理图片以便实现某些目的,例如目前应用最为广泛的物体识别,图片分类,也可以用于图片降噪或去模糊。
卷积神经网络运行原理图示
也正如其他的人工智能神经网络一样,卷积神经网络的运行方式是前向分层处理。一张图片相继通过神经网络的各个分层,最后一层产生的图片即为最终结果。每一层都有一组参数,在运行过程中被不断训练。这些可以调教的参数决定了每个“过滤层”的功能。图像每经过一个“过滤层”都会产生一组“滤后图像”,被称为feature map(特征映射)。每一张feature map都代表了原始图像的某一特征(边缘、角度、轮廓等)。
通常,当一张图像经过了多层过滤之后,后面留下的特征会越来越抽象。例如,如果卷积神经网络被训练用于物体识别,更深层次的“过滤层”更能“感知”到物体的存在而非具体的像素值。
经过多年发展,用于物体识别的卷积神经网络表现已经越来越好,挑战门槛也越增越高。ImageNet图像识别挑战赛2014年的获奖者是一个有19层“过滤层”和相对更小过滤器的深度卷积网络,这就是DeepArt系统的基础VGG网络。
人造纹理的合成步骤
在《Texture Synthesis Using Convolutional Neural Networks》中,DeepArt团队介绍了用于物体识别的卷积网络是如何用来合成人造纹理的,意即模仿原始图像的纹理创造一张人工合成的图像。一般来说,可以被“打散重组”的图片都包含某一特定的图样,比如沙子、纸张、碎云、木纹、混凝土的特写图片,整体布局对于这类图片来讲并不像对于地标建筑那样是重要。
合成图片的产生过程就是不断迭代“升级”这些含有“随机噪音”的图片,直至产生与原始图像相似的图片。“相似性”的标准就是色彩和局部细节被保留,而总体布局发生改变。
我们想要的结果是去除空间信息,保留纹理。问题在于一张特征图本来就是原始图像的“过滤版”,肯定会保留空间信息。如何加以去除呢?DeepArt团队采取的方法计算一个去除了空间信息的过滤层中,不同feature map之间的相关性(只要两张feature map之间的相关系数是单一值,那么空间信息就肯定被去除了)。作者计算了一个过滤层中所有特征图的相关性,得到了一个N×N的格拉姆矩阵(Gramian matrix),其中N是这一层中feature map的数量。
迭代升级程序不断修改“噪声图”,直至它的格拉姆矩阵接近原始图像。这种迭代升级可以通过多层神经网络标准的误差反向传播(BackPropagation)算法来完成,通过这一程序,就可以创造出与原始图像相似的纹理。
在后一篇论文《A Neural Algorithm of Artistic Style》中,DeepArt为原来的纹理合成方法增加了新的一步,目标是模拟VGG网络中特征图的格拉姆矩阵,以得到一张风格相似但内容不同的图片。
而格拉姆矩阵从某种意义上来说就相当于一名艺术家的风格。他再现一张脸的方式与再现一棵树、一幢房的方式有某种相关性。只要捕捉到了这种相关性就捕捉到了风格。
模拟图片的内容与纹理合成的方法类似,只不过标准不同:目标是直接模拟VGG网络深层过滤层的数值。步骤可以概括如下:
让艺术家画作经过VGG神经网络,计算并保存格拉姆矩阵 G。然后再让用户的照片通过VGG神经网络,保存特征图F。生成一张白噪音图片,通过误差反向传播算法,不断升级这张图片直到它的特征图接近F,格拉姆矩阵接近G。
通过很难找到一张完美匹配G和F的图片,所以就需要做出一定程度的妥协。是更接近G还是更接近F?如果生成的图片更侧重于格拉姆矩阵接近G,那么它就更接近艺术品的风格。如果生成的图片更侧重于特征图接近F,那么它就保留更多照片的内容。下面的几张图片演示了这种妥协,从左至右,艺术风格越来越淡化,图片内容越来越凸显。
为什么Prisma注定昙花一现?
Prisma的滤镜更像脸萌而不是Instagram、Faceu,是娱乐型产品而不是工具型产品,更不用说进阶为社交应用了。实际上,很多新奇酷产品都把握不好娱乐产品和工具型产品的界限——是可以日常使用还是偶尔玩耍?使用场景是什么?Faceu之所以没有昙花一现,是因为它可以用于自拍、美颜、自带表情聊天,那么Prisma则只是为了追求新鲜炫酷。Faceu是锦上添花,Prisma则是改头换面。
而对于图片工具的主要应用场景——社交网络而言,被发在那里的照片主要是为了凸显内容而不是彰显风格,追求真实性大于效果炫酷,过度使用滤镜、使用过度“失真”的滤镜乃是一大忌讳。
更为重要的是,美颜是国内用户“修图”的首要驱动力,一切不能美颜的修图工具都是“耍流氓”,而Prisam过度“风格化”的滤镜在人像尤其是面部处理方面很难令人满意。美颜需要的是对面部细微之处的修修补补,轻抹慢涂,而不是狂放艺术家的笔刷横扫,颜料泼洒。
一方面要用艺术家的风格让人耳目一新、为之惊叹,一方面又要保留每一张照片的内容,这就意味着Prisma只能选取印象派之后、现代主义之前的艺术流派,正如一位学艺术的朋友所言:“它的智能尚不能学着像毕加索那样去解构人体,更不消说康定斯基完全不依实物作画。”而且后古典主义时代的审美(摆脱对于“像不像”的纠缠,同时注重内容与表现形式)目前在大众中尚未被普遍接受,Prisma的“日常化”尚不具备群众基础。
人工智能正在让智能手机更“智能”
正如钛媒体的文章《代码不再重要,未来我们要像训狗一样训练计算机》中写到的,机器学习在互联网应用中已经无处不在:Facebook利用它来决定哪条新闻出现在你的时间线上,Google图片用它来做面部识别。微软的Skype Translator利用机器学习把演讲实时转换成不同的语言。Google还利用DeepMind 为它昼夜运行的数据中心节能降耗。而基于深度神经网络的人脸识别技术已经广泛应用于线下的身份认证。
然而,这些面向企业用户、运行于后台的的人工智能技术还没有“把玩”在普通用户手中,响应他们的每一次需求,使智能手机真正变得智能起来。
Prisma的风行,标志智能手机的硬件时代已经过去,人工智能时代已经到来。Prisma使用的卷积神经网络技术,正是现在人工智能的前沿。以后各种顶尖的人工智能技术将继续平民化,实现在各种移动硬件上。实际上,除了Prisma这样的娱乐化应用,人工智能也正在被用于解决智能手机用户的真正“痛点”。
如果你是个拍照达人,不知不觉中相册中已经泛滥成灾了上千张照片,让你有心去整理而又不知从何下手。现在,Apple Photos、Flickr、 Google Photos等都开始利用图像识别技术帮助你自动整理、归类图片。
应用了人工神经网络之后,Swiftkey的预测准确性有了明显提升
而今年,人工智能技术也第一次应用在输入法上,7月份,全球拥有3亿用户的Swiftkey发布了一款利用人工神经网络预测用户输入内容的输入法SwiftKey Neural Alpha,相比于过去只能根据最新键入的两个词进行“局部预测”,SwiftKey Neural Alpha通过对每个单词编码,然后寻找句子中不同词语之间的相关性,基于云端数百万的语料库,从而实现基于句子的“全局预测”。这是神经网络技术首次应用在输入法上,SwiftKey的联合创始兼CTO Ben Medlock称,他们的一些想法是受到了英国著名科学家图灵的启发。