【天干物燥 小心抠图】深度学习漂亮的图像软分割一览

摘要: 少年,一起来matting吧!

10-29 19:53 首页 新智元

1新智元推荐  

GraphiCon图形控 授权新智元转载

作者:Manster

编辑:Origamidance


【新智元导读】抠图(matting)是计算机科学中一个很基本的问题,在抠图的历史中产生了不少好的工作,这些工作反映了机器学习乃至计算机科学中很本质的一些概念。



Matting是计算机科学中一个很基本的问题,在matting的历史中有不少人留下足迹,也产生了不少好的工作,这些工作反映了机器学习乃至计算机科学中很本质的一些概念。


近年来,深度学习很火,其中非常重要的一类工作就是图像分割(Segmentation)。图像分割就是将图片中的像素分成多个类别,如果是前背景分割,那么就是分成两个类别,一个类别代表前景,一个类别代表背景,这类问题我们也称之为硬分割(Hard Segmentation)。


Matting也是一类前背景分割问题,但是matting不是硬分割,而是软分割(Soft Segmentation),像玻璃、头发这类前景,对应像素点的颜色不只是由前景本身的颜色决定,而是前背景颜色融合的结果,matting问题的目标就是,找出前背景颜色,以及它们之间的融合程度。


Blue Screen Matting


这篇SIGGRAPH文章的作者是Alvy Ray Smith和James F. Blinn,如果按修真的设定,这就是开宗立派的祖师爷了,这篇文章正式定义了matting问题。


James F. Blinn原来在JPL工作,对,就是《火星救援》里,把马特达蒙从火星救回来的的那个JPL。


Alvy Ray Smith是图形学的先驱,他的职业生涯十分传奇,最开始在施乐做绘图程序,当然后面的故事我们都知道了,图灵奖得主艾伦凯邀请乔布斯访问施乐,接着拥有图形界面的mac正式问世,从此改变了世界。离开施乐后,老爷子给自己所在的动画公司起了名字,叫Pixar,再后来,老爷子就到了微软。在微软期间,他完成了这篇论文,当然他还是HSV颜色空间的作者。


老爷子有个很酷的中文名字,值得讲一下。老爷子的英文是Alvy Ray Smith,Ray是光线的意思,Smith在英文中有铁匠之意,所以老爷子的英文名应该翻译为:操控光线的匠人,这既是他的名字,又暗指了他的工作,图形学不就是操作光线么?有位中国人为他起了这个十分精彩的中文名:匠白光。(此处我想起了高德纳这个名字,也是精彩之极。)


返回这篇文章,这篇文章第一次定义了matting问题,即:


一张图片,应该由前景和前景合成,合成的方式,就是通过透明度来操作。使用透明度、前景和背景,我们可以合成这样的照片。



matting问题研究的是,如何通过左边的,推测出右边的三个变量,难度可想而知。


在这篇文章中,作者给出了Triangulation Matting的方法,整体思想也很简单,既然matting原问题那么难,不如把条件放松,使得问题简单一些。假设我知道了,那么有没有可能得到,于是乎,作者提出了,针对同一张前景,切换背景,来计算得到前景和透明度的方法。如下图所示:


假设知道了两张前景背景图和对应的背景图:    


应用最小二乘法,计算得到对应的透明度和前景:

 


随后结合新的背景,就可以生成极富真实性的合成图片了:

 


当然那个时候,matting问题还主要应用于电影拍摄等场景,因此可以看出,这篇文章的操作很复杂,应用范围也很有限。


这篇文章还介绍了一些工业界的方法,里面有一些Magic Number,本文让我深切地感受到,真正的技术壁垒,并不是方法或者理论,而是数据库,和经过无数次实验找到的Magic Number。


Poisson Matting


2000年以后,计算机科学家逐渐将Poisson Equation引入了计算机图形学领域,尤其是Poisson Image Editing这篇文章:



