Feature Point

ORB Features

Using ORB features to build out ORB-SLAM.

ORB = Oriented FAST Rotated BRIEF

Original Paper https://ieeexplore.ieee.org/document/6126544 Available locally file:///Users/stevengong/My%20Drive/Books/ORB_An_efficient_alternative_to_SIFT_or_SURF.pdf

Example implementation

ORB is the combination of oFAST (for key points) and rBRIEF (for descriptors).

1. oFast (Oriented FAST)

“FAST features are widely used because of their computational properties. However, FAST features do not have an orientation component. In this section we add an efficiently computed orientation.”

  • So FAST Keypoint cannot detect orientation. oFast adds on to that

The 2 improvements

  1. Include orientation information using the intensity centroid (more below)
  2. Include scale information using Image Pyramids

Summarized from the Visual SLAM book, though you should also reference the original paper

  1. In a small image block , define the moment of the image block as:
\sum_{x,y∈B} x^p y^q I(x, y), \quad p, q = \set{0, 1}$$ 2. Calculate the centroid of the image block by the moment: $$C = \left(\frac{m_{10}}{m_{00}}, \frac{m_{01}}{m_{00}}\right)$$ 3. Connect the geometric center $O$ and the centroid $C$ of the image block to get a direction vector $\vec{OC}$, so the direction of the feature point can be defined as: $$θ = atan2\left(m_{01}, m_{10}\right)$$ - atan2 is the quadrant-aware version of arctan > [!note] So at the end.. > > > We have the angle $\theta$ that we care about, which describes the orientation of the keypoint. #### 2. rBRIEF (Steered BRIEF) See [[notes/BRIEF Descriptor|BRIEF Descriptor]]. The direction information $\theta$ from the oriented FAST is used in rBRIEF, so that the descriptor is rotation invariant: we rotate the feature first, before computing the descriptor. This way, we achieve rotation invariance. https://juliaimages.org/latest/examples/image_features/orb/#