分享

相机模型与张氏标定

 InfoRich 2021-09-22

视觉测量使用的日益广泛和频繁,对于基础知识的学习是掌握机器视觉的学习的关键;本文针对成像模型,坐标系转换和相机标定等知识进行简介,虽然网上相关资料很多,但是本人在学习过程中同样为某些概念所困扰,写下学习总结一方面希望通过本文能为初学者解答相关概念,另一方面希望能够作为总结,加深自身印象。

文章包含 3 大部分,第一部分介绍相机成像模型,针对小孔成像原理和透视成像原理进行描述;第二部分介绍成像过程中的四个坐标系和三次坐标转换;第三部分介绍使用最多的自由平面相机标定法:张氏标定法;

成像简介

在实际成像过程中,经常会使用针孔模型作为相机成像模型的近似;针孔成像的原理:现实世界源于物体的光线穿过针孔,在底板上投影成一幅倒立的图像;

Image

图一:针孔成像原理

Image

图二:左图为2维针孔成像模型;右图为透视投影模型

对针孔模型进行二维化简,可以看出物体光线经过小孔后成倒立的像;但是成倒立的像表述比较口;因此对小孔成像进行化简成右图的形式,右图也称为透视投影模型;透视成像模型与小孔模型相比,光心位于成像平面的后方,成正立的实像,更符合实际成像过程;

透视投影将三维空间点投影到二维平面上,对于三维空间中一点,与相机光心,投影点三点连线在同一条线上;后续我们将使用透视投影模型作为成像分析的基础。

坐标系转换

在投射投影模型中成像具有以下几个过程,涉及到 4 个坐标系之间的三个转换:

Image

图三:相机成像过程

坐标系介绍

1.空间三维坐标系

三维空间坐标系即世界坐标系,是一个绝对的坐标系,所有三维点在世界坐标系下能够反映各自的位置关系;世界坐标系的原点是不固定的,随着应用场景不同,世界坐标系原点不同;在相机标定过程中,世界坐标系置于标定板的棋盘格的左上端。

Image

图四:世界坐标系

世界坐标系和相机三维坐标系都是三维坐标系,但是坐标系原点不同;两个三维坐标系可通过平移和旋转进行相互转换;物理意义:一个三维点在世界坐标系下的坐标可通过平移和旋转,转换到另一个不同原点的三维坐标系下。

Image

图五:平移和旋转转换三维坐标系

假设世界坐标系下物体点 P 的坐标( Xw, Yw, Zw),经过旋转矩阵 R 和平移矩阵 t 变换后,转换为相机坐标系下坐标( Xc, Yc, Zc ),则转换过程可表为:

Image

用矩阵表达:

Image

Image是相机模型的外参

2.相机三维坐标系

相机坐标系是以相机光心 O 为原点的三维坐标系,世界坐标系下的三维点通过欧式变换(平移和旋转),可转换到相机坐标系中;相机坐标系的点到图像坐标系的点,通过透视变换进行转换;其中图像坐标系是一个二维坐标系,可理解为相机坐标系中距离相机光心 距离为f(Zc=f) ,与光心 Zc=0平 面平行的一个平面;

Image

图六:透视变换

将所有相机光心的坐标投影到 Zc=f 的平面上则:

Image

矩阵形式:

Image

3.图像坐标系

Image

图七:图像坐标系

图像坐标系( Zc = f 的平面)是二维坐标系,描述相机坐标系中投影点在图像上的投影位置,一般坐标中心在相机Zc坐标轴上,xy坐标轴分别与相机坐标系中 XY轴平行;图像坐标系描述透视变换后空间点在图像上成像的位置坐标;

4.像素坐标系

图像坐标 (x,y) 转换到像素坐标 (u,v) ,通过量化像素大小,计算投影点所在的像素位置;其中单个像素在x轴上的大小dx,y轴上的大小dy;一般在摄影测量中像素坐标系的原点在左下方;计算机视觉中像素坐标系的原点在左上方;本文以计算机视觉为准,原点在左上方如图7所示;

Image

使用矩阵的形式表达:

Image

为了获取齐次坐标,最后一行可以添加 1 进行补充;

由于存在加工误差,像素不是绝对的矩形,是平行四边形形状;引入倾斜因子 Image

Image

图八:像素倾斜

此时公式(3)可描述成Image在实际标定过程中有时可认为 s=0,进行省略。 

成像过程介绍

