Prisma

AI修图艺术:Prisma背后的奇妙算法 | 深度

投递人 itwriter 发布于 2016-07-30 12:47 评论(2) 有712人阅读 原文链接 [收藏] « »

  雷锋网按:本文作者系图普科技工程师。

  在 Prisma 的应用下载评论区看到这么一句好玩的话:世界一半人在用《PokemonGO》抓精灵,另一半人在用这个软件修图。

  图像编辑软件早就数不胜数,比如胶片风的 VSCO,拼图美颜的拍立得、美图秀秀,二次元卡通的魔漫相机、脸萌,自拍美颜的 PICSPLAY、美颜相机,主打滤镜相机的 Roookie Cam、MIX 滤镜大师等等,这些现象级产品在这个快速迭代的时代层出不穷, 那么 Prisma 凭什么在这样的环境下杀出重围?连俄罗斯总理梅德韦杰夫都特地“翻牌”了。

  首先,Prisma 不是简单地在原图上转换色调或者环境风格,也不只是利用普通的滤镜来改变图像的光线、颜色或者重叠图片,它会根据你提供的图片内容和你要求的风格图片的样式重新“画出”一张新的图片,它并不一定使你变美,但它一定让你遇见全新的自己(如下,左一为原图)。

  那么,Prisma 与人工智能算法 Neural art 到底怎么回事?Prisma 与 CNN 的具体结合、生成图片的过程又是怎样的呢?

   Prisma 与人工智能算法 Neural art

Prisma 的所做的风格转换是机器视觉领域一直在研究的一个问题,称为 texture transfer (纹理转换),其目标为将源图片的风格合成进目标图片中同时保留目标图片的语意内容。

  本质上来说,将图片的内容和风格分离并不一定是一个定义明确的问题 (Well-defined problem),这是因为并不能准确定义出图片中的哪部分属于内容,哪部分属于风格,很有可能内容与风格是交织在一起,没有办法进行分离。

  所以图片的内容和风格是否可以完全分离这还是一个待解的问题,如果可以,那么用什么样的方法呢?

  • Prisma 背后的技术

  Prisma 背后的技术基于一篇今年 CVPR oral 文章 “Image Style Transfer Using Convolutional 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 背后的全部技术原理,当我们剖析一下发现其实里面的原理并不复杂,对于熟悉深度学习的人来说,不出一周就可以复现出其中的算法。

但最重要的是体会到此算法成功的核心在于利用了深度学习网络对于高层语意信息的表达能力,同时巧妙的构造出损失函数,其他的就只是顺水推舟的使用深度神经网络进行求解而已。

   利用 AI 算法修图虽酷,但 Prisma 也有一定的缺陷

  比如说,一定要在有网络状态较好、网络较快的状态下才可以使用顺畅,因为需要在线加载绘画风格图像以及用户提供的内容图片需要发送到远程的服务器上进行人工智能计算后再传回来,所以,相对其他修图软件,它的图片编辑速度慢很多,一般都需要等待几十秒才可以看到预览效果。

  另外,因为所有的图片处理都是在云端完成,所以会有少部分用户遇到使用人数过多,服务器过载的情况。

   一样使用深度学习,deepart.io 为何不像 Prisma 一样火?

  在 Prisma 出现之前,也有过一款基于深度学习技术的修图应用:deepart.io,但是 deepart 却无法取得像 Prisma 一样的成功。

一方面在于其处理一张图片需要消耗大量的的 GPU 时间,导致了很多服务器资源开销,如果用户愿意承担这部分费用,处理时间在半小时左右,如果不捐助的话,需要 6 个小时左右;

另一方面,deepart 主要是由大学的研究员做的技术性实验,并不会投入过多的精力,在风格图像类型、品牌推广和商业化应用上考虑较少。

  而 Prisma 通过优化了算法,相对缩短了一大部分的操作时间,并且用户不需要到网页提交照片、不需要注册即可免费使用 35 种不同绘画风格的滤镜,在这个移动互联网的时代,这样的移动 App 更受大众欢迎。

  最近,Prisma 推出了 Android 版,这无疑会带来更大的用户量,日活跃度有可能超越 200 万人次。据透露,“视频滤镜”已经进入内测阶段,大约在一周后会发布,此外,还有可能会推出“GIF 艺术滤镜”、“视频直播”等功能,创造出“流动的油画”。

  还记得在两年前,波兰画家兼导演 dorota kobiela 以及奥斯卡获奖制片人 hugh welchman 开始筹备一部专门向梵高致敬的手绘油画电影《loving vincent》,近百名画师经高强度训练并每日模仿梵高风格,目前已完成超过 5.6 万幅绘画作品。在这部片里,每一幅静止的画都是模仿梵·高绘画风格的油画,电影每一秒都将用到 12 幅这样的画,然后一系列静止的画组合在一起快速播放,形成动态的效果。

  如果把 Neural art 的技术成功应用到视频上,这部梵高的电影再不需要如此高投入,甚至还“拍摄”任意绘画风格的电影,将电影与艺术糅合,把自己封印在艺术品里,是件很美的事,就像蒙娜丽莎,在达芬奇的画中,她的微笑是永恒的。人对美和永恒的追求,这也许是 Prisma 能这样迅速夺取人心的深层次原因。

  Prisma 的意义在于以艺术的名义用流行的方式把深度学习的能力展现给了大众。虽然如今众多的人工智能公司使用 AI 技术去服务大众,但像 Prisma 这样如此火热的引爆大众对于如今人工智能技术的惊讶还十分少见。

  但我想这只是一个开始,人工智能技术正在向各个领域进发,无论是高科技领域如自动驾驶,机器人,还是一些偏门的领域,如艺术,社会公益,都会不断看到人工智能带来的实惠和惊喜。

  也许你第一次使用 Prisma 的时就被其效果深深的折服。我想说的是,你的惊讶才刚刚开始。

