0


世界坐标系、相机坐标系和图像坐标系的转换

相机标定笔记

坐标系转换

之前只是停留在会用的阶段,一直没去读懂计算的原理,今天通读了大佬的文章,写的言简意赅,感谢感谢~~特此记录一下,仅用作个人笔记

贴链接,十分感谢~
https://blog.csdn.net/weixin_44278406/article/details/112986651
https://blog.csdn.net/guyuealian/article/details/104184551

四个不同类型的坐标系

将三维物体转换成照片上的二维坐标,由四个坐标系进行转换。

1. 世界坐标系

世界坐标系是一个特殊坐标系,它建立了描述其他坐标系需要的参考框架。能够用世界坐标系描述其他坐标系的位置,而不能用更大的、外部的坐标系描述世界坐标系。从非技术意义上讲,世界坐标系建立的是我们所关心的最大坐标系,而不必真的是整个世界。

    (
   
   
    
     X
    
    
     w
    
   
   
    ,
   
   
    
     Y
    
    
     w
    
   
   
    ,
   
   
    
     Z
    
    
     w
    
   
   
    )
   
  
  
   (X_w,Y_w,Z_w)
  
 
(Xw​,Yw​,Zw​)来表示,世界坐标系可通过旋转和平移得到相机坐标系。

2. 相机坐标系

以相机透镜的几何中心(光心)为原点,坐标系满足右手法则,用

    (
   
   
    
     X
    
    
     c
    
   
   
    ,
   
   
    
     Y
    
    
     c
    
   
   
    ,
   
   
    
     Z
    
    
     c
    
   
   
    )
   
  
  
   (X_c,Y_c,Z_c)
  
 
(Xc​,Yc​,Zc​)来表示;相机光轴为坐标系的Z轴,X轴水平,Y轴竖直。

3. 图像物理坐标系

以CCD图像的中心为原点,坐标由

    (
   
   
    x
   
   
    ,
   
   
    y
   
   
    )
   
  
  
   (x, y)
  
 
(x,y) 表示,图像坐标系的单位,一般是毫米,坐标原点为相机光轴与成像平面的交点(一般情况下,这个交点是接近于图像的正中心)

在这里插入图片描述

CCD,英文全称:Charge coupled Device,中文全称:电荷耦合元件,可以称为CCD图像传感器。CCD是一种半导体器件,能够把光学影像转化为数字信号。 CCD上植入的微小光敏物质称作像素(Pixel)。一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。

4. 图像像素坐标系

其实,当我们提及一个图像时,通常指的是图像的像素坐标系。像素坐标系的原点在左上角,并且单位为像素。
在这里插入图片描述

将图像坐标系的原点

     O
    
    
     1
    
   
  
  
   O_1
  
 
O1​ ,转化到以 

 
  
   
    
     O
    
    
     0
    
   
  
  
   O_0
  
 
O0​ 为原点的坐标系中。使用的原因:
  • 如果使用图像坐标系,单位mm,其实不太好衡量具体的图像,如果按照统一的像素标准,比较容易衡量图像的质量
  • 如果使用图像坐标系,然后就有四个象限,这样会有正负数的问题,但是转换成像素坐标系后,都为整数。在后续的操作和运算中,都简化很多。

坐标转换

针孔模型(The basic pinhole model)。这种模型在数学上是三维空间到二维平面(image plane or focal plane)的中心投影,由一个

    3
   
   
    ×
   
   
    4
   
  
  
   3 × 4
  
 
3×4 投影矩阵

 
  
   
    P
   
   
    =
   
   
    K
   
   
    [
   
   
    R
   
   
    ∣
   
   
    t
   
   
    ]
   
  
  
   P = K [ R | t ]
  
 
P=K[R∣t]来描述,

 
  
   
    K
   
  
  
   K
  
 
K 为相机内参(internal camera parameters),

 
  
   
    [
   
   
    R
   
   
    ∣
   
   
    t
   
   
    ]
   
  
  
   [R|t]
  
 
[R∣t]为外参(external parameters)。

世界坐标 → 相机坐标(刚性变换)

      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          R
         
        
       
       
        
         
          t
         
        
       
      
      
       
        
         
        
       
      
      
       
        
         
          
           0
          
          
           
            1
           
           
            ∗
           
           
            3
           
          
         
        
       
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
   
   
     \begin{bmatrix}X_c \\ Y_c \\ Z_c \\ 1 \end{bmatrix} = \begin{bmatrix}R & t\\\\ 0_{1*3} & 1 \end{bmatrix} \begin{bmatrix}X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} 
   
  
 ⎣⎡​Xc​Yc​Zc​1​⎦⎤​=⎣⎡​R01∗3​​t1​⎦⎤​⎣⎡​Xw​Yw​Zw​1​⎦⎤​


 
  
   
    
     X
    
    
     c
    
   
   
    ,
   
   
    
     Y
    
    
     c
    
   
   
    ,
   
   
    
     Z
    
    
     c
    
   
  
  
   X_c,Y_c,Z_c
  
 