联立(1)(2)(3)式可以获得,世界坐标系一点P(Xw,Yw,Zw) 到像素坐标的计算过程:

Image

Image

通过推导相机模型,知道相机的内参 K 和外参[R t],下面将介绍如何求解相机内参和外参;对于相机标定我们介绍张氏标定;后续会出相机标定的专题,介绍 DLT 直接线性求解法,Tsai 两步法等常见的标定方法,畸变矫正方法以及相关的非线性优化知识等。

张氏标定求解基础知识

相机标定,是使用大量观测值进行参数模型拟合的过程,在此拟合的参数模型是已知的,所以尽可能探索获取大量观察值的方案,如果观测值之间还满足一些其他的几何约束,就更有助于求解具体单个参数值;

张氏标定是一种提供观察值的方案,同时观察值之间还满足一定的几何约束(平面约束);

假设某图像上坐标m=Image,齐次表达式m̅ =Image,世界坐标系一点坐标𝑀=Image,齐次形式M̅=Image

则相机模型为:

Image

其中s为尺度因子,外参[Rt],内参矩阵A

Image

其中Image为焦距的值(像素为单位),(u0,v0)为像主点坐标(像素单位);Image为像元轴的倾斜因子;

使用张氏标定时,世界坐标系固定在标定板上,且Z=0:

因此:

Image

又由于:

Image

张氏标定通过观察置于一个平面的标定图像,获取ImageImage的映射关系单应性矩阵H,然后计算内参和外参的过程。

求解过程:近似解

定义:

Image

则:

Image

推导出:
Image

由于 r1, r2 是正交矩阵的列向量,两两正交且为单位向量;

则具有如下两个约束:

Image

则:

Image

令:

Image

注意到B是对称矩阵,可用6维向量表示:

Image

已知 1 个单应性矩阵提供 2 个约束,线性方程组 b 有 6 个未知数(5 个内参+1 个尺度因子),

n>=3 个单应性矩阵可求取全部未知数;

n=2 时,令 γ=0,此时添加一个约束:

Image

n=1 时可计算两个内参 α 和 β,此时要求 u0 和 v0是已知的;

由矩阵Image,内参矩阵可通过 B 矩阵进行求解:

Image

Image

求取内参之后,根据内参矩阵 A 矩阵获取外参:

Image

不足和改进

对于上面的解法,都在旋转矩阵 R=Image是正交矩阵约束下求解的;

Image

但是实际上由于噪声和干扰的存在,旋转矩阵不一定是正交的,因此此种计算方式获取的内参和外参有一定的误差;为了获取较精准的结果,可通过先对旋转矩阵 R 求取最接近的正交矩阵,

计算

Image

式中R为要求的旋转矩阵,Q为上式中初步求取的含噪声的旋转矩阵;

Image

公式(15)计算最小的F范数转换成获取最大的Image矩阵的迹。

对 Q 矩阵进行奇异值分解为Image,其中S=Image。此时定义一个正交矩阵 Z,则Z=Image,则

Image

从等式中可以计算当Image存在最大值,此时Z=I为公式(15)的解。

最大似然估计

上面的通过最小化代数几何获取的近似解求取的参数矩阵,不具有物理意义;通过最大似然估计进行计算精确值;上述计算的结果存在噪声,以旋转矩阵为正交举证为假设的前提进行计算的,虽然通过计算Image获取了最接近的正交旋转举证,但是前面的计算已经包含了误差的影响,对于高精度的结果影响较大,下面需要通过非线性优化进行计算相机参数模型的精确解;

我们通过获取的n张图片,每张图片上面m个模型点。假设图片上的点具有随机正态分布的噪声点;则最大似然估计结果由下面的最小化公式获取:

Image

其中Image中,Image为第 i 张图片中三维空间中的投影点。旋转矩阵R 由一个三维向量进行参数化参与计算,三维向量与旋转轴平行,数值与旋转角大小一致;矩阵 R 和向量 r 通过罗德里格斯公式进行计算。最小化的过程是一个非线性最小化问题,根据 Levenberg-Marquardt 算法进行求解;求解过程中需要给定初始值AImage,可将上面计算的近似解作为初始值使用。

畸变系数矫正

到目前为止,我们还未考虑畸变情况,所有推导都是无畸变的理想状态;对视对于便携式镜头的畸变是不可忽略的,广角镜头和鱼眼镜头畸变更大,尤其是径向畸变;在本节中我们将讨论畸变情况,一般只考虑2项径向畸变Image,3 项切向畸变Image;在实际效果中,对像素畸变大小的影响排序:ImageImage

