-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5d4fce6
commit 5760404
Showing
6 changed files
with
176 additions
and
43 deletions.
There are no files selected for viewing
1 change: 0 additions & 1 deletion
1
book/learning_materials/100_Visual_Odometry/101_VO_operations.md
This file was deleted.
Oops, something went wrong.
57 changes: 43 additions & 14 deletions
57
book/learning_materials/100_Visual_Odometry/102_VO_Introduction.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
26 changes: 20 additions & 6 deletions
26
book/learning_materials/100_Visual_Odometry/103_VO_Types.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,46 @@ | ||
# Visual Odometry Types {#visual-odometry-types status=beta} | ||
|
||
## VO vs V-SLAM | ||
### VO vs V-SLAM | ||
|
||
<br/> | ||
|
||
There are fundamental differences between the problems of Visual Odometry and Visual SLAM (Self-localization and Mapping) in terms of the scope and applicability. | ||
|
||
<br/> | ||
|
||
Some noteworthy points in this regard are that : | ||
* VO only aims to solve the **local consistency** of the trajectory | ||
* SLAM aims to solve the **global consistency** of the trajectory and of the map | ||
* VO can be used as a building block of SLAM | ||
* VO is SLAM before closing the loop. | ||
<br/> | ||
|
||
* VO only aims to solve the **local consistency** of the trajectory | ||
* SLAM aims to solve the **global consistency** of the trajectory and of the map | ||
* VO can be used as a building block of SLAM | ||
* VO is SLAM before closing the loop. | ||
|
||
### Types of Visual Odometry | ||
|
||
## Types of Visual Odometry | ||
<br/> | ||
|
||
#### Based on number of cameras | ||
* Monocular | ||
* Stereo | ||
|
||
<br/> | ||
|
||
#### Based on type of camera | ||
* Perspective | ||
* Spherical | ||
* Omnidirectional (360° FOV) | ||
* Time of Flight | ||
* RGB-D | ||
|
||
<br/> | ||
|
||
#### Based on when odometry is computed | ||
* Online | ||
* Offline | ||
|
||
<br/> | ||
|
||
#### Based on nature of approach | ||
* Geometry-based | ||
* Learning-based |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
76 changes: 71 additions & 5 deletions
76
book/learning_materials/100_Visual_Odometry/105_vo_geometric.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,78 @@ | ||
# Geometric Approaches to VO {#vo-geometric-approaches status=beta} | ||
|
||
The geometric approaches to VO consider the geometry of the scene and can be further sub-classified into the following | ||
The geometric approaches to VO consider the geometry of the scene. These take advantage of the visual geometry in the camera-world model. They can be further sub-classified into the following | ||
|
||
* Feature-based Methods (Sparse)(Indirect) | ||
* Appearance-based Methods (Dense)(Direct) | ||
* Hybrid Methods (Semi-dense)(Semi-direct) | ||
<br/> | ||
|
||
<br/> | ||
|
||
1. **Feature-based Methods (Sparse)(Indirect) :** | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
Specific features (landmarks) are extracted from the images for motion estimation. These features across time instants are matched to compute the motion parameters using geometry. This is explained in detail in [next section](#vo-feature-based-pipeline). | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
2. **Appearance-based Methods (Dense)(Direct) :** | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
The entire image as a pixel matrix is considered and optimized for the photometric error. These methods are also referred to as Correspondence-Free Methods. | ||
|
||
<br/> | ||
|
||
Motion estimation is done using one of the following methods : | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
* **Optical flow method** | ||
<br/> | ||
It individually tracks pixels (all or subs-region of image). It assumes small motion between frames and, therefore, is not suitable for VO applications since motion error accumulates quickly. | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
* **Featureless motion-estimation methods** | ||
<br/> | ||
All the pixels in the two images are used to compute the relative motion using a harmonic Fourier transform. This method works well with low-texture images but it is not used due to | ||
- Very high computational expense | ||
- less accuracy | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
3. **Hybrid Methods (Semi-dense)(Semi-direct) :** | ||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
A hybrid of the first two stated methods. | ||
<br/> | ||
|
||
For more details, take a look at [SVO: Fast Semi-Direct Monocular Visual Odometry](https://www.ifi.uzh.ch/dam/jcr:e9b12a61-5dc8-48d2-a5f6-bd8ab49d1986/ICRA14_Forster.pdf) | ||
|
||
|
||
<br/> | ||
|
||
<br/> | ||
|
||
<figure class="stretch"> | ||
<img src="figures/vo_geometric.png"/> | ||
<img src="figures/vo_geometric.png" style="width: 30em"/> | ||
<figcaption>Figure 4.1 VO geometric approaches </figcaption> | ||
</figure> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters