各种距离度量中的混淆:归一化互相关、归一化相关系数和巴氏系数
我对上面提到的这些距离测量方法有点困惑,不知道哪种方法适合用来匹配图像相似度。我对这些测量方法做了一些调查,这是我的结论。有没有人能告诉我,我在某些距离测量上是否有错误?
1) 标准化互相关:这个方法在处理普通图像时效果不错,对于旋转过的图像也能在一定程度上测量相似度,但对于亮度或对比度变化较大的图像就不太好用了。根据[维基百科]的说法,它应该能支持这些情况。此外,它对位移的图像也不支持。
2) 标准化相关系数:这个方法可以匹配旋转过的图像和亮度不同的图像,但同样对位移的图像不支持。
3) 巴氏系数:这个方法在处理旋转和位移的图像时效果很好,但对于亮度差异较大的图像,比如亮度低或对比度低的图像,它就无法检测到相似度。
我知道这些数据相似度测量方法的效果取决于你拥有的数据集类型,但有没有人能告诉我,我的测量结果是否有错误的地方?
1 个回答
这些术语都与模板匹配的不同变体有关,就像OpenCV中的matchTemplate功能一样。在这些算法中,两个图像会通过将一个图像相对于另一个图像进行移动来进行比较,然后对重叠的像素进行某种计算,最后返回一个数字。
要明白的是,在这个操作中,并没有进行旋转或大小缩放,所以这些方法并不适合处理那些已经旋转或缩放的图像。也就是说,如果你在看的是旋转或缩放过的物体,这些方法就不太合适了。
不同算法之间的主要区别在于像素是如何被比较的。基本上,越多的归一化和修正(比如平均光照、整体亮度范围等),计算的成本就越高,但结果通常会更好(尤其是在光照条件不确定的情况下)。以下是一些简单的理解方式:归一化的方法只处理经过归一化的数据,适合整体光照差异,就像房间里的灯光调高或调低一样。交叉相关是最常用的方法,因为它相对快速,并且能给出合理的结果。相关系数是相对于平均值进行比较的,因此在光照差异的情况下,这也是一个不错的选择。如果你使用的是户外图像,几乎总是应该使用归一化的方法。如果你不太在意计算时间,归一化相关系数通常是最好的选择。