Xc​,Yc​,Zc​代表相机坐标;

 
  
   
    
     X
    
    
     w
    
   
   
    ,
   
   
    
     Y
    
    
     w
    
   
   
    ,
   
   
    
     Z
    
    
     w
    
   
  
  
   X_w,Y_w,Z_w
  
 
Xw​,Yw​,Zw​代表世界坐标;R代表正交单位旋转矩阵,t代表三维平移矢量。

根据旋转角度可以分别得三个方向上的旋转矩阵,而旋转矩阵即为他们的乘积:

    R
   
   
    =
   
   
    
     R
    
    
     x
    
   
   
    ∗
   
   
    
     R
    
    
     y
    
   
   
    ∗
   
   
    
     R
    
    
     z
    
   
  
  
   R = R_x * R_y * R_z
  
 
R=Rx​∗Ry​∗Rz​

顺便记录一下三个旋转矩阵的公式,经常忘记。

    X
   
  
  
   X
  
 
X旋转

 
  
   
    θ
   
  
  
   \theta
  
 
θ度

 
  
   
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          1
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
       
        
         
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          
           −
          
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      R
     
     
      x
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
   
   
     \begin{bmatrix}X_c\\Y_c\\Z_c\end{bmatrix} = \begin{bmatrix}1&0&0\\0&cos\theta&sin\theta\\0&-sin\theta&cos\theta\end{bmatrix} \begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix}=R_x\begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix} 
   
  
 ⎣⎡​Xc​Yc​Zc​​⎦⎤​=⎣⎡​100​0cosθ−sinθ​0sinθcosθ​⎦⎤​⎣⎡​Xw​Yw​Zw​​⎦⎤​=Rx​⎣⎡​Xw​Yw​Zw​​⎦⎤​

    Y
   
  
  
   Y
  
 
Y轴旋转

 
  
   
    θ
   
  
  
   \theta
  
 
θ度

 
  
   
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
       
        
         
          0
         
        
       
       
        
         
          
           −
          
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          1
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
       
        
         
          0
         
        
       
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      R
     
     
      y
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
   
   
     \begin{bmatrix}X_c\\Y_c\\Z_c\end{bmatrix} = \begin{bmatrix}cos\theta&0&-sin\theta\\0&1&0\\sin\theta&0&cos\theta\end{bmatrix} \begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix}=R_y\begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix} 
   
  
 ⎣⎡​Xc​Yc​Zc​​⎦⎤​=⎣⎡​cosθ0sinθ​010​−sinθ0cosθ​⎦⎤​⎣⎡​Xw​Yw​Zw​​⎦⎤​=Ry​⎣⎡​Xw​Yw​Zw​​⎦⎤​

    Z
   
  
  
   Z
  
 
Z轴旋转

 
  
   
    θ
   
  
  
   \theta
  
 
θ度

 
  
   
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
       
        
         
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          
           −
          
          
           s
          
          
           i
          
          
           n
          
          
           θ
          
         
        
       
       
        
         
          
           c
          
          
           o
          
          
           s
          
          
           θ
          
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      R
     
     
      z
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
     
     
      ]
     
    
   
   
     \begin{bmatrix}X_c\\Y_c\\Z_c\end{bmatrix} = \begin{bmatrix}cos\theta&sin\theta&0\\-sin\theta&cos\theta&0\\0&0&1\end{bmatrix} \begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix}=R_z\begin{bmatrix}X_w\\Y_w\\Z_w\end{bmatrix} 
   
  
 ⎣⎡​Xc​Yc​Zc​​⎦⎤​=⎣⎡​cosθ−sinθ0​sinθcosθ0​001​⎦⎤​⎣⎡​Xw​Yw​Zw​​⎦⎤​=Rz​⎣⎡​Xw​Yw​Zw​​⎦⎤​

相机坐标 → 图像坐标系(中心投影)

相机坐标系到图像坐标系是透视关系,利用相似三角形进行计算。
在这里插入图片描述
写成齐次坐标形式的矩阵相乘为

     Z
    
    
     c
    
    
     
      [
     
     
      
       
        
         
          x
         
        
       
      
      
       
        
         
          y
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          f
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          f
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          1
         
        
       
       
        
         
          0
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          
           K
          
          
           ∣
          
          
           0
          
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           c
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           c
          
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
   
   
     Zc \begin{bmatrix}x\\y\\1\end{bmatrix} = \begin{bmatrix}f&0&0&0\\0&f&0&0\\0&0&1&0 \end{bmatrix} \begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix} = \begin{bmatrix}K|0\end{bmatrix} \begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix} 
   
  
 Zc⎣⎡​xy1​⎦⎤​=⎣⎡​f00​0f0​001​000​⎦⎤​⎣⎡​Xc​Yc​Zc​1​⎦⎤​=[K∣0​]⎣⎡​Xc​Yc​Zc​1​⎦⎤​

其中f代表焦距,即相机坐标系和图像坐标系在Z轴上的差。此时投影点p的单位还是mm,并不是pixel,不方便进行后续运算。

