抠图技术及方法简介(Image Matting Overview)

  之前接触过语义分割,所以在刚接触图像抠图时以为两者是差不多。语义分割是端到端的,对像素按照语义进行多分类,而抠图就是按照前景和背景进行二分类嘛?实际上这是错误的理解。语义分割重在对每个像素的语义理解,将相同语义的像素分割为同一个部分,得到的结果就是若干个块状,至于块与块之间是否衔接自然则不考虑。抠图只将图片分成前景和背景两块,目的是拿到前景,好的抠图算法会对于头发等细节的处理效果比较精确。分割和抠图的另一个重要区别是分割是返回像素分类结果,分类结果是整型;而抠图返回的是属于前景或背景的概率p,在前景与背景交互区域会产生渐变的效果,使得抠图更加自然。
  抠图技术的核心问题是解以下公式:Ii = αFi + (1-α)Bi,其中Ii是图像当前可观察的像素,为已知量;α是透明度,F是前景像素,B是背景像素,这三个变量为未知量。对于这个公式的理解,可以把原始图像看做是前景和背景按照一定权重(α透明度)叠加组成的。对于完全确定是前景的像素,α = 1;对于完全确定是背景的像素,α = 0;对于不确定是前景还是背景的像素,α是介于0到1之间的浮点数。
  以下是各种图的效果:第一行从左到右分别是原图,trimap图,α图;第二行从左到右分别是原图,草图,α图;
  
抠图技术及方法简介(Image Matting Overview)_第1张图片

  深度学习如火如荼,我们也可以把抠图算法按照是否使用DL分为传统方法和运用CNN的方法。以下是几种经典的传统方法:

Poisson Matting

  该方法通过对matting等式观察后发现,两边求导可以得到以下式子:
  这里写图片描述
  假设∇F和∇B很小时,式子简化成如下的形式:
  这里写图片描述
  于是我们能得到这样一个能量方程:
  这里写图片描述
  其中Ω指的就是不确定区域。上述问题可以很自然地转成微分方程去做,具体地,转为泊松方程求解。泊松方程有一个非常美妙的定理,即如果指定了边界上的Dirichlet条件或者Neumann条件,那么泊松方程在区域内的解是唯一可确定的,因此当我们知道不确定区域内的密度函数,和边界上的α值,我们就可以计算出这个区域内的α值。
  另外,F和B是未知的,在这里采用最近邻的方法来确定F和B的值,随后使用filter平滑F-B,来保证F-B的变化不会太突兀。整个算法是一个迭代式的算法,通过多次迭代,来保证α 达到一个比较稳定的状态。

Bayes Matting

  该方法将matting问题直观表示为贝叶斯形式,即:
  这里写图片描述
  L是取对数,由于概率都是[0,1],如果大量概率连乘,在计算机中的表示会变为0,同时由于P(C)是常量,因此可以忽略。
  接下来,对 L(C|F,B,α ),L(F),L(B),L(α ) 建模,对于L(F),要建立的是前景颜色的概率分布,表示当前选定的F概率有多大。论文中使用一种聚类方法,来对前景的颜色分布建模。对于L(B),直接使用L(F)的定义。对于 L(α ),假设α 的分布是平均的,因此我们可以在MAP中忽略这一项。
  最后求解这个MAP问题,对于凸优化问题,可以直接使用导数为0的方式求解。由于α 会和F、B相乘,因此这个MAP问题比较难,所以论文采用两段法求解,先固定 α 求解F、B,随后固定F、B,求解 α ,迭代这个过程,直到结果比较稳定。

Learning Based Digital Matting

  随着机器学习的兴起和数据集的丰富,关于matting的工作也转为了数据驱动的思路,这里介绍半监督学习方法。其核心在于给定标记数据的情况下,预测结果不止和标记数据有关,还和未标记数据有关,更精确地说,和数据的相对位置有关。如果能建立一种α 和像素点颜色的映射,那么给定一个像素点,就能通过它的颜色来预测 α。论文两个假设:

  1. 任何未知像素的 α,是周围像素 α 的线性组合,从而我们可以将这种线性组合关系表达为矩阵的形式,注意:在这里使用了半监督学习中相对位置的概念;
  2. 假设 α 和该像素点的颜色向量呈线性相关关系;

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

Closed form matting

  封闭式表面抠图假定局部颜色分布遵循color line model,其中局部窗口内的颜色可以表示为两种颜色的线性组合。基于这个假设,Levin导出了matting Laplacian,证明了前景的alpha matte可以在没有明确估计前景和背景颜色的情况下以封闭的形式求解。从那以后,matting Laplacian被广泛地用作正则化来增强估计的alpha matte和其他应用的平滑性。该方法的优点是参数少,多数图像满足color line model的假设;不足就是假设失效的情况也是比较多的。

KNN matting

  KNN抠图属于非局部抠图,其目标是通过允许alpha值在非局部像素中传播来解决matting Laplacian的局限性。类似于closed form matting,非局部抠图也对采样的非局部像素进行了假设。它假定像素的α值可以通过具有相似外观的非局部像素的α值的加权和来描述。在非局部抠图中,相似的外观由颜色,距离和纹理相似性来定义。然而,由于非局部像素的比较,其计算非常高。KNN matting通过仅考虑高维特征空间中的前K个近邻而改善了非局部抠图。它通过仅考虑颜色和它们特征空间中的位置相似性来减少计算。优点也是参数少,易于调整;不足是定义一个通用的特征空间是困难的。

Deep Learning Methods

  笔者主要关注基于深度学习,尤其是CNN的方法实现抠图,以下是相关顶会论文的介绍,如果可能,将会持续更新。

  • 《Natural Image Matting Using Deep CNN》ECCV 2016
  • 《Deep Automatic Portrait Matting》 ECCV 2016
  • 《Deep Image Matting》CVPR 2017

Reference:
Image Matting(抠图)技术介绍:序言
天干物燥,小心抠图 —— A journey of matting

你可能感兴趣的:(抠图matting)