经典干货|相机模型与张氏标定

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

视觉测量使用的日益广泛和频繁,对于基础知识的学习是掌握机器视觉的学习的关键;本文针对成像模型,坐标系转换和相机标定等知识进行简介。

虽然网上相关资料很多,但是本人在学习过程中同样为某些概念所困扰,写下学习总结一方面希望通过本文能为初学者解答相关概念,另一方面希望能够作为总结,加深自身印象。

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

成像简介

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

bd323eec6cc875a0af18929d2fa7c4db.png

图一:针孔成像原理

a3a53313ecc414046b154b6b9f08b6a5.png

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

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

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

坐标系转换

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

4cf5ddf7567a3ff04716f064b60c196b.png

图三:相机成像过程

坐标系介绍

1.空间三维坐标系

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

cd6a3165aeb7aa71be1220a33591d0af.png

图四:世界坐标系

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

4b0867c0c6d86c91752a7db9320eb9a5.png

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

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

eed5dcb5d4e99281c7d2ae18bf9eb9ea.png

用矩阵表达:

0b9495f74eb350415ee2b191282bebdd.png

b02426f81a10b1a00847a44cc26ce605.jpeg是相机模型的外参

2.相机三维坐标系

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

7f602690348075218e92d22397c7324f.png

图六:透视变换

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

507b39106b73e3c28188c1a85b68dd56.png

矩阵形式:

2777395041725d04b2a9096bbb9e21f6.png

3.图像坐标系

25f060d08bbd0a1a957fd0eec625eb5a.png

图七:图像坐标系

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

4.像素坐标系

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

6a5c81be1389e9254dc453943c3b66b6.png

使用矩阵的形式表达:

1d442d1998651bcaa702a5351c14e022.png

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

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

61f5a15a2df8b1a35b3c6e21c5055d5c.png

图八:像素倾斜

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

成像过程介绍

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

91560f49a7e333a686f03a087dde2663.png

b4bd5049a91f1f2ce782dd1b010b46dd.png

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

张氏标定求解基础知识

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

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

假设某图像上坐标m=d5cf355f155640b7016aa2d61a1a3023.png,齐次表达式m̅ =9e70264ba87881ee033948214bee8079.png,世界坐标系一点坐标𝑀=fdd872cbf4e551f40022766fe84d95e3.png,齐次形式M̅=b8c0301ec8fda5c9426f1072626ffa43.png

则相机模型为:

f6e52172da8a4c08bc6f6408c8013dfd.png

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

5556bf7e8e04b7fde7c1ab06a83bea50.png

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

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

因此:

9ad6e73cca76f151bfeb84f7da86e3ed.png

又由于:

c8fb4aae173532b5c3e9570cf75f6cb9.png

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

求解过程:近似解

定义:

502c879f2cfb8d62cccc50019093bca7.png

则:

d7bcdb5c77b520f0c35ea89df47adbe5.png

推导出:

98e366896b79fcd8dd8225f2f7484762.png

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

则具有如下两个约束:

cdeac8ef987a7dac57b6876a9c23e8ca.png

则:

bae3a1a885e8075365299aef5c57a2b4.png

令:

b1369c4e329fc673f99634deb21533ef.jpeg

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

2354c8cf5f287372b85970354d8198b0.png

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

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

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

4caef2fd546beb530eca16f528dcc295.png

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

由矩阵8a03eaf3b45e7b82c623f55a215c876f.jpeg,内参矩阵可通过 B 矩阵进行求解:

ec4ff2c06547625005026a26b235170d.png

fa2f3a5933e24c8005721183f3bf20fa.png

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

e17895eb835443acc2d82019017aee0c.png

不足和改进

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

be3ec40b4ec198f21a325f0c4559bcfd.png

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

计算

083c55f7f85feda1a9026c96ced1d167.png

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

6ac98d04ff3d8d42d370d0a8800e6a6f.png

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

对 Q 矩阵进行奇异值分解为4143ea16c3b9e6399c7e599ed3ea1938.png,其中S=fac99d8760eb49810a39bdbdc23b4568.png。此时定义一个正交矩阵 Z,则Z=56230bc115e8ce903dcd3a42c16d563c.png,则

6ec309880f628abeaaff435a236c0327.png

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

最大似然估计

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

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

e4c884ede449bd600a63fb6270600cd9.png

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

畸变系数矫正

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

a5be4cac797a7ca1d5fa18d73a0a20ed.png

图九:畸变图像

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

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

610d34b334b77055be9c69803d3ab85f.png

其中:a334498e105c02718d0cadbc8f646120.png,表示距离镜头中心的距离;

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

9ed551379be2d7f70c104c7cdd16f914.png

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

6c956b4188fd0cdec3592e195aafa167.png

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

f93c74cca1c8eed479e4da26cc9989e8.png

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

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

dee2ec7f9d0318089979d5d0db855ac5.png

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

张氏标定进行总结

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

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

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

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

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

6. 最小化所有参数;

实验部分

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

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

cb1b899f75a21a12c36cfb3b2c6b6b8b.png

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

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

c82f0ce9fda9e6d00e71b6ae9ae6c7e3.png

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

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

0d2d805be2933616711feabd90300590.png

当两幅图片只具有位移,没有旋转时,外参不会分别产生约束,两个单应矩阵具有一定的转化关系,此时两张图片产生退化配置,只有一张图片提供外参约束;因此在标定板移动时,旋转角度要大一些,实验探究旋转角度对标定结果的影响;当两幅图片的旋转角度小于 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.

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

349bc0c360b3492c793702db7668e29b.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值