美文网首页神器总动员互联网科技@IT·互联网
Prisma理论篇:火遍朋友圈的修图工具Prisma的背后是什么

Prisma理论篇:火遍朋友圈的修图工具Prisma的背后是什么

作者: joyceye | 来源:发表于2016-07-29 06:28 被阅读2055次

    引子:有段子手言,地球上的人一半在用Pokemon Go追皮卡丘的时候,剩下的一半在用Prisma修图!这款由俄罗斯创业团队研发的图片处理app,从研发到上线仅几个月就用户量惊人,更让人惊讶的是,团队仅仅只有四个人。这真的可能吗?


    如果你是因为标题党而进来,谢谢并希望你离开的时候能获得你想要的干货;如果你已经猜到了答案,也谢谢你愿意进来验证你的猜测。

    没错,火遍朋友圈的修图工具Prisma的背后就是最近流行的四个字:深度学习。啊对,就是一个深度神经网络模型,很深很深的网络模型,大概有19层那么深。(咦这个确实好深啊,貌似那个下围棋的alphago也就13层~)

    不是说干货么,这就完了?当然不行。那咱能直接跑一个模型玩玩吗?貌似也不太行。跑这样一个神经网络模型,需要你的计算机有一颗强大的心脏(最好有个GPU啥的),然后,你需要安装一堆lua,torch,caffe,cuda之类的玩意儿。你以为prisma和别的app一样,是靠你那小手机就能搞出这么炫酷的样式吗?非也,它的背后必须有一个强大的云服务器。不信你断网,再拿prisma试试。

    所以,prisma是把你的图片压缩好后,用网络传送到了他家服务器,然后处理结束再传给了你。

    嗯这还不是特别干的干货,下面才进入正题。也许你会觉得有点枯燥,不过希望我尽量能讲的通俗,你尽量能收点干货,而那些繁琐的数学公式和略晦涩的术语我会跳过。


    下文主要参考自论文:A Neural Algorithm of Artistic Style(by Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge)

    在深度神经网络的家族里,处理图片最给力的模型叫卷积神经网络(Convolutional Neural Network,简称CNN)。CNN的每一层结构和一般的NN不太一样,它的每一层就像一个过滤器,分层次的处理输入图像。每经过一层,就会更抽象一些,术语上来说是对上一层的特征提取。所以,每一层都可以看作为一个特征映射(feature maps)。

    当CNN被用来训练识别物体(object recognition)时,研究者构造了一种网络结构,它可以使物体信息逐层更明显地提取出来,也就是说,这种网络结构关心的是图片内容(content)。每一层的feature maps都可以用来重构图片,较深层次(high-level)的重构,如下图第二排d,e,更多的捕捉内容而忽略像素,而较浅的,如下图第二排a,b,c,仅仅是像素的复制。因此,研究者多采用较深的网络结构来做内容重构(content representation)。

    而CNN模型也同样可以用来做风格重现(style representations)。这时,研究者使用一种原创设计的特征空间(feature space)来提取图片的纹理信息(texture information)。feature space会加在每一层过滤层之上,它包含的是不同过滤层处理后的feature maps之间的相关性。这样处理后得到的仅是图片的纹理而不是整体布局(global arrangement)。如上图第一排所示。同样的,较深的网络层可以更好的提取纹理而忽略内容。

    论文研究者的发现是:content representations和style representations是可以分离的!且重新组合后可以成为一张全新的图片,它具备名画(artwork)的风格和我们自己的照片的内容。这就是prisma提供给我们的修图效果。同时,内容重现和风格重现在重构过程中是可以权衡的(trade-off)。所以,prisma也具备了百分比设置功能,即多大程度保留内容。

    而其实这项技术在2015年8月左右就已经在github上公布了,搜索deepdream可以找到。而如今它真的成为了一款流行市场的互联网产品,历时将近一年。这从技术开发到面向市场的速率也非常惊人。再看自动驾驶技术,糅合人工智能,AR/VR等技术,虽然如今还事故频频,但相信将来也会技惊四座。

    以上用一句话概括就是,深度学习实现了艺术内容和艺术风格的分离与重构。虽然这还谈不上创造力,但也算art and science的完美结合!这不愧说—— Data scientist is the sexist job of 21st century.

    ———— END ————

    参考链接:

    https://github.com/jcjohnson/neural-style

    http://arxiv.org/abs/1508.06576

    https://github.com/google/deepdream

    相关文章

      网友评论

      • xlvector:可以关注一下GAN。对原来的算法有很大的提速。
        joyceye:@xlvector 谢谢建议!
      • 白菜先森:我只能说好慢好慢
        joyceye:@cloudway 嗯嗯说的对!开源项目,完全没有门槛
        cloudway:@白菜先森 这玩意是已经把style feature全部extract出来了,所以已经很快很快了。。诶如果任意选一张style image 的话要慢很多。说实话我很好奇这玩意能火多久,因为从目前来看他只是借鉴别人的算法搭了一个app..完全没有门槛
      • 一夜读:get到一个新软件,谢谢
      • 清洗世界:不明觉厉 :smiley:

      本文标题:Prisma理论篇:火遍朋友圈的修图工具Prisma的背后是什么

      本文链接:https://www.haomeiwen.com/subject/cbfzjttx.html