如何使超像素的标签在灰度图中局部一致?

时间:2015-11-08 15:05:01

标签: image-processing machine-learning computer-vision post-processing

我将一堆灰度图像分解成超像素。这些图像中的每个超像素都具有[0-1]范围内的标签。您可以在下面看到一个图像样本。

以下是挑战:我希望空间(本地)相邻超像素具有一致的标签(接近值)。

我对平滑局部标签感兴趣,但不想像其他同事所建议的那样使用高斯平滑函数或其他任何东西。我也听说过条件随机场(CRF)。有用吗?

欢迎提出任何建议。 enter image description here

2 个答案:

答案 0 :(得分:1)

  

我对平滑局部标签感兴趣,但不想像其他同事所建议的那样使用高斯平滑函数或其他任何东西。

那是为什么?为什么你不考虑你的同事的有用建议,实际上正确。应用平滑函数是最合理的方法。

  

我也听说过条件随机场(CRF)。有用吗?

这也表明,您应该选择同事建议,因为CRF与您的问题无关。 CRF是一个准确的分类器,序列分类器,需要标记的示例来学习并与所提供的设置无关。

什么是典型方法?

  • 你的同事提出的确切建议,你应该定义一个平滑函数并将其应用到你的函数值(我不会使用术语“标签”,因为它是错误的,你确实有[0,1]中的值,连续值,“标签”表示机器学习中的分类变量)及其邻域。
  • 另一种方法是定义一些优化问题,其中您当前的值分配是一个目标,第二个是“接近”,例如:

我们假设您的点数为{(x_i, y_i)}_{i=1}^N,而n(x)会返回x的相邻点的索引。

因此,您试图找到{a_i}_{i=1}^N,以便最小化

SUM_{i=1}^N (y_i - a_i)^2 + C * SUM_{i=1}^N SUM_{j \in n(x_i)} (a_i - a_j)^2
-------------------------   -   --------------------------------------------
closeness to current   constant to      closeness to neighbouring values
       values         weight each part

您可以使用许多技术解决上述优化问题,例如通过scipy.optimize.minimize模块。

答案 1 :(得分:0)

我不确定您的请求是否有意义。

对附近的超像素具有接近的标签值是微不足道的:取一些(X,Y)的平滑函数,如常数或仿射,取值范围为[0,1],并将函数值赋值给以超像素为中心在(X,Y)。

您也可以从飞机上的任何一点获取距离函数。

但这没有用,因为它与图像内容无关。