【干货】深度学习Meetup演讲速记(四)——深度学习在图像处理中的应用简介

浏览: 4906

深度学习在图像处理中的应用简介


作者:周昌

编者按  8月27日,星环科技与深度学习国际交流群举行首次深度学习Meetup,共有四位嘉宾进行了精彩的分享,本文系阿里巴巴资深算法工程师周昌精彩分享内容。图像处理领域,关注更多的是底层视觉计算任务,如图像增强、去噪、风格化等。在这个领域中,深度学习最近也发挥了突出的作用,实现了不少常规算法很难达到的功能。这次分享,主要介绍深度学习在这样底层视觉任务上的应用,主要包括超分辨、灰度图上色、2D/3D转换以及目前大热的图像风格化。

以下为演讲正文:



 今天的演讲主要是我自己平时的探索和分析,在这里和大家总结分享一下。

深度学习在图像处理方面总的来说可以分为三个部分。第一,增强图像,比如说我们可以把一张标清的图变成高清的图;比如说去燥、去雾,运用深度学习的方法把一张有雾霾效果的图变成没有雾霾效果的图;再比如把一些老旧的黑白图片彩色化;在例如把2D的图像变成3D的效果,这同样也属于增强图像的一种。那么第二,如果增强图像还是不能满足的话,我们就可以修改图像,有时候可以把一张图改的面目全非,你根本认不出它本来的样子。再进一步,第三,我们就无中生有了,那就是生成图像



1. 图像增强

1.1 超分辨(Super Resolution)


第一,就是图像增强,简单来说就是从图像到图像。第一个方面主要介绍超分辨,也就是把低分辨率的图像转化成高分辨率的图像。用在视频里,就是把标清视频转化成高清视频,通常是2x,其实也可以实现4x,比如我把流畅直接转化成高清。

接下来这个超分辨的算法SRCNN是15年由Chao Dong、Chen Change Loy、Kaiming He和Xiaoou Tang在paper中提出来的,利用神经网络做超分辨,FCN的全卷积网络结构,输入是标准的缩放过的图像,输出是原始高分辨率的图像。我们就可以通过这个网络训练出这样的效果。


之后,有个日本人做了一个叫做waifu2x的开源软件,广泛被二次元的这些视频应用,把原始的视频转化成高清的视频。



下图的这个是云上的服务,也是通过标清转高清视频重置,把原来1200x720的视频转化成了1800x1080的视频,当然不是只有超分辨这一种技术,还有很多其他技术一起。那这就说明,这样的转化效果是有需求的,大量的老旧的视频都需要这种技术来提升。


1.2灰度图彩色化



接下来来看图像增强的第二个方面,灰度图彩色化。这里的算法是基于CNN实现,下面有个链接,里面有网络的结构。我利用这个方法做了简单的实验,结果就是左图中的效果。总的来说还是有一定效果的。


再下来这个图是基于GAN实现的算法,可以看出它对于风景画的效果是很不错的。


1.3 2D到3D的转换

那么增强图像的第三部分是2D到3D的转换。利用已有的3D电影,训练一个网络,输入单一视角的图像,生成另外一个视角的图像。例如我输入左视图的图像,然后生成一个右视图的图像,这也是很有趣的一个应用的点。

 


同样的,核心都是卷积网络,包含高层的语义信息,通过特殊网络的改造实现。这里有一个Deep3D的算法,在这里就不深究。我这里也有做好的效果,可以参考下面这张PPT。其实,如果你真的只利用这个算法来做一部电影,出来的效果一定让你很头痛,但这是一个启发,我们可以运用这种方法再加上一些人工的修复方法,就可以大大加速2D电影制作成3D的进程。就像之前泰坦尼克号制作成3D上映,通过这个技术就可以使其中转换的人力资本大大降低。


1.4 图像改善

然后来看下画面改善的功能,比如去噪声、去马赛克和去雾等。当图像质量很差的时候,把图像往卷积网络中一放,就可以很大的改善画面质量。这与前面的思路一致,都是图像到图像的应用。

参考汤晓鸥的论文,Compression Arttifacts Reduction by a Deep Convolutional Network,论文中的算法相比于CNN做了修改。图像修改效果非常明显,包括背景的噪声等。对于翻录的电影电视剧等,非常符合这个效果的应用。

1.5小结

前面讲了4种应用,都是图像到图像的,还有一些非常好玩的应用。比如25帧的视频通过插帧的方式到60帧的视频,可以很大地提升视频质量。这方式基本都是依靠于卷积网络,将高维特征转化成低纬度特征,实现复杂的非线性变化。而且这个图像到图像的应用成本较低,不需要去标记,谁都可以尝试去做。比如说现在的手机视频去抖动,很多都是硬件去完成的,而现在软件也可以有所提升。还有之前所说的频率转化,这也是一个非常专业的领域。 


2. 图像修改 

图像修改是目前最热门的NeuralStyle、Prisma(app)利用深度学习的方向,即从一个图像到另一个图像。

2.1 A Neural Algorithm of Artistic Style


效果最好的由德国人在2015年8月份做出:

​实现方法为:左侧分别为Content image和Style image,Style image过卷积网络形成一定response,reconstruction过程通过一定可视化手段实现,处理过程中并不能看到这样的效果。作者设计了一个很巧妙函数,在卷积网络前几层中保持input图面原来的样子,在最后几层学习成Style image的样子。


算法关键是Gram矩阵的应用,消除了分辨率差异,融合了全局风格。(详细内容可参见论文)以下为neural style的开源完整实现,由李飞飞的在读博士生完成。


2.2 Texture Networks


