最详细的双目摄像头测距离(深度)的原理 |
您所在的位置:网站首页 › 相机中f是指什么 › 最详细的双目摄像头测距离(深度)的原理 |
关于双目摄像头测距原理,最近在看关于双目摄像机成像的项目,找关于双目摄像头标定的c++代码,但是发现自己对双目摄像机的成像原理不清楚,所以看代码和看天书一样。这篇就写给零基础接触双目摄像机成像原理的小伙伴,等看完这篇之后再去找类似的c++、python标定代码,就简单很多。 当然,之后也会介绍,关于几个坐标系(世界坐标系、像素坐标系、图片坐标系)的转化。 **视差的概念:**是指从两个不同位置观察同一个物体时,此物体在视野中的位置变化与差异。从两个观察点看目标,两条视线之间的夹角叫做这两个点的视差角,两点之间的距离称作视差基线。 为什么单目摄像机不能测深度? 下图从物理原理上展示了为什么单目相机不能测量深度值而双目可以。我们看到红色线条上三个不同远近的黑色的点在下方相机上投影在同一个位置,因此单目相机无法分辨成的像到底是远的那个还是近的那个。 理想双目相机成像模型: 首先我们从理想的情况开始分析:假设左右两个相机位于同一平面(光轴平行),且相机参数(焦距f)一致。那么深度值的推到原理和公式如下: 根据上述推导,空间点p离相机的距离(深度)z=f*b/d,可以发现如果要计算深度z,必须要知道: (1)相机焦距f,左右相机基线b。这些参数可以通过先验信息或者相机标定得到。 (2)视差b。需要知道左相机的每个像素点(Xl, Yl)和右相机中对应点(Xr,Yr)的对应关系。这是双目视觉的核心问题。 极限约束 那么问题来了,对于左图中的一个像素点,如何确定该点在右图中的位置,可以通过极限约束。 什么是极线呢?如下图所示,C1,C2是两个相机,p是空间中一点,P和两个相机中心点C1、C2形成了三维空间中的一个平面PC1C2,称为极平面。极平面和两幅图像相交于两条直线,这两条直线为极线。p在相机C1中的成像点是P1,在相机C2中的成像点是P2,但p的位置事先是未知的。 我们的目标是:对于左图中的P1点,寻找它在右图中的对应点P2,这样就能确定P点的空间位置,也就是我们想要的空间物体和相机的距离。 所谓极线约束,就是指当同一个空间点在两幅图像上分别成像时,已知左图投影点P1,那么对应右图投影点P2一定在相对于P1的极线上,这样可以极大的缩小匹配范围。
非理想双目相机成像模型 事实上,这种情况非常常见,因为有些场景下两个相机需要独立固定,很难保证光心C1、C2完全水平,即使是固定在同一基板上也会因为装配的原因导致光心不水平。 原文转自:https://zhuanlan.zhihu.com/p/32199990 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |