在9月23日到9月24日的MDCC 2016年中国移动者开发大会“人工智能与机器人”专场中,阿里云技术专家周昌进行了题为《寻找下一款Prisma APP:深度学习在图像处理中的应用探讨》的演讲。演讲中,他主要介绍深度学习在图像处理领域中的应用,主要内容包括:传统的图像处理:如超分辨、灰度图彩色化、2D/3D转换等;图像/视频风格化;图像生成。
图像处理类过程主要分为三步,包括图像增强、图像变换、图像生成。图像增强是指从图像到图像;图像变换是指从图像到另外一张图像;图像生成是指直接生成新的图像,这三类都可以在开发者领域找到突破点。
图像增强:从图像到图像
图像增强包括分辨率增强、清晰度增强、画面改善、色彩的增强等。这里通过几个图像增强的小案例进行详细讲解,例如在下雨场景中把雨滴去掉、B站常用的waifu2x以及一些老旧照片彩色化、去掉马赛克等案例。
分辨率增强是指超分辨率,是将低分辨率的图像转换为高分辨率的图像,目前可以实现“标清”转换为“高清”,通常是2X,也可以是4X;上文提到的waifu2x是基于深度学习里的开源软件,目前在B站上以waifu2x为关键词可以搜出60多个老片子,迎合目前的需求。
清晰度增强,主要包括去噪声和去马赛克。可以将一些比较低的片源、照片变换为比较清晰一点的照片,主要用于老的港片可以变成很清晰的版本,将很老的照片变得清晰。
这是图像增强的另一个应用,用于画面改善,如去雾、去雨,常见的应用是做成相应的滤镜。
上图是色彩的增强的案例,将灰度图彩色化。它的核心是CV领域内很少用到的神经网络,用户无需关心网络架构,只需熟悉框架应用,熟知如何将其部署在移动端、云端即可。
除上述介绍的应用之外,还有更多的图像增强类应用,如常见的视频增强应用,用于频率变换,从25fps到50fps;从2D到3D转换,手机视频去抖动以及视频直播应用等。目前,阿里云也推出了云端服务,用户可以通过部署在云端来满足相应的应用或算法需求。
图像变换:从图像到另外一张图像
上文讲到的是从图像到图像的倾向于常规的图像处理的应用,这些应用是无法处理得到炫酷的效果,但通过云端可以实现。通过对存量的图像、视频进行去噪或放大处理,得到另一张图像,其中最为知名的是风格化处理,它是指一张图片转变为另一张图片时,变换了风格。
如图所示的风格是通过Google的Deepdream实现的,通过卷积网络反向传播的思想,强迫它激活某个神经元,最后生成一个从未见过的神奇图像。
风格化:全局的纹理学习
真正风格化实现的第一篇论文是全局的纹理学习,是一篇德国的论文。它的重点是全局的风格,通过指定一张照片,指定一张需要学习的风格的图像,通过若干次的运算(运算非常缓慢,即使在GPU上,也需要秒级以上),最后输出所需要的神奇图像。
上图所示的Github开源项目,目前有一万多个点击,是将输入的照片按照毕加索画的风格输出,是一种典型的全局风格。
上述的方法是通过指定一张图片再指定一张风格图片,通过BB操作生成图片非常慢。如果通过网络生成,速度是否会加快,这就是ADP思路。Prisma使得绝大数手机上即可实现该功能,通过引擎优化了卷积网络,并进行适当的裁剪,牺牲了部分性能,使得可以在手机上运行。目前,Prisma的日活大概有200多M,通过售卖风格获得收入。
局部风格化:利用位置信息
另一种风格化的是局部风格化,如图所示,图上眼睛和眼睛一样,不会跟随头发风格的变化而变化,这是利用位置信息做出的效果,非常逼真,但运算较慢,这是因为它需要根据两幅图的相似区域,在Feature map上直接融合出需要的目标。
交互式涂鸦
此外,还有一种交互式涂鸦的方式,它并不是直接生成或自动生成一副图片,而是允许用一些方块、拖拉等方式对图片进行处理。这个思路结合上文的风格化方式可以形成一些PGC图像,在将来,这可能是一个爆款APP。
总结来看,风格化的技术演变分为四个阶段:第一阶段是基于BP全局风格化;第二阶段是纹理网络;第三阶段是局部风格化;第四阶段是用户交互,其中后两个阶段尚未出现较好的APP应用。
图像生成:直接生成新的图像
图像生成是指从无到有,直接生成新的图像,生成图像的原理很简单,让电脑看一万只猫,它可以生成一万零一只猫,而且是你从未见过的猫。
最简单的图像生成网络是CPPN网络,CPPN非常巧妙的通过设计网络输入为坐标, 将网络视为一个复杂的连续函数,输出为对应坐标的像素的灰度(或者 RGB )值,因此这种网络可以构造大分辨率的图像。为了输出有效的图像,注意下面两点:
所有网络层的权重初始化为 Norm(0, 1) 分布,不能用太小的值;
网络的坐标输入确保值范围[-1, 1] 附近,不可以过大。
另一种方式是DCGAN,是通过对抗网络的方法,由大量的样本生成新的图片,例如海报生成过程中,存在某些隐变量,通过隐变量的组合对某一张图片进行加眼镜的操作、变男或变女的操作等类似的应用;这种方法生成的模型还可以应用于去除水印,电视上或短视频的水印都可以去除掉。
除了生成图像,目前还有应用可以生成视频,这是一个新的发展方向,将一副图片添加到应用后,应用会根据输出的动作进行之后的几帧动作。
总结和展望
上文介绍了三类图像应用,这三类图像应用的好处是只需一台FPU机器、会一点点技术,而且无需任何成本,所有的图像都不需要标注,可以零成本从互联网上获得。
但此类应用需要考虑两个端之间关系,一种方式是全终端;另一种是云端方式,两种方式都有不同的部署方案。目前,全部在终端上完成存在一定困难的(除非愿意做一些优化);在云端完成可以选择CPU或GPU的方式,由于GPU的费用昂贵,在应用设计过程中,需要均衡成本。
云上的智能美工将是图像处理的下一个方向。如果大家在淘宝上搜美工或者搜图片处理,反馈回来很多的搜索结果,如上图所示。仔细看时,这些搜索结果存在两个关键词:去水印和抠图,这种重复性质的PS劳动非常之多,之所以有这种需求是因为太多的淘宝卖家拿别人的图放在自家内,抠图虽然是人工完成的,但都很便宜。
通过前面的总结可以看出,有一个领域是AI真正可以涉足的,尽管看起来不是呢么高大上,但可以真正地节省人工劳动,也就是所谓的云上智能美工,可以完成抠图等基础的底层图处理。
再下一步的方向应该是智能设计,如上图所示,左侧是Google的时装设计,它是基于一些样本,进行新的服装设计,得到的结果再由艺术家进行专业评鉴;右侧是的国内的电商美学,将其与AI结合,这在将来也是一个非常有趣的方向。
项目链接
文中涉及的项目链接如下:
图像增强
分辨率增强:https://arxiv.org/pdf/1501.00092v3.pdf
清晰度增强:https://mmlab.ie.cuhk.edu.hk/projects/ARCNN.html
画面改善:https://arxiv.org/pdf/1609.02087.pdf
色彩增强:https://tinyclouds.org/colorize/
更多图像增强类应用:https://www.aliyun.com/solution/media/videorevive
图像变换
风格化:https://arxiv.org/abs/1508.06576
局部风格化:https://github.com/chuanli11/CNNMRF
图像生成
CPPN:https://zhouchang.info/blog/2016-04-08/simple-cppn.html
VAE + CPPN:https://blog.otoro.net/2016/04/01/generating-large-images-from-latent-vectors/
DCGAN:https://github.com/Newmu/dcgan_code
VideoGan:https://web.mit.edu/vondrick/tinyvideo/
智能设计