有了Prisma,人人都可以是艺术家!
当地球上的人一半在用Pokemon Go追皮卡丘的时候,剩下的一半在用Prisma修图!
Prisma是由俄罗斯的一个4人组成的创业团队研发的图片处理app,从研发到上线仅几个月就用户量惊人。
Prisma拯救了世界上最不会拍照的人,哪怕只是随便一拍的烂片,只要在Prisma里过一手,都能变成挂得上墙的艺术作品。
今天就来说说这个神奇的APP以及它背后的故事!
一:来说说APP
- 产品名:Prisma
- 版本号:Version 2.2.4.118
- 设备:MI 5
- OS:Android 7.0
分析方法:互联网产品的五个层次
战略层:
1.功能简介
Prisma是一款来自俄罗斯的修图工具类APP,可以通过软件背后强大的神经网络算法(CNN)依据你所给素材生成一张指定艺术风格的图片!
2.人群画像
在年龄分布上,用户大都集中在20-40岁之间,属于互联网用户中最活跃的力量,占比达到了70%;在性别分布上主要以男性用户为主,男性占比75%,女性25%。(* 数据来源:百度指数)
用户主要分布在北上广深杭等发达较发达的地区(* 数据来源:百度指数)
3.需求分析
基本需求:图像处理,艺术化加工图片;
期望需求:修图成果分享和互动;
兴奋需求:成为网络红人,制作影集,签约成专业摄影师;
范围层:
4.产品功能
- 1.素材拍摄于获取
- 2.图像处理
- 3.社交分享与订阅
- 4.账号信息管理
功能关系:Prisma的功能可以是说简单可用。APP支持即时拍摄的图片和本地图片进行处理,通过Facebook或prisma账号扩张社交互动功能,同时可以查看管理发布的照片以及订阅作者和粉丝。
5.功能范围
- 1.素材拍摄于获取
通过调取Camera接口,可以即时的拍摄照片;同时可支持自拍和后置拍摄两种拍摄方法(后置支持控制闪光灯);在即时拍摄照片获取素材的同时Prisma还支持调取本地图片。在素材获取这一点上Prisma和其他常用的图片工具APP没有较大差别和突破,功能易用且简洁!
- 2.图像处理
Prisma应用了深度学习--卷积神经网络算法的黑科技,实现了对图片的高度艺术化的图片处理。其实现原理和Alpha Go类似,都是机器算法通过对现实世界的学习和结构,输出再造的和模仿的作品。简单的说,通过对大师们的作品的学习,他将我们给它的图片按照习得的大师们的风格进行模仿和再造,就好似艺术大师为你亲手绘制一般。具体的算法原理第二大节我会深入的分析。
Prisma提供了39种艺术风格供用户选择,在图片完成制作时支持通过左右滑动以调节艺术化的程度的大小!
这里需要吐槽一下Prisma的处理 响应速度,由于需要将图片传入云端进行计算和重绘后再传回本地,其处理一张图片的速度大概在10s左右。这点的体验不是特别好,毕竟在快节奏的今天,10s足以让人不想第二次打开这个应用!
- 3.社交分享与订阅
通过Facebook账号授权或注册Prisma账号,你就可以浏览和订阅更多其他作者的作品集。可以实现点赞、评论、分享、LBS等社交功能!社交属性的加入为Prisma商业实现增加了更多的可能!
FEED界面下分为DISCOVER以及FOLLOWING两个项目;
DISCOVER界面下又分为Trending&Most Recent两个List。Trending以瀑布流的形式随机的向用户展示其他用户发布的图片;Most Recent以瀑布流的形式向用户展示其他用户发布的最近图片;
浏览查看其他用户作品的同时可以实现点赞、评论、分享、LBS等社交功能!
FOLLOWING中随机向用户推进热门活跃的图片作者,以供用户订阅。
- 4.账号信息管理
通过瀑布流的方式管理自己拍摄和发布的图片,同时可以查看和管理自己的订阅和粉丝。对于现在prisma较为轻量级的账户数据,这个的账户管理方式,无疑是简单而且有效的。
结构层:
6.产品结构
框架层&表现层:
7.框架及UI设计
Prisma采用了时下流行的Tabbar的导航方式,上方有3个Tab,分别是“CAMARA”、“FEED”、“PROFILE”,均支持滑动或点按切换。这种导航适用于用户频繁在不同Page之间切换,优点是用户切换成本低,但缺点是会占用一定高度,用户的操作可视化面积降低。
整个APP的UI给人一种简洁淡雅的感觉,没有更多的花纹和图片的装饰,大范围的使用了白色的主题颜色以及黑色系的非衬线字体。这样的UI设计使得APP看起来十分的简约淡雅,而在功能方面又有十分强大的算法的技术支撑,可以说Prisma是一款内外兼修、虽小却美的APP。
8.功能建议
1.优化图像处理速度;
2.视频处理功能;
3.针对天朝的本地化;
4.增值服务;
5.增强社交化程度,建立社群;
6.优化FEED图片浏览的浏览时间成本,增加图片分类和分组;
9.总结
作为一个工具类应用,Prisma的技术性很强,这也是它的核心竞争力,也是它能火爆朋友圈的关键(连俄国总理都用它修图)。Prisma的APP功能很轻,UI简洁淡雅,总的来说就是两个词:“简单&好用”。
无论是UX还是功能方面Prisma都做的不错,且APP做的很纯净,没有任何的商业元素的存在,但这恰恰也是现在众多工具类应用的困境:没有较强的商业化可行方案。如何实现持续性的盈利和商业变现是Prisma团队仍需继续攻克的难题。
再聊聊APP背后的故事
1.Prisma不是美图秀秀
相信很多人用过美图秀秀,里面的各种滤镜也可以让图片变得五彩斑斓,可能你也理所当然的以为Prisma是美图的加强版而已,然而事实上大错特错!
简单的说Prisma是按照你提供的主体文件内容和风格图片的样式,重新“绘制”一副新的图片!你可以这么理解:Prisma是一个艺术家,当用户给他一张照片,和一个风格之后,他就会按照你给的照片的内容和你要求的风格现场画出新的图片,然而这个神秘的艺术家就是:深度学习算法—卷积神经网络(CNN)的黑科技!
2.神秘黑科技--卷积神经网络深度学习算法
Prisma应用的算法来自2016年的一篇论文CVPR 2016 Oral Paper Image Style Transfer Using Convolutional Neural Networks
论文提到的主要思路是,用19层(那个下围棋的Alpha Go也就13层)的卷积神经网络提取图片的内容特征或风格特征,然后将源图片A的内容和源图片B的风格进行融合,“画出”一张带有B图片风格特征和A图片内容特征的目标图片。
Prisma的所做的风格转换是机器视觉领域一直在研究的一个问题,称为texture transfer (纹理转换),其目标为将源图片的风格合成进目标图片中同时保留目标图片的语意内容。本质上来说,将图片的内容和风格分离并不一定是一个定义明确的问题 (Well-defined problem),这是因为并不能准确定义出图片中的哪部分属于内容,哪部分属于风格,很有可能内容与风格是交织在一起,没有办法进行分离。所以图片的内容和风格是否可以完全分离这还是一个待解的问题,如果可以,那么用什么样的方法呢?
Prisma背后的技术基于一篇今年CVPR oral文章 “Image Style Transfer UsingConvolutional Neural Networks”,其实早在Prisma引爆大众市场的半年前,此方法的巧妙及其惊人效果已经引起在学术界引起了广泛关注。众所周知在如今的人工智能领域引起革命的深度学习技术已经将众多任务推向了实用的水平,而Prisma用的技术也不出意外的基于深度神经网络,它的系统核心是利用神经表征来分离,再组合随机图片的内容和风格,以此来实现一个可用来描绘艺术图像的算法。它的基本想法是利用一个多层的卷积神经网络(CNN)抽象出给定绘画作品里一些高级的隐藏特征用来模仿绘画风格,并把这个绘画风格应用到一个新的图片上。
而在纹理转换领域,之前传统方法之所以没能取得这么惊人的效果的本质原因在于之前非深度学习的方法只能获取到目标图片低层次的图片特征,这导致这些方法无法独立的对图片的语意内容和风格的变化进行有效的建模,从而无法很好的对两者进行解耦和合成。而深度神经网络之所以可以在众多领域中取得惊人效果,正是由于其可以抽取出高层次的信息表征。Prisma所使用的方法之所以能成功就是很巧妙的利用了深度神经网络抽取高层图片表达的能力,能在几十秒内把一张普通的照片转变成一副极具艺术特色的现代画作或者西方名画风格作品。
下面将采用论文中的两个示意图完整剖析其中的奥妙。
正如上文所说风格转换需要对图片的内容和风格进行单独的表示,上图中的分别将源图(风格提供方)和目标图(内容提供方)输入到由多层卷积层和池化层组成的深度神经网络中。对于目标图直接使用卷积的响应在每一层中进行重建,可视化的结果为红色框中的结果,可以看出在低层的重建图像几乎和目标图一致,而越高层网络重建出来的图像的一些细节的像素被丢弃而那些图片高层次的语意内容被保留。而源图计算每一层的卷积的特征图(feature maps)的相关系数来重建出风格的特征表示,从绿色框的可视化结果可以看出,这种抽取风格表示的方式在不同网络层成功提取出不同尺度的风格特征。
上图讲解了深度神经网络如何对风格和内容表示进行单独的建模,接下去就可以使用监督学习的深度神经网络进行风格的转换了。图中左右两边的网络用于抽取源图的风格表示和目标图的内容表示,而中间的网络用于对风格进行合成,论文使用的是白噪声图片作为启始图,思想是通过左右两个网络提供的风格和内容表征进行监督学习,使得输入图片每一层抽取出来的风格表征和高层抽取出来的内容表征和左右两个网络相应网络层重建出来的表征越来越一致,如此通过标准的随机梯度下降算法,不断迭代使得白噪声图片变成最终想要的合成图。使用数学表达去描述上述思想就是需要构造一个损失函数(红框所示),此损失函数是由风格损失项和内容损失项两者线性组成,其中alpha和belta分别代表风格和内容的权重比例,若alpha/belta高则生成图会更凸显出内容而风格化会少一些,低则生成图会风格化强烈但是内容被稀释,这也是Prisma提供用户调节的原理所在。风格损失项和内容损失项的具体细节可以参见论文。当有了损失函数,就可以对图像向量求解梯度,进而使用后向传递算法就可以对输入的图像不断进行更新从而进行风格转换(绿框所示)。
另外,通过在提取图像风格特征之前先改变图像的大小,可以通过控制-style_scale参数该从图像中提取哪种艺术特征。(三幅图像从左到右,-style_scale=2.0、1.0、0.5)
除此之外,Prisma还可以使用超过一种风格图像来混合多种艺术风格。(下图分别为:"The Starry Night" + "The Scream", "The Scream" + "Composition VII")
或者在使用多个风格图像的时候,可以控制混合的程度来呈现不同的图像类型。
还可以在保留颜色的前提下改变图像风格,比如说,如果你设置参数-original_colors 1,系统输出的图片会保留原图的颜色(如下图)。
以上就是Prisma背后的全部技术原理,当我们剖析一下发现其实里面的原理并不复杂,对于熟悉深度学习的人来说不出一周就可以复现出其中的算法。但最重要的是体会到此算法成功的核心在于利用了深度学习网络对于高层语意信息的表达能力,同时巧妙的构造出损失函数,其他的就只是顺水推舟的使用深度神经网络进行求解而已。
Prisma利用AI算法来修图虽然很酷,但是也有一定的缺陷。
比如说,一定要在有网络状态较好、网络较快的状态下才可以使用顺畅,因为需要在线加载绘画风格图像以及用户提供的内容图片需要发送到远程的服务器上进行人工智能计算后再传回来,所以,相对其他修图软件,它的图片编辑速度慢很多,一般都需要等待几十秒才可以看到预览效果。
另外,因为所有的图片处理都是在云端完成,所以会有少部分用户遇到使用人数过多,服务器过载的情况。
Prisma的意义在于以艺术的名义用流行的方式把深度学习的能力展现给了大众,虽然如今众多的人工智能公司使用AI技术去服务大众,但像Prisma这样如此火热的引爆大众对于如今人工智能技术的惊讶还十分少见。但我想这只是一个开始,人工智能技术正在向各个领域进发,无论是高科技领域如自动驾驶,机器人,还是一些偏门的领域,如艺术,社会公益,都会不断看到人工智能带来的实惠和惊喜。
PS:关于卷积神经网络的技术分析来源自网络和相关文章,侵删!