我们的真实世界是三维的,拍摄的图片是二维的,相机起到的就是映射的过程,可以把相机看成一个广义的函数,输入的三位场景,输出是二维的图片(灰度图),一般情况下我们看到的是彩色图,彩色图是RGB三通道,每个通道可以认为是一张灰度图,也就是三维场景经过广义的函数(相机)得到照片,函数(映射关系)是不可逆的,也就是说我们无法从二维照片恢复出三维世界,相机是物理模型很难用数学模型完全量化,所以我们就需要一个简化的数学模型来代表复杂的三维到二维的成像过程。
文章目录
-
- 一、相机标定
-
- 二、小孔成像
-
- 1、小孔成像原理
- 2、坐标系转换
-
- (1)点P在在不同坐标系的表示:
- (2)坐标系之间的转换矩阵
- 3、相机坐标系到图像坐标系的转换
-
- 4、图像坐标系到像素坐标系的转换
-
- (1)坐标系的转换
- (2)相机坐标系到像素坐标系的转换公式
- 5、完整坐标系转换
-
- (1)世界坐标系到像素坐标系转换
- (2)相机内参:相机的焦距,像素坐标系的相对偏移量
- (3)相机外参:世界坐标系系到相机坐标系的转换关系,相机在师姐坐标系的位姿矩阵
- 6、镜头畸变
-
- (1) 镜头畸变
- (2) 径向畸变
- (3)切向畸变
- 三、相机标定基础
-
- 1、单应性矩阵
-
- (1)定义:
- (2)Opencv接口
- (3)求解方法:
- 2、基本方程
一、相机标定
1、相机的数学意义
- 真实世界是三维的,拍摄的图片是二维的
- 相机(看成一个广义函数 ):输入三维场景,输出是二维的图片(灰度图)
- 彩色围是RGB三通道,每个通道可以认为是一张灰度图
- 函数( 映射关系)是不可逆的,也就是无法从二维照片恢复出三维世界
2、相机标定的意义
- 相机标定 : 使用带有pattern的标定板来求解相机参数的过程
- 用一个简化的数学模型来代表复杂的三维到二维的成像过程
- 相机参数包括:相机内参( 焦距 ),外参( 旋转矩阵 ),镜头畸变参数
- 用途 : 畸变校正,双目视觉,结构光,三维重建,SLAM等等

二、小孔成像
1、小孔成像原理
- 简单没有镜头
- 有一个小的光圈
- 真实世界的3D物体,发出光线通过光圈
- 相机的另一侧,像平面位置,得到一个倒立的实像

2、坐标系转换
- 世界坐标系( Worid Coords ): 点在真实世界中的位置,描述相机的位置,单位是m
- 相机坐标系(Camera Coords) : 以相机sensor中心为原点,建立相机坐标系,单位m
- 图像物理坐标系:经过小孔成像后得到的二维坐标系,单位是mm,坐标原点是图中的点C
- 像素坐标系( Pixel Coords): 成像点在相机sensor上像素的行数和列数,不带有任何的物理单位
- 主点:光轴与圈像平面的交点为主点,圈中的点p

在单目相机标定,相机坐标系和世界坐标系是重合的,这样旋转矩阵就是1,平移矩阵就是0。这样的计算会更加简单,但是双目或多目相机标定不适用,需要用到旋转平移矩阵。
(1)点P在在不同坐标系的表示:
世界坐标系
P ( x w , y w , z w ) P( x_{w} ,y_{w} ,z_{w} ) P(xw,yw,zw)
相机坐标系
P ( x c , y c , z c ) P( x_{c} ,y_{c} ,z_{c} ) P(xc,yc,zc)
(2)坐标系之间的转换矩阵
R:相机坐标系对于世界坐标系的旋转矩阵
T:相机坐标对于世界坐标系的平移矩阵
转换关系:
[ x c y c z c 1 ] = [ R 3 x 3 R 3 x 1 O 1 ] ⋅ [ x w y w z w 1 ] \begin{bmatrix}x_{c} \\y_{c} \\z_{c} \\1 \end{bmatrix} = \begin{bmatrix}R_{3x3} & R_{3x1} \\Ο & 1 \end{bmatrix}·\begin{bmatrix}x_{w} \\y_{w} \\z_{w} \\1 \end{bmatrix} xcyczc1 =[R3x3OR3x11]⋅ xwywzw1
3、相机坐标系到图像坐标系的转换
(1)基于小孔成像的原理

-
假设 点 P ( x c , ( y c , ( z c ) 点P(x_{c},(y_{c},(z_{c}) 点P(xc,(yc,(zc)在图像坐标系的成像点是p’(x,y)
-
空间中一点成像在平面中,与XoY平面平行,距离原点/的平面
-
取一个截面ZoY,可以得到右图,根据相似三角形关系可以计算得到:


-
化简以后可以得到:

-
写成矩阵形式

4、图像坐标系到像素坐标系的转换
(1)坐标系的转换
图像坐标系的点p’(x,y)到像素坐标系的(u,v)的转换
图像坐标系的原点在sensor的中央,单位是mm
像素坐标系的原点在sensor的左上角,单位是Pixel,也就是像素的行数和列
他们的转换关系:

转换成矩阵表示:

dx,dy:是sensor的图有参数,代表每个像素的毫米数
uo,v0:代表图像坐标系原点(光心)相对像坐标系原点的偏移量
(2)相机坐标系到像素坐标系的转换公式
相机坐标系和世界坐标系重合,不考虑世界坐标系的旋转平移

上式中:fx=f/dx’,fy=1/dy’ 焦距除以单个像素的大小
相机的标定过程中,f,dx,dy不能标定得到,fx,fy可以通过标定得到

5、完整坐标系转换

(1)世界坐标系到像素坐标系转换

(2)相机内参:相机的焦距,像素坐标系的相对偏移量

(3)相机外参:世界坐标系系到相机坐标系的转换关系,相机在师姐坐标系的位姿矩阵

6、镜头畸变
(1) 镜头畸变
经过透镜后的实际成像和理想成像之间的误差即为镜头畸变
主要分为径向畸变
和切向畸变

(2) 径向畸变
- 相加的透镜形状造成,沿透镜的径向分布
- 径向畸变分为
桶形畸变
和枕形畸变
- 原理透镜中心的地方比靠近中心的地方更加弯曲
- 光心出的畸变为0,距离光心越远畸变越大
- 廉价相机,畸变更严重
- 径向畸变的数学多项式描述:

- (x,y)是没有畸变的像素点,(xdistorted,ydistorted)畸变后的位置
- k1,k2,k3:径向畸变系数,摄像头的内参,一般使用前两项,鱼眼相机会使用第三项
(3)切向畸变
-
相机sersor和镜头不平行导数
-
畸变的数学表示

-
两个畸变合并


三、相机标定基础
1、单应性矩阵
(1)定义:
从一个平面到另一个平面的投影映射
- 世界坐标系的物体平面到成像平面之间的映射,即两个平面之间的单应性关系
- 模型平面:标定使用的标定板平面
- 模型平面上一点:
Q= [x,y,z,1]^T
( 向量增广为了方便计算 )
- 映射到成像平面上的点:
q= [x,y,1]^T
- 他们二者之间的单应性关系:
q = s·H·Q
- H:单应性矩阵,单应性矩阵有8个自由度,8个自由参数需要求解
- 四个点可以得到8个方程,所以至少有4个点就可以求解单应性关系
(2)Opencv接口
fingHomography
(3)求解方法:
①重投影误差最小化 ②RANSAC
2、基本方程