Orb_slam2: Information matrix choices in Optimizer

Created on 28 Sep 2018  路  3Comments  路  Source: raulmur/ORB_SLAM2

I hava a question about how the information matrices (inverse of covariance matrices) of reprojection error edges are chosen in the Optimizer.cc.
The information matrices are set as identity matrices multiplied by inverse scale in the ovtave. An example is like this:

const float &invSigma2 = pKF->mvInvLevelSigma2[kpUn.octave];
e->setInformation(Eigen::Matrix2d::Identity()*invSigma2);

My question is, the reprojection errors are 2D pixel coordinates and seems to have no relation to "scale".
Could someone explain the rationale behind this? Or, should the information matrices simply be identity matrices?

Most helpful comment

@DEQDON

Yes. that's right. ORB-SLAM2 doesn't really involve information matrix, that's why it starts with identity. Only because it is available, the information matrix has been chosen as a way to apply weight.

All 3 comments

@DEQDON

KeyFrame's keypoints coordinates uses the full image as system of reference, no matter in which octave it was found.

So, the higher the octave, the lower the information. It is like in higher octaves keypoint's pixels are bigger, their area are bigger, and the keypoint's position is less specific. This is why information matrix are multiplied by invSigma2.

Thanks! So can I interpret this is as a way of choosing different weights for keypoints in different octave levels.

@DEQDON

Yes. that's right. ORB-SLAM2 doesn't really involve information matrix, that's why it starts with identity. Only because it is available, the information matrix has been chosen as a way to apply weight.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Andreluizfc picture Andreluizfc  路  4Comments

sunstarchan picture sunstarchan  路  4Comments

balzar29 picture balzar29  路  4Comments

ColeHoff7 picture ColeHoff7  路  4Comments

EasternH picture EasternH  路  5Comments