随后2004年的SIGGRAPH上,就有了Poisson Matting这篇文章。这篇文章的作者列表上,有Sun Jian,Jia Jiaya,Tang Chi-Keung,Shum Heung-Yeung。前段时间MSRA周年庆,不少大牛都来了,读这些大牛的paper,就仿佛阅读《三国志》一样,你可以很清晰地看到,这些人的名字是如何一个一个串联在一起,推动计算机行业发展的。


回到这篇文章,随着matting技术的发展,学术界也形成了一套解决matting的数据集、评价体系和标准流程,其中最特殊的一点是,使用tri-map作为辅助工具。tri-map分为三种颜色,黑色代表完全背景(此处为0),白色代表完全前景(此处为1),灰色代表不确定区域(待定)。



这篇文章,对matting等式进行观察后,两边求导,得到如下的式子:



在这里我们假设很小,所以式子就简化成如下的形式:



于是乎,我们就能写出一个这样的能量方程:



其中指的就是不确定区域。上述问题可以很自然地转成微分方程去做,具体地,转为泊松方程求解,这也是这个方法叫Poisson Equation的原因。当然,这篇文章发表的时间段,也正是研究人员将泊松方程系统地引入图像处理的时间段,在计算机历史上,我们经常可以看到,将数学和物理的研究成果,借鉴到计算机科学的故事。


泊松方程有一个非常美妙的定理,即如果指定了边界上的Dirichlet条件或者Neumann条件,那么泊松方程在区域内的解是唯一可确定的,因此当我们知道不确定区域内的密度函数,和边界上的值,我们就可以计算出这个区域内的值。于是乎,我们定义边界条件:





而密度函数是:



随后我们就可以通过Gauss-Seidel算法来求解得到


当然这里还有一个小问题是,我们是不知道的,在这里采用了一种非常直观的方式,就是使用最近邻的方法,确定的值,当然随后使用filter平滑,来保证的变化不会太突兀。


最后整个算法是一个迭代式的算法,通过多次迭代,来保证达到一个比较稳定的状态。


最后的效果图是这样的:

?  ?


Bayes Matting


贝叶斯公式算是这个世界上应用最广泛的公式了,也是机器学习非常基础的一个工具。


matting问题可以直观地表示为如下形式: 



是取log之意,这个操作的意义在于:由于概率都是[0,1],如果大量概率连乘,在计算机中的表示会变为0,同时由于是常量,因此可以忽略。


那么接下来的任务就是,对建立模型,建立的模型可以多种多样,只要reasonable即可。所有应用贝叶斯公式和最大后验概率(MAP)的方法,关键就在于对概率的定义。


比如下图的定义表示:对于预测的,它们融合的结果和真实的图像越接近,那么概率越高。



对于来讲,我们要建立的是前景颜色的概率分布,表示当前选定的概率有多大,在文章中,它使用一种聚类方法,来对前景的颜色分布建模。


对于来讲,文中说针对不同类型的matting问题,可以使用不同的定义,在这里,我们直接使用的定义。


对于,这篇文章假设,的分布是平均的,因此我们可以在MAP中忽略这一项。

最后就是求解这个MAP问题了,对于凸优化问题,我们可以直接使用导数为0的方式求解。


当然由于会和相乘,因此这个MAP问题比较难,所以文章采用两段法求解,先固定求解,随后固定,求解,迭代这个过程,直到结果比较稳定。


结果是这样的:

?

 ? 

?

Learning Based Digital Matting


随着机器学习的兴起和数据集的丰富,关于matting的工作也转为了数据驱动的思路,在这里我们介绍基于半监督学习的方法。


半监督学习的核心在于:在给定标记数据的情况下,预测结果不止和标记数据有关,还和未标记数据有关,更精确地说,和数据的相对位置有关。


如果能建立一种和像素点颜色的映射,那么给定一个像素点,通过它的颜色来预测,是一件多么美妙的事情啊!于是就有了本文的解决方案。


本文有两个假设:


