像素坐标(u,v)--->成像面/图像物理坐标(x,y)--->相机坐标(Xc,Yc,Zc)--->世界坐标(Xw,Yw,Zw)
1.像素坐标(u,v)---[物理尺寸构建桥梁:透视投影]--->成像面/图像物理坐标(x,y)
假设每一个像素在u轴和v轴方向上的物理尺寸为dx、dy
如下图,
可得,
u = x / dx + u0
v = y / dy + v0
其中,
dx、dy是感光芯片上像素的实际物理大小,是连接像素坐标系到成像坐标系的真正桥梁
*u0、v0是图像平面中心(图像中心像素点坐标)
矩阵表示如下,
*n维坐标的关系用n+1维表示来转换
另一种矩阵表示如下,
2.成像物理坐标(x,y)---[内参构建投影关系:刚体变换]--->相机坐标(Xc,Yc,Zc)
如下图,
脑补各种三角形相似之后可得,
进而得,
*fx、fy是相机焦距f除以dx、dy得到的值,即fx = f / dx, fy = f / dy。
*u0、v0表示的是图像的中心像素坐标和图像圆点像素坐标之间相差的横向和纵向像素数
*p(x,y)的单位已经是mm了而不是pixel
进而得,
3.相机坐标(Xc,Yc,Zc)---[外参构建旋转平移关系]--->世界坐标(Xw,Yw,Zw)
*默认两个坐标系都是右手坐标系
从相机坐标系到世界坐标系属于刚体变换,即物体不会发生形变
主要依靠旋转变换和平移变换
我们先从二维坐标来看,
从二位坐标上的旋转变换开始理解,如下图
可得,
同理,如果指导P点在坐标系X‘OY‘中的坐标(x',y'),可以求得点P在基坐标系XOY中的坐标如下,
通过上述分析可以知道:已知一个点P在一个坐标系中的坐标值(x,y),那么把坐标系绕坐标圆点旋转
*绕坐标原点逆时针旋转则
如果再加上平移变换可得,
*
假设顺时针旋转&左下角平移,则在齐次坐标系中用矩阵表示如下,
我们可以把二维空间中的旋转等价为三维空间中绕Z轴旋转,假设逆时针旋转&无平移,可得,
r3
同理可得三维空间中绕X、Y轴旋转分别如下表示,
r1
r2
所以,相机坐标系到世界坐标系的转换可以用如下公式表示,
*R代表旋转,T代表平移,它们均与摄像头无关,所以称这两个参数为相机的外参,也可以理解为两个坐标原点之间的距离,它们各具有三个自由度
其中,
至此,我们就可以得到相机坐标系到世界坐标系的完整表达,
*4.旋转矩阵->欧拉角<->四元数
欧拉角就是物体绕坐标三个坐标轴旋转的角度(没有平移的三维运动:从物体坐标系->惯性坐标系)
其中,绕Z轴旋转叫作roll/bank(注意这里我们规定Z轴通常和机身方向一致而不是简单的向上(不同领域叫法不同,*ZYX和rollyawpitch没有绝对的对应关系),所谓翻滚角)、绕Y轴旋转叫作yaw/heading(这里我们规定向上,所谓偏航角)、绕X轴旋转叫作pitch(X轴通常与鸡翅方向一致,所谓俯仰角),旋转角度分别用
则旋转矩阵和欧拉角的关系表示为,
如果有坐标系1中的点坐标P1,经过欧拉角的旋转变换变成了坐标系2(比如惯性坐标系,其原点和物体坐标系始终重合)的坐标P2
那么有,
在将四元数之前,我们先了解轴角和旋转向量的表示
旋转的轴角用两个值参数化了旋转:
上述轴角对应旋转向量则为:
接下来就是四元数了,四元数其实就是旋转向量的变种,表示为:
设四元数
其满足
同样设坐标系1里的点P1,需要通过四元数转换到坐标系2(原点不变)中点P,则有,
其中,
设绕Z、Y、X轴旋转欧拉角分别为
则可求得四元数如下,
反过来,已知四元数,可求得欧拉角如下,
*5.相机标定
*畸变:一般分为径向畸变和切向畸变,前者来自于透镜形状差异,后者来自于这相机的组装过程误差导致像平面和镜头不完全平行,在一些线性标定(因为摄像头已经足够贵了...)中也会忽略。
抽象的来说,
我们所处的世界是三维的,而照片是二维的,这样我们可以把相机认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的函数是不可逆的。相机标定的目标就是我们找一个合适的数学模型,求出这个模型的参数,这样我们能够近似这个三维到二维的过程,使得这个三维到二维的过程的函数找到反函数。
*不可逆我理解为输入的因素不能完全的考虑到,图像识别也是一个永远不可能100%完美的求逆过程。
通俗的说,
把求得相机的内参、畸变系数、外参的过程称为相机标定,前两者的标定主要采用张正友标定法及相关软件、外参的标定主要采用手眼标定发及相关软件
------------------------------------------参考------------------------------------------
二维坐标系的转换blog.csdn.net 世界坐标系和相机坐标系,图像坐标系的关系blog.csdn.net 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换blog.csdn.net 坐标系转换之三:欧拉角、四元数、旋转矩阵、方向余弦矩阵、旋转向量、轴角表示blog.csdn.net