Relocalizatoin은 Drift 현상을 피하기 위해서 필요한 단계이다.

Loop detection은 library를 사용한다.

2단계에 걸쳐 Outlier을 제거한다.

  1. 2-D-2-D outlier rejection: Fundamental matrix test with RANSAC
  2. 3-D-2-D outlier rehection: PnP test with RANSAC

Outlier를 제거한 이후에도 유사도가 높다면 Loop detection을 성공하고 Relocalization을 수행한다.

-Relocalization

현재의 Sliding window를 이전에 계산했던 Pose들과 Aligin 시키는 일을 말한다. 따라서 이전의 계산한 Pose는 상수로 두고 sliding window 방식의 optimizaiton을 수행한다. 최적화를 수행하는 것은 VIO 파트와 비슷하지만 추가로 Loop clousre frame에 대한 term이 추가 된 것이라고 생각하면 된다.

$$ \begin{align} \min {\mathcal {X}} \left\lbrace \left\Vert \mathbf {r}p - \mathbf {H}p \mathcal {X} \right\Vert ^2 + \sum {k \in \mathcal {B}} \left\Vert \mathbf {r}{\mathcal {B}}(\hat{\mathbf {z}}^{b_k}{b{k+1}}, \mathcal {X}) \right\Vert {\mathbf {P}^{b_k}{b{k+1}}}^2 \right. \\ \left. + \sum {(l,j) \in \mathcal {C}} \rho (\left\Vert \mathbf {r}{\mathcal {C}}(\hat{\mathbf {z}}^{c_j}_l, \mathcal {X}) \right\Vert _{\mathbf {P}^{c_j}_l}^2) \right. \\ \left. + \underbrace{ {\sum} {(l,v) \in \mathcal {L}} \rho (\left\Vert \mathbf {r}{\mathcal {C}}(\hat{\mathbf {z}}^{v}_l, \mathcal {X}, \hat{\mathbf {q}}^w_v, \hat{\mathbf {p}}^w_v) \right\Vert _{\mathbf {P}^{c_v}l}^2) }{\text{reprojection error in the loop-closure frame}} \right\rbrace \tag{18} \end{align} $$