十念 发表于 3 天前

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

三维空间物体表面点位与其在图像中对应点之间的相互关系,必须创建相机成像的几何模子,这些几何模子参数就是相机参数,而相机参数的求解就是相机标定。
相机的参数矩阵包罗内参和外参:
外参:决定实际坐标到摄像机坐标。摄像机的旋转平移属于外参,用于形貌相机在静态场景下相机的活动,或者在相机固定时,活动物体的刚性活动。因此,在图像拼接或者三维重建中,就必要使用外参来求几幅图像之间的相对活动,从而将其转换到同一个坐标系下面。
内参:决定摄像机坐标到图像坐标。
畸变矩阵:镜头的映射无法做到直线射影变更,存在的误差必要畸变参数来形貌。为易于理解,以下公式假设完美状态下,不存在该项。


[*] 内参数矩阵 ( 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=               ​fx​00​sfy​0​cx​cy​1​               ​
其中:

[*]                                                               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                                                    11                                                                                                                                              r                                                    12                                                                                                                                              r                                                    13                                                                                                                                              t                                                    x                                                                                                                                                                        r                                                    21                                                                                                                                              r                                                    22                                                                                                                                              r                                                    23                                                                                                                                              t                                                    y                                                                                                                                                                        r                                                    31                                                                                                                                              r                                                    32                                                                                                                                              r                                                    33                                                                                                                                              t                                                    z                                                                                                                )                                                       = \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}                           =               ​r11​r21​r31​​r12​r22​r32​​r13​r23​r33​​tx​ty​tz​​               ​
其中:

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

公式推导:

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

[*] 假设目的物体的世界坐标为                                                          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)。
[*] 相机的成像过程可以表现为:
                                                   λ                                             (                                                                                                   u                                                                                                                                     v                                                                                                                                     1                                                                                             )                                              =                                  K                                  [                                  R                                  ∣                                  T                                  ]                                             (                                                                                                   X                                                                                                                                     Y                                                                                                                                     Z                                                                                                                                     1                                                                                             )                                                      \lambda \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = K \begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix}                           λ               ​uv1​               ​=K               ​XYZ1​               ​
其中,                                             λ                                    \lambda                        λ是归一化因子。
[*] 通过矩阵乘法,得到:
                                                                (                                                                                                   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​               ​fx​00​0fy​0​cx​cy​1​               ​               ​R11​R21​R31​​R12​R22​R32​​R13​R23​R33​​tx​ty​tz​​               ​               ​XYZ1​               ​
[*] 通过图像坐标                                              (                               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​+tx​fx​⋅(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)以及相机的参数(焦距、表里参数矩阵)决定。通过将物体的图像坐标与相机的表里参数矩阵联合,我们可以推算出物体的实际间隔。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 单目摄像头物体深度计算基础原理