【揭秘】PRISMA背后的人工智能大概是这么玩的

Prisma上线之后很快就到达了单日100万以上的用户,可以说是风靡朋友圈!不少人发现这个APP出现的效果完全有别于任何其他的“滤镜”型应用。为了解Prisma的工作原理,火箭君特地找到了这篇利用神经网络和人工智能来作图片变化的论文!

PRISMA不是PS

首先,Prisma并没有和普通滤镜一样,把照片拿过来,然后在原图的基础上修改一下,或者是把两张图片重叠在一起。Prisma的做法是按照你提供的主体文件内容和风格图片的样式,重新“绘制”一副新的图片。

你可以这么理解:Prisma是一个经过神经网络算法深度学习的艺术家,当用户给他一张照片,和一个风格之后,他就会按照你给的照片的内容和你要求的风格现场画出新的图片~

那神经网络到底怎么回事?

神经网络算法是模仿我们脑神经元的,我们不断的给脑神经一些刺激,久而久之,脑神经元就会对相同的刺激作出我们期望的反应。

举例来说:摸一下狗狗脑袋,给狗狗吃的,狗狗分泌口水。久而久之,摸狗狗脑袋这个输入就会和流口水这个输出就会被神经细胞关联起来,从而导致你一摸狗狗脑袋,狗狗就流口水

神经网络算法通过不断学习,修正算法里的参数(准确的说,是树突的权重),一直到输入的多个参数(摸头+给吃的),总是能够得到较为准确的输出(分泌口水)为止。

卷积神经网络

Prisma的工作是基于一种叫做“卷积神经网络(convolutional neural networks)”的算法的。这种算法也被大量应用在识别车牌,人脸识别,动物分类等等的环境中。

由于图片的像素实在太多了,如果整张图片用传统做神经网络的话,就会过于庞大。而且,就像人脑一样,我们看图片其实不会看图片整体,而是通过眼镜扫描图片的各个部分,然后在脑部拼接完成。

因此通过把他拆成多个小图片来做神经网络算法的输入源就成了很好的解决方法。这个过程大概是下面这样:

PRISMA的图片制造过程

可以看到,“风格图片”(名画)和“内容图片”(你拍的照片),被分别通过CNN(卷积网络),提取画面特征

左边是“风格图片”,右边是“内容图片”。他们被神经网络一层一层提取特征,每一个像素就是神经网络的一个输入(x),图片输入后,每一层卷积都会输出对应的图片特征(风格和照片具体内容)L,最后分别取权重,把L(style)和L(content)相加就是最终图片了(整个过程图最上面有这个公式)

内容和风格比例不断调节,会产生不同的效果

好啦~pirsma大概就是这么玩起来的,所有图片都被传送到prisma服务器后才做这些运算~ 学画画的同学们,有没有觉得人工智能开始威胁到艺术家的饭碗了呢~