那么Prisma背后的技术原理是什么呢?如果按照网上的“白话”说法,Prisma将人工智能技术应用到了图片处理中。老土对这种提法相当的不感冒。固然Prisma在图片处理中用到了“卷积神经网络(Convolutional Neural Networks/CNN)”技术,但这种技术与“人工智能”并没有太直接的关系,虽然的确有很多人愿意生硬的将这个具体技术与人工智能关联起来。
不管CNN与人工智能有多少直接关系,这里无法否认的是CNN技术足够复杂,所以如果真的要从技术细节层面上解读Prisma的工作原理还是要扎扎实实读几篇深奥的论文的。
A Neural Algorithm of Artistic Style(https://arxiv.org/pdf/1508.06576.pdf)
Image Style Transfer Using Convolutional Neural Networks(https://www.computer.org/csdl/proceedings/cvpr/2016/8851/00/8851c414-abs.html)
如果觉得上面的论文太硬,可以看看下面这篇比较硬的。
AI修图艺术:Prisma背后的奇妙算法(https://www.leiphone.com/news/201607/DAHZ0RG1kuVi8bNB.html)
如果有人愿意刨根问底,还可以关注一下Prisma相关技术的演进历程(全文较硬)。
Prisma 技术发展的前世今生(http://www.sohu.com/a/141334878_717210)
然而是否可以在极硬的论文级的解答和极软的“人工智能”技术之间找到一个更为易懂的解释呢?这里老土尝试一下。
首先,“神经网络”这东西是在用技术模拟大脑的运作方式(模拟脑神经元的运作)。当外界不断的给脑神经刺激,久而久之,脑神经元就会对相同的刺激作出用户期望的反应。那个著名的巴普洛夫“条件反射”实验就是一个典型案例。摇铃,而后给狗吃的,狗会分泌口水。在一段时间的训练之后,只要摇铃(输入)就会导致流口水(输出),而这个规律是“神经网络”自主发现并学习掌握的。因此,“神经网络”技术非常适合“发现规律”这个应用场景,这种算法被大量应用在识别车牌、人脸识别、动物分类等场景中。
其次,“神经网络”技术被Prisma应用到用户上传的“用户原图”处理之上,用于完成对“用户原图”的“内容(特征)”的提取;“神经网络”技术被Prisma应用到“名画原图”处理之上,用于完成对“名画原图”的“样式(特征)”的提取。
第三步,就是将从“用户原图”中提取的“内容(特征)”与从“名画原图”中提取的“样式(特征)”加以“混合”,从而得出处理后的图片。当然因“内容(特征)”与“样式(特征)”混合比例的不同(内容权重更高,或是样式权重更高),可以调整最终的呈现效果。
最后,因为神经网络的计算复杂度较高,无法在用户的手机端完成处理,所以需要将图片提交到云端进行处理,并在处理后将生成的图片返回。这进一步导致如果用户太多,服务器端可能来不及处理。
[未完待续]
在简单解释了Prisma的工作原理后,老土更想从Prisma的原理讲开去,谈谈“技术与市场”的关系,谈谈“此技术与彼技术”的关系...明天再说了!