资讯详情

「CameraCalibration」传感器(相机、激光雷达、其他传感器)标定笔记

还没写完,可看 ------------------分割线----------------------

看了很多次相机校准,都是模糊的。希望这次能写。blog掌握并掌握与相机标定相关的知识。

注:本文适合复习/快速启动,不适合想了解相机标定原理的人

相机标定

背景

自从相机发明以来,我们可以用相机以二维图像的形式保存三维世界的场景。相机将三维场景中的信息转换为二维图像的过程导致了一个问题:是否可以通过计算模拟3D到2D逆向过程。这个问题一旦解决,就可以做很多事情:图像畸变矫正、图像深度估计、三维重建等。事实证明,逆向过程可以通过计算模拟,计算过程称为相机校准

相机校准使用数学模型来模拟从三维场景到二维图像的反向过程。为什么要模拟它,因为我们只能将高维数据降低到低维数据,而不能使用低维数据来恢复高维数据。相机校准的技能是利用视觉三维信息计算二维图像转换为三维物体的参数

相机成像原理

坐标系说明

相机成像涉及世界坐标系、相机坐标系、成像坐标系、像素坐标系四个坐标系

  • 世界坐标系 在世界坐标系中,只要世界上的物体不移动,世界坐标系中物体的坐标就不会改变。例如,前面的空地上有一个人和一个相机。人和相机都在世界坐标系下。只要人和相机不移动,人和相机在世界坐标系下的坐标就不会改变

  • 相机坐标系 相机坐标系由光心(相机坐标系原心)和平行于投影平面的三个维度组成。或者上面的例子,如果前面有一个人和一个相机,如果人们在世界上移动,那么在相机坐标系中,相机的位置是相机坐标系的起源;如果相机在世界上移动,但人们不移动,那么在相机坐标系中,,相机的位置(尽管相机移动)仍然是相机坐标系的原点。

  • 成像坐标系 成像坐标系的原点是光轴与成像平面的交点,成像坐标系x, y在成像平面上。这里的成像平面已经在相机内部,但它不同于像素坐标系;成像坐标系的起源也是光轴上相机透镜的物理中心。

光轴垂直于相机坐标系xy平面和成像坐标系xy因此,光轴上有两个坐标系的z轴

  • 像素坐标系 像素坐标系的原点是我们通常看到的图像的左上角。像素坐标系和成像坐标系的区别在于像素坐标系的原点在左上角,成像坐标系的原点在图像中心

成像流程

世界坐标系下的物体 —> 相机坐标系下的物体 —> 对象在成像坐标系下 —> 像素坐标系下的物体(即图像中的物体)

世界坐标系→相机坐标系

世界坐标系和相机坐标系是三维坐标系,一个物体在两个坐标系中都有长度、宽度和高度。

假设物体在世界坐标系下的坐标是 ( W x , W y , W z ) ({W}_{x}, {W}_{y}, {W}_{z}) (Wx,Wy,Wz),相机坐标系下物体的坐标是 ( C x , C y , C z ) ({C}_{x}, {C}_{y}, {C}_{z}) (Cx​,Cy​,Cz​),旋转矩阵为 R 3 × 3 {R}_{3\times3} R3×3​,平移矩阵为 T 3 × 1 {T}_{3\times1} T3×1​

那么物体从世界坐标映射到相机坐标系的过程应该是

先将物体在世界坐标系下的坐标减去相机在世界坐标系下的坐标,获取到物体与相机的相对距离(如果能直接得到物体和相机的相对距离向量更好),然后再对物体的相对距离做旋转(如果物体是一个点,则直接用点的相对坐标乘以旋转矩阵;如果物体是由多个点构成的,那么则用每个点的相对坐标乘以旋转矩阵)。整个先平移,后旋转的过程用数学公式表达可以写成: [ C x C y C z 1 ] = [ R 0 0 1 ] × [ E − T 0 1 ] × [ W x W y W z 1 ] \begin{bmatrix} {C}_{x} \\ {C}_{y} \\ {C}_{z} \\ 1 \end{bmatrix} = \begin{bmatrix} R & 0 \\ 0 & 1 \end{bmatrix} \times \begin{bmatrix} E & -T \\ 0 & 1 \end{bmatrix} \times \begin{bmatrix} {W}_{x} \\ {W}_{y} \\ {W}_{z} \\ 1 \end{bmatrix} ⎣⎢⎢⎡​Cx​Cy​Cz​1​⎦⎥⎥⎤​=[R0​01​]×[E0​−T1​]×⎣⎢⎢⎡​Wx​Wy​Wz​1​⎦⎥⎥⎤​

其中 R R R和 T T T构成的分块矩阵 [ R T 0 1 ] \begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} [R0​T1​]是相机标定中提到的;暂时不用管矩阵值是什么,记住这个公式接着往下看

相机坐标系→成像坐标系

成像坐标系,顾名思义成像二字,很容易知道成像平面坐标系是二维的;此外,成像平面可以抽象地理解为相机内部的一个物理平面,该平面有相机观测到的外部三维世界的二维成像。

假定物体在相机坐标系下的坐标为 ( C x , C y , C z ) ({C}_{x}, {C}_{y}, {C}_{z}) (Cx​,Cy​,Cz​),成像后的物体在成像平面坐标系下的坐标为 ( G x , G y ) ({G}_{x}, {G}_{y}) (Gx​,Gy​),成像过程中涉及的相机焦距为 f f f,那么物体在三维世界中的坐标映射到相机成像平面的数学变换,可写作: [ G x G y 1 ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] × [ C x C y C z 1 ] \begin{bmatrix} {G}_{x} \\ {G}_{y} \\ 1 \end{bmatrix} = \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \times \begin{bmatrix} {C}_{x} \\ {C}_{y} \\ {C}_{z} \\ 1 \end{bmatrix} ⎣⎡​Gx​Gy​1​⎦⎤​=⎣⎡​f00​0f0​001​000​⎦⎤​×⎣⎢⎢⎡​Cx​Cy​Cz​1​⎦⎥⎥⎤​

其中矩阵 [ f 0 0 0 0 f 0 0 0 0 1 0 ] \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} ⎣⎡​f00​0f0​001​000​⎦⎤​是相机标定中提到的之一;这里的矩阵计算用到的原理包括小孔成像和相似三角形,具体细节见参考链接中的《相机成像原理》

成像坐标系→像素坐标系

假定物体在成像平面/成像坐标系下的坐标为 ( G x , G y ) ({G}_{x}, {G}_{y}) (Gx​,Gy​),物体在像素坐标系下的坐标为 ( P x , P y ) ({P}_{x}, {P}_{y}) (Px​,Py​),成像平面原点与像素平面原点之间在x方向和y方向的尺度距离为 ( o x , o y ) ({o}_{x}, {o}_{y}) (ox​,oy​),对应的尺度因子为 ( s x , s y ) ({s}_{x}, {s}_{y}) (sx​,sy​)

因为成像平面可以抽象理解为相机内部的一个物理平面,那么从物理平面的尺度转换到像素平面/图像尺度,所使用到的尺度缩放参数假定为 ( s x , s y ) ({s}_{x}, {s}_{y}) (sx​,sy​)

成像坐标系转换到像素坐标系,转换过程类似于一个点在二维平面上的平移,因此,这个平移过程可以写成: P x = 1 s x G x + o x {P}_{x} = \frac {1} { {s}_{x}} {G}_{x} + {o}_{x} Px​=sx​

标签: 93z光纤传感器oy054s传感器4光纤传感器的镜头

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台