据我所知,Prosac算法是Ransac算法的修改版本,它根据数据点的质量进行采样。但是,我无法理解算法实现的细节。具体来说,我无法理解步骤1和步骤2中的两个“ifs”。为什么它们在算法中意味着它们的重要性?
参考:
与PROSAC匹配 - 渐进式样本共识http://cmp.felk.cvut.cz/~matas/papers/chum-prosac-cvpr05.pdf
答案 0 :(得分:0)
让我们从这里定义正在使用的变量开始。
N :样本总数。
m :几何模型的复杂度。
t :循环的迭代次数。
n * :终止长度(停止前要考虑的样本数)。
TN :该参数定义在PROSAC等于RANSAC多少个样本之后。
Tn :来自 n 个排名最高的点的平均样本数。
Tn':上限值为 Tn
第一个 if 检查您是否用尽了所有可能的样本(意味着您已经采样了 Tn'样本)。因此,为避免再次采样已采样的样本,请增加考虑的点数。如果 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 个点点排名。