(ref: https://github.com/DmitryUlyanov/texture_nets


这个方法最大的毛病是需要多次迭代,1000-2000次左右,后来有人想为何不直接做一个网络,从Input到Output直接拿到结果,而这正是著名的Texture Networks: Feed-forward Synthesis of Textures and Stylized Images 。算法由一位俄罗斯小哥实现,据推测Prisma APP 最有可能来自这个算法。与德国人的算法相比,Prisma的实现效果较为局域性,纹理较浅,很难学出很深的效果。两种方法的区别在于,第二种是训练以后直接生成的方法。这些方法已经比传统基于Photoshop等方法要实际很多,这也是Prisma引爆朋友圈的原因。


(Prisma效果)

 2.3 利用位置信息的方法

除了以上两种方法,有人想能否依据图像的近似之处?

上图左右两张图为相同尺寸,都有眼睛、鼻子、脸,既然如此那能否基于像素位置进行定位?之前的方法都是全局的,这种方法是在函数或feature map里面定位信息,即两图眼睛与眼睛,鼻子与鼻子的风格尽量接近,得出效果不是纹理上整体的相似,因为处理过程考虑了位置信息。眼睛学习眼睛位置的风格,而不是头发的风格。由于要计算MIF,这个方法非常慢,好的一点是MIF的匹配是半交互的。效果特殊也是这一方法的好玩之处。下面着这张图是我根据第三种方法自己实现的,这个效果是Prisma无法实现的。应用位置信息,加上人工的半交互,我认为可以做出比Prisma更酷的app。 


以下为开源实现。它学出的效果有真油画的效果,背景不会挪动,西装保持原样。同色区域学习相应区域风格。开源也是有一名俄罗斯小哥实现,他取名为神经涂鸦(neutral doodle),估计很快有相关应用出现。


2.4小结

这里介绍了三种图像修改的思路。第一种方法是通过BP操作,修改原图,迭代过程很慢,但好处是不需要任何模型,只需要选定风格,无需预先训练,即用户可指定Style image,Prisma显然无法做到国画或者固定肖像的分格。第二种类Prisma方法,直接设计一个前向网络。第三种方法则利用图像位置信息且可交互,目前还没有app实现。



3. 图像生成

第三部分是更为神奇的图像生成领域。

3.1 CPPN ( Compositional Pattern Producing Network )

(Ref: http://zhouchang.info/blog/2016 -04 -08/simple -cppn.html)

 第一种神经网络很不起眼。随机输入一个向量Z,二维三维任意;在输入x、y和半径r,最终输出一个值C。输出值为图像灰度,如果是彩色就输出是三个值。换而言之,输入坐标,输出坐标对应像素的值。假设我们采用一个简单网络,随机化其参数,x、y、r从坐上到右下依次生成像素值,并拼成一幅画,或产生怎样的效果?​


不同随机会生成不同效果,非常神奇。如果变换Z向量,将生成的图像逐帧播放,会产生更加神奇的动画效果。


3.2 Deep Dream


(ref: https://research.googleblog.com/2015/06/inceptionism-goingdeeper-into-neural.html


第二种方法是Google做出的,首先有一个风格图目标,在feature map上随机制定若干神经元,通过修改原图得到很多梦幻效果,也是一个很好玩的效果。

 3.3 VAE


(ref: http://blog.otoro.net/2016/04/01/generating-large-images-fromlatent-vectors/


第三种方法是用VAE(变分自编码器)生成图像,与CPPN有相似之处。输入数据,得到指定分布的采样,即所谓变分法。训练好网络之后,经过各种各样的采样,可以生成期没有见过的图像。通俗的讲,看了10万只猫,画出与这十万只猫不同的猫的图像。这是一种典型的Unsupervised Learning,即看了一大堆样本,将其分布映射到某几个指定纬度,通过分布上的采样生成新的采样。

3.4 DCGAN

DCGAN是通过对抗训练来生成图像,这里引入了Deep Convolutional网络(ref:  https://github.com/Newmu/dcgan_code).

Ref: http://bamos.github.io/2016/08/09/deep -completion/


效果是这样的:眼镜的图像-人脸+女人效果,即将眼镜效果加到女人照片上。 


下面这些图是根据算法生成的CD封面,生成模型都是一个意思,训练了很多样本,无论通过何种建模方法,生成未见过的图像。



4. 展望

大量实践表明,不论PS还是美工,实际上都是“非常体力的重复劳动”,运用深度学习的方法,无论是图像增强、修改还是生成,一定有办法加快并智能化图像处理过程,这是非常有意义的事。进一步而言,未来甚至有可能实现可计算艺术创作,艺术创作需要灵感,但我认为是可计算的。前面介绍了多种方法,生成也好,变换也好,很多都可以达到艺术的质感。


新的模型新的方法新的应用不断涌现,但哪些能存活下来,还不得而知。


(演讲内容到此结束)


演讲嘉宾: 周昌   阿里巴巴iDST,算法专家,开源软件开发者

演讲题目:深度学习在图像处理中的应用简介

图像处理领域,关注更多的是底层视觉计算任务,如图像增强、去噪、风格化等。在这个领域中,深度学习最近也发挥了突出的作用,实现了不少常规算法很难达到的功能。这次分享,主要介绍深度学习在这样底层视觉任务上的应用,主要包括超分辨、灰度图上色、2D/3D转换以及目前大热的图像风格化。 


往期回顾:

深度学习Meetup速记(一)——基于深度学习的文本语义分析

深度学习Meetup速记(二)——使用 CUDA 加速R的应用

深度学习Meetup速记(三)——深度学习在推荐系统中的应用

推荐 1
本文由 星环科技 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册