我正在浏览一些MATLAB code for Normalized Cut for image segmentation,我无法弄清楚以下代码的作用:
% 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
由像素i
和j
之间的相似度定义。
然后使用W
来解决特征值问题d^(-1/2)(D-W)d^(-1/2) x = \lambda x
由于权重的定义方式,w_ij
都是正数,因此dr
是0的向量。
有什么补偿?他们是如何选择的? offset*2
背后的原因是什么?我觉得这是为了避免在某些情况下出现一些潜在的陷阱。这些可能是什么?
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
我相信您遇到了Prof Stella X Yu撰写的一段代码
实际上,当W
为正数时,此代码无效,这是NCuts的常见情况
然而,在CVPR 2001 paper Yu和Shi扩展NCuts来处理否定交互以及正面交互。在这些情况下,dr
(r代表“排斥”)起着重要作用。
说到负面权重,我必须说,我个人不同意于和施的方法 我坚信,当存在排斥信息时,Correlation Clustering是一个比扩展的NCuts目标更好的目标函数。我用负权重进行的一些图像分割实验结果表明,相关聚类目标优于扩展NCut。