matlab超出矩阵索引维度_Closed Form Matting 算法抠图以及优化(2)——拉普拉斯矩阵...

8c5a656c0696283ec931033319feb968.png

本节继续上一节的讨论

sudit:Closed Form Matting 算法抠图以及优化(1)——目标函数​zhuanlan.zhihu.com
60ba67108ff960d072fad9e21fa95316.png

构建拉普拉斯矩阵

首先,我们复习下矩阵乘法的分块形式,假设矩阵

和向量
按如下分块

那么

如果我们假设
,即
是一个带状矩阵,那么就有

这让我们看到了和前面推导的目标函数形式上的相似之处

而且我们知道,
其实就是向量
的一部分,这和
的关系相当,唯一的区别是
元素的位置在
上不是连续的,但这并不重要。于是,通过这种类比,我们可以推断,存在一个矩阵
,使得

由于刚才我们假设
是带状矩阵,那么有理由相信
肯定也是带状矩阵。因为
上不是连续的,对于单个
来说,其乘法关系在全量的矩阵表示形式下如图所示,图中黑色的部分代表对应的

7916eafb5147fafd65f5ce1258091413.png

现在,我们面临着和矩阵乘法分块相反的问题,那就是把已经分块的矩阵重新拼凑成原矩阵,即组装

。这与有限元中通过单元刚度矩阵组装总体刚度矩阵的方法十分相似,说不定它们之间还存在着更深刻的联系。

在讨论如何通过
来组装
之前,我们先回顾
这两个量的物理意义,
是由每个像素的透明度组成的向量,由于图片是二维的,所以我们按横向扫描所有像素,它的具体形式为

是第
个窗口的所有像素透明度组成的向量,同样按横向扫描

其中的下标
等是
中的元素索引。这里需要注意一下,前面在定义
的时候,最后还有一个元素为 0,这里我们去掉了,因为可以证明,如果向量
的某些位等于 0,那么只需要去掉这些位,以及
中相应的的行和列,其结果是等价的

其中
是修改之后的向量和矩阵。

现在我们举个简单的例子,假设

那么按照向量矩阵乘法的要求,
中的位置分布如下

也就是说,
的元素在
中的位置与
元素的下标有关,其对应关系为

其中
中第
个元素的下标。由于不同的
可能在
上的位置重叠,我们只需要将它们相加即可,因为矩阵乘法只是简单的线性操作。

使用上述方法构造出
之后,我们便得到了关于目标函数的新的表示形式

其中,
又被称为拉普拉斯矩阵。从而,优化的目标为

根据前面我们对
的推导可以证明,
的每一个元素都是非负的,并且按照定义
的每一个元素也是非负的,这样一来,就只需要令
的每一个元素都为 0,从而使
达到极小值 0,但这显然毫无意义。

这里的问题就出在我们没有对
施加约束条件,因为,我们知道肯定有一部分
是等于 1 的(即我们要提取的前景),所以大部分抠图算法都要求使用者提供约束条件,也就是说,给出部分绝对正确的前景和背景。Trimap 图便是一种这样的约束形式。

68be02684d8994c6617f42cc57f641ca.png

23540f90b2f71bf68d3d5936455e0052.png

考虑上面第一张图,如果我们要抠取小狗的图像,那么其对应的 trimap 图如第二张图所示。其实就是把原图分割成三个部分,分别是100%背景,100%前景以及不那么确定的部分,这个不确定的部分就是我们要求解的,其余的都算约束。于是加上约束的优化目标就变成了


其中
是背景索引集合,
是前景索引集合。本节暂时到此未知,总结一下,我们首先通过对分块矩阵的乘法原理进行分析,假设出目标函数也具有类似
这样的乘法结构,然后发现了
的一部分元素,于是利用前者组装出后者,将目标函数
转换成了矩阵乘法形式,最后加入约束条件,得出了带约束的优化目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值