prosac算法实现细节,含义和重要性

时间:2017-10-19 07:09:43

标签: machine-learning computer-vision ransac

据我所知,Prosac算法是Ransac算法的修改版本,它根据数据点的质量进行采样。但是,我无法理解算法实现的细节。具体来说,我无法理解步骤1和步骤2中的两个“ifs”。为什么它们在算法中意味着它们的重要性?

algorithm

参考:

与PROSAC匹配 - 渐进式样本共识http://cmp.felk.cvut.cz/~matas/papers/chum-prosac-cvpr05.pdf

1 个答案:

答案 0 :(得分:0)

让我们从这里定义正在使用的变量开始。

变量

N :样本总数。

m :几何模型的复杂度。

t :循环的迭代次数。

n * :终止长度(停止前要考虑的样本数)。

TN :该参数定义在PROSAC等于RANSAC多少个样本之后。

Tn :来自 n 个排名最高的点的平均样本数。

Tn':上限值为 Tn

第一部分

第一个 if 检查您是否用尽了所有可能的样本(意味着您已经采样了 Tn'样本)。因此,为避免再次采样已采样的样本,请增加考虑的点数。如果 n ,则可以增加数字,这意味着您考虑的停止标准不能超过 n * 点。

第二部分

对于第二种情况,我们必须查看 Tn'关于 t 的行为。我们知道,当 t = Tn'时,我们在考虑的点集中添加了一个点。因此, Tn'将始终大于 t ,除非当我们无法采样更多点时,也就是 n = n * (首先)。

当我们考虑 n * 个排名最高的点时, Tn'将停止增长, t 最终将变得更大或等于< strong> Tn'

因此,只要 t 不超过 Tn',我们将对PROSAC方式进行采样(指向 n m -1 指向顶部 n-1

当我们至少采样了 Tn'次后,我们就像RANSAC一样,从 n * 顶部的所有点中采样了 m 个点点排名。