个人网站的建设流程,深圳香蜜湖街道香岭社区,教师网络培训平台登录入口,花都建设网站立体视觉的核心技术#xff1a;视差计算与图像校正详解
在立体视觉中#xff0c;通过双目相机#xff08;即左右两台相机#xff09;的不同视角捕获的图像#xff0c;结合几何关系#xff0c;我们可以推算出场景中物体的深度。本文将深入讲解如何基于视差#xff08;di…立体视觉的核心技术视差计算与图像校正详解
在立体视觉中通过双目相机即左右两台相机的不同视角捕获的图像结合几何关系我们可以推算出场景中物体的深度。本文将深入讲解如何基于视差disparity和相似三角形的几何关系推导深度 z z z并阐述图像校正Image Rectification的作用及其在视差匹配中的意义。
一、立体成像中的几何关系
在双目立体视觉系统中左相机和右相机之间存在一个固定的水平距离称为基线baseline记作 B B B。两个相机的焦距focal length为 f f f。
图中展示了双目立体视觉系统的结构和关键参数帮助我们理解视差与深度的关系。
1. 基本变量定义
如图所示双目视觉系统由左相机光心 O l O_l Ol和右相机光心 O r O_r Or构成两者之间的距离为基线 B B B。设待测物体在三维空间中的真实坐标为 P ( X , Y , Z ) P(X, Y, Z) P(X,Y,Z)其在左、右相机图像平面上的投影点分别为 p l ( x l , y l ) p_l(x_l, y_l) pl(xl,yl) 和 p r ( x r , y r ) p_r(x_r, y_r) pr(xr,yr)。
2. 焦距与图像平面
每个相机都有一个图像平面其焦距为 f f f。图像平面是相机感知三维世界的二维空间它距离相机光心的垂直距离为 f f f。在此图像平面上左、右相机的成像点分别为 p l p_l pl 和 p r p_r pr其横坐标分别为 x l x_l xl 和 x r x_r xr。
3. 视差的定义
视差Disparity表示物体在左右图像平面上的水平位置差异用 d x dx dx 表示定义为 d x x l − x r dx x_l - x_r dxxl−xr 视差的存在是因为左右相机拍摄同一物体的角度不同。视差越大意味着物体越靠近相机反之视差越小物体离相机越远。
4. 深度 Z Z Z 的推导
我们可以利用相似三角形关系推导出物体到相机的深度 Z Z Z。根据图中的三角形关系以下是推导深度 Z Z Z 的过程。 对于左相机成像的三角形可以得到 X Z x l f \frac{X}{Z} \frac{x_l}{f} ZXfxl 对于右相机成像的三角形可以得到 X − B Z x r f \frac{X - B}{Z} \frac{x_r}{f} ZX−Bfxr
通过消去 X X X得到 Z Z Z 的公式如下 由左相机的成像关系得出 X x l ⋅ Z f X \frac{x_l \cdot Z}{f} Xfxl⋅Z 将 X X X 代入右相机的成像关系中得到 x l ⋅ Z f − B Z x r f \frac{\frac{x_l \cdot Z}{f} - B}{Z} \frac{x_r}{f} Zfxl⋅Z−Bfxr 整理得出 x l ⋅ Z − B ⋅ f x r ⋅ Z x_l \cdot Z - B \cdot f x_r \cdot Z xl⋅Z−B⋅fxr⋅Z 将 Z Z Z 项合并可以得出最终深度 Z Z Z 的表达式 Z f B x l − x r f B d x Z f \frac{B }{x_l - x_r} f \frac{B }{dx} Zfxl−xrBfdxB
5. 深度 Z Z Z 与视差 d x dx dx 的关系
最终深度 Z Z Z 可以表示为基线 B B B、焦距 f f f 和视差 d x dx dx 的函数 Z f B d x Z f \frac{B }{dx} ZfdxB
该公式表明深度 Z Z Z 与视差 d x dx dx 成反比关系。具体来说
当视差 d x dx dx 增大时深度 Z Z Z 会减小。这表示物体距离相机更近因为左右相机看到的物体位置差异显著。当视差 d x dx dx 减小时深度 Z Z Z 会增大。这表示物体距离相机更远因为左右相机看到的物体位置几乎相同。
这种关系很直观当物体靠近相机时由于角度差异左右相机的成像位置会有较大差异形成较大的视差而当物体较远时左右相机成像位置差异较小视差随之减小。 二、图像校正视差匹配的预处理
在实际的双目视觉系统中左右相机并不总是能够完美对齐。由于安装误差、镜头失真或相机的角度偏差左右图像可能存在垂直方向或旋转上的不一致。这会导致对应点的极线epipolar line并不水平。 如图所示左右图像平面中的极线可能是倾斜的这种不对齐给视差匹配带来了额外的复杂性。为了解决这一问题我们通常需要对图像进行图像校正Image Rectification即通过一种变换使得左右图像的极线变得水平平行使得同一空间点在左右图像中的投影点位于同一条水平线上。这种操作能够简化视差匹配过程并提高深度估计的精度。
1. 图像校正的作用
图像校正的核心目标是对输入图像进行透视变换确保左右相机的极线在校正后的图像中保持水平。校正后的图像具有以下特点
极线水平对齐校正后的极线保持水平从而简化视差计算。简化匹配同一个空间点的左右成像点处于同一水平线上有利于更高效、精确地进行视差匹配。
在图中可以看到原始左右图像的极线红色虚线可能并不水平校正之后这些极线被强制水平对齐从而满足视差计算的要求。
2. 图像校正的数学描述
为了实现图像校正构造一个变换矩阵 H H H 是关键步骤。通过这个矩阵我们可以对原始图像进行透视变换将左右图像中的点映射到校正后的平面上从而使得左右相机的极线水平对齐。
图像校正过程可以表示为 校正图像 原始图像 × H \text{校正图像} \text{原始图像} \times H 校正图像原始图像×H
其中 H H H 是校正变换矩阵其求解依赖于相机的内参和外参即相机的内部光学特性焦距、光心和相机相对于其他相机或世界坐标系的空间位置关系旋转和平移。
内参矩阵 K K K
相机的内参描述了相机的光学特性包括焦距和光心位置。内参矩阵 K K K 通常表示为 K [ f x 0 c x 0 f y c y 0 0 1 ] K \begin{bmatrix} f_x 0 c_x \\ 0 f_y c_y \\ 0 0 1 \end{bmatrix} K fx000fy0cxcy1
其中 f x f_x fx 和 f y f_y fy 是相机在 x x x 和 y y y 方向的焦距 c x c_x cx 和 c y c_y cy 是光心的位置。内参矩阵 K K K 可以通过相机标定技术得到。
外参矩阵 [ R ∣ t ] [R|t] [R∣t]
外参定义了相机的空间位置和方向包括旋转矩阵 R R R 和平移向量 t t t。其中 R R R 是一个 3 × 3 3 \times 3 3×3 矩阵描述了相机坐标系相对于世界坐标系的旋转 t t t 是一个 3 × 1 3 \times 1 3×1 向量描述了相机的平移。外参矩阵组合表示为 外参矩阵 [ R t 0 1 ] \text{外参矩阵} \begin{bmatrix} R t \\ 0 1 \end{bmatrix} 外参矩阵[R0t1]
通过内参和外参的组合我们可以构造出用于校正的变换矩阵 H H H。
构造校正矩阵 H H H
校正矩阵 H H H 的构造如下 H K ⋅ R rect ⋅ K − 1 H K \cdot R_{\text{rect}} \cdot K^{-1} HK⋅Rrect⋅K−1
其中 K K K 为内参矩阵 R rect R_{\text{rect}} Rrect 是通过外参计算得到的旋转矩阵用于将原始图像坐标旋转到极线水平对齐的校正坐标系下 K − 1 K^{-1} K−1 是内参矩阵的逆矩阵用于将校正结果映射回像素坐标系。
通过这种变换校正后的图像点 p rect \mathbf{p}_{\text{rect}} prect 可以由原始图像点 p \mathbf{p} p 映射得到 p rect H ⋅ p \mathbf{p}_{\text{rect}} H \cdot \mathbf{p} prectH⋅p
3. 校正后的视差匹配
完成图像校正后左右图像的极线平行且水平对齐。这样一来视差匹配可以直接在水平方向上进行这带来了以下好处
提高视差计算的准确性由于极线对齐视差直接反映物体深度的信息减少了因角度偏差带来的误差。降低计算复杂度无需在垂直方向上搜索匹配点从而简化了视差匹配的计算过程。
最终通过图像校正双目相机的视差匹配过程变得更加简单有效为深度估计提供了精确的基础。这一过程在自动驾驶、三维重建和机器人视觉系统中尤为重要因为它显著提升了双目视觉系统的鲁棒性和计算效率。 三、总结
立体视觉中的视差与深度成反比关系。通过双目相机拍摄的图像我们可以利用视差来推算物体的深度。而图像校正操作则确保了左右图像的极线平行使得视差计算更为简单和高效。这一过程在自动驾驶、3D 建模等领域中有着广泛的应用。