K近邻抠图(KNN matting)

概念

KNN matting提出了基于KNN的拉普拉斯矩阵计算方法,通过KNN构建邻接矩阵,进而得到度矩阵和拉普拉斯矩阵,带入 α 的求解方程中。

抠图

抠图技术,把图像中一部分从其他部分分开出来。将图像分为两层,分出来那层成为前景层,图像中的其他部分称为背景层。
图像中每一点都是由前景颜色和背景颜色组合而成,其中前景颜色所占的比重称为alpha因子。颜色组合方程:

I=αF+(1α)B

I, F, B分别表示图像上一点的合成色、前景色、背景色, α 是该点的alpha值。
仅仅知道I的情况下,求解alpha,F,B,这是一个约束不足(under-constrained)问题。
文中通过假设在很小的窗口内F和B为恒定值,进而将该问题归结为求下面的约束问题(论文中提取的定理)
α=argminαLαs.t. α(i)=S(i)

其中 S 是手工标记的区域, S(i) 是S中的像素值。用下面这个公式来求解:

(L+λD)inαi=λm

K近邻抠图的主要贡献在于提出了基于KNN的拉普拉斯矩阵计算方法。
1. 特征向量计算
给定像素i的特征向量定义如下:
X(i)=(cos(h),sin(h),s,v,x,y)

其中h,s,v分别是HSV颜色空间的坐标值,(x,y)是像素i的空间坐标。
2. 内核函数计算
定义内核函数:
k(i,j)=1X(i)X(j)C

C是权值调节系数,保证 k(i,j)[0,1] , ||·||是1范数,即两向量差的绝对值之和。
求拉普拉斯矩阵:
L=DA

其中相似矩阵 Aij=k(i,j) ,对角矩阵 Dii=jAij
K近邻抠图给出了一种适合任何颜色任何维度的特征空间算法。利用Nonlocal抠图的非局部原理,通过使用K个最近邻像素来匹配非局部区域,并且提供了一个简单快速的算法来产生更高质量抠图结果,进一步利用语出共轭梯度法求解封闭形式解。

非局部原理

非局部原理的工作假设是,一个去噪像素i是由与它类似特征的像素与一个内核函数k(i,j)权重的加权和:

E[X(i)]jX(j)k(i,j)1Dik(i,j)=exp(1h2X(i)X(j)2g1h2d2ij)Di=jk(i,j)

其中 $X(i)$是像素i的特征向量, $d_{ij}$是像素i到j的距离,||·||是一个高斯范数,,h1和h2是常量。类似的得到 $\alpha$的预期值如下:
E[αi]jαjk(i,j)1DiorDiαik(i,j)Tα

其中α是由所有输入图像的α值组成的向量。
根据非局部原理,当条件分布 E[αi|X(i)=X(j)]=αj 成立时,意味着有相同特征的像素将共享同样的α值。
因此,有 DαAα , L=DA 称为集群拉普拉斯算子,基本上解决了二次最小化问题 minαAij(αiαj)2 .

步骤

  1. 特征向量计算
    给定像素i的特征向量定义如下:
    X(i)=(cos(h),sin(h),s,v,x,y)

    其中h,s,v分别是HSV颜色空间的坐标值,(x,y)是像素i的空间坐标。
  2. 内核函数计算
    定义内核函数:
    k(i,j)=1X(i)X(j)C

    C是权值调节系数,保证 k(i,j)[0,1] ,||·||是1范数,即两向量差的绝对值之和。
    求拉普拉斯矩阵:
    L=DA

    其中相似矩阵 Aij=k(i,j) ,对角矩阵 Dii=jAij
  3. 闭合形式解
    加入用户约束信息,封闭形式解的方程:
    (L+λD)inαi=λm

    其中 λ 是约束系数, m 是向量,用户对已知像素区域的标记

猜你喜欢

转载自blog.csdn.net/evillist/article/details/74781649