View management for lifelong visual maps

问题描述

SLAM系统在运行是会不断创建新的视图用于全局定位和回环检测。如果视图数量不断增加,会破坏SLAM算法的实时性。为了满足终身定位的需要,本文提出了一种修剪视图的方法,来保持视图数量在限制数量以下。

去除原理

 Algorithm 1 Find views for deletion   Require: Set  V  of all the views   1: if  ∣ V ∣ ≤ M I N − VIEWS then   2: return   3:  V keep  ←  newlyCreatedViews()   4: for  v  in  ( V \ V keep  )  do   5:  score ⁡ [ v ] ← ( W 1 × r e l o c + W 2 × n − o b s − c u r m a x − o b s + W 3 × n − o b s − r u n s n − r u n s )  6: if score [ v ] >  SCORE_THRESHOLD then   7:  V keep  ← V keep  ∪ { v }  8:  V delete  ← V \ V keep   9:  sort  ( V delete  ,  score  )  # Sort by score   10:  D ← ∅  11: for  v  in  V delete   do   12:  if numNearestNeighbors  ( v , D ) <  NN.THRESHOLD   then   13:  V keep  ← V keep  ∪ { v }  14: else   15:  D ← D ∪ { v }  16:  V delete  ← V \ V keep   17: return  V delete  \begin{aligned} &\begin{array}{l} \text { Algorithm 1 Find views for deletion } \\ \hline \text { Require: Set } \mathscr{V} \text { of all the views } \\ \text { 1: if }|\mathscr{V}| \leq \mathrm{MIN}_{-} \text {VIEWS then } \\ \text { 2: return } \\ \text { 3: } \mathscr{V}_{\text {keep }} \leftarrow \text { newlyCreatedViews() } \\ \text { 4: for } v \text { in }\left(\mathscr{V} \backslash \mathscr{V}_{\text {keep }}\right) \text { do } \\ \text { 5: } \operatorname{score}[v] \leftarrow \left(W_{1} \times r e l o c+W_{2} \times \frac{n_{-} o b s_{-} c u r}{m a x_{-} o b s}+W_{3} \times \frac{n_{-} o b s_{-} r u n s}{n_{-} r u n s}\right) \\ \text { 6: if score}[ v]>\text { SCORE\_THRESHOLD then } \\ \text { 7: } \mathscr{V}_{\text {keep }} \leftarrow \mathscr{V}_{\text {keep }} \cup\{v\} \\ \text { 8: } \mathscr{V}_{\text {delete }} \leftarrow \mathscr{V} \backslash \mathscr{V}_{\text {keep }}\\ \text { 9: } \text { sort }\left(\mathscr{V}_{\text {delete }}, \text { score }\right) \text { \# Sort by score } \\ \text { 10: } D \leftarrow \varnothing \\ \text { 11: for } v \text { in } \mathscr{V}_{\text {delete }} \text { do } \\ \text { 12: } \text { if numNearestNeighbors }(v, D)<\text { NN.THRESHOLD } \\ \text { then } \\ \text { 13: } \mathscr{V}_{\text {keep }} \leftarrow \mathscr{V}_{\text {keep }} \cup\{v\} \\ \text { 14: else } \\ \text { 15: } D \leftarrow D \cup\{v\} \\ \text { 16: } \mathscr{V}_{\text {delete }} \leftarrow \mathscr{V} \backslash \mathscr{V}_{\text {keep }} \\ \text { 17: return } \mathscr{V}_{\text {delete }} \\ \hline \end{array} \end{aligned}  Algorithm 1 Find views for deletion  Require: Set V of all the views  1: if VMINVIEWS then  2: return  3: Vkeep  newlyCreatedViews()  4: for v in (V\Vkeep ) do  5: score[v](W1×reloc+W2×maxobsnobscur+W3×nrunsnobsruns) 6: if score[v]> SCORE_THRESHOLD then  7: Vkeep Vkeep {v} 8: Vdelete V\Vkeep  9:  sort (Vdelete , score ) # Sort by score  10: D 11: for v in Vdelete  do  12:  if numNearestNeighbors (v,D)< NN.THRESHOLD  then  13: Vkeep Vkeep {v} 14: else  15: DD{v} 16: Vdelete V\Vkeep  17: return Vdelete 
去除视图的代码如上, V keep  \mathscr{V}_{\text {keep }} Vkeep 为应保留的视图子集, V \mathscr{V} V为所有视图的集合。 得分超过阈值的视图会加入 V keep  \mathscr{V}_{\text {keep }} Vkeep 中。得分计算中, W 1 W_{1} W1 W 2 W_{2} W2 W 3 W_{3} W3为三个部分的权重,如果视图用于重定位, r e l o c r e l o c reloc为1,否则为0。 n − r u n s n_{-} r u n s nruns是总视图数, n − o b s − r u n s n_{-} o b s_{-} runs nobsruns是能观测到当前视图的视图数。 n − o b s − c u r n_{-} o b s_{-} c u r nobscur是当前能观测到的视图数, m a x − o b s max_{-}obs maxobs是最多观测到的视图数。 V delete \mathscr{V}_{\text {delete}} Vdelete中视图周围的视图数小于 N N . T H R E S H O L D NN.THRESHOLD NN.THRESHOLD,将该视图加回 V keep  \mathscr{V}_{\text {keep }} Vkeep 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值