图像坐标系 → 像素坐标系(离散化)

像素坐标系的原点在左上角,并且单位为像素。像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点或者叫principal point。图像坐标系的单位是mm,属于物理单位,而像素坐标系的单位是pixel,我们平常描述一个像素点都是几行几列。所以这二者之间的转换如下:其中dx和dy表示每一列和每一行分别代表多少mm,即1pixel=dx mm

在这里插入图片描述

     Z
    
    
     c
    
    
     
      [
     
     
      
       
        
         
          u
         
        
       
      
      
       
        
         
          v
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     =
    
    
     
      [
     
     
      
       
        
         
          
           1
          
          
           
            d
           
           
            x
           
          
         
        
       
       
        
         
          0
         
        
       
       
        
         
          
           u
          
          
           0
          
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          
           1
          
          
           
            d
           
           
            y
           
          
         
        
       
       
        
         
          
           v
          
          
           0
          
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          f
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          f
         
        
       
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
      
      
       
        
         
          0
         
        
       
       
        
         
          0
         
        
       
       
        
         
          1
         
        
       
       
        
         
          0
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          R
         
        
       
       
        
         
          t
         
        
       
      
      
       
        
         
        
       
      
      
       
        
         
          
           0
          
          
           
            1
           
           
            ∗
           
           
            3
           
          
         
        
       
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
    
     
      [
     
     
      
       
        
         
          
           X
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Y
          
          
           w
          
         
        
       
      
      
       
        
         
          
           Z
          
          
           w
          
         
        
       
      
      
       
        
         
          1
         
        
       
      
     
     
      ]
     
    
   
   
     Zc \begin{bmatrix}u\\v\\1\end{bmatrix} = \begin{bmatrix}\frac{1}{d_x}&0&u_0\\0&\frac{1}{d_y}&v_0\\0&0&1 \end{bmatrix} \begin{bmatrix}f&0&0&0\\0&f&0&0\\0&0&1&0 \end{bmatrix} \begin{bmatrix}R & t\\\\ 0_{1*3} & 1 \end{bmatrix} \begin{bmatrix}X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} 
   
  
 Zc⎣⎡​uv1​⎦⎤​=⎣⎡​dx​1​00​0dy​1​0​u0​v0​1​⎦⎤​⎣⎡​f00​0f0​001​000​⎦⎤​⎣⎡​R01∗3​​t1​⎦⎤​⎣⎡​Xw​Yw​Zw​1​⎦⎤​

其中

     [
    
    
     
      
       
        
         
          1
         
         
          
           d
          
          
           x
          
         
        
       
      
      
       
        
         0
        
       
      
      
       
        
         
          u
         
         
          0
         
        
       
      
     
     
      
       
        
         0
        
       
      
      
       
        
         
          1
         
         
          
           d
          
          
           y
          
         
        
       
      
      
       
        
         
          v
         
         
          0
         
        
       
      
     
     
      
       
        
         0
        
       
      
      
       
        
         0
        
       
      
      
       
        
         1
        
       
      
     
    
    
     ]
    
   
   
    
     [
    
    
     
      
       
        
         f
        
       
      
      
       
        
         0
        
       
      
      
       
        
         0
        
       
      
      
       
        
         0
        
       
      
     
     
      
       
        
         0
        
       
      
      
       
        
         f
        
       
      
      
       
        
         0
        
       
      
      
       
        
         0
        
       
      
     
     
      
       
        
         0
        
       
      
      
       
        
         0
        
       
      
      
       
        
         1
        
       
      
      
       
        
         0
        
       
      
     
    
    
     ]
    
   
  
  
   \begin{bmatrix}\frac{1}{d_x}&0&u_0\\0&\frac{1}{d_y}&v_0\\0&0&1 \end{bmatrix} \begin{bmatrix}f&0&0&0\\0&f&0&0\\0&0&1&0 \end{bmatrix}
  
 
⎣⎡​dx​1​00​0dy​1​0​u0​v0​1​⎦⎤​⎣⎡​f00​0f0​001​000​⎦⎤​为相机内参矩阵,

 
  
   
    [
   
   
    
     
      
       
        R
       
      
     
     
      
       
        t
       
      
     
    
    
     
      
       
      
     
    
    
     
      
       
        
         0
        
        
         
          1
         
         
          ∗
         
         
          3
         
        
       
      
     
     
      
       
        1
       
      
     
    
   
   
    ]
   
  
  
   \begin{bmatrix}R & t\\\\ 0_{1*3} & 1 \end{bmatrix}
  
 
⎣⎡​R01∗3​​t1​⎦⎤​为外参矩阵。相机标定就是为了求解这两个矩阵的参数。

在这里插入图片描述

标签: cv 人工智能

本文转载自: https://blog.csdn.net/weixin_38842821/article/details/125933604
版权归原作者 滴滴滴'cv 所有, 如有侵权,请联系我们删除。

“世界坐标系、相机坐标系和图像坐标系的转换”的评论:

还没有评论