参考文献:
Accelerated Hypothesis Generation for Multi-structure Robust Fitting
APAP中的采样算法不同于opencv的RANSAC算法。
假设Input:
{
x
i
}
i
=
1
N
\{x_i\}_{i=1}^N
{xi}i=1N代表输入的N组数据,由N组数据随机采样生成了M个模型
θ
1
,
θ
2
,
.
.
.
θ
M
{\theta_1,\theta_2,...\theta_M}
θ1,θ2,...θM,对于每一个个输入数据
x
i
x_i
xi,我们计算模型的残差得到该模型的分数
r
(
i
)
=
[
r
1
(
i
)
,
r
2
(
i
)
.
.
.
r
M
(
i
)
]
r^{(i)}=[r_1^{(i)},r_2^{(i)}...r_M^{(i)}]
r(i)=[r1(i),r2(i)...rM(i)],对这M个模型的残差评分进行排序,产生
a
i
=
[
a
1
(
i
)
,
a
2
(
i
)
,
.
.
.
a
M
(
i
)
]
a^{i}=[a^{(i)}_1,a^{(i)}_2,...a^{(i)}_M]
ai=[a1(i),a2(i),...aM(i)]。
其中
a
i
a_i
ai代表排序后索引值即
r
a
p
(
i
)
(
i
)
<
r
a
q
(
i
)
(
i
)
当
p
<
q
时
r_{a^{(i)}_p}^{(i)}<r_{a^{(i)}_q}^{(i)} 当p<q时
rap(i)(i)<raq(i)(i)当p<q时,即评分由小到大排列的索引序列。如果假设模型的残差越低,排名越高代表这个模型可能是该点的最终模型。
对于两组数据 x i , x j x_i,x_j xi,xj产生的两个模型的索引 a ( i ) 和 a ( j ) a^{(i)}和a^{(j)} a(i)和a(j),它们如何来自同一个模型的内层的话,这于 x i , x j x_i,x_j xi,xj是否存在同一个模型,是与该模型有较高的关键点匹配分数无关。
我们假设
a
1
:
h
(
i
)
代
表
a
(
i
)
中
1
−
h
个
元
素
组
成
的
向
量
a^{(i)}_{1:h}代表a^{(i)}中1-h个元素组成的向量
a1:h(i)代表a(i)中1−h个元素组成的向量,于是我们定义一下函数“intersection”,在
x
i
,
x
j
x_i,x_j
xi,xj中交集为
f
(
x
i
,
x
j
)
=
1
/
h
∗
∣
a
1
:
h
(
i
)
∩
a
1
:
h
(
j
)
∣
f(x_i,x_j)=1/h*|a^{(i)}_{1:h}∩a^{(j)}_{1:h}|
f(xi,xj)=1/h∗∣a1:h(i)∩a1:h(j)∣
其中1<=h<=M 指定主导假设的个数,交集代表1:h中共有的模型假设个数
假设M=100,产生100个模型,然后每一个模型计算其符合全局点的偏差共N个,即N个点,然后每选取一个点,与剩余点计算假设模型的交集,组成NxN的交集权重矩阵K
对于一个最小子集
S
=
{
s
k
}
k
=
1
p
S=\{s_k\}^p_{k=1}
S={sk}k=1p
其中p为4 代表该模型最少的拟合个数 。
给定第一个数据
s
1
s_1
s1这个数是随机选取的 。
定义另一个点
x
j
x_j
xj其权重函数是
w
(
x
i
,
x
j
)
=
f
(
x
i
,
x
j
)
w(x_i, x_j) = f(x_i,x_j)
w(xi,xj)=f(xi,xj)。
当
x
i
x_i
xi不等于
x
j
x_j
xj即
x
j
x_j
xj和
x
i
x_i
xi的交集比例
当
w
(
x
i
,
x
m
)
>
=
w
(
x
i
,
x
n
)
w(x_i,x_m) >= w(x_i, x_n)
w(xi,xm)>=w(xi,xn) 推出来
P
(
x
m
∣
x
i
)
>
=
p
(
x
n
∣
x
1
)
P(x_m|x_i) >= p(x_n|x_1)
P(xm∣xi)>=p(xn∣x1)
输入点集合D(D=100个点对),设产生T(T=10)个单应性假设,且每个单应性假设需要4个点(p=5),交集定义的块大小为b=4,代表考虑4个单应性假设。