图像分割使用Mean Shift解释

任何人都可以请帮我理解Mean Shift分割究竟是如何工作的?

这是我刚刚制作的一个8x8matrix

103 103 103 103 103 103 106 104 103 147 147 153 147 156 153 104 107 153 153 153 153 153 153 107 103 153 147 96 98 153 153 104 107 156 153 97 96 147 153 107 103 153 153 147 156 153 153 101 103 156 153 147 147 153 153 104 103 103 107 104 103 106 103 107 

使用上面的matrix可以解释Mean Shift分割如何分离3个不同的数字水平?

基础知识第一:

Mean Shift分割是局部均匀化技术,对于减弱局部化对象中的阴影或色调差异非常有用。 一个例子比许多单词更好:

在这里输入图像说明

动作: 用范围-r邻域内的像素均值replace每个像素,其值在距离d内。

Mean Shift通常需要3个input:

  1. 用于测量像素之间距离的距离函数。 通常可以使用欧几里德距离,但是可以使用任何其他明确定义的距离函数。 曼哈顿距离有时是另一个有用的select。
  2. 半径。 该半径内的所有像素(根据上述距离测量)将被计算在内。
  3. 价值差异。 从半径r内的所有像素中,我们将只取那些在这个差值内的值来计算平均值

请注意,algorithm在边界上没有很好的定义,所以不同的实现会给你不同的结果。

我不会在这里讨论血淋淋的math细节,因为如果没有合适的math符号,StackOverflow中就不可能显示这些细节,也可能从其他地方的良好来源find它们。

让我们看看matrix的中心:

 153 153 153 153 147 96 98 153 153 97 96 147 153 153 147 156 

对于半径和距离的合理select,四个中心像素将得到97(它们的平均值)的值,并且将与相邻像素不同。

让我们在Mathematica中进行计算。 我们将显示一个颜色编码,而不是显示实际的数字,所以更容易理解正在发生的事情:

您matrix的颜色编码是:

在这里输入图像说明

那么我们采取一个合理的平均转变:

 MeanShiftFilter[a, 3, 3] 

我们得到:

在这里输入图像说明

所有中心元素相等(至97,BTW)。

您可以用Mean Shift迭代几次,试图获得更均匀的着色。 经过几次迭代后,您将达到稳定的非各向同性configuration:

在这里输入图像说明

此时,应该很清楚,在应用Mean Shift之后,您不能select多less“颜色”。 所以,让我们展示如何去做,因为这是你问题的第二部分。

您需要预先设置输出群集的数量,就像Kmeans群集一样 。

它为您的matrix运行这种方式:

 b = ClusteringComponents[a, 3] {{1, 1, 1, 1, 1, 1, 1, 1}, {1, 2, 2, 3, 2, 3, 3, 1}, {1, 3, 3, 3, 3, 3, 3, 1}, {1, 3, 2, 1, 1, 3, 3, 1}, {1, 3, 3, 1, 1, 2, 3, 1}, {1, 3, 3, 2, 3, 3, 3, 1}, {1, 3, 3, 2, 2, 3, 3, 1}, {1, 1, 1, 1, 1, 1, 1, 1}} 

要么:

在这里输入图像说明

这和我们以前的结果非常相似,但是正如你所看到的,现在我们只有三个输出层。

HTH!

一个Mean-Shift分割就像这样:

图像数据被转换成特征空间 特征空间

就你而言,你所拥有的只是强度值,所以特征空间只能是一维的。 (例如,您可以计算一些纹理特征,然后您的特征空间将是二维的 – 您将根据强度纹理进行分割)

search窗口分布在特征空间上 在这里输入图像说明

这个例子的窗口数量,窗口大小和初始位置是任意的 – 根据具体应用可以进行微调

Mean-Shift迭代:

1.)计算每个窗口内的数据样本的均值 在这里输入图像说明

2)窗户被转移到等于他们以前计算的手段的位置 在这里输入图像说明

步骤1)和2)重复进行,直至收敛,即所有窗口已经在最终位置上定位 在这里输入图像说明

结束于相同位置的窗口被合并 在这里输入图像说明

数据根据窗口遍历进行聚类 在这里输入图像说明

例如,所有被窗口遍历的数据,例如位置“2”,将形成与该位置相关联的群集。

所以,这种分割将(巧合)产生三组。 以原始图像格式查看这些组可能看起来像belisarius的答案中的最后一张照片 。 select不同的窗口大小和初始位置可能会产生不同的结果。