Threejs相机标定参数的理解

作者:陆金龙    发表时间:2023-05-28 05:35   

关键词:世界坐标系  相机坐标系  标定外参  标定内参  

一、四种坐标系

1:世界坐标系:根据情况而定,可以表示任何物体,此时是由于相机而引入的。单位m。

2:相机坐标系:以摄像机光心为原点,z轴与光轴重合也就是z轴指向相机的前方(也就是与成像平面垂直),x轴与y轴的正方向与物体坐标系平行,其中上图中的f为摄像机的焦距。单位m。

3:图像物理坐标系(也叫平面坐标系):用物理单位表示像素的位置,坐标原点为摄像机光轴与图像物理坐标系的交点位置。坐标系为图上o-xy。单位是mm。

4:像素坐标系:以像素为单位,坐标原点在左上角。CCD传感器以mm单位到像素中间有转换,例如CCD传感上上面的8mm x 6mm,转换到像素大小是640x480. 假如dx表示像素坐标系中每个像素的物理大小就是1/80. 也就是说毫米与像素点的之间关系是piexl/mm.

图像坐标系和像素坐标系都在成像平面上,只是各自的原点和度量单位不一样。

二、相机标定外参

世界坐标系->相机坐标系

相机标定的外参extrinsic 16个数字的含义:表示一个4行4列的矩阵。

"extrinsic":

    [

     -0.9994466143126584, 0.033033376071303994, -0.003906559137689193, 0.20487898588180542,
     0.0025198193977806005, -0.0419178508124942, -0.9991178830816032, 0.0013696063542738557,
     -0.033167991334523576, -0.9985748293686324, 0.04181141593201179, -0.10943480581045151,
     0, 0, 0, 1

    ],

实际是由一个旋转矩阵R(3x3)和一个平移向量t(1x3)组合得到的齐次坐标矩阵。用来表示世界坐标系到相机坐标系的转换(旋转和平移)。

三、相机标定内参

intrinsic表示内参。

 "intrinsic": [1.2100629810000000e+03, 0.0, 1.0224299030000000e+03,
     0.0,1.2058507139999999e+03, 7.9254164400000002e+02,
     0.0, 0.0, 1.0

   ]

  上面的矩阵可以写成Zpuv=KP,中间的矩阵K便是内参(intrinsics)矩阵。

   f:焦距,单位毫米。fx,fy为焦距,一般情况下,二者相等。

   fx=f/k:像素焦距,x轴方向焦距的长度,单位为像素。

   fy=f/l:像素焦距,y轴方向焦距的长度,单位为像素。
   cx,cy, 相机光心投影在像素坐标系中的坐标,单位也是像素(原点的平移量)。

   在相机坐标系中,像平面(图像传感器所在平面)为 Z = f (焦距,mm)。空间中一点 P 在相机坐标系下为 P ( X , Y , Z ) ,该点在像平面上的投影为点 p在图像坐标系下为 p ( x , y ) ,(通过dx、dy表示一个像素的长和高进行转换)得到在像素坐标系中的坐标为 ( u , v )