MILD算法流程
回环检测分为两步,第一步计算图像相速度,第二部基于相似度,使用卡尔曼滤波计算回环的置信度。
图像相似度计算
图像
I
p
I_{p}
Ip和
I
q
I_{q}
Iq之间相似度定义如下:
Φ
(
I
p
,
I
q
)
=
∑
i
=
1
∣
F
p
∣
∣
F
q
∣
ϕ
(
f
i
p
,
f
j
q
)
∣
F
p
∣
∣
F
q
∣
\Phi\left(I_{p}, I_{q}\right)=\frac{\sum_{i=1}^{\left|F_{p}\right|\left|F_{q}\right|} \phi\left(f_{i}^{p}, f_{j}^{q}\right)}{\left|F_{p}\right|\left|F_{q}\right|}
Φ(Ip,Iq)=∣Fp∣∣Fq∣∑i=1∣Fp∣∣Fq∣ϕ(fip,fjq) 其中,
F
p
F_{p}
Fp和
F
q
F_{q}
Fq是图像中特征的个数,
f
i
p
f_{i}^{p}
fip和
f
j
q
f_{j}^{q}
fjq是图像的二进制描述子,二进制描述子之间的距离使用汉明距离。便利所有图像和特征点的算法,计算代价对于大规模数据集是无法接受的。而且当前图像和先前图像中相似度高的很少,便利过程很大一部分是无效的,本文使用多索引哈希(MIH)来加速寻找的过程。
MIH的构造如上图所示,每个特征描述子分成m块,存入不同的哈希表。m足够大的情况下,两个相似的特征描述子必然在某一部分哈希表上相同。基于MIH构造的相似度如下:
Φ
′
(
I
n
,
I
k
)
=
∑
i
=
1
∣
F
n
∣
∑
f
j
k
∈
Ω
i
n
ϕ
(
f
i
n
,
f
j
k
)
∣
F
n
∣
∣
F
k
∣
\Phi^{\prime}\left(I_{n}, I_{k}\right)=\frac{\sum_{i=1}^{\left|F_{n}\right|} \sum_{f_{j}^{k} \in \Omega_{i}^{n}} \phi\left(f_{i}^{n}, f_{j}^{k}\right)}{\left|F_{n}\right|\left|F_{k}\right|}
Φ′(In,Ik)=∣Fn∣∣Fk∣∑i=1∣Fn∣∑fjk∈Ωinϕ(fin,fjk) 其中,
Ω
i
n
\Omega_{i}^{n}
Ωin表示和
f
i
n
f_{i}^{n}
fin有子哈希块相同的特征。
贝叶斯推断
基于得到的图像相似度计算回环置信度。考虑到相近帧的相似性,回环的可能性建立如下模型:
{
P
(
S
t
i
=
1
∣
S
t
i
−
2
:
i
+
2
=
1
)
=
0.9
P
(
S
t
i
=
1
∣
S
t
i
−
2
:
i
+
2
=
0
)
=
0.1
P
(
S
t
i
=
0
∣
S
t
i
−
2
:
i
+
2
=
1
)
=
0.1
P
(
S
t
i
=
0
∣
S
t
i
−
2
:
i
+
2
=
0
)
=
0.9
\left\{\begin{array}{l} P\left(S_{t}^{i}=1 | S_{t}^{i-2: i+2}=1\right)=0.9 \\ P\left(S_{t}^{i}=1 | S_{t}^{i-2: i+2}=0\right)=0.1 \\ P\left(S_{t}^{i}=0 | S_{t}^{i-2: i+2}=1\right)=0.1 \\ P\left(S_{t}^{i}=0 | S_{t}^{i-2: i+2}=0\right)=0.9 \end{array}\right.
⎩⎪⎪⎨⎪⎪⎧P(Sti=1∣Sti−2:i+2=1)=0.9P(Sti=1∣Sti−2:i+2=0)=0.1P(Sti=0∣Sti−2:i+2=1)=0.1P(Sti=0∣Sti−2:i+2=0)=0.9 其中,
S
t
i
−
2
:
i
+
2
≜
max
{
S
t
j
,
j
∈
[
i
−
2
:
i
+
2
]
}
S_{t}^{i-2: i+2} \triangleq \max \left\{S_{t}^{j}, j \in[i-2: i+2]\right\}
Sti−2:i+2≜max{Stj,j∈[i−2:i+2]}。回环的置信度如下:
B
(
k
)
=
∑
j
=
0
1
P
(
S
t
i
=
k
∣
S
t
i
−
2
:
i
+
2
=
j
)
P
(
S
t
i
−
2
:
i
+
2
=
j
)
B(k)=\sum_{j=0}^{1} P\left(S_{t}^{i}=k | S_{t}^{i-2: i+2}=j\right) P\left(S_{t}^{i-2: i+2}=j\right)
B(k)=j=0∑1P(Sti=k∣Sti−2:i+2=j)P(Sti−2:i+2=j) 回环的概率如下:
L
(
S
t
i
=
1
)
=
{
Φ
′
(
I
t
,
I
i
)
−
σ
μ
,
Φ
′
(
I
t
,
I
i
)
≤
μ
+
σ
1
,
otherwise
L\left(S_{t}^{i}=1\right)=\left\{\begin{array}{ll} \frac{\Phi^{\prime}\left(I_{t}, I_{i}\right)-\sigma}{\mu}, & \Phi^{\prime}\left(I_{t}, I_{i}\right) \leq \mu+\sigma \\ 1, & \text { otherwise } \end{array}\right.
L(Sti=1)={μΦ′(It,Ii)−σ,1,Φ′(It,Ii)≤μ+σ otherwise 其中,
μ
\mu
μ 和
σ
\sigma
σ分别是图像相似度的均值和方差。
最终的回环概率为:
P
(
S
t
i
=
1
)
=
L
(
S
t
i
=
1
)
×
B
(
1
)
∑
k
=
0
1
[
L
(
S
t
i
=
k
)
×
B
(
k
)
]
P\left(S_{t}^{i}=1\right)=\frac{L\left(S_{t}^{i}=1\right) \times B(1)}{\sum_{k=0}^{1}\left[L\left(S_{t}^{i}=k\right) \times B(k)\right]}
P(Sti=1)=∑k=01[L(Sti=k)×B(k)]L(Sti=1)×B(1)
MIH分析
在概率上计算了近似的图像相似度的影响,结论是在m=16时,可以在较小的时间复杂度下得到较好的结果。