我正在做立体视觉的研究,我对这个问题的深度估计的准确性感兴趣。这取决于几个因素,例如:
- 适当的立体声校准(旋转、平移和失真提取),
- 图像分辨率,
- 相机和镜头质量(失真越少,色彩捕捉得当),
- 匹配两个图像之间的特征。
假设我们没有低成本的相机和镜头(没有便宜的网络摄像头等)。
我的问题是,我们在这个领域可以达到的深度估计的准确性是多少?有人知道一个真正的立体视觉系统可以精确地工作吗?我们可以达到1毫米的深度估计精度吗?
我的问题也针对在opencv中实现的系统。您设法达到了什么准确性?
问:有人知道一个真正的立体视觉系统,它能达到一定的精度吗?我们可以达到1毫米的深度估计精度吗?
是的,您绝对可以使用立体装置实现 1 毫米(甚至更好)的深度估计精度(哎呀,您可以使用一副显微镜进行立体侦察)。精度在0.1毫米范围内的基于立体的工业检测系统是常规使用,至少从1990年代初开始。需要明确的是,"基于立体"是指使用2个或更多几何分离传感器的3D重建系统,其中点的3D位置是通过三角测量传感器中3D点的匹配图像来推断的。这样的系统可以使用结构光投影仪来帮助图像匹配,但是,与适当的"基于结构光的3D重建系统"不同,它不依赖于光投影仪本身的校准几何形状。
然而,大多数(可能,所有)为高精度设计的立体系统要么使用某种形式的结构照明,要么使用有关重建形状几何形状(或两者的组合)的一些先验信息,以严格限制要三角测量的点的匹配。原因是,一般来说,三角测量的精度高于匹配精度,因此匹配精度是重建精度的限制因素。
了解为什么会这样的一种直观方法是查看立体重建方程的简单形式:z = f b/d。这里的"f"(焦距)和"b"(基线)总结了钻机的属性,它们通过校准进行估计,而"d"(视差)表示同一3D点的两个图像的匹配。
现在,至关重要的是,校准参数是"全局"参数,它们是根据在视场和感兴趣深度范围内进行的许多测量来估计的。因此,假设校准过程是无偏的,并且系统近似于时间不变,则每个测量中的误差在参数估计中平均。因此,通过进行大量测量,并通过严格控制钻机光学、几何和环境(包括振动、温度和湿度变化等),可以非常准确地估计校准参数,即使用受传感器分辨率顺序不确定性影响的无偏估计值,或者更好,以便在钻机运行的已知空间内可以忽略其残余不准确性的影响。
然而,视差是逐点估计的:一种说法是左图中的点p与右图中的点q匹配(可能),并且视差d=(q - p)中的任何误差都出现在按f b缩放的z中。这是一次性的事情。更糟糕的是,在所有非平凡的情况下,视差的估计都受到被分析对象的(先验未知)几何形状和表面属性以及它们与照明的相互作用的影响。这些合谋 - 通过人们使用的任何匹配算法 - 降低人们可以实现的重建的实际准确性。结构照明在这方面有所帮助,因为它减少了这种匹配的不确定性:基本思想是在图像中可以找到和匹配(通常具有亚像素精度)的对象上投射清晰、聚焦良好的边缘。结构光方法很多,所以我不会在这里详细介绍。但我注意到,这是一个使用颜色和仔细选择投影仪光学元件可以有很大帮助的领域。
因此,像往常一样,您在实践中可以实现的目标取决于您愿意花多少钱(更好的光学器件,低噪声传感器,刚性材料和钻机机械设计,受控照明),以及您对特定重建问题的理解和约束程度。
我想补充一点,即使使用昂贵的相机,使用颜色也是一个坏主意 - 只需使用灰色强度的渐变。一些高端立体摄像机(例如Point Grey)生产商过去依赖颜色,然后改用灰色。还要考虑偏差和方差作为立体声匹配误差的两个组成部分。这很重要,因为例如,使用具有大相关窗口的相关立体声将平均深度(即将世界建模为一堆额平行补丁)并减少偏差,同时增加方差,反之亦然。所以总有一个权衡。
除了您上面提到的因素之外,立体声的准确性还取决于算法的具体情况。由算法来验证深度(立体估计后的重要步骤)并优雅地修补无纹理区域中的孔洞。例如,考虑来回验证(将 R 与 L 匹配应生成与匹配 L 到 R 相同的候选项)、斑点噪声消除(使用连接组件算法去除立体匹配的典型非高斯噪声)、纹理验证(使纹理较弱区域中的深度无效)、唯一性验证(具有单模态匹配分数,没有第二个和第三个强候选项)。这通常是来回验证的捷径)等。精度还取决于传感器噪声和传感器的动态范围。
最后,您必须提出有关精度作为深度函数的问题,因为 d=f*B/z,其中 B 是相机之间的基线,f 是以像素为单位的焦距,z 是沿光轴的距离。因此,精度对基线和距离有很强的依赖性。
Kinect 将提供 1mm 的精度(偏差),差异非常大,最高可达 1m 左右。然后它急剧下降。Kinect 将有一个长达 50 厘米的死区,因为近距离上两个摄像头没有足够的重叠。是的 - Kinect 是一种立体相机,其中一个摄像头由红外投影仪模拟。
我相信使用概率立体声,例如马尔可夫随机场上的信念传播,可以实现更高的精度。但是这些方法假设了一些关于物体表面的平滑度或特定表面方向的强先验。例如,请参阅第 14 页。
如果您不想更多地了解这些方法的准确性,请查看此站点,尽管它不再非常活跃,但结果几乎是最先进的。考虑到那里提交的几篇论文用于创建公司。真正的立体视觉系统是什么意思?如果你的意思是商业的,那么没有很多,大多数商业重建系统都使用结构光或直接扫描仪。这是因为(您错过了列表中的一个重要因素),纹理是准确性的关键因素(甚至在正确性之前);除非添加纹理或结构光,否则立体系统无法重建白墙。然而,根据我自己的经验,涉及变分匹配的系统可以非常准确(图像空间中的亚像素精度),这通常是通过概率方法无法实现的。最后一点,相机之间的距离对于准确性也很重要:非常近的相机会很快找到很多正确的匹配,但精度会很低,更远的相机会找到更少的匹配,可能需要更长的时间,但结果可能会更准确;许多书籍中都定义了最佳圆锥区域。在所有这些blabla之后,我可以告诉你,使用opencv,你能做的最好的事情之一就是进行初始相机校准,使用Brox的光流找到匹配项并重建。