设置首页收藏本站
开启左侧

相机几何标定方法综述

[复制链接]
Naruto_向 发表于 2020-9-24 19:17:39 | 显示全部楼层 |阅读模式
本帖最后由 Naruto_向 于 2020-9-25 09:12 编辑

关于相机标定方法的描述:
标定的目的主要为解决两个问题:
a、确定世界坐标系下三维空间点与像素平面像素点间的转换关系(内外参);
b、确定相机成像过程中的畸变系,用于图像矫正。
针孔相机模型
相机将三维世界中的坐标点(单位:米)映射到二维图像平面(单位:像素)的过程能够用一个几何模型来描述,其中最简单的称为针孔相机模型 (pinhole camera model),其框架如下图所示:
其中,涉及到相机标定涉及到了四大坐标系,分别为:
像素坐标系:为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是我们真正从相机内读取到的信息所在的坐标系。单位为个(像素数目)。
成像平面坐标系:为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。单位为m。
相机坐标系:在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。单位为m。
世界坐标系:用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入。单位为m。
下面,我们来详细推导从世界坐标系到像素坐标的过程。
世界坐标系到相机坐标系
从世界坐标系到相机坐标系, 这是一个刚体变换,只需对世界坐标系的三维点作用一个旋转R和平移t(R,t即为相机的外参),变换过程可以通过一下公式完成:
相机坐标系到成像平面坐标系
这一过程进行了从三维坐标到二维坐标的转换,也即投影透视过程(用中心投影法将物体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图,也就是使我们人眼看到景物近大远小的一种成像方式)。
成像过程如下图所示:针孔面(相机坐标系)在图像平面(图像坐标系)和物点平面(棋盘平面)之间,所成图像为倒立实像。
但是为了在数学上更方便描述,我们将相机坐标系和图像坐标系位置对调,变成下图所示的布置方式(没有实际的物理意义,只是方便计算):
此时,假设相机坐标系中有一点M,则在理想图像坐标系下(无畸变)的成像点P的坐标为(可由相似三角形原则得出):
f为焦距,整理,得:
成像平面坐标系到像素坐标系
如上图,成平面坐标系和像素坐标系之间存在一个缩放和平移
整理得:
以fx、fy的方式表示为:
其中
  • α、β的单位为像素/米;
  • fx、fy为x、y方向的焦距,单位为像素;
  • (cx,cy)为主点,图像的中心,单位为像素。
那么,相机坐标系到像素坐标系的最终形式可写成:
将 Zc移到左边:
所以,在世界坐标系中的三维点M=[X,Y,Z]T 和像素坐标系中二维点m=[u,v]T的关系为:
即:
其中,s为缩放因子,A为相机的内参矩阵,[R t]为相机的外参矩阵,和分别为m和M对应的齐次坐标。
以上是对于单个相机进行标定,那么对于多目相机系统或者RGBD 相机的标定呢?
立体标定
对于多目相机系统或者RGBD 相机除了要对别对每个相机进行以上标定以外,还需要求传感器之间的变换T,以使同一时刻获取的数据能够“对齐”,以双目为例,左右两个相机的坐标系如下图:
计算出两个摄像机之间的旋转矩阵R和平移向量t,方法是分别计算出两个摄像机的R和T,再由以下公式计算:
立体匹配
由于单相机获取的图像只能计算出二维坐标,因为我们使用了2套相机,且2套相机之间的关系也是已知的,那么如果我们能把三维空间中某点在左右相机成像的二维坐标都计算出来,且能知道这是同一个点,这样就可以计算出三维坐标。这里面确认同名点的技术就是立体匹配。立体匹配有很多种算法,其中局部匹配法是最常用的,但是就目前已有算法来说,没有一种算法可以实现100%匹配。一般来说待匹配点越多,匹配准确率越低。
现有标定方法介绍
相机标定方法有:传统相机标定法、主动视觉相机标定法、相机自标定法。
标定方法优点缺点常用方法
传统相机标定法可使用于任意的相机模型、 精度高需要标定物、算法复杂Tsai两步法、张氏标定法
主动视觉相机标定法不需要标定物、算法简单、鲁棒性高成本高、设备昂贵主动系统控制相机做特定运动
相机自标定法灵活性强、可在线标定精度低、鲁棒性差分层逐步标定、基于Kruppa方程
(左右滑动查看)
  • Tsai两步法是先线性求得相机参数,之后考虑畸变因素,得到初始的参数值,通过非线性优化得到最终的相机参数。Tsai两步法速度较快,但仅考虑径向畸变,当相机畸变严重时,该方法不适用。
  • 张氏标定法使用二维方格组成的标定板进行标定,采集标定板不同位姿图片,提取图片中角点像素坐标,通过单应矩阵计算出相机的内外参数初始值,利用非线性最小二乘法估计畸变系数,最后使用极大似然估计法优化参数。该方法操作简单,而且精度较高,可以满足大部分场合。
  • 基于主动视觉的相机标定法是通过主动系统控制相机做特定运动,利用控制平台控制相机发生特定的移动拍摄多组图像,依据图像信息和已知位移变化来求解相机内外参数。这种标定方法需要配备精准的控制平台,因此成本较高。
  • 分层逐步标定法是先对图像的序列做射影重建,在重建的基础上进行放射标定和欧式标定,通过非线性优化算法求得相机内外参数。由于初始参数是模糊值,优化算法收敛性不确定。
  • 基于Kruppa的自标定法是通过二次曲线建立关于相机内参矩阵的约束方程,至少使用3对图像来标定相机。图像序列长度会影响标定算法的稳定性,无法保证射影空间中的无穷远平面。
以上为单个相机标定的方法,而对于相机-相机、相机-距离传感器之间进行标定,OpenCV、Matlab都有自带的工具箱或函数库可以用来标定,但[1]提出了一个带有Web界面的工具箱,用于全自动相机到相机和相机到范围的校准。该系统可在一分钟内恢复内外参数以及摄像机和距离传感器之间的转换。而且,该方法所提出的基于生长的棋盘格角点检测方法明显优于OpenCV需要指定棋盘格角点大小的角点检测方法。详细介绍请参考《一次拍摄搞定多相机自动化标定》

相机几何标定方法综述.pdf

101.44 KB, 下载次数: 41

标定

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
LBD 发表于 2020-9-25 00:53:15 | 显示全部楼层
就两页,还都是概念性的东西,是来赚金币的吗?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
5279Halcon 发表于 2023-4-24 23:00:33 | 显示全部楼层
学习学习学习
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表