仿射变换和 RANSAC:如何计算内点数?

Affine transformation and RANSAC: How to compute the number of inliers?

我有 2 张图片,我正在使用 SIFT 查找匹配的特征。 我通过阈值选择了最佳匹配。 这样做之后,我正在尝试使用RANSAC来高效地确定两张图片之间的仿射变换矩阵。

根据我对流程的理解(以及互联网上的十亿张幻灯片):

  1. 选择 3 个随机对应关系(计算仿射变换所需的最小值)。

  2. 估计A.

  3. 计数内点。

对 N 次试验执行此操作并选择产生最少内点的 A。

如何具体统计内点数?

不幸的是,所有示例都侧重于回归(例如找到 2 个点并通过它们拟合一条线,然后根据一些距离进行计数。但在这种情况下,我们谈论的是 3 个对应关系和 "line"在这里没有意义。

我在某处读到我们可以使用高斯对噪声建模,但我想知道如何进行。

RANSAC 很简单。测量第二张图像中的点 "should be" 的位置(使用 3 点假设)和它所在的位置之间的距离。对于 2 个图像之间的对称性,您可能需要在两个方向上添加平方误差。然后只需应用一个阈值来计算内点。

找到最佳假设后,然后您可以通过回归对其进行优化。您正在尝试最小化图像坐标中的平方误差(仅适用于内点)。对称地做这件事听起来很棘手和非线性(另一个回答者可能会纠正我!),但如果变换非常接近相似性,我想可以通过一种方式来作弊,也可以通过独立处理第二张图像中的 x 和 y 来作弊.然后就变成了一对线性回归求变换矩阵的每一半