7

背景:

我正在研究一种自下而上的图像分割方法,首先将图像过度分割成小区域/超像素/超级体素,然后我想根据某些标准迭代地合并相邻的过度分割区域。我一直在使用的一个标准是衡量两个区域在外观上的相似程度。为了量化一个区域的外观,我使用了几种度量——强度统计、纹理特征等。我将我为一个区域计算的所有特征集中到一个长特征向量中。

问题:

给定两个相邻的过分割区域 R1 和 R2,令 F1 和 F2 为对应的特征向量。我的问题如下:

-- 量化 F1 和 F2 之间相似性的好指标是什么?

-- 在用度量量化它们的相似性之前,如何最好地标准化 F1 和 F2?(使用任何有监督的标准化方法都是不可行的,因为我不希望我的算法与一组图像相关联)

我心中的解决方案:

相似度(R1, R2) = dot_product(F1 / norm(F1), F2 / norm(F2))

换句话说,我首先将 F1 和 F2 归一化为单位向量,然后使用两个向量之间的点积作为相似性度量。

我想知道是否有更好的方法来标准化它们并将它们与指标进行比较。如果社区可以向我指出一些参考资料并写出为什么其他东西比我使用的相似性度量更好的原因,我会很高兴。

4

3 回答 3

4

最先进的图像分割算法使用超像素上的条件随机场(IMO SLIC算法是最佳选择)。这种类型的算法在对每个超像素进行分类的同时捕获相邻超像素之间的关系(通常使用SSVM)。

对于超像素分类,您通常会为它们中的每一个收集一组特征,例如SIFT 描述符、直方图或您认为可能有帮助的任何特征。

有很多论文描述了这个过程,这里有一些我觉得有趣的:

但是,处理 CRF 的库或软件并不多。你能找到的最好的就是这个博客条目

于 2013-06-20T18:03:12.900 回答
1

我将我为一个区域计算的所有特征集中到一个长特征向量中。[...]

什么是量化 F1 和 F2 之间相似性的好指标?[...]

如何最好地标准化 F1 和 F2?

tl;dr:使用此处描述的TF-IDF评分(参见离散方法,幻灯片 18-35)。


有一个(相当古老的)CBIR 引擎,称为GIFT(又名 GNU 图像查找工具),它精确地遵循这种计算图像之间相似性的方法。

GIFT 的真正有趣之处在于它将文本检索技术应用于CBIR - 在某些方面已成为一种经典方法(请参阅视频中对象匹配的文本检索方法)。

在实践中,GIFT 提取了大量的局部和全局颜色和纹理低级特征,其中每个单独的特征(例如直方图中第 i 个颜色的数量)都可以被认为是一个视觉词

  1. 全局颜色(HSV 颜色直方图):166 个 bin = 166 个视觉词
  2. 局部颜色(通过递归地将输入图像细分为子区域的颜色直方图分析):340(子区域)x 166(箱)= 56,440 个视觉词
  3. 全局纹理(Gabor 直方图):3(尺度)x 4(方向)x 10(范围)= 120 个视觉词
  4. 局部纹理(子区域网格中的 Gabor 直方图):256(子区域)x 120(箱)= 30,720 个视觉词

因此,对于任何输入图像,GIFT 都能够提取一个 87,446 维的特征向量F,记住一个特征被认为是存在(以特定频率F[i])或不存在于图像中(F[i] = 0)。

然后诀窍在于首先将每个图像(这里是每个区域)索引到一个反转文件中以进行有效查询。在第二步(查询时间)中,您可以自由地将每个区域用作查询图像。

在查询时,引擎使用经典的TF-IDF评分:

/* Sum: sum over each visual word i of the query image
 * TFquery(i): term frequency of visual word i in the query image
 * TFcandidate(i): term frequency of visual word i in the candidate image
 * CF(i): collection frequency of visual word i in the indexed database
 */
score(query, candidate) = Sum [ TFquery(i) * TFcandidate(i) * log**2(1/CF(i)) ]

自 GIFT 以来,内部情况有点复杂:

  • 通过分别关注每种低级特征(子查询 1 = 仅颜色历史,子查询 2 = 颜色块等)执行子查询并合并分数,
  • 包括特征修剪以仅评估一定百分比的特征。

GIFT 非常有效,所以我很确定你会在那里找到可以适应的有趣想法。当然,如果您没有性能限制,您可以避免使用倒排索引。

于 2013-06-21T08:47:25.903 回答
0

只是想指出,在计算余弦相似度(即点积)之前,您实际上并不需要从 F1 或 F2 创建单位向量。这是因为 F1/norm(F1) 将明确地使每个单位向量成为方向比较的单位向量。

矢量比较的其他度量包括欧几里得距离、曼哈顿距离或马氏距离。最后一个可能不太适用于您的场景。请阅读维基百科了解更多信息。

我自己已经争论过几次,关于哪个更好,欧几里得还是余弦。请注意,任一指标使用的上下文都是主观的。如果在欧几里得空间中,您只想测量两个点是否对齐,余弦测量是有意义的。如果你想要明确的距离度量,欧几里得更好。

于 2013-06-20T17:26:01.310 回答