很多公式和图传起来比较麻烦,其实这是一篇论文(仅参考)

图像和视频抠图(Matting)技术可以分成自动和半自动;根据背景的先验知识,又有蓝屏背景,已知背景,和自然背景扣图。报告介绍了自然背景下的半自动扣图,以及能获得类似结果的技术,如Snapping。其中我实现了Bayesian Matting。

Image Matting是将图像的背景和前景分离的技术,广泛用于图像合成和影视特技制作中。最早的技术在如蓝色绿色等单色背景下将前景物体分离,之后通过已知自然背景包含和剔除前景物体的两幅图像求解,类似的是同一个前景物体在多个背景下的多幅图像,最新的技术都是处理自然背景的单幅图像的半自动学习方法,包括将Image Matting的技术应用到视频,可以将运动的物体抠出,并合成到任意场景中。报告主要介绍半自动学习技术。

所谓半自动,是因为实现用户必须在图像上预先指定三个区域(Trimap):背景(黑色)、前景(白色)、未知区域(灰色),图1(b)。根据已知确定的前景背景,半自动技术才能一边学习一边求解。当然也有其它的交互方式,不一定需要这么详致的信息,在2.3和2.4种都是特殊的更为简化的交互。

Matting一般基于公式1,C为未知点的颜色, 是透明度,B是背景色,F是前景色:

Bayesian Matting (BM)定义一个Bayesian框架来公式化Matting的参数,并求解一个最大后验问题。BM的改进还在于,通过滑动的窗口,将已经计算出来的未知区域也作为样本数据,这样在过渡区域获得更好的效果。BM的记过比之前所有的方法都要好。

2.1.   Poisson Matting [2] (Siggraph 2004)

Poisson Matting(PM)是在图像的亮度梯度场上求解一个泊松方程,确定 。PM首先在全局上求解,得到的结果通过多种局部滤波方式选择性的改进。由于给了用户更多的交互手段,处理复杂的场景比BM更加稳定

2.2.1泊松方程

将公式1表示为公式11,对公式11两边求偏导数得到公式12。左侧对应的就是输入图像的亮度梯度,只是估计值。假定背景和前景都是比较光滑的,那么项 近似为零,公式12变换成公式13,这对 的梯度估计,PM就是在这个梯度场上解出 。

相应的泊松方程是公式14,是拉普拉斯算子,div是散度运算。其狄利克雷边界条件 定义如公式15,其中代表未知区域的外边界,前景,背景,如图2(a)。

图2

2.2.2全局求解

这也是一个迭代优化,有三个步骤:

1)       初始化(F-B)项,因为F和B未知,分别近似为在 中最邻近的像素。

2)       计算 ,求解公式14。

3)       F,B优化,使,即把几乎全部是前景色的像素加入到 ;类似的,。然后将 中的F,B更新到在 和 与之最近的像素颜色。

重复步骤2,3,直到 的变化足够小或 和 为空。

2.2.3局部优化

局部优化事实上在全局求解结果不令人满意的区域加入用户的交互,使得对 梯度的估计更加准确,同时加入全局求解中被忽略的 项,如图2(b)区域 。此时的边界条件是公式16,

2.1.   GrabCut-Interactive Foreground Extraction using Iterated Graph Cuts [3](Siggraph 2004)

GrabCut与上诉两种Matting不太一样,首先是在先验知识的获取上,只需要用户在前景物体周围画一个方框;其次,GrabCut分成两个步骤,一是前景背景分割,二在膨胀的边界上在真正的Matting,平滑过渡。GrabCut在对比度较低的边界能获得比以往技术更好的结果,但是并不能处理复杂的情况,比如大面积的交错毛发,这是因为第一步的分割不能在这些区域获得好结果。

2.3.1 数据模型

GrabCut的数据模型建立在GraphCut的基础上,只是用了一个高斯混合模型(Gaussian Mixture Model)代替原先的直方图,与Bayesian Framework类似。

对于输入图像z = (z1,…,zn,…,zN),透明值表示成 =( ,…, ),,若是强分割,,0表示背景,1是前景。GrabCut附加了一个向量k = (k1,…,kn,…,kN), 到图像z,代表来自背景或前景的一个GMM。于是,定义Gibbs能量:

能量E包含了数据项和平滑项。数据项U(公式18)定义了 的分布与输入z的匹配程度,其中。 是一个高斯概率分布, 是混合权系数;通过对数函数将乘法和指数运算转化成加减法,全部展开为公式19。 分别是高斯分布的均值和协方差矩阵。

于是,公式19相关的所有参数:

 于是,我们要估计 ,通过动态规划最小化以下Gibbs能量:

 最后,估计的前景色与已知的前景色比较,将差异最小的复制到当前区域,进一步保证平滑。

2.4.1 GraphCut图像分割

图像被看成一个图, , 是所有的节点, 是连接相邻节点的边。图像分割可以当作一个二元标记问题,每一个 ,有唯一的一个 {前景为1,背景为0}与之对应。所有的 集合X可以通过最小化Gibbs能量E(X)获得:

