网站首页 > 技术文章 正文
视觉测量使用的日益广泛和频繁,对于基础知识的学习是掌握机器视觉的学习的关键;本文针对成像模型,坐标系转换和相机标定等知识进行简介。
虽然网上相关资料很多,但是本人在学习过程中同样为某些概念所困扰,写下学习总结一方面希望通过本文能为初学者解答相关概念,另一方面希望能够作为总结,加深自身印象。
文章包含 3 大部分,第一部分介绍相机成像模型,针对小孔成像原理和透视成像原理进行描述;第二部分介绍成像过程中的四个坐标系和三次坐标转换;第三部分介绍使用最多的自由平面相机标定法:张氏标定法;
成像简介
在实际成像过程中,经常会使用针孔模型作为相机成像模型的近似;针孔成像的原理:现实世界源于物体的光线穿过针孔,在底板上投影成一幅倒立的图像;
图一:针孔成像原理
图二:左图为2维针孔成像模型;右图为透视投影模型
对针孔模型进行二维化简,可以看出物体光线经过小孔后成倒立的像;但是成倒立的像表述比较口;因此对小孔成像进行化简成右图的形式,右图也称为透视投影模型;透视成像模型与小孔模型相比,光心位于成像平面的后方,成正立的实像,更符合实际成像过程;
透视投影将三维空间点投影到二维平面上,对于三维空间中一点,与相机光心,投影点三点连线在同一条线上;后续我们将使用透视投影模型作为成像分析的基础。
坐标系转换
在投射投影模型中成像具有以下几个过程,涉及到 4 个坐标系之间的三个转换:
图三:相机成像过程
坐标系介绍
1.空间三维坐标系
三维空间坐标系即世界坐标系,是一个绝对的坐标系,所有三维点在世界坐标系下能够反映各自的位置关系;世界坐标系的原点是不固定的,随着应用场景不同,世界坐标系原点不同;在相机标定过程中,世界坐标系置于标定板的棋盘格的左上端。
图四:世界坐标系
世界坐标系和相机三维坐标系都是三维坐标系,但是坐标系原点不同;两个三维坐标系可通过平移和旋转进行相互转换;物理意义:一个三维点在世界坐标系下的坐标可通过平移和旋转,转换到另一个不同原点的三维坐标系下。
图五:平移和旋转转换三维坐标系
假设世界坐标系下物体点 P 的坐标( Xw, Yw, Zw),经过旋转矩阵 R 和平移矩阵 t 变换后,转换为相机坐标系下坐标( Xc, Yc, Zc ),则转换过程可表为:
用矩阵表达:
是相机模型的外参
2.相机三维坐标系
相机坐标系是以相机光心 O 为原点的三维坐标系,世界坐标系下的三维点通过欧式变换(平移和旋转),可转换到相机坐标系中;相机坐标系的点到图像坐标系的点,通过透视变换进行转换;其中图像坐标系是一个二维坐标系,可理解为相机坐标系中距离相机光心 距离为f(Zc=f) ,与光心 Zc=0平 面平行的一个平面;
图六:透视变换
将所有相机光心的坐标投影到 Zc=f 的平面上则:
矩阵形式:
3.图像坐标系
图七:图像坐标系
图像坐标系( Zc = f 的平面)是二维坐标系,描述相机坐标系中投影点在图像上的投影位置,一般坐标中心在相机Zc坐标轴上,xy坐标轴分别与相机坐标系中 XY轴平行;图像坐标系描述透视变换后空间点在图像上成像的位置坐标;
4.像素坐标系
图像坐标 (x,y) 转换到像素坐标 (u,v) ,通过量化像素大小,计算投影点所在的像素位置;其中单个像素在x轴上的大小dx,y轴上的大小dy;一般在摄影测量中像素坐标系的原点在左下方;计算机视觉中像素坐标系的原点在左上方;本文以计算机视觉为准,原点在左上方如图7所示;
使用矩阵的形式表达:
为了获取齐次坐标,最后一行可以添加 1 进行补充;
由于存在加工误差,像素不是绝对的矩形,是平行四边形形状;引入倾斜因子
图八:像素倾斜
此时公式(3)可描述成
,在实际标定过程中有时可认为 s=0,进行省略。
成像过程介绍
联立(1)(2)(3)式可以获得,世界坐标系一点P(Xw,Yw,Zw) 到像素坐标的计算过程:
通过推导相机模型,知道相机的内参 K 和外参[R t],下面将介绍如何求解相机内参和外参;对于相机标定我们介绍张氏标定;后续会出相机标定的专题,介绍 DLT 直接线性求解法,Tsai 两步法等常见的标定方法,畸变矫正方法以及相关的非线性优化知识等。
张氏标定求解基础知识
相机标定,是使用大量观测值进行参数模型拟合的过程,在此拟合的参数模型是已知的,所以尽可能探索获取大量观察值的方案,如果观测值之间还满足一些其他的几何约束,就更有助于求解具体单个参数值;
张氏标定是一种提供观察值的方案,同时观察值之间还满足一定的几何约束(平面约束);
假设某图像上坐标m=
,齐次表达式m? =
,世界坐标系一点坐标=
,齐次形式M?=
;
则相机模型为:
其中s为尺度因子,外参[Rt],内参矩阵A
其中
为焦距的值(像素为单位),(u0,v0)为像主点坐标(像素单位);
为像元轴的倾斜因子;
使用张氏标定时,世界坐标系固定在标定板上,且Z=0:
因此:
又由于:
张氏标定通过观察置于一个平面的标定图像,获取
与
的映射关系单应性矩阵H,然后计算内参和外参的过程。
求解过程:近似解
定义:
则:
推导出:
由于 r1, r2 是正交矩阵的列向量,两两正交且为单位向量;
则具有如下两个约束:
则:
令:
注意到B是对称矩阵,可用6维向量表示:
已知 1 个单应性矩阵提供 2 个约束,线性方程组 b 有 6 个未知数(5 个内参+1 个尺度因子),
n>=3 个单应性矩阵可求取全部未知数;
n=2 时,令 γ=0,此时添加一个约束:
n=1 时可计算两个内参 α 和 β,此时要求 u0 和 v0是已知的;
由矩阵
,内参矩阵可通过 B 矩阵进行求解:
求取内参之后,根据内参矩阵 A 矩阵获取外参:
不足和改进
对于上面的解法,都在旋转矩阵 R=
是正交矩阵约束下求解的;
但是实际上由于噪声和干扰的存在,旋转矩阵不一定是正交的,因此此种计算方式获取的内参和外参有一定的误差;为了获取较精准的结果,可通过先对旋转矩阵 R 求取最接近的正交矩阵,
计算
式中R为要求的旋转矩阵,Q为上式中初步求取的含噪声的旋转矩阵;
公式(15)计算最小的F范数转换成获取最大的
矩阵的迹。
对 Q 矩阵进行奇异值分解为
,其中S=
。此时定义一个正交矩阵 Z,则Z=
,则
从等式中可以计算当
存在最大值,此时Z=I为公式(15)的解。
最大似然估计
上面的通过最小化代数几何获取的近似解求取的参数矩阵,不具有物理意义;通过最大似然估计进行计算精确值;上述计算的结果存在噪声,以旋转矩阵为正交举证为假设的前提进行计算的,虽然通过计算
获取了最接近的正交旋转举证,但是前面的计算已经包含了误差的影响,对于高精度的结果影响较大,下面需要通过非线性优化进行计算相机参数模型的精确解;
我们通过获取的n张图片,每张图片上面m个模型点。假设图片上的点具有随机正态分布的噪声点;则最大似然估计结果由下面的最小化公式获取:
其中
中,
为第 i 张图片中三维空间中的投影点。旋转矩阵R 由一个三维向量进行参数化参与计算,三维向量与旋转轴平行,数值与旋转角大小一致;矩阵 R 和向量 r 通过罗德里格斯公式进行计算。最小化的过程是一个非线性最小化问题,根据 Levenberg-Marquardt 算法进行求解;求解过程中需要给定初始值A,
,可将上面计算的近似解作为初始值使用。
畸变系数矫正
到目前为止,我们还未考虑畸变情况,所有推导都是无畸变的理想状态;对视对于便携式镜头的畸变是不可忽略的,广角镜头和鱼眼镜头畸变更大,尤其是径向畸变;在本节中我们将讨论畸变情况,一般只考虑2项径向畸变
,3 项切向畸变
;在实际效果中,对像素畸变大小的影响排序:
图九:畸变图像
径向畸变是由于镜头自身凸透镜的固有特效造成,光线在远离透镜中心的地方比靠近中心的地方更加弯曲,因此镜头的畸变与距离镜头中心距离有关;
畸变是影响镜头透视成像结果,对于透视成像无畸变坐标(x,y),施加畸变后成像坐标
,则
其中:
,表示距离镜头中心的距离;
对于透视变换的畸变对像素坐标的影响,无畸变的理想像素(,),经过畸变影响后位置
;由公式可知,像素坐标和相机坐标的变换关系:
假设
,则畸变对像素坐标影响的数学模型为:
切向畸变是由于透镜和 CCD 的安装位置误差导致。因此,如果存在切向畸变,一个矩形被投影到成像平面上时,很可能会变成一个梯形。切向畸变需要两个额外的畸变参数来描述,矫正前后的像素坐标关系为:
综述我们一般使用 5 个畸变参数来描述透镜畸变,对于高精度测量,可选用更多项畸变系数进行畸变描述和校正;
则最终含有5项畸变系数的标定模型:
至此张氏标定理论部分基本已经讲完,后续将会介绍实践部分和精度影响。
张氏标定进行总结
1. 打印一个标定棋盘格,棋盘格粘贴在平面上;(进行高精度标定,可在陶瓷板上面达标棋盘格)
2. 移动棋盘格进行拍摄图片,为了获取最佳标定结果,一般拍摄 10 张以上图片会更好;
3. 提取图片中的角点坐标m(u,v);
4. 通过近似解估计内参和外参结果;
5. 使用线性最小二乘法估算畸变系数;
6. 最小化所有参数;
实验部分
实验部分使用α和β的相对误差及u0和v0的绝对误差探究0均值高斯噪声,标定图片数量以及标定平面倾斜角度对误差的影响结果;
1. 高斯噪声对标定结果的影响
3个确定位置的平面进行标定,对不同的标定图片施 0均值不同σ的高斯噪声,则α和β的相对误差及u0 和v0的绝对误差线性变化,数值从0.1pixel到 1.5pixel;说明随着高斯噪声的σ越大对误差的影响越大;
2. 标定图片数量对结果影响
随着标定图片数量的增加,相对误差和绝对误差的数值越来越低,因此一般标定建议标定数量至少10张图片;
3. 标定平面倾斜角度对结果的影响
当两幅图片只具有位移,没有旋转时,外参不会分别产生约束,两个单应矩阵具有一定的转化关系,此时两张图片产生退化配置,只有一张图片提供外参约束;因此在标定板移动时,旋转角度要大一些,实验探究旋转角度对标定结果的影响;当两幅图片的旋转角度小于 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.
猜你喜欢
- 2024-10-28 编程大佬告诉你人工智能需要学习哪些数学知识
- 2024-10-28 NumPy之:多维数组中的线性代数 多维数组元素之间的关系是线性的吗
- 2024-10-28 C代码快速傅里叶变换-分类和推理-常微分和偏微分方程
- 2024-10-28 认识“模拟进化算法” 模拟进化怪物
- 2024-10-28 3D点云平面拟合算法 3d点云项目
- 2024-10-28 黎曼猜想突破作者首次公开讲解,陶哲轩送上总结
- 2024-10-28 浅谈PCA主成分分析 什么是pca主成分分析
- 2024-10-28 【杂谈】cholesky分解——对称正定矩阵最好的分解
- 2024-10-28 降维算法: 奇异值分解SVD 降维的算法
- 2024-10-28 「周末AI课堂」线性降维方法(理论)|机器学习你会遇到的“坑”
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)