我有一组灰度图像,这些图像被分解为超像素。每个超像素在这些图像中都有一个介于[0-1]范围内的标签。你可以在下方看到一张示例图像。
这里的挑战是:我希望空间上(局部)相邻的超像素具有一致的标签(数值相近)。
我对平滑局部标签有一定的兴趣,但不希望像一些同事建议的那样应用高斯平滑函数或其他方法。我还听说过条件随机场(CRF)。这有帮助吗?
回答:
我对平滑局部标签有一定的兴趣,但不希望像一些同事建议的那样应用高斯平滑函数或其他方法。
为什么这样呢?为什么你不考虑同事的有益建议,他们实际上是正确的。应用平滑函数是最合理的做法。
我还听说过条件随机场(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------------------------- - --------------------------------------------接近当前 常数以 接近邻居值 值 加权每一部分
你可以使用许多技术来解决上述优化问题,例如通过 scipy.optimize.minimize
模块。