同样的,根据用户画的曲线,我们有前景节点集F和背景节点B,未知节点集U。首先用K-Mean方法将F,B的节点聚类,计算每一个类的平均颜色, 代表所有前景类的平均颜色集合,背景类是 。计算每一个节点i到每一个前景类的最小距离,和相应的背景距离 ,定义公式28:

前两组等式保证定义与用户输入一致,第三组等式意味着与前背景的颜色相近度决定着未知点的标记。

E2定义为与梯度相关的一个函数:

E2的作用是减少在颜色相近的像素之间,存在标记变化的可能,即使其只发生在边界上。

上述作用于像素的GraphCut因其效率并不适合实时交互。于是[4]在输入图像上进行预先作了过分割,然后把每一块当作一个像素来看待,颜色取均值,速度提升了10倍。

一、        References

[1] Chuang, Y.-Y., Curless, B., Salesin, D. H., Szeliski, R. 2001. A bayesian approach to digital matting. In Proceedings of CVPR 2001, Vol. II, 264-271.

[2] Jian Sun, Jiaya Jia, Chi-Keung Tang and Heung-Yeung Shum. Poisson Matting.In Proceedings of ACM SIGGRAPH 2004, Vol 23, No. 3, April 2004.

[3] ROTHER, C., BLAKE, A., AND KOLMOGOROV, V. 2004. Grabcut - interactive foreground

extraction using iterated graph cuts. In Proceedings of ACM SIGGRAPH 2004.

[4] Yin Li, Jian Sun, Chi-Keung Tang, Heung-Yeung Shum, 2004, Lazy Snapping, In Proceedings of ACM SIGGRAPH 2004.

paper 117:image matting 数字抠图的更多相关文章

  1. paper 116:自然图像抠图/视频抠像技术梳理(image matting, video matting)

    1. Bayesian Matting, Chuang, CVPR 2001.http://grail.cs.washington.edu/projects/digital-matting/paper ...

  2. Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...

  3. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  4. LearnPython_week3

    函数说明 1 # -*- coding:utf-8 -*- 2 # Author:Wong Du 3 4 5 ###函数, 6 # 能避免代码重复, 7 # 方便代码修改等操作 8 def wong( ...

  5. 图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting

    一.序言   陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的.除了利用和Photoshop中的魔棒一样的技术或者 ...

  6. paper 108:系统学习数字图像处理之图像复原与重建

    首先,必须注意这里所限制的处理条件. 关于图像退化/复原模型 退化的图像是由成像系统的退化加上额外的噪声形成的. 1.只考虑噪声引起的退化 噪声模型,包含于空间不相关和相关两种,除了空间周期噪声,这里 ...

  7. paper 156:专家主页汇总-计算机视觉-computer vision

    持续更新ing~ all *.files come from the author:http://www.cnblogs.com/findumars/p/5009003.html 1 牛人Homepa ...

  8. paper 61:计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接

    转载出处:blog.csdn.net/carson2005 以下链接是本人整理的关于计算机视觉(ComputerVision, CV)相关领域的网站链接,其中有CV牛人的主页,CV研究小组的主页,CV ...

  9. paper 27 :图像/视觉显著性检测技术发展情况梳理(Saliency Detection、Visual Attention)

    1. 早期C. Koch与S. Ullman的研究工作. 他们提出了非常有影响力的生物启发模型. C. Koch and S. Ullman . Shifts in selective visual ...

随机推荐

  1. 【BZOJ】3714: [PA2014]Kuglarz

    题意 \(n(1 \le n \le 2000)\)个数每个数是\(0\)或\(1\),现在可以花费\(c_{i, j}\)知道\([i, j]\)的奇偶性,问将所有数都找出来的最小花费. 分析 如果 ...

  2. 什么是BFC?(转载)

    在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很 ...

  3. CSS居中布局总结【转】

    居中布局 <div class="parent"> <div class="child">demo</div> </d ...

  4. *HDU3367 最小生成树

    Pseudoforest Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  5. Junit测试 - Spring的配置

    第一种: @ContextConfiguration(locations = {"classpath*:/spring-core.xml"}) public class UserM ...

  6. WPF中UserControl和DataTemplate

    最新更新: http://denghejun.github.io 前言 前言总是留给我说一些无关主题的言论,WPF作为全新Microsoft桌面或web应用程序显示技术框架, 从08年开始,一直到现在 ...

  7. MySQL 事务

    MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成 ...

  8. LruCache为GridView异步加载大量网络图片

    MainActivity如下: import android.os.Bundle; import android.widget.GridView; import android.app.Activit ...

  9. 2016总结 wjwdive

    2016 成长:收获最大的,学会了耐心,学会了宽容,学会了不强求.一念放下,万般自在.我真的是晚熟啊 ^_^! . 读书:<小王子>.<了不起的盖茨比>.<和任何人都聊得 ...

  10. mysql求最大第二,最大第三个数

    题目是这样的: 集团有多个部门,部门下有多个员工,求每个部门绩效排名第二的人员 sql语句是这样的 SELECT dep, MAX(score) FROM zx WHERE score NOT IN ...