机器视觉基础—双目相机

机器视觉基础—双目相机与立体视觉

双目相机概念与测量原理

我们多视几何的基础就在于是需要不同的相机拍摄的同一个物体的视场是由重合的区域的。通过下面的这种几何模型的目的是要得到估计物体的长度,或者说是离这个相机的距离。(深度信息)

在这里插入图片描述

双目相机是模拟人观看世界的方式,来对深度的距离进行估算。
人之所以能够感受到立体视觉,是因为人的左右眼之间有6到7cm的间隔,左眼与右眼看到的影像会有细微的差别,所以我们很容易判断物体的远近以及多个物体的前后关系。

在这里插入图片描述

双目立体视觉的基本原理与人眼观察世界的方式类似,双目立体视觉获取图像是通过不同位置的两台摄像机或者一台摄像机经过平移或旋转拍摄同一幅场景,来获取立体图像对

我们可以将双目相机分成两种类型

  1. 被动双目相机(也是刚开始学习的双目相机模型

在这里插入图片描述

  • 我们的被动双目相机是由两个RGB的镜头组成的。
  1. 主动双目相机(也称为双目结构光相机
    在这里插入图片描述
    主动相机的构成主要是有两个IR摄像头和一个结构光发射器来构成的。

我们通过主动相机估计出来的深度图结构也更加的完整,在拍摄的时候。主动相机的成像是由散斑点的

对于我们人的双目系统来说,人的左眼和右眼分别可以看见两幅有视差的图像。进而在大脑中可以形成有景深的立体图像。

在这里插入图片描述

双目立体视觉的测量原理实际上是和人眼类似的。
在这里插入图片描述对于单个相机来说如果已知图像中的一个像点。我们通过该像点与相机中心发出一条射线。那么如何才能确定发光的物体点P的位置是P1 P2还是其他的呢?

也就是单个相机是无法获得上面的那个目标的深度信息的。为了获得深度我们可以使用两个相机的两条射线来获得深度的信息。更准确的说是获得了唯一一个三维目标点的坐标信息

在这里插入图片描述

这也就是双目相机的一个测量原理,我们称之为双目交汇

公式推导

  1. 假设我们拥有一个理想的双目系统——它们是拥有相同的焦距f的
  2. 两个光学中心Ol和Or之间的距离为B。
  3. 光轴平行成像平面属于同一个平面。

这里的两个光心之间的距离我们可以称之为基线长度。

满足这几个条件的双目相机模型我们称为理想的双目系统

在这里插入图片描述

  • 空间坐标中的一个P点在左右成像平面上形成了两个像点(也就是与成像平面相交的两个点。)分别为XL 和 XR。我们将Xl - Xr = D 称之为视差。
    在这里插入图片描述
  • 根据这个模型的相似关系我们可以在数学上对其进行建模的处理。
  1. 我们和之前一样将两个光心之间的距离定义为B,同时我们将深度值定义为Z

  2. 根据三角关系有:

B Z = B − { X L − x R } Z − f Z = f B { x L − x R } Z = f B D \begin{aligned} \frac{B}{Z} & =\frac{B-\left\{X_{L}-x_{R}\right\}}{Z-f} \\ Z & =\frac{f B}{\left\{x_{L}-x_{R}\right\}} \\ Z & =\frac{f B}{D} \end{aligned} ZBZZ=ZfB{XLxR}={xLxR}fB=DfB

根据这个关系,我们可以看出在双目的系统中我只要知道了视差值D就可以根据之前的关系。得出需要估计的深度值信息了。

由此也是引出了双目立体视觉中的一个核心的问题。双目视觉中的立体匹配问题

其任务就是寻找左右图像当中的两个对应点,并建立对应的关系。从而方面的计算出视差D

在这里插入图片描述

就需要之前学过的一些特征点匹配的算法了就比如之前的SIFT算法等。但是对于之一些光照和颜色相近的一些点,例如匹配一张图像上的白墙上的两个点。也是十分的困难。

根据这个问题也就有了主动双目相机了。也就是使用了双IR相机加结构光。在单色的图像上也打出一些激光点也就能保证正常的立体图像匹配

在这里插入图片描述

双目深度估计中存在的问题是:

  1. 双目测距要求轴平行,测距精度严重依赖于平行程度。
  2. 为了计算视差d,需要匹配世界中同一点P1在左右两幅图像中的像素点p1和p1’即双目立体匹配。在复杂光照和复杂场景下,如何准确双目立体匹配本身就是很难的问题。
  3. 对于世界中越远的点P2,其在左右视图中的视差d2越小,测距结果越容易受到双目立体匹配误差影响(即双目测距精度与被测物体距离成反相关)

对极几何的概念

在这里插入图片描述

要寻找两幅图像之间的对应关系,最直接的方法就是逐点匹配,如果加以一定的约束条件(对极约束),搜索的范围可以大大减小。从2D平面搜索转为1D直线搜索,搜索速度也会提高。

对于下面的一副图来说我们的c和c’表示的是相机的光心。x是测量的三维空间中的一个点。两个白色的为两个成像平面。

在这里插入图片描述

  1. 这个灰色的平面束和我们的成像平面之间是有交线的。这个交线就是对极线
  • 对极平面(epipolarplane):任何包含基线的平面(图中的灰色面

  • 对极点(epipole):摄像机的基线与每幅图像的交点;

  • 对极线(epipolar1ine):对极平面与图像平面的交线

  1. 我们需要将x和x’进行立体的匹配。提出问题就是如何快速的找到这两个点呢?

  2. 对极约束(Epipolar Constraint) 也就是给它一个约束从2d搜寻转为在1d的线上的一个搜索过程。

这个模型有个有趣的性质。当三维点p沿着px0方向接近左相机时,我们发现其在左相机上的投影点并不会移动,但是其在右相机相平面上的投影点x1发生了变化,其移动轨迹一定是沿着极线1。

在这里插入图片描述

深度相机

上面我们学过的双目相机可以看作是一种深度相机,在继续进行学习之前。对深度相机的知识进行一些扩展

在这里插入图片描述
它在2d相机的基础上增加了对深度值得测量,每个像素经过一定的计算处理类似上面提到的双目的这种。可以得到对应的深度值。

所有像素测量得到的像素深度值的集合,就构成了一幅深度图。,深度图是一张灰度图。是一张用二维坐标表示三维的一副图。

在这里插入图片描述
在这里插入图片描述

### 双目相机的工作原理 双目相机是一种基于计算机视觉技术的设备,其核心功能在于通过模拟人类双眼的立体视觉机制来实现深度感知和三维重建。以下是关于双目相机工作原理的具体说明: #### 基本概念 双目相机由两个平行排列的摄像头组成,这两个摄像头之间存在一定的基线距离 \(B\)。当目标物体被拍摄时,每个摄像头都会捕捉到该物体的不同视角图像。由于视差的存在,同一物体在两张图像中的位置会有所不同。 根据几何光学理论以及相似三角形的关系[^1],可以通过计算视差(Disparity, 表示同一物体在左右图像上的像素偏移量)来估计目标的距离。具体公式如下所示: \[ Z = \frac{f \cdot B}{D} \] 其中: - \(Z\) 是目标物与相机之间的实际距离; - \(f\) 是摄像机镜头的有效焦距; - \(B\) 是两台摄像机中心点间的水平间距(即基线长度); - \(D\) 则代表所测得的视差值。 #### 数据处理流程 为了获取场景中各点的确切坐标信息,在完成原始图片采集之后还需要经历以下几个重要环节的数据运算过程: 1. **校正内外参数**: 对每只眼睛单独做标定操作以确定各自的内部属性(比如焦距、主点等),并求解相对姿态关系。 2. **特征匹配**: 寻找左图右图间对应同一点的最佳候选者集合,并建立关联映射表。 3. **视差图生成**: 结合上述成果构建整幅画面范围内逐像素级别的差异分布状况图表——也就是常说的“disparity map”。 4. **三维重构**: 应用前述提到过的数学模型转换逻辑最终还原出完整的空间结构描述形式。 ```python def calculate_depth(disparity, baseline, focal_length): """ Calculate depth from disparity using the formula Z = (f * B) / D. :param disparity: Disparity value between two images. :param baseline: Distance between the two cameras. :param focal_length: Focal length of the camera lenses. :return: Depth or distance to the object. """ if disparity == 0: return float('inf') # Avoid division by zero when there is no disparity depth = (focal_length * baseline) / disparity return depth ``` 以上就是有关于如何利用一对同步工作的成像单元配合相应算法达成精确测量目的的整体思路概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月亮已死热爱可抵万难

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值