Image 用于深度测量的立体摄像机

Image 用于深度测量的立体摄像机,image,image-processing,camera,stereoscopy,Image,Image Processing,Camera,Stereoscopy,我一直在读这篇文章: 了解如何使用2个平行摄影机查找对象的深度。似乎我们需要摄像机在精确平面上的视野(这是摄像机试图测量的深度)来获得深度 我的解释错了吗?或者其他任何人都知道如何使用一对摄影机来测量对象与摄影机对之间的距离 开尔文摄像机传感器要么必须位于同一平面上,要么必须对其图像进行校正,以便“实际上”它们位于同一平面上。这是唯一的要求,它简化了左图像和右图像之间匹配的搜索:左图像中的任何内容都将位于同一行的右侧,因此不需要检查其他行。你可以跳过这个要求,但是你的搜索范围会更广。当你找到对

我一直在读这篇文章:

了解如何使用2个平行摄影机查找对象的深度。似乎我们需要摄像机在精确平面上的视野(这是摄像机试图测量的深度)来获得深度

我的解释错了吗?或者其他任何人都知道如何使用一对摄影机来测量对象与摄影机对之间的距离


开尔文

摄像机传感器要么必须位于同一平面上,要么必须对其图像进行校正,以便“实际上”它们位于同一平面上。这是唯一的要求,它简化了左图像和右图像之间匹配的搜索:左图像中的任何内容都将位于同一行的右侧,因此不需要检查其他行。你可以跳过这个要求,但是你的搜索范围会更广。当你找到对应关系后,你可以从中找出深度

在校正后的相机中,深度由偏移确定:例如,如果左图像在第4行第11列有一个特征,而左图像在第4行(自相机校正后的同一行)第1列有该特征,则我们称视差为11-1=10。视差D与dept Z成反比:

Z=fB/D,其中B是摄像机之间的距离。 最后,你会在你找到通信的地方得到深度估计。所谓的稠密立体旨在覆盖90%以上的图像区域,而稀疏立体仅恢复少量深度测量


请注意,如果对象表面上有一点纹理,或者换句话说,它的颜色是均匀的,则很难找到对应关系。有些相机(如Kinect)在对象上投影自己的图案,以解决缺少特征的问题。

出于某种原因,您必须使用两个相机吗?正如弗拉德在下面提到的,Kinect摄像机和其他相对便宜的现成传感器提供深度数据。除此之外,一本由Cyganek和Siebert编写的《3D计算机视觉技术和算法导论》之类的教科书将是一个良好的开端。嘿,Rethunk,非常感谢。我来看看课本。我有点受目前的硬件设置(两个摄像头)的限制,所以像Kinect中那样的附加光模式生成器是不可能的。但不管怎样,我从你们那里得到的足够好,可以在我的开发工作中取得进展。不客气,我很高兴你们取得了进展。嗨,弗拉德,谢谢你们的回复。在我的使用案例中,摄像头传感器位于同一平面上,因此无需进行校正。谢谢你的澄清。基本上,立体相机系统使用同时位于同一平面上的两个传感器拍摄的两幅图像的像素位移。像素位移加上相机和镜头视角之间的距离,可以得到深度。谢谢这是一个很好的总结。当然,诀窍是找到匹配项,即使您必须查看同一行。通常人们不比较像素,而是将像素周围的小窗口关联起来(因此被称为关联立体)。通常,相关性被简化为窗口之间梯度的绝对差值之和。窗口越大,匹配就越可靠,但这是以较小的精度为代价的。最后,与不准确的匹配相比,最好是完全没有匹配,因此在视差图中通常存在匹配不明确的大洞。Hi Vlad再次感谢您的回复。在我的用例中,我确切地知道我正在定位的对象的形状,并且我可以使用简单的对象定位(hough变换,即)在两个传感器中找到对象的像素坐标。现在我的主要任务是找出我能测量这个物体的深度有多精确,因为精度是我目前工作项目的关键。再次感谢你对Vlad的极大帮助。好的,记住视差与z有关,所以具有恒定视差的物体的一部分应该具有恒定的z,这是一个前向平行面片。只有对于这些部分,才能平均差异。否则,您应该假设对象的每个点的视差不同,并通过在两帧中匹配对象特征逐点计算视差。当然,您只能在某些匹配良好的点上执行此操作。然后用公式Z=fB/D得到距离;您还可以重建X=uZ/f和Y=vZ/f,其中u和v,其中u=col-w/2,v=h/2-row)。你的物体是什么?我的物体是一个球体。我使用hough变换来找到球体的中心(二维平面上的一个圆)。根据两台摄像机的xy像素坐标,我将测量z。