规范化剪切:此代码的作用



我正在通过一些用于图像分割的规范化剪切的 MATLAB 代码,但我无法弄清楚下面的代码是做什么的:

% degrees and regularization
d = sum(abs(W),2);
dr = 0.5 * (d - sum(W,2));
d = d + offset * 2;
dr = dr + offset;
W = W + spdiags(dr,0,n,n);

offset定义为 0.5。

W是一个正方形的、稀疏的、对称的矩阵(w_ij由像素ij之间的相似性来定义)。 然后W用于求解特征值问题d^(-1/2)(D-W)d^(-1/2) x = lambda x

由于权重的定义方式,w_ij都是正数,因此dr是 0 的向量。

偏移量有什么用?他们是如何选择的?offset*2背后的原因是什么?我感觉这是为了避免在某些情况下出现一些潜在的陷阱。这些会是什么?

任何帮助将不胜感激,谢谢!

我相信你遇到了一段由Stella X Yu教授编写的代码。
事实上,当W为正时,此代码不起作用,这是 NCuts 的常见情况。
然而,在CVPR 2001的一篇论文中,Yu和Shi扩展了NCuts来处理消极的相互作用和积极的相互作用。在这些情况下,dr(r代表"排斥")起着重要作用。

到负权重,我必须说,我个人不同意余和石的做法。
我坚信,当存在斥力信息时,相关聚类是一个比扩展NCuts目标更好的目标函数。我用负权重进行的一些图像分割实验结果表明,相关聚类目标优于扩展NCuts。

相关内容

最新更新