已知一组数据点中既包含内点又包含外点,其中内点占的比例为 p p p,且计算模型参数至少需要 k k k个数据点,要求经过RANSAC算法之后有概率 q q q的把握以上排除所有外点,那么迭代次数 n n n至少应该设定为多少?
解答:
随机选取
k
k
k个点,这
k
k
k个点都为内点的概率为
p
k
p^k
pk,那么这
k
k
k个点中至少有一个为外点的概率为
1
−
p
k
1-p^k
1−pk。
n
n
n次迭代,每次选择到的数据点都存在外点的概率为
(
1
−
p
k
)
n
(1-p^k)^n
(1−pk)n,则至少有一次选择到的都是内点的概率为
1
−
(
1
−
p
k
)
n
1-(1-p^k)^n
1−(1−pk)n,依据题意,此概率要大于等于
q
q
q,有,
1
−
(
1
−
p
k
)
n
≥
q
1-(1-p^k)^n \geq q
1−(1−pk)n≥q
1
−
q
≥
(
1
−
p
k
)
n
1-q \geq (1-p^k)^n
1−q≥(1−pk)n
两边取对数有,
l
n
(
1
−
q
)
≥
n
⋅
l
n
(
1
−
p
k
)
ln(1-q) \geq n\cdot ln(1-p^k)
ln(1−q)≥n⋅ln(1−pk)
两边同时除以
l
n
(
1
−
p
k
)
ln(1-p^k)
ln(1−pk)可得(注意两边除以一个负数,不等式要变号),
l
n
(
1
−
q
)
l
n
(
1
−
p
k
)
≤
n
\frac{ln(1-q)}{ln(1-p^k)} \leq n
ln(1−pk)ln(1−q)≤n
故迭代次数的最小值为
⌈
l
n
(
1
−
q
)
l
n
(
1
−
p
k
)
⌉
\lceil \frac{ln(1-q)}{ln(1-p^k)} \rceil
⌈ln(1−pk)ln(1−q)⌉,其中
⌈
⌉
\lceil \rceil
⌈⌉表示向上取整符号!