背景
我正在研究一种自下而上的图像分割方法,其中我首先将图像分割成小区域/超像素/超体素然后我想基于某些迭代地合并相邻的过分割区域标准。我一直在玩的一个标准是测量这两个区域在外观上的相似程度。为了量化一个区域的外观,我使用了几种方法 - 强度统计,纹理特征等。我将我为一个区域计算的所有特征都集成到一个长特征向量中。
问题:
给定两个相邻的过分割区域R1和R2,让F1和F2为相应的特征向量。我的问题如下:
- 量化F1和F2之间相似性的好指标是什么?
- 在量化与度量的相似性之前,如何最好地规范化F1和F2? (使用任何监督的规范化方法都是不可行的,因为我不希望我的算法与一组图像相关联)
我心中的解决方案:
相似度(R1,R2)= dot_product(F1 / norm(F1),F2 / norm(F2))
总之,我首先将F1和F2标准化为单位向量,然后使用两个向量之间的点积作为相似度量。
我想知道是否有更好的方法来规范化它们并将它们与指标进行比较。如果社区能够指出一些参考文献并写出为什么其他东西比我正在使用的相似性度量更好的原因,我会很高兴。
答案 0 :(得分:4)
最先进的图像分割算法使用 条件随机字段 而不是 Superpixels (IMO {{3}算法是最好的选择)。这种类型的算法在对每个超像素进行分类的同时捕获相邻超像素之间的关系(通常使用 SSVM )。
对于超像素分类,您通常会为每个元素收集一系列功能,例如SLIC,直方图或您认为可能有用的任何功能。
有很多论文描述了这个过程,在这里你有一些我感兴趣的文章:
但是,处理CRF的库或软件并不多。您可以找到最好的Figure-ground segmentation using a hierarchical conditional random fields。
答案 1 :(得分:1)
我将我为区域计算的所有特征都集成到一个长特征向量中。 [...]
量化F1和F2之间相似性的好指标是什么? [...]
如何最好地规范F1和F2?
tl; dr :使用TF-IDF所述的here评分(参见离散方法,幻灯片18-35)。< / p>
有一个(相当古老的)CBIR引擎名为GIFT(a.k.a GNU图像查找工具),它精确地遵循这种方法来计算图像之间的相似性。
GIFT真正令人感兴趣的是它将文本检索权利的技术应用于CBIR - 这在某种程度上已成为经典方法(参见A Text Retrieval Approach to Object Matching in Videos })。
在实践中,GIFT提取大量的局部和全局颜色和纹理低级特征,其中每个单独的特征(例如,直方图中的第i种颜色的量)可以被认为是视觉词< / EM>:
因此,对于任何输入图像,GIFT都能够提取87,446维特征向量F
,请记住,某个要素被视为存在(具有特定频率F[i]
)或不存在在图像中(F[i] = 0
)。
然后,技巧在于首先将每个图像(此处为每个区域)索引到inverted file以进行有效查询。在第二步(查询时间)中,您可以自由地将每个区域用作查询图像。
在查询时,引擎使用经典的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以来,内部事情变得更加复杂:
GIFT非常有效,所以我很确定你可以在那里找到有趣的想法。当然,如果没有性能限制,你可以避免使用倒排索引。
答案 2 :(得分:0)
只是想指出在计算余弦相似度(即点积)之前,你真的不需要从F1或F2创建单位向量。这是因为F1 / norm(F1)将明确地将每个单位向量用于方向比较。
矢量比较的其他指标包括欧几里德距离,曼哈顿距离或马哈拉诺比斯距离。最后一个可能在您的方案中不太适用。请阅读维基百科了解更多信息。
我自己曾多次争论哪一个更好选择,欧几里德或余弦。请注意,任一指标的使用情境都是主观的。如果在欧几里德空间中,您只想测量两个点是否对齐,余弦测量是有意义的。如果你想要明确的距离度量,欧几里得更好。