SLAM中为什么使用逆深度(深度的倒数)误差而不是深度误差?
- 逆深度也有这样的说法: 深度为d, 逆深度为 100-d, (比如100为实际场景中的最大有效深度)
参考1:
逆深度可以用来降低 较远的深度点(视差应该越小)造成的误差,这样做更符合精度的表达。
举个例子就明白了:因为自然场景物体深度本身变化很大,比如50m和100m,它们的视差其实很小,可能体现在图像里只有一两个像素,但是如果直接用深度值表达的话差距是 100 -50 = 50,如果用逆深度表达的话是 1/50 - 1/100 = 0.01,相对50是个非常小的数值,符合定义能量最小化函数。
参考2:
由于大部分的slam算法均采用逆深度参数表达地图点的结构。逆深度参数表达具有优化变量少、能表达非常远的点以及分布接近高斯分布等优势,这也是大家选择逆深度参数的原因。