ORB-SLAM
Summary
- π§© λ€μν νκ²½μμ μ€μκ°μΌλ‘ μλνλ λ¨μ SLAM μμ€ν
- π λͺ¨λ SLAM μμ μ λμΌν ORB νΉμ§ μ¬μ© β ν¨μ¨μ±κ³Ό μ λ’°μ± ν₯μ
- π 27 κ° μνμ€ νκ°μμ ν κΈ°μ λλΉ λ°μ΄λ μ±λ₯ μ μ¦
Related Notes
- SLAM κΈ°μ΄: RP25_L18_SLAM_Introduction - SLAM κ°λ , νλ₯ λͺ¨λΈ, λΆλ₯ 체κ³
- νΉμ§μ μκ³ λ¦¬μ¦: FAST | BRIEF | SIFT | SURF
- Visual SLAM: RP25_L25_Visual_SLAM
1. ORB-SLAM κ°μ
ORB-SLAM μ μΉ΄λ©λΌλ§μΌλ‘ SLAM μ μννλ μμ€ν μ΄λ€. λ μ΄μ μΌμ μμ΄ μ€μκ° λμνλ€.
1.1 μ ν μ°κ΅¬μ νκ³
- PTAM μ λ¨μ :
- Loop Closing λΆμ‘±
- μκ° μ°¨λ¨ μ‘°μ λ₯λ ₯ λΆμ‘±
- μ¬λμ κ°μ νμμ±
1.2 ORB-SLAM μ κΈ°μ¬
- λͺ¨λ task(tracking, mapping, relocalization, loop closing) μ κ°μ ORB features μ¬μ©
- ν¨μ¨, κ°νΈ, μ λ’°μ± ν₯μ
- GPU μμ΄ Real-time μν
- Covisibility graph1 λ‘ local area μ μ§μ€ β ν° νκ²½μμλ ν¨μ¨μ
- Essential Graph(pose graph) μ΅μ νλ‘ μ€μκ° loop closing
- μ€μκ° relocalization β tracking μ€ν¨ μ ν볡 κ°λ₯
- μ΄κΈ°ν μ μ°¨ μλν
- Keyframe culling β Map ν¬κΈ° μ μ΄, Lifelong μ΄μ κ°λ₯
2. ORB-SLAM μμ€ν ꡬ쑰