1、任何未知的像素的,是周围像素的线性组合,从而我们可以将这种线性组合关系表达为矩阵的形式,注意:在这里我们使用了半监督学习中相对位置的概念;

2、假设和该像素点的颜色向量呈线性相关关系;

于是乎,对于每一个点的,我们期望使用周围像素的线性组合来预测,这个线性组合的参数,又是通过学习得到的,这个学习的过程,就是建立和颜色特征向量之间相关关系的过程。


这个方法更美妙的一点在于,在建立和颜色特征向量的关系时,问题的解析解中出现了内积的形式,这时就可以引入Kernel Trick,将维度升高,去学更复杂的关系,Kernel Trick也是机器学习中极具数学之美的内容。


 ?  ?

KNN Matting


还记得大三时在人人上,看到冠一姐和黄神讨论SBTree时,知道了Chen Qifeng这个人,顿时膜拜了起来orz。后来在GraphiCon里听士玮兄回忆,Chen Qifeng带他们训练的往事,士玮兄讲了一句话,我很赞同:“发现以前的偶像居然跟我在同一领域,有点小激动!”


就是这些优秀的人,给了我勇闯新世界的勇气。


这篇文章虽然实现起来很简单,但是信息量却很大,作者在文中很细致地讨论了idea和motivation,以及operation,而且这篇文章的目标也不是一般的Natural Image Matting,还涉及到了multiple layer matting。


真要细细说来,不知何年何月,所以只是在此提及。


Deep Automatic Portrait Matting


传统的matting方法,有个比较大的限制,就是需要提供tri-map,而提供tri-map的方式,往往是人机交互,总是劳烦用户动手,这是件不太理想的事情,end-to-end方法才是大家喜闻乐见的。


当下Deep Learning如火如荼,深度学习引出了一大批end-to-end的工作,这篇文章,使用过往的matting方法,构造了一个portrait image数据库,同时在此基础上,提出了一种基于CNN的matting方法,深度学习网络会自己预测tri-map,因此用户只需要提供图片,就可以得到matting结果了。



于是,回头看看,matting经过了二十多年的变革,从最初需要提供多张背景图片和原图,到需要用户交互提供tri-map,最后到当下的end-to-end solution,this is an amazing journey!


从Matting到Dehaze


上个月在知乎上看到有个问题,博士三年还没发paper是一种怎样的体验,底下有个回答讲了He Kaiming的故事。真伪不谈,但是从He Kaiming的文章中,我们明显可以看到matting问题的影子。


He Kaiming那篇著名的Single Image Haze Removal Using Dark Channel Prior,里面把包含雾霾的图像建模成这个样子:



其中是图像,是场景辐射强度,是global atmospheric light,可以理解为相对权重,我们希望得到去雾后的图像,就是


可以看出,这个问题和matting一摸一样。He Kaiming这篇文章的贡献就在于,他发现了暗通道先验,而有了这个异常良好的性质,这个很像matting的问题就没那么病态了,通过一些假设,我们可以直接使用矩阵运算,得到



当然为了让最后的图像效果更好,He Kaiming又做了Guided Filter,这个工作的精髓就是,岭回归。


He Kaiming和Sun Jian的工作,从Poisson Matting,到Single Image Haze Removal Using Dark Channel Prior,到ResNet,给我的感觉就是,对问题的洞察极其深刻,使用的方法又极其简单,颇有一种重剑无锋,大巧不工的感觉。


结语


Matting对我影响很大,这个问题很基本也很难,于是前辈们使用了各种各样的假设去求解,这些工作让我大开眼界,极大地影响了我的研究思路。


当然,有关matting,还有很多漂亮的工作,我只很浅薄地介绍了我最喜欢的几个方法。至于matting的详细survey,请阅读Wang Jue的Homepage:http://www.juew.org/。


(本文经授权转载自GraphiCon图形控,特此感谢! )





首页 - 新智元 的更多文章: