Direct Sparse Odometry Notes

Some random and useful notes took when I was writing extensions for DSO and it’s stereo-version. Here’s my repo that includes some well commented DSO code: dso understands

Reference Websites:

DSO代码笔记[待整理]:dso_code

交流学习DSO代码: dso_learn

DSO 代码框架: JingeTu

DSO代码阅读: code review

Confusing Concepts:

  • SSD
  • SSE
    • SSE is a concept of computation, and compiling, for optimization on different architecture.

SSD: To calculate the SSD for two images:

ssd = 0
for i = 0 to height - 1
    for j = 0 to width - 1
        diff = A[i][j] - B[i][j]
        ssd += diff * diff

The general idea is that for matching images the SSD will be small. If you’re trying to match two images, where one image is translated by some amount, then you would typically do a brute force approach where you calculate the SSD over a range of x, y displacements and then identify the minimum SSD value, which should then correspond to the best alignment offset.

Note that SSD is generally only used due to its simplicity and relatively low computational cost - in general you will get better results using Normalized Cross Correlation.

Other materials

depth completion: Funkhouser

Use normal information to help complete the depth map.

Written on August 30, 2017