2

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

算法

参考:

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

4

1 回答 1

2

让我们从在这里定义变量开始。

变量

N:样本总数。

m:几何模型的复杂度。

t:循环的迭代次数。

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

TN:定义在多少个样本 PROSAC 与 RANSAC 等效之后的参数。

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

Tn' : Tn的上限值

第一部分

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

第二部分

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

当我们考虑n*排名靠前的点时,Tn'将停止增长,并且t最终将变得更大或等于Tn'

因此,只要t不超过Tn',我们就会对 PROSAC 方式进行采样(点nm-1点从顶部n-1开始。

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

于 2019-12-24T18:56:25.277 回答