您的位置:首页 > Web前端

A closed form solution to natural image matting。《Computer Vision for Visual Effects》讲解笔记。

2015-03-08 15:12 639 查看
小白初涉matting界,boss便指了几篇经典论文让我自行参悟。无奈基础为负,参悟了个把月依旧门都没入。看到油管里这个视频,一种如获至宝的感觉。https://www.youtube.com/watch?v=Mvd93DdgqAY。这一集简要讲解了closed form matting,避开了生涩的高端理论,只讲最基本的原理,实在很适合入门,遂笔记分享之。

适合人群:对closed form matting 完全不入门的小白们。主要是推荐视频,笔记仅供参考(误导)。因为自己也是半懂不懂,所以没法对大家负责了。但求指正和补充。。

Part 1

首先给出了一幅龙猫图像



和它的RGB分布



发现前景的颜色分布像在一个skinny ellipse(瘦长椭圆)里。而背景因为是蓝屏,只有一种颜色,所以便是左上方那一小坨啦。



一些研究证明,在一个小窗口(譬如5*5)里,它的颜色分布(对于5*5窗口就是那25个像素的颜色分布)几乎处在一条线段上。

这就是color-line assumption。

| ColorLine assumption:

在一个小窗口内,前景颜色F和背景颜色B的分布各自满足于在一条线段上(RGB 空间)。




补充:

一个窗口的前景色对应一条线段。

空间里可使用2个端点确定一条线段。

一个窗口的前景颜色分布可由2端点确定。(对于一个窗口来说,F1F2是固定的)

背景的B1B2 同理。



此刻,别忘了抠图的关键假设:I =αF + (1-α)B ——图像是由前景色和背景色通过参数α合成的。

Part 2



再强调一下,在一个小窗口里,F1F2是固定的。这个小窗口里的所有前景颜色都分布在F1F2确定的这条线段上——只是β值的差别而已。

背景色同理。

接着提出了一个很厉害的结论:

如果颜色线性假设成立,那么我们要求的true matte(α)满足等式:

αi = aT Ii + b,
(1)

对于该窗口的所有像素来说。



有了这个结论,如果我们知道了aT、b,把已知的图像像素Ii(RGB空间下,是个3*1向量),往里轻松一代,不就能得到梦寐以求的α了!

Part3 中Rich老师开始证明这个结论。同时说明里面的aT和b是什么。

Part 3

把color line assumption代入I = αF + (1-α)B,

展开:



然后把B2移到左边,写成矩阵相乘形式:





看到木有看到木有,我们要求的α 。



移到左边



解释:原

是个3*3的矩阵,因为RGB颜色是(3*1)向量。

把它的逆矩阵


看作

。因为我们只需要求α,知道第一行r1T已足够。

最后,



知道r1T和B2就可以求α了,噢,别忘了r1T来源于



所以我们知道这些端点——F1F2B1B2,就能求α了。

Part 4

以上的理论怎么用在matting上呢?

建立一个cost function(以解决实际问题):



对于每颗像素要考虑它的α值。
对于每个窗口,则考虑它的a和b。【还记得 (1) 中的和b吗】
所以才有了上面这个2层嵌套的求和式子。一方面它考虑到了每颗像素(外层求和),另一方面对于每个像素当前所处的小窗口(内层求和),(每个窗口都有它的a、b,也就是该窗口的F1F2B1B2)。内层求和,就是通过该窗口的a、b衡量该窗口。
一个像素属于多个窗口——是propagation的基础。窗口加强了像素之间的联系。相隔较远的像素受窗口的影响小,而相隔较近的像素,因为在一个或几个有交集的窗口的里,故互相影响着。这样的设计强化了对α的限制,使之不会太过突然的剧烈的变化。

Part 5
对cost function的修改和变形



改变:加了一个regularization term:

这样做的作用是防止a太大,防止a” getting too far from a constant”.
假设a=0,意味着该窗口里的matte是恒定的(α=b)。恒定是好的。相反,a太大,α也会变得crazy起来。所以要加这个regularization term。

变形:最后可变形成这样:



注意到Gj完全取决于图像,而a,b,α都是未知的。

好啦,我们的cost function的直观意思就是在所有窗口下向量

和向量

相互贴近。

如何最小化这个cost function是一个线性最小二乘问题(a linear least squares problem)。
我们最终关心的是α。假设我们已知α,什么样的a和b能让


最小?



PSEUDOINVERSE: 虚拟反矩阵
这样,如果知道α,就知道a,b了,即a、b是α的表达式!

把optimal a、b代进去,我们得到了一个只有α的cost function:



α:特征值为0的特征向量
L称为 matting Laplacian

求最小值即对它求导。并另导数=0,求解。



matting的解便在这0特征向量中了。

坏消息是,有太多的0特征向量了。
为了限制matte,得到我们需要的结果,我们把用户输入(scribbles)加入其中。即一些像素被强制标记为α=0(背景)或α=1(前景)
实际上我们求解的是



(Scribbles:α确定为0,和α确定为1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: