比较特征提取器(或比较对齐的图像)

时间:2019-04-14 20:15:45

标签: python opencv computer-vision

我想比较ORB,SIFT,BRISK,AKAZE等,以找出最适合我的特定图像集的图像。我对图像的最终对齐很感兴趣。

有标准的方法吗?

我正在考虑这种解决方案:采用每种算法,提取特征,计算单应性并转换图像。

现在,我需要检查哪个变形图像更接近目标模板。

也许我可以对目标模板和变换后的图像重复该过程,并寻找最接近于身份的单应性矩阵,但是我不确定如何准确地计算出这种接近度。我不确定应该使用哪种算法进行检查,我想应该是固定的。

或者我可以使用感知差异哈希(dHash)在图像之间进行一些像素级比较。但是我怀疑下面的汉明距离对于将几乎相同的图像可能不是很好。

我可以模糊它们并做一个简单的减法,但是听起来很弱。

谢谢您的建议。

编辑:我有数千张图像要测试。这些是真实世界的图片。图像是不同类型的文档,其中一些具有很多图形,其他大多数是几何图形。我大约有30种不同的模板。我怀疑不同的模板在不同的算法下效果最佳(我事先知道模板,所以我可以选择最好的模板)。

现在,我使用cv2.matchTemplate在转换后的图像中找到一些参考色块,并将它们的位置与参考色块进行比较。它可以工作,但是我想对此进行改进。

1 个答案:

答案 0 :(得分:0)

从您的问题来看,似乎任务不是要比较特征提取器本身,而是要找出哪种类型的特征提取器可以实现最佳对齐。

为此,您需要做两件事:

  • 一种使用来自不同提取器的特征进行对齐的方法
  • 一种检查对齐方式准确性的方法

您建议的算法是进行对齐的好方法。要检查准确性,您需要知道什么是好的对齐方式。

您可以从已知的对齐方式开始。知道两个图像之间对齐的最简单方法是您自己进行逆运算。例如,从一张图像开始,将其旋转一定量,平移/裁剪/缩放或组合所有这些操作。知道如何获取图像后,就可以获得理想的对齐方式(撤消操作的对齐方式)。

然后,具有理想的对齐方式和算法生成的对齐方式,您可以使用一个度量标准来评估其准确性,具体取决于您对“良好对齐方式”的定义。