子空间学习论文笔记01:Normalized Cuts and Image Segmentation

入门了解计算机视觉的一个分支——子空间学习,刚开始当然要从读论文开始。
最开始的一篇论文当然是图像分割的一个初始论文:
Normalized Cuts and Image Segmentation
——Jianbo Shi and Jitendra Malik, Member, IEEE
这里做一下学习笔记。
这篇论文针对于图像分隔的问题提出了一个基于图的图像分隔算法,比以往利用聚类的方法更加专注于全局解的情况,并且根据图像的亮度,颜色,纹理进行划分。
1.图像分割问题类比为图的分割问题
为什么能将图像分隔的问题类比为图的分割问题呢?
如果将图像中的每一个点当成图的一个点,这些像素点与像素点之间的边权表示为两个像素点属于同一个物体的像素度(转化为亮度则表示为亮度图片亮度相减的二范数越接近0说明越相似),这样就可以用这些像素点来构成一个图了。那么,图像分割的问题也变得简单了起来,我们以二分类为基础,每次都找到一个分割点,能将图二分。最后一直能够达到我们的目标。
2.目标函数(分割准则)
那么,当构成完这个图以后,又带来一个新的问题,如何进行分割,也就是如何找到最好的那个分割点
这就从我们刚刚的权重入手了,这里补充一个知识:
Fisher准则(具体应用在LDA降维上):在分类问题上,我们想要达到的一个目标是不同类与不同类之间的距离最大(相似度最小),类间点的距离最小(相似度最大),定义一个类间散度矩阵Sw,一个类内散度矩阵Sb,就可以得到一下的目标函数:

minJ(W)=WTSbWWTSwW

W表示我们的最优分隔平面,具体求解过程一般用拉格朗日乘子法转化为瑞利商问题,最后求最小特征值对应的特征向量,这里就不细说。
我们的图的分割也类似于这样的思想,因为点与点的边权代表着点与点的相似度。那么,我们要做的就是找到两个区域,其中一个区域的点到另一个区域的边权和最小,用式子表示出来就是:
cut(A,B)=uA,vBw(u,v)

w(u,v)表示点u到点v的边权,我们想要找到两个区域是cut最小。但是这样子的分类准则会带来一个问题,这两个区域的点越多cut值最大,然后我们最后会找到的区域很有可以是因为区域的点小而造成的cut小,如下图所示:
这里写图片描述
这该怎么办呢?
cut(A,B)除以一个区域总的边权和进行一个归一化不就好了。于是,就有了归一化后的Ncut目标函数:
Ncut(A,B)=cut(A,B)assoc(A,V)+cut(A,B)assoc(B,V)

assoc(A,V)代表区域A中的所有点到图中所有点的边权和,assoc(B,V)也是如此。
目标函数是求Ncut(A,B)的最小值,目标函数有了,接下来我们就来求解这个问题:
由于这个问题实际上是一个NP完全问题,我们只能求其的近似解:
这里的公式推导详细看看论文,我这里直接说推导结论
(其实是因为我推导不出来)
这里写图片描述
minxNcut(x)=minyyT(DW)yyTDy

约束条件为:
y(i){1,b}andyTD1=0

这里的1均表示向量1,W代表领接矩阵,即
W ij =w(i,j)
将每一列求和,这个数值的对角形式对应就是度矩阵D:
dij=j=1nw(i,j)

y=(1+x)b(1x)
x代表维度指标矩阵(即每一维上的数据)
如果x i =1说明点i在区域A中,等于-1则相反
这里说明一下(D-W)的矩阵刚好是拉普拉斯矩阵。
上面转化出来的目标函数刚好是广义瑞义商问题,我们利用拉格朗日乘子将约束条件变成无约束条件,得到:
(DW)y=λDy

还不够明显,再进行转化
D12(DW)D12z=λz

z=D1/2y 终于转化为特征值提取问题,接下来我们取特征值最二小对应的特征向量就是我们的想要的分割向量了,由于是对图片的像素进行求特征值,n三方的复杂度也很高。但是,由于图片所构成的矩阵多是稀疏矩阵,我们可以用Lanczos algorithm来求解。

最后,给出算法流程框架:
1.给出一个图像或者图像序列,构建权重图G并且设置连接两个点的边权值为这两个点的相似度。
2.求解 (DW)x=λDx .
3.使用特征值第二小所对应的特征向量来分割这个图。
4.如果还需要继续的分割的话,递归的分割子图。

猜你喜欢

转载自blog.csdn.net/github_33873969/article/details/79116120