单应矩阵和具有较少关键点的图像变换

时间:2014-04-03 08:27:20

标签: c++ c opencv homography

当用较少数量的匹配关键点(> 4)计算具有RANSAC的单应性矩阵时,具有warpPerspertive的变换图像以某种方式变形或倾斜。当相同的图像用于更多数量的匹配键值时,结果是好的。我看到了类似的问题here,但仍未解决。

理论上我们只需要4个匹配的关键点,但在实际上它为什么不起作用?任何人都可以解释或提供一些论文来解释背后的原因。

由于

1 个答案:

答案 0 :(得分:1)

问题的一个重要部分是我们在图像中的精度有限。许多算法利用子像素精度,但由于各种原因很难找到确切的位置。只有少数是通过将场景离散化为像素,图像分辨率差异,相机传感器缺陷和特性,灯光变化等而丢失视觉信息。

考虑1D案例。假设我们有两个点应该放在确切的位置0和20.5,而是在0和20处找到。这是2.5%的误差。如果这些点用于变换大小为500的1D图像,则一些像素可以偏离12.5像素。这些错误在远离我们发现的对应关系的图像部分中具有非常大的影响。这称为测量误差

显然,如果我们有一个不良信件,那么单应性就会很糟糕。这些不良匹配称为分类错误。在实践中,我们不能指望使用任何OpenCV点描述符生成的任何四个匹配是完全正确的。我们可以(取决于场景和设置)指望许多点接近正确。

通过Fishler和Bolles看看随机样本共识:模型拟合与图像分析和自动制图应用的范例。它描述了一种类似于OpenCV中的RANSAC的算法。它简要讨论了分类和测量误差的影响。它表示测量误差通常遵循正态分布,因此如果我们有许多匹配,测量误差将产生最小的影响。我们还可以找到一种方法来确定哪些匹配可能是分类错误并最小化它们的影响。