文章目录
- 前言
- 相机相关的4大坐标系
- 像素坐标系与图像坐标系的转换
- 图像坐标系与相机坐标系的转换
- 相机坐标系与世界坐标系的转换
- 相机畸变
- 标定方法
- 小结
前言
PS:本文仅讨论针孔模型相机,其余类型相机并不涉及!
相机基础包括相机内参,相机外参,畸变系数等重要参数,基于这些参数以及相机模型即可建立三维空间中某个坐标点与图像中某个像素点的映射关系(3D投影至2D),这也是单目测距的基础!
相机相关的4大坐标系
- 像素坐标系:相机最终保存的图像,原点在图像的左上角
- 图像坐标系:与像素坐标系一致,都在成像面上,原点在中心
- 相机坐标系:原点在相机的光心,XY轴分别与图像坐标系的XY轴平行,Z轴为相机的光轴
- 世界坐标系:可以在任意位置,以此为基准描述三维空间中某个具体的坐标点
像素坐标系与图像坐标系的转换
如下图所示,u-v坐标系表示相机保存的图像的像素坐标系,x-y表示图像坐标系,位于传感器的成像面上,由此可以得到转换关系如下:
其中dx,dy为相机的固有参数,分辨表示在x,y方向上每个像素占多数毫米(mm/pixel),(u0,v0)表示图像的中心位置,通常大致等于分辨率的一半,将公式转化为矩阵形式:
图像坐标系与相机坐标系的转换
如下图所示,三角形ABOc相似于oCOc,三角形PBOc相似于pCOc,可以得到如下公式:
其中f为焦距,f=|Oc - o|,fx=f/dx,fy=f/dy,至此相机内参已经讲解完毕,包括fx,fy,u0,v0四个参数,这个四个参数构成了相机的内参矩阵,一般用K表示。将公式转化为矩阵形式:
其中Zc表示某点在相机坐标系下的深度,完整的将像素坐标转换为相机坐标系矩阵形式如下:
相机坐标系与世界坐标系的转换
相机坐标系与世界坐标系一致,都是三维坐标系了,两个三维坐标系的转换(三维空间中的运动)在这里不做过多讲解了,推荐去看高翔博士所著的《视觉SLAM十四讲》,其中有对三维空间的刚体运动有非常详细的描述!
在这里直接给出三维空间中某点映射到像素坐标系下的完整公式:
相机畸变
一般包括径向畸变、切向畸变,具体理论去翻看大佬的论文吧,这里仅给出公式:
标定方法
使用张正友标定法,具体理论部分有兴趣去翻看大佬的讲解、论文吧,已经发展得非常成熟了。通过matlab、opencv等工具即可非常快速的对相机进行标定!
小结
- 讲解了三维空间中某点如何投影到像素坐标系中(映射关系),套用公式即可
- 下一章讲解如何通过单目相机完成测距任务
好哥哥们,有用的话请点个赞呗!