近期做了一些机器手臂和摄像头之间手眼标定的内容,在这里对相机的标定做一下总结,手眼标定内容后续更新。

1. 相机成像原理说明

数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四
个坐标系: 世界坐标系、 相机坐标系、 图像坐标系、 像素坐标系以及这四个坐标系的转
换。 相机模型是光学成像模型的简化, 最基本的透镜成像原理如图1 所示:



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_图像平面

图1透镜成像过程


其中 u 为物距, f 为焦距, v 为相距。 三者满足关系式:



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_世界坐标系_02

相机的镜头是一组透镜, 当平行于主光轴的光线穿过透镜时, 会聚到一点上, 这个 点叫做焦点, 焦点到透镜中心的距离叫做焦距 f。 数字相机的镜头相当于一个凸透镜, 感光元件就处在这个凸透镜的焦点附近, 将焦距近似为凸透镜中心到感光元件的距离时 就成为小孔成像模型。 小孔成像模型如图 2 所示:



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_图像平面_03

图2小孔成像模型


基于上图, 当 s 和 f 相等的时候, 便是相机的成像模型。 小孔成像模型是相机成像 采用最多的模型。 在此模型下, 物体的空间坐标和图像坐标之间是线性的关系, 因而对 像素坐标的求解就归结到求解线性方程组上。

对于针孔相机模型, 如图3所示(其中f为相机焦距), 对于真实世界中的空间点
Pw(Xw, Yw, Zw), 其对应的相机坐标系坐标为Pc(Xw, Yw, Zw), 对应的图像坐标
系坐标为P(x ,y),对应的像素坐标为p(u, v)。



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_世界坐标系_04

图3 针孔相机模型


世界坐标系: 是客观三维世界的绝对坐标系, 也称客观坐标系。

相机坐标系(光心坐标系): 以相机的光心为坐标原点, X 轴和 Y 轴分别平行于
图像坐标系的 X 轴和 Y 轴, 相机的光轴为 Z 轴。

图像坐标系: 以图像平面的中心为坐标原点, X 轴和 Y 轴分别平行于图像平面的
两条垂直边, 用( x , y )表示其坐标值。 图像坐标系是用物理单位(例如毫米) 表示像素
在图像中的位置。

像素坐标系: 以图像平面的左上角顶点为原点, X 轴和 Y 轴分别平行于图像坐标
系的 X 轴和 Y 轴, 用(u , v )表示其坐标值,单位是像素。

2. 相机成像过程

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

真实世界中的某点会投影在相机的成像平面上, 图像坐标系和相机坐标系下坐标的
关系如下:



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_真实世界_05

## 2.2 相机坐标系–>图像坐标系 真实世界中的某点会投影在相机的成像平面上, 图像坐标系和相机坐标系下坐标的 关系如下:



像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_图像平面_06

其中 f 为相机焦距, 投影过程只和相机焦距 f 有关。

2.3 图像坐标系–>像素平面坐标系

像素坐标系和图像坐标系的坐标关系如下:

像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_计算机视觉_07


像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_计算机视觉_08


上面推导了相机投影成像的数学模型, 这是在理想状况下推导的, 实际上由于相机

光学系统存在加工和装配的误差, 透镜就并不能满足物和像成相似三角形的关系, 所以

相机图像平面上实际所成的像与理想成像之间会存在畸变。 畸变属于成像的几何失真,

是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象, 这种变形的

程度从画面中心至画面边缘依次递增, 主要在画面边缘反映比较明显。

相机的畸变可以由非线性模型来表示, 由于公式比较复杂, 对于推导过程, 此处将

不再赘述, 最后给出简化后的畸变模型:

像素坐标转换实际坐标python_像素坐标转世界坐标的计算 像素坐标到相机坐标_世界坐标系_09


其中(X,Y,Z)为世界坐标系下的坐标, (x,y,x)为相机坐标系下的坐标, 归一化为(x’,y’),

(x’’,y’’)为加入畸变参数的归一化坐标, (u,v)为畸变模型下的像素坐标。

݇1, ݇2, ݇3, ݇4, ݇5, ݇6,为 径向畸变参数, ݌1, ݌2为切向畸变参数。