提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文目的在于求解出摄像机的各个内外参数,以及分析照片数量、拍摄角度等因素对求解过程所产生的影响。
提示:以下是本篇文章正文内容,下面案例可供参考
一、原理简介
1.摄像机的位置标定是什么?
摄像机位置标定,即求解摄像机的内外参数矩阵。
2.为什么要进行摄像机的位置标定?
摄像机的内、外参数矩阵描述了三维世界到二维像素的映射关系。因此摄像机的位置标定十分关键,只有当我们知道了三维与二维的对应关系,才有可能进行二维到三维的转变。
3.针孔相机模型
**摄像机坐标系到像素坐标系的转换:**对于相机坐标系下的点(x,y,z),我们先根据三角形相似的性质,将其转换为图像坐标系下的点。由于图像坐标系与像素坐标系的原点以及坐标系下的单位不一致,因此图像坐标系下的点存在平移以及单位换算才能转换成像素坐标系下的点。具体公式如下所示,其中 f 为焦距,Cx,Cy为偏置量,k,l 为单位换算系数。
接下来我们令fk=α,fl=β得:
然后将其转换到齐次坐标下,并使用矩阵形式表述:
又由于摄像机制造工艺因素影响,我们的像素坐标系xy轴可能不是垂直的,c存在θ夹角,因此我们需要将角度加进去,具体公式为:
如上述公式所示,我们令P’=MP=K[I 0]P,其中M为投影矩阵,K为内参数矩阵。
世界坐标系到像素坐标系的转换:我们得出摄像机坐标系到像素坐标系的转换关系后,只需要再知道世界坐标系到摄像机坐标系的转换关系,便可以进一步推导出世界坐标系到像素坐标系的转换关系,其具体流程如下所示。
由于世界坐标系到摄像机坐标系存在平移与旋转关系,因此两坐标之间的关系可写为:
其中Pw为世界坐标系下的坐标,R为选装矩阵,T为移位矩阵。
有了上述关系后,接下来我们便可以进一步推导出世界坐标系与像素坐标系之间的关系,并引出内外参数。
注:上述方法坐标均为齐次坐标,且不考虑畸变。
通常我们会用一块三维的棋盘格模型当作世界坐标系,但是如果用上述传统方法我们就需要找到一块高精度的互相垂直的棋盘格板,这是非常困难的。因此著名的张正友标定法就横空出世了,下面我们针对此方法进行讲解。
4.张正友标定法
张正友标定法利用如下图所示的棋盘格标定板,在得到一张标定板的图像之后,可以利用相应的图像检测算法得到每一个角点的像素坐标(u,v)。
张正友标定法将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 Z=0,由于标定板的世界坐标系是人为事先定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到每一个角点在世界坐标系下的物理坐标(X,Y,Z=0)。
假设我们提供K个棋盘图像,每个棋盘有N个角点,于是我们拥有2KN个约束方程。与此同时,忽略畸变的情况下,我们就需要求解4个内参和6K个外参(内参只于相机内部参数有关,外参却随目标点位置变化而变化),也就是说,只有当2KN>=4+6K的时候,也即K(N-3)>=2时,才能求出内外参矩阵。同时,无论在一张棋盘上检测到多少角点,由于棋盘上角点的规则布置使得真正能利用上的角点只有4个(在四个方向上可延展成不同的矩形),于是有当N=4时,K(4-3)>=2,即K>=2,也就是说,我们至少需要两张棋盘在不同方位的图像才能求解出无畸变条件下的内参和外参。
实际上我们往往会在一张棋盘上布置更多的角点,因为这样就可以通过最小二乘法求得最优解了,同样地,我们会需要至少10张以上的棋盘图像,目的是考虑数值稳定性和提高信噪比,得到更高质量的结果。
方法:
1.模型
在无畸变的情况下我们将成像模型定义为:
其中,R1 , R2为外参矩阵R的前两列。为了简便,将内参矩阵记为A 。对于不同的图片,内参矩阵A为定值;对于同一张图片,外参矩阵( R1 ,R2, T ) 为定值;对于同一张图片上的单点,内参矩阵A ,外参矩阵( R1 ,R2, T ),尺度因子Z为定值。
我们将A ( R1,R2, T )设为H,其表达如下:
2.求解内参数
已知R1,R2为旋转矩阵前两列,因此必然满足以下关系:
因此可以得到如下关系:
再令:
其中B为对称矩阵。
因此下面我们就是要求解出B矩阵,我们先对如下式子进行变形:
则上述方程可化简为:
又因为
故
由于矩阵H 已知,矩阵v又全部由矩阵H的元素构成,因此矩阵v已知。
然后再根据矩阵B与相机内参数的对应关系可得:
求解外参数矩阵
由于A已知,H已知,再根据( R1 ,R2, T ),A以及H对应关系即可求出( R1 ,R2, T )。
标定相机的畸变参数
径向畸变公式(2阶)如下:
1.引入库
2.读入数据
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。