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


18

我想比较两张面孔的图像。我计算了他们的LBP直方图。因此,现在我需要比较这两个直方图,并获得可以说明这些直方图相等(0-100%)的信息。

解决此任务的方法有很多,但是LBP方法的作者强调(带有局部二进制模式的面部描述:应用于面部识别。2004年),卡方距离比直方图交点和对数似然统计更好。

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

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

其中是多个bin,是第一个bin 的值,是第二个bin的值。X ÿ nxiyi

在一些研究中(例如二次方卡尺直方图距离族),我看到卡方距离的公式为:

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. 为什么这三个表达式不同?

yi是否不是与xi相同的bin的值,而是比较器分布中的值,而不是第二bin的值?
ReneBt '18年

Answers:


7

@Silverfish要求扩大PolatAlemdar的答案,没有给出答案,所以我将在这里尝试扩大答案。

为什么叫方方距离?应急表中的卡方检验是基于 这样做是为了保持这种形式,并把它作为一个距离度量。这给出了OP的第三个公式,其中xi解释为观察值,yi作为期望值,这解释了PolatAlemdar的评论“它用于离散概率分布”,例如,拟合优度检验。第三种形式不是距离函数,因为它在变量xy中是不对称的。为了进行直方图比较,我们需要一个在xy上对称的距离函数,这两种形式都可以给出。它们之间的差异只是一个常数1

χ2=cells(OiEi)2Ei
xiyixyxy,这是不重要的,只要您始终选择一种形式即可(尽管该版本具有额外的系数112如果要与非对称形式进行比较,则 2更好。请注意,这些公式与平方欧几里德距离的相似性,不是巧合,卡方距离是一种12加权的欧氏距离。因此,OP中的公式通常放在根符号下以获取距离。在下文中,我们将遵循此步骤。

卡方距离也用于对应分析。要查看与此处使用的表单的关系,令为具有R行和C列的列联表的像元。表示行总数为x + j = i x i j j,列总数为x i + = j x i j j。行之间的卡方的距离ķ由下式给出 χ 2ķ =xijRCx+j=ixijxi+=jxijl,k

χ2(l,k)=j1x+j(xljxl+xkjxk+)2
对于只有两行(两个直方图)的情况,这些将恢复OP的第一个公式(对根符号取模)。
EDIT

在下面的评论中回答问题:迈克尔·格林纳克雷(Chapman&Hall)撰写的一本关于卡方距离的长期讨论的书是《实践中的对应分析(第二版)》。这是一个很好的名称,因为它与列联表中使用的方格相似。它有什么分布?我从来没有研究过,但可能(在某些条件下)它大约具有卡方分布。证明应该与列联表类似,大多数有关对应分析的文献都没有纳入分布理论。包含一些可能与此理论相关的论文是http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0101-74382016000100023。另见/stats//search?q=%22chisquare+distance%22,以获取本网站上的其他一些相关帖子。


请问为什么您的最后一个方程称为卡方距离?这样分发吗?您能否提供一个推导或一个链接?我似乎找不到一个。
LeastSquaresWonderer

1
请参阅上面的修改。
kjetil b halvorsen

3

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

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

在含义上,我不确定任何测量算法都可以为您提供有限的范围,例如0%到100%。换句话说,您可以确定两个图像是相同的:相关值为1.0或卡方值为0.0;相关值为1.0。但是很难限制两个图像之间的差异:想象一下比较一个完全白色的图像与一个完全黑色的图像,数值要么是无穷大,要么是非数字。


2

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

其他两个用于计算直方图相似度。


1
$x$x

2
xy

0

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

p=χ小号100ñ

哪里: p 是差异百分比(0..100)。 χ 是方程式1的结果。 ñ 是直方图中的bin数。 小号 是箱中的最大可能值。

根据要求补充:

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


2
我很难看这是如何回答任何问题的。你能详细说明吗?
Laconic

这将给出(按要求,以百分比为单位)一个直方图与完整直方图有何不同。如果您从两个直方图中计算出该方程式,我们将知道彼此之间的差异,因为它用于三角剖分。
卡洛斯·巴切洛斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.