时间: 2024-12-22 23:20:33

Prisma的相关文章

自己写个 Prisma

Sirajology的视频链接 前一段时间特别火的 Prisma 大家都玩了么,看了这篇文章后,你也可以自己写一个 Prisma 迷你版了. 这个 idea 最开始起源于 Google Research Blog Here's the initial Google DeepDream blog post: 他们用大量的图片数据来训练深度神经网络,使这个网络可以判断出图片中的事物,然后投入一个新的图片,让图片识别,不仅仅是识别,还要把图片修正为网络学到的东西. 然后另一个团队发表了一篇相似的论文

prisma 集成 pipelinedb测试

pipelinedb 是一个基于pg数据库开发的stream sql 数据库,和prisma 集成起来可以开发很 方便的stream 应用 使用docker 安装 项目初始化 prisma init 注意选择数据库类型为pg prisma init 修改模板配置 version: '3' services: prisma: image: prismagraphql/prisma:1.13 restart: always ports: - "4466:4466" environment:

prisma 服务器边订阅试用

graphql 协议是支持数据的实时订阅功能的(一般基于websocket 进行实现) prisma 支持客户端订阅以及服务器端订阅(类似webhook),可以方便将 数据推送后端服务 目的 prisma 实现这个功能是方便集成当前的serverless 基础设施,当前支持的是通过webhook 的模式进行时间传递 参考配置 endpoint: ${env:PRISMA_ENDPOINT} secret: ${env:PRISMA_SECRET} datamodel: database/data

prisma mongodb 试用

prisma 已经支持mongodb了,我们需要做的就是安装新版本的prisma cli,后然初始化项目使用 环境准备 安装cli 注意使用新版本(prisma/1.32.2) 低版本有坑 npm install -g prisma 初始化一个mongodb 的项目 prisma init mongodb-demo ? Set up a new Prisma server or deploy to an existing server? Create new database ? What ki

prisma连接MongoDB

安装prisma 1 npm i -g prisma 1 prisma init db //初始化prima 选择数据库 Set up a new Prisma server or deploy to an existing server? (Use arrow keys) Set up a new Prisma server for local development (based on docker-compose): ? Use existing database Connect to e

【AI创新者】小蚁首架张骏峰:让图像AI人尽可用转载

张骏峰,小蚁科技首席架构师,负责小蚁AI图像相关算法架构.主要包括:小蚁智能摄像机的智能报警服务.小蚁智能行车记录仪的辅助驾驶ADAS服务.小蚁运动相机App的图像风格迁移技术以及小蚁微单App的图像视频编辑技术.其团队包括移动开发.前端.后台.算法,成员分布在北京及以色列.张骏峰于2015年加入小蚁,此前,张就职于微软长达14年,参与过Windows, .Net Framework, MSN, Office, Lync, Skype等产品的研发工作. 小蚁科技成立于2013年,是一家年轻的互联

机器学习:利用卷积神经网络实现图像风格迁移 (一)

相信很多人都对之前大名鼎鼎的 Prisma 早有耳闻,Prisma 能够将一张普通的图像转换成各种艺术风格的图像,今天,我们将要介绍一下Prisma 这款软件背后的算法原理.就是发表于 2016 CVPR 一篇文章, " Image Style Transfer Using Convolutional Neural Networks" 算法的流程图主要如下: 总得来说,就是利用一个训练好的卷积神经网络 VGG-19,这个网络在ImageNet 上已经训练过了. 给定一张风格图像 a 和

基于深度学习的图像语义编辑

深度学习在图像分类.物体检测.图像分割等计算机视觉问题上都取得了很大的进展,被认为可以提取图像高层语义特征.基于此,衍生出了很多有意思的图像应用. 为了提升本文的可读性,我们先来看几个效果图. 图1. 图像风格转换 图2. 图像修复,左上图为原始图,右下图为基于深度学习的图像 图3. 换脸,左图为原图,中图为基于深度学习的算法,右图为使用普通图像编辑软件的效果 图4. 图像超清化效果图,从左到右,第一张为低清图像三次插值结果,第二张残差网络的效果,第三张为使用对抗神经网络后的结果,第四张为原图.

这些 APP,让你的照片美到飞起来

将这些 APP 按如下分类: 审美    拍出好照片的根本基础    摄影的基础知识光线    摄影是用光线作画构图    突出主体拍摄    拍出高质量照片修图    顶级修图软件调整    非常好用的小工具特效    令人惊艳的特效 审美 摄影本质上是通过器材将你头脑中的世界表现出来,因此,你的思想,你的感觉,你的审美,是拍出好照片的决定性因素. 对大多数人来说,培养审美的最好办法就是去欣赏那些最优秀的作品,养成每天看图的好习惯,不用多久,你就会被惊艳到. 我自己对图像的美感来自于超大量的观