Image

图九:畸变图像

径向畸变是由于镜头自身凸透镜的固有特效造成,光线在远离透镜中心的地方比靠近中心的地方更加弯曲,因此镜头的畸变与距离镜头中心距离有关;

畸变是影响镜头透视成像结果,对于透视成像无畸变坐标(x,y),施加畸变后成像坐标Image,则

Image

其中:Image,表示距离镜头中心的距离;

对于透视变换的畸变对像素坐标的影响,无畸变的理想像素(𝑣,𝑤),经过畸变影响后位置Image;由公式可知,像素坐标和相机坐标的变换关系:

Image

假设Image,则畸变对像素坐标影响的数学模型为:

Image

切向畸变是由于透镜和 CCD 的安装位置误差导致。因此,如果存在切向畸变,一个矩形被投影到成像平面上时,很可能会变成一个梯形。切向畸变需要两个额外的畸变参数来描述,矫正前后的像素坐标关系为:

Image

综述我们一般使用 5 个畸变参数来描述透镜畸变,对于高精度测量,可选用更多项畸变系数进行畸变描述和校正;

则最终含有5项畸变系数的标定模型:

Image

至此张氏标定理论部分基本已经讲完,后续将会介绍实践部分和精度影响。

张氏标定进行总结

1. 打印一个标定棋盘格,棋盘格粘贴在平面上;(进行高精度标定,可在陶瓷板上面达标棋盘格)

2. 移动棋盘格进行拍摄图片,为了获取最佳标定结果,一般拍摄 10 张以上图片会更好;

3. 提取图片中的角点坐标m(u,v);

4. 通过近似解估计内参和外参结果;

5. 使用线性最小二乘法估算畸变系数;

6. 最小化所有参数;

实验部分

实验部分使用α和β的相对误差及u0和v0的绝对误差探究0均值高斯噪声,标定图片数量以及标定平面倾斜角度对误差的影响结果;

1. 高斯噪声对标定结果的影响

Image

3个确定位置的平面进行标定,对不同的标定图片施 0均值不同σ的高斯噪声,则α和β的相对误差及u0 和v0的绝对误差线性变化,数值从0.1pixel到 1.5pixel;说明随着高斯噪声的σ越大对误差的影响越大;

2. 标定图片数量对结果影响

Image

随着标定图片数量的增加,相对误差和绝对误差的数值越来越低,因此一般标定建议标定数量至少10张图片;

3. 标定平面倾斜角度对结果的影响

Image

当两幅图片只具有位移,没有旋转时,外参不会分别产生约束,两个单应矩阵具有一定的转化关系,此时两张图片产生退化配置,只有一张图片提供外参约束;因此在标定板移动时,旋转角度要大一些,实验探究旋转角度对标定结果的影响;当两幅图片的旋转角度小于 5°时,产生退化配置,标定误差非常大;一般建议移动标定板时,角度 45°和 70°之间最佳;

总结

本文介绍相机的成像模型以及常见的 2 维平面标定方法,介绍小孔成像模型以及透视成像模型,成像过程中 4 个坐标系和 3 次坐标系变换,以及常见的 2D平面标定法,张氏标定的相关介绍;本文的来源参考网上的知识进行相关知识的总结,后续也将推出视觉测试方面的连载系列博客;如果能够为同学解答一些小的疑惑,本人将无比荣幸;本人知识有限,写作手法生疏,如果有些地方描述不清晰烦请指教,本人将在下次写作中改正;欢迎各位同学进行相关知识交流。

参考文献

1.  Z. Zhang, 'A flexible new technique for camera calibration,' in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330-1334, Nov. 2000,doi: 10.1109/34.888718.

2.https://blog.csdn.net/rs_lys/article/details/113248118.
另外,深蓝学院诚邀大家一起来投稿,为人工智能贡献自己的一份力量!
投稿福利
1. 兑换深蓝学院课程/ 稿费
(兑换规则:投稿并通过审核发布两篇文章可任意兑换一门深蓝学院线上课程)
2. 增加个人优质内容曝光量
3. 优先获得深蓝学院新开课程的免费试听权益
4. 进入相关领域优质圈子
5. 深蓝学院线上&线下交流会优先参与权
6. 有机会成为深蓝学院签约作者

投稿要求
投稿需为首发原创文章,可以为论文或文献解读、干货整理、科研/项目经验分享等。
投稿方式

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多