我正在研究立体视觉,并且对此问题的深度估计的准确性感兴趣。它取决于几个因素,例如:
假设我们没有低成本的相机和镜头(没有廉价的网络摄像头等)。
我的问题是,我们在该 Realm 可以实现的深度估算的精度是多少?
任何人都知道真正的立体视觉系统能以某种精度工作吗?
我们能否达到1毫米的深度估算精度?
我的问题还针对在opencv中实现的系统。您设法达到什么精度?
最佳答案
我要补充一点,即使对于昂贵的相机,使用颜色也不是一个好主意-仅使用灰度强度的渐变即可。一些高端立体摄像机(例如Point Grey)的生产商过去常常依赖颜色,然后切换为灰色。还应将偏差和方差视为立体声匹配误差的两个组成部分。这很重要,因为例如使用具有较大相关窗口的相关立体声将平均深度(即将世界建模为一堆平行的面片)并减少偏差,同时增加方差,反之亦然。因此,总会有一个权衡。
除了上面提到的因素以外,立体声的准确性还取决于算法的细节。由算法来验证深度(立体估计后的重要步骤)并优雅地修补无纹理区域中的孔。例如,考虑来回验证(将R匹配到L应该产生与将L匹配到R相同的候选对象),斑点噪声去除(使用connected component algorithm去除立体声匹配典型的非高斯噪声),纹理验证(使区域深度无效)具有弱纹理),唯一性验证(具有无第二和第三强候选者的单峰匹配分数。这通常是来回验证的捷径)等。精度还取决于传感器噪声和传感器动态范围。
最后,由于d = f * B / z,其中B是相机之间的基线,f是以像素为单位的焦距,z是沿光轴的距离,因此您不得不问关于精度与深度的关系的问题。因此,精度对基线和距离的依赖性很大。
Kinect将提供1mm的精度(偏差),最大偏差可达1m左右。然后它急剧下降。 Kinect的死区可达50厘米,因为两个相机在近距离处没有足够的重叠。是的-Kinect是一种立体摄像机,其中一个摄像机是由IR投影仪模拟的。
我相信使用概率立体声,例如“马尔可夫随机场上的置信传播”,可以达到更高的精度。但是那些方法假定了关于物体表面光滑度或特定表面取向的一些先验知识。参见this for example, page 14。
关于opencv - 深度估计的准确性-立体视觉,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22764579/