单目摄像头物体深度计算基础原理

三维空间物体表面点位与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数 ,而相机参数的求解就是相机标定。

相机的参数矩阵包括内参 和外参 :

外参:决定现实坐标到摄像机坐标。摄像机的旋转平移属于外参,用于描述相机在静态场景下相机的运动,或者在相机固定时,运动物体的刚性运动。因此,在图像拼接或者三维重建中,就需要使用外参来求几幅图像之间的相对运动,从而将其转换到同一个坐标系下面。

内参:决定摄像机坐标到图像坐标。

畸变矩阵:镜头的映射无法做到直线射影变换,存在的误差需要畸变参数来描述。为易于理解,以下公式假设完美状态下,不存在该项。

  • 内参数矩阵 ( K ):
    K = ( f x s c x 0 f y c y 0 0 1 ) K = \begin{pmatrix} f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{pmatrix} K= fx00sfy0cxcy1

    其中:

    • f x , f y f_x, f_y fx,fy:相机在 x x x 和 y y y 方向的焦距(单位:像素)。
    • c x , c y c_x, c_y cx,cy:相机的主点(光轴与图像平面交点在图像中的位置)。
    • s s s:坐标轴倾斜参数,理想情况为0。
  • 外参数矩阵 ( R \| T ):
    R ∣ T = ( r 11 r 12 r 13 t x r 21 r 22 r 23 t y r 31 r 32 r 33 t z ) R \| T = \begin{pmatrix} r_{11} & r_{12} & r_{13} & t_x \\ r_{21} & r_{22} & r_{23} & t_y \\ r_{31} & r_{32} & r_{33} & t_z \end{pmatrix} R∣T= r11r21r31r12r22r32r13r23r33txtytz

    其中:

    • R R R 为旋转矩阵,描述相机坐标系相对于世界坐标系的旋转。
    • T = ( t x , t y , t z ) T = (t_x, t_y, t_z) T=(tx,ty,tz) 为平移向量,描述相机坐标系原点相对于世界坐标系原点的平移。

公式推导:

为了通过相机模型测距,我们可以通过 图像坐标与世界坐标的转换 来推导出目标物体的深度(Z轴):

  1. 假设目标物体的世界坐标为 P w o r l d = ( X , Y , Z ) T P_{world} = (X, Y, Z)^T Pworld=(X,Y,Z)T,并且它在图像平面上的投影点为 p i m a g e = ( u , v ) p_{image} = (u, v) pimage=(u,v)。

  2. 相机的成像过程可以表示为:
    λ ( u v 1 ) = K R ∣ T ( X Y Z 1 ) \lambda \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = K R \| T \begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix} λ uv1 =KR∣T XYZ1

    其中, λ \lambda λ是归一化因子。

  3. 通过矩阵乘法,得到:
    ( u v 1 ) = 1 Z ( f x 0 c x 0 f y c y 0 0 1 ) ( R 11 R 12 R 13 t x R 21 R 22 R 23 t y R 31 R 32 R 33 t z ) ( X Y Z 1 ) \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = \frac{1}{Z} \begin{pmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} R_{11} & R_{12} & R_{13} & t_x \\ R_{21} & R_{22} & R_{23} & t_y \\ R_{31} & R_{32} & R_{33} & t_z \end{pmatrix} \begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix} uv1 =Z1 fx000fy0cxcy1 R11R21R31R12R22R32R13R23R33txtytz XYZ1

  4. 通过图像坐标 ( u , v ) (u, v) (u,v)和世界坐标的关系,我们可以推导出物体的 深度 ( Z ) :
    Z = f x ⋅ ( X ⋅ r 13 + Y ⋅ r 23 + Z ⋅ r 33 + t z ) X ⋅ r 11 + Y ⋅ r 21 + Z ⋅ r 31 + t x Z = \frac{f_x \cdot \left( X \cdot r_{13} + Y \cdot r_{23} + Z \cdot r_{33} + t_z \right)}{X \cdot r_{11} + Y \cdot r_{21} + Z \cdot r_{31} + t_x} Z=X⋅r11+Y⋅r21+Z⋅r31+txfx⋅(X⋅r13+Y⋅r23+Z⋅r33+tz)

参数定义:

  • Z Z Z:目标物体的实际距离(即深度或相机到物体的距离)。
  • f x , f y f_x, f_y fx,fy:相机的焦距(在像素单位下)。
  • c x , c y c_x, c_y cx,cy:图像平面的主点位置(通常是图像的中心)。
  • ( u , v ) (u, v) (u,v):物体在图像中的像素坐标。
  • ( X , Y , Z ) (X, Y, Z) (X,Y,Z):目标物体在世界坐标系中的三维坐标。
  • R R R:相机的旋转矩阵,描述相机坐标系相对于世界坐标系的旋转。
  • T = ( t x , t y , t z ) T = (t_x, t_y, t_z) T=(tx,ty,tz):相机的平移向量,描述相机坐标系与世界坐标系之间的平移。

解释:

这个公式利用了相机的 内外参数矩阵 ,它描述了如何将物体的世界坐标投影到相机图像平面。在这个公式中,物体的深度 Z Z Z由物体在图像平面中的位置(像素坐标 u , v u, v u,v)以及相机的参数(焦距、内外参数矩阵)决定。通过将物体的图像坐标与相机的内外参数矩阵结合,我们可以推算出物体的实际距离。

相关推荐
小蒋观天下7 小时前
专项方案:大场景港口AI安防、多干扰环境下的算法调优与落地实操
人工智能·深度学习·算法·安全·机器学习·计算机视觉·ai大模型
YOLO数据集集合13 小时前
Deepseek融合yolo的行人车辆多目标检测系统 |行人检测 车辆检测 多目标检测 YOLO DeepSeek9165期
人工智能·yolo·目标检测·计算机视觉·车辆检测·行人检测
兴通物联科技15 小时前
自助终端涉外证件核验选型:XT2010MRZ 嵌入式护照识别模块技术解析
单片机·嵌入式硬件·计算机视觉·硬件架构
lisw0516 小时前
图像质量评估:从误差可见度到结构相似性
人工智能·机器学习·计算机视觉
Latchh17 小时前
PDF打开不要密码却显示已加密,前端怎么判断
前端·图像处理·人工智能·计算机视觉·pdf
原子延迟17 小时前
PDF权限密码和打开密码差在哪?我拿7份文件试了
图像处理·人工智能·计算机视觉·pdf
richard_yuu17 小时前
OpenCV 实战第 7 篇:Canny 阈值自适配、findContours 层级与 approxPolyDP
人工智能·opencv·计算机视觉
YOLO数据集集合19 小时前
道路与桥梁灾后损伤检测数据集 | 道路损伤 桥梁损坏 灾后评估 无人机巡检 目标检测 YOLO格式 深度学习数据集 计算机视觉10551期
yolo·目标检测·计算机视觉·无人机·桥梁损害·灾后评估
loulanyue_1 天前
体验的Scaling时刻:读淘天首席科学家郑波2026云栖演讲
人工智能·计算机视觉·大模型·多模态
答案是你2 天前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测