ORB-SLAM μ 3 κ°μ λ³λ ¬ μ€λ λλ‘ κ΅¬μ±λλ€:
2.1 Tracking (μΆμ μ€λ λ)
- μν : μ€μκ° μΉ΄λ©λΌ μμΉ νμ
- μλ: λ§€μ° λΉ λ¦ (30fps)
- μ²λ¦¬ κ³Όμ :
- ORB νΉμ§μ μΆμΆ
- μ΄μ νλ μ/μ§λμ λ§€μΉ
- PnP + RANSAC μΌλ‘ ν¬μ¦ μΆμ
- ν€νλ μ μ μ λ° μ λ¬
2.2 Local Mapping (μ§λ μ μ μ€λ λ)
- μν : μ§λ μΆκ° λ° μ κ΅ν
- μλ: μ€κ° (ν€νλ μλ§λ€)
- μ²λ¦¬ κ³Όμ :
- μΌκ°μΈ‘λμΌλ‘ μ λ§΅ν¬μΈνΈ μμ±
- Local Bundle Adjustment
- μ€λ³΅ ν€νλ μ μ κ±° (Culling)
2.3 Loop Closing (루ν νμ μ€λ λ)
- μν : μ¬λ°©λ¬Έ κ°μ§ λ° μ€μ°¨ μμ
- μλ: λλ¦Ό (κ°λμ©)
- μ²λ¦¬ κ³Όμ :
- DBoW2 λ‘ μ₯μ μ¬μΈμ
- κΈ°ννμ κ²μ¦
- Pose Graph Optimization
- Full Bundle Adjustment
3. ORB Feature (Oriented FAST and Rotated BRIEF)
ORB λ?
ORB = Oriented FAST + Rotated BRIEF
3.1 ORB νΉμ§μ μΆμΆ νμ΄νλΌμΈ
| λ¨κ³ | μκ³ λ¦¬μ¦ | νλ μΌ |
|---|---|---|
| νΉμ§μ νμ§ | FAST | μ½λ μμΉ |
| λ°©ν₯ κ³μ° | Intensity Centroid | κ° νΉμ§μ μ λ°©ν₯ |
| κΈ°μ μ μμ± | Rotated BRIEF | λ°©ν₯ |
3.2 Oriented FAST - λ°©ν₯μ΄ μλ μ½λ κ²μΆ
FAST λ λΉ λ₯΄μ§λ§ νμ λΆλ³μ±μ΄ μλ€ (λ°©ν₯ μ 보 μμ). ORB λ Intensity Centroid (λ°κΈ° 무κ²μ€μ¬) λ°©λ²μΌλ‘ λ°©ν₯μ μΆκ°νλ€.
무κ²μ€μ¬μ΄λ?
물리μ μ§κ΄
μ μ¬κ°ν μ’ μ΄μ λ°λκ° κ· μΌνλ©΄ 무κ²μ€μ¬μ μ νν κ°μ΄λ°λ€. νμ§λ§ μ€λ₯Έμͺ½μ λ©μ λΆμ΄λ©΄ 무κ²μ€μ¬μ΄ μ€λ₯Έμͺ½μΌλ‘ μ΄λνλ€.
μ΄λ―Έμ§λ λμΌνλ€. ν½μ μ **λ°κΈ° (intensity)**λ₯Ό μ§λμΌλ‘ μκ°νλ©΄, λ°μ μͺ½μΌλ‘ 무κ²μ€μ¬μ΄ λΉκ²¨μ§λ€.
μ΄λ―Έμ§ λͺ¨λ©νΈ (Moment) νκΈ°λ²:
β μ 체 λ°κΈ°μ ν© (= μ 체 μ§λ) β x λ°©ν₯ 1 μ°¨ λͺ¨λ©νΈ β y λ°©ν₯ 1 μ°¨ λͺ¨λ©νΈ
무κ²μ€μ¬ μ’ν:
μ 무κ²μ€μ¬ λ°©ν₯μ μ°λκ°?
νΉμ§μ μ£Όλ³ ν¨μΉμ λ°κΈ° λΆν¬λ κ·Έ νΉμ§μ μ κ³ μ ν νΉμ±μ΄λ€. μλ₯Ό λ€μ΄ βLβ λͺ¨μ μ½λμμ νμͺ½μ λ°κ³ (λ²½λ©΄) λ€λ₯Έ μͺ½μ μ΄λ‘λ€ (κ·Έλ¦Όμ). μ΄ λ°κΈ° λΆν¬ λλ¬Έμ 무κ²μ€μ¬μ΄ νΉμ λ°©ν₯μΌλ‘ μΉμ°μΉκ³ , μ΄κ²μ΄ νΉμ§μ μ λ°©ν₯μ΄ λλ€.
-1765364279793.jpeg)
νμ λΆλ³μ± ν보: μΉ΄λ©λΌκ° 30 λ νμ νλ©΄ ν¨μΉλ 30 λ νμ β 무κ²μ€μ¬ λ°©ν₯λ 30 λ νμ . λ°λΌμ μ΄ λ°©ν₯μ κΈ°μ€μΌλ‘ κΈ°μ μλ₯Ό λ§λ€λ©΄ νμ ν΄λ κ°μ κΈ°μ μκ° λμ¨λ€.
λ°©ν₯ κ³μ°
νΉμ§μ μμΉ
(
3.3 Rotated BRIEF - νμ λΆλ³ κΈ°μ μ
BRIEF λ λΉ λ₯΄μ§λ§ νμ μ μ½νλ€ (ν½μ
μ μμΉκ° κ³ μ ). ORB λ νΉμ§μ λ°©ν₯
미리 μ ν΄μ§ 256 κ° ν½μ
μ ν¨ν΄μ
3.4 μ΄λ―Έμ§ νΌλΌλ―Έλ - μ€μΌμΌ λΆλ³μ±
μλ³Έ μ΄λ―Έμ§λ₯Ό μ μ μΆμν 8 λ¨κ³ νΌλΌλ―Έλ μμ±:
Level 0: μλ³Έ (640Γ480)
Level 1: 0.83λ°° (531Γ398)
...
Level 7: 0.28λ°° (179Γ134)
3.5 νΉμ§μ μκ³ λ¦¬μ¦ λΉκ΅
| νΉμ± | SIFT | SURF | ORB |
|---|---|---|---|
| νμ λΆλ³ | β | β | β |
| μ€μΌμΌ λΆλ³ | β | β | β (νΌλΌλ―Έλ) |
| μλ | λλ¦Ό | μ€κ° | λΉ λ¦ |
| κΈ°μ μ ν¬κΈ° | 512 λ°μ΄νΈ | 256 λ°μ΄νΈ | 32 λ°μ΄νΈ |
| λΌμ΄μ μ€ | νΉν | νΉν | λ¬΄λ£ |
4. Tracking μμΈ
4.1 ORB νΉμ§μ μΆμΆ
λ§€ νλ μλ§λ€:
- 8 λ¨κ³ μ΄λ―Έμ§ νΌλΌλ―Έλ μμ±
- κ° λ 벨μμ FAST μ½λ νμ§
- Harris corner response λ‘ μ λ³
- λ°©ν₯ κ³μ° (Intensity Centroid)
- Rotated BRIEF κΈ°μ μ μμ±
νλ μλΉ 1000~2000 κ° νΉμ§μ μΆμΆ
4.2 νΉμ§μ λ§€μΉ
- ν΄λ° κ±°λ¦¬κ° κ°μ₯ μμ κ² = λ§€μΉ
- μ΅κ³ /2 λ± λ§€μΉ μ°¨μ΄κ° μμΌλ©΄ λ²λ¦Ό (Ratio test)
4.3 μΉ΄λ©λΌ ν¬μ¦ μΆμ (PnP)
2D-3D λμ κ΄κ³λ‘ μΉ΄λ©λΌ μμΉ/λ°©ν₯ μ°ΎκΈ°:
: μΉ΄λ©λΌ λ΄λΆ νλΌλ―Έν° (μκ³ μμ) , : νμ /μ΄λ (ꡬν΄μΌ ν¨)
4.4 RANSAC μΌλ‘ μ΄μμΉ μ κ±°
- λλ€νκ² 4 κ° λ§€μΉ μ ν
- ν¬μ¦ κ³μ° β λͺ¨λ λ§€μΉ κ²μ¦
- λ°λ³΅ ν κ°μ₯ λ§μ΄ λ§λ ν¬μ¦ μ ν
4.5 ν€νλ μ μ μ κΈ°μ€
- μ΄μ ν€νλ μμμ μΆ©λΆν μ΄λ?
- μλ‘μ΄ μμμ΄ λ§μ΄ 보μ΄λκ°?
- νΉμ§μ μ΄ μΆ©λΆνκ°?
5. Local Mapping μμΈ
5.1 μΌκ°μΈ‘λ (Triangulation)
λ μΉ΄λ©λΌ κ΄μ μ΄ λ§λλ μ§μ = 3D μ μμΉ
5.2 Bundle Adjustment
μΉ΄λ©λΌλ€κ³Ό 3D μ λ€μ λμμ μ‘°μ νμ¬ μ¬ν¬μ μ€μ°¨ μ΅μν:
Levenberg-Marquardt μκ³ λ¦¬μ¦μΌλ‘ μ΅μ ν
5.3 ν€νλ μ Culling
λ§΅ν¬μΈνΈμ 90% μ΄μμ΄ λ€λ₯Έ ν€νλ μ 3 κ° μ΄μμμ 보μ΄λ©΄ β μ€λ³΅μ΄λ―λ‘ μ κ±°
6. Loop Closing μμΈ
6.1 λ리ννΈ λ¬Έμ
μ€μ°¨ λμ : 100m μ΄λ μ ~1m μ€μ°¨
6.2 DBoW2 λ‘ μ₯μ μ¬μΈμ
Bag of Words (BoW) λ°©μ:
- ORB κΈ°μ μλ€μ κ·Έλ£Ήν β Visual Vocabulary
- μ΄λ―Έμ§λ₯Ό BoW 벑ν°λ‘ νν
- μ μ¬ν BoW λ²‘ν° = μ μ¬ν μ₯μ
6.3 Pose Graph Optimization
7. ν΅μ¬ μμ½
ORB νΉμ§μ
- Oriented FAST: μ½λ νμ§ + λ°©ν₯ (intensity centroid)
- Rotated BRIEF: 256-bit μ΄μ§ κΈ°μ μ, λ°©ν₯ 보μ λ¨
- 8-scale νΌλΌλ―Έλλ‘ μ€μΌμΌ λΆλ³μ±
3 κ° μ€λ λ
- Tracking: ORB μΆμΆ β λ§€μΉ β PnP+RANSAC
- Local Mapping: μΌκ°μΈ‘λ + Local BA + Culling
- Loop Closing: BoW μ₯μ μΈμ β Pose Graph Optimization
Reference
Original
- ORB-SLAM: A Versatile and Accurate Monocular SLAM System
- ORB: an efficient alternative to SIFT or SURF
Additional
Related Work
- Bags of Words: Bags of Binary Words for Fast Place Recognition
- LSD-SLAM: Large-Scale Direct Monocular SLAM
Footnotes
-
Map point μ keyframes λ₯Ό μ°κ²°ν κ·Έλν. λ Έλλ keyframes λ₯Ό λνλ΄κ³ μ£μ§λ λ keyframes μ΄ κ°μ point λ₯Ό κ΄μΈ‘νκ³ μμμ λνλ. β©