使用卡方距离比较两个直方图

机器算法验证 卡方检验 距离 图像处理 直方图 对应分析
2022-01-28 03:49:52

我想比较两张人脸图像。我计算了他们的 LBP 直方图。所以现在我需要比较这两个直方图并得到一些东西来说明这些直方图有多少相等(0 - 100%)。

解决此任务的方法有很多,但 LBP 方法的作者强调(Face Description with Local Binary Patterns: Application to Face Recognition. 2004)卡方距离比直方图交集和对数似然统计表现更好。

作者还展示了卡方距离的公式:

i=1n(xiyi)2(xi+yi)

其中是 bin 的数量,是第一个 bin 的值,是第二个 bin 的值。nxiyi

在一些研究中(例如 The Quadratic-Chi Histogram Distance Family)我看到卡方距离的公式是:

12i=1n(xiyi)2(xi+yi)

还有http://www.itl.nist.gov/div898/handbook/eda/section3/eda35f.htm我看到卡方距离的公式是:

i=1n(xiyi)2yi

我坚持了下来。我有几个问题:

  1. 我应该使用什么表达方式?
  2. 我应该如何解释差异的结果?我知道等于 0 的差异意味着两个直方图相等,但是我怎么知道两个直方图何时完全不同?我需要使用卡方表吗?还是我需要使用阈值?基本上我想将差异映射到百分比。
  3. 为什么这三种表达方式不同?
4个回答

@Silverfish 要求对 PolatAlemdar 的答案进行扩展,但没有给出,所以我将在此处尝试对其进行扩展。

为什么叫卡方距离?列联表的卡方检验基于 所以想法是保持这种形式并将其用作距离测量。这给出了 OP 的第三个公式,被解释为观察值,被解释为期望值,这解释了 PolatAlemdar 的评论“它用于离散概率分布”,例如在拟合优度测试中。这第三种形式不是距离函数,因为它在变量中是不对称的。对于直方图比较,我们需要一个在

χ2=cells(OiEi)2Ei
xiyixyxy,前两种形式给出了这个。它们之间的区别只是一个常数因子,只要您始终选择一种形式,这并不重要(尽管如果您想与不对称形式进行比较,注意这些公式与平方欧式距离的相似性,即不是巧合,卡方距离是一种加权欧式距离。因此,OP 中的公式通常放在根号下以获得距离下面我们就按照这个来。1212

卡方距离也用于对应分析。要查看与此处使用的表格的关系,让行和列的列联表的单元格将行总数表示为,将列总数表示为之间的卡方距离由 对于只有两行(两个直方图)的情况,这些恢复了 OP 的第一个公式(以根符号为模)。xijRCx+j=ixijxi+=jxijl,k

χ2(l,k)=j1x+j(xljxl+xkjxk+)2

EDIT

在下面的评论中回答问题:一本对卡方距离进行了长时间讨论的书是 Michael Greenacre (Chapman & Hall) 的“CORRESPONDENCE ANALYSIS in PRACTICE (Second Edition)”。这是一个成熟的名称,因为它与列联表使用的 chisquare 相似。它有什么分布?我从来没有研究过,但可能(在某些条件下......)它大约会有一些卡方分布。证明应该类似于列联表,大多数关于对应分析的文献都没有进入分布理论。一篇具有一些可能相关的理论的论文是ALTERNATIVE METHODS TO MULTIPLE CORRESPONDENCE ANALYSIS IN RECONSTRUCTION THE RELEVANT INFORMATION IN A BURT'S TABLE对于本网站上的其他一些相关帖子。

我发现这个链接非常有用: http ://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html

我不太清楚为什么,但 OpenCV 使用您列出的第三个公式进行卡方直方图比较。

就含义而言,我不确定任何测量算法会给你一个有界的范围,比如 0% 到 100%。换句话说,您可以确定两张图像是相同的:相关值为 1.0 或卡方值为 0.0;但是很难对两张图像的差异进行限制:想象比较一张全白图像和一张全黑图像,数值要么是无穷大,要么可能是非数字。

事实上,你可以使用任何你认为对你的情况正确的东西。最后一个不同。它用于离散概率分布,因为如果交换 ,最后一个将是对称的。xy

另外两个用于计算直方图相似度。

根据 OP 的要求,百分比值(对于等式 1):

p=χS100N

其中: 是差异百分比 (0..100)。 是等式 1 的结果 是直方图中的 bin 数量。 是 bin 中的最大可能值。pχNS

按要求补充:

计算这个方程可以得到与完整直方图的差异百分比。计算这两个直方图,然后从另一个中减去一个,可以得到百分比差异。