张正友标定学习

张正友标定学习

1)标定的理解:图像和三维空间的物体存在某一种对应关系,可以表示为x=MX,而其中的M就表示一种几何模型,这个相机模型中的参数就是相机参数,所以确定相机参数(内参/外参)的过程就为标定。

2)从计算机视觉角度理解成像过程:

​ 简化成像模型:薄透镜针孔模型

1550389024587

图 成像过程

如上图所示,从计算机视觉理解成像过程就是坐标系的转换,具体如下图所示

1550389046196

a)世界坐标系到相机坐标系

如下图所示,即为从物体的坐标(称为世界坐标)到相机坐标变换的过程,它是一种刚体运动,可以用平移、旋转来描述。

img

矩阵表示如下:

img

其中第一个矩阵表示旋转矩阵,第二个为平移矩阵。

b)相机坐标系到图像坐标系:

img

如上图所示根据相似三角形我们可以得到相机坐标系下的像点和物点的关系,用矩阵表示如下:

img

c)图像坐标系到像素坐标系的变换

​ 从上图中我们可以看出相机的光心经过投影后到达图像的中心位置,此时与左上角顶点的距离为Ox,Oy如下图所示,当图像坐标系和像素坐标系坐标轴平行时候可以得到如下转换公式:

img

​ 每个像素沿 x 轴的实际物理尺寸大小是 dx,沿 y 轴的实际物理尺寸大小是dy ,单位值毫米,并且对于数字图像我们可以进行大小的缩放,则能得到两个坐标系间的关系。 ![捕获](C:\Users\RH Wang\Desktop\捕获.PNG)

3)张正友标定:

该文中将标定大致分为了两种:基于标定物的标定和自检校标定

基于标定物的标定:物体的位置已知并且需要较为昂贵的标定设备和精心设计的标定步骤。按照标定物的维数,来分可以分为:

基于三维参照物标定法(3D reference object based calibration):通过相机观测具有较高精度的已知三维信息进行标定解算的方法。标定物一般由两个或者三个正交的平面组成,该方法需要较为昂贵的标定设备和精心设计的标定步骤。在摄影测量学里,最经典的就是利用已知控制点通过共线方程(Collinearity Equation),使用后方交会法(Resection Method)或光束法(Bundle Method )求解。

基于二维平面标定法(2D plane based calibration):这该类方法中,使用相机对具有某种图案的平面(planar pattern)在不同的方位进行观测。

基于一维线标定法(1D line based calibration):使用一组共线的点进行标定解算,通常的使用相机观测绕某一固定点移动的直线,例如悬挂在天花板上的一行小球等。

自检校:不使用任何标定物,仅仅利用像点间的对应关系进行标定解算,因此也可称之为:基于0维标定物的方法。通常做法是移动相机,对一静态的场景进行成像,通过核线变换后,满足两个代数约束条件,继而可以进行相机标定。虽然不需要标定物,但是却需要大量的参数需要估算,由此也导致较多很难的数学问题。

张正友标定推导详解:

张正友标定的基本思路:我们先通过标定物平面到像平面的映射可以求得单应性矩阵,由单应性矩阵计算B(与相机内参有关系),从而得到相机的内参,由内参计算出外参,至此相机参数的封闭解已经求得。由于噪声等原因的存在,以及实际相机并不是针孔等原因,求得的封闭解只是理想情况下的相机参数,

若要的到更为准确的相机参数,还需要进行优化。因此将该封闭解作为最大似然估计的初始解,不断进行迭代,求得能够使得目标函数最小的相机参数的数值解。

​ i. 标定平面到图像平面的单应性(Homography):

张正友标定是基于二维平面标定法(2D plane based calibration),单应性矩阵为其中一个重要理论,即一个平面到另一个平面的映射(物体是共面点成像,即所有物点都在同一个平面上),张正友标定中的单应性矩阵为图像平面与标定物棋盘格平面的单应性。

将相机模型如下表示:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image020.png)

其中![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image022.png)和![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image024.png)表示归一化后的像点和物点坐标,R,T为外参矩阵中的旋转和平移矩阵而A表示内参矩阵,s为尺度因子。

A表示摄像机的内参数,具体表达式如下:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image025.png)

因为标定物是平面,所以我们可以把世界坐标系构造在Z=0的平面上。然后进行单应性计算。令Z=0可以将上式转换为如下形式:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image027.jpg)

既然,此变化属于单应性变化。那么我们可以给A[r1 r2 t]一个名字:单应性矩阵。并记H= A[r1 r2 t]。H是一个三3*3的矩阵,并且有一个元素是作为齐次坐标。因此,H有8个未知量待解。如何该单应性矩阵如何计算并没有给出?

通过至少四对匹配点(其中任意三个不共线)带入如下公式中:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image029.png)

匹配点(标定板图像有一定的要求,要保证标定板上已知点的坐标顺序和图像中对应的坐标不能乱序了)如下图所示:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image031.png)

​ ii. 相机内参矩阵计算(封闭解)

将H用列向量表示为:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image033.jpg)

由于旋转运行时刚体运动则R为正交矩阵,那么可以知道R中的列向量两两正交,所以

​ ![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image035.png)且![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image037.png)

由此可以得到:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image039.jpg)

h1,h2是通过单应性求解出来的。那么未知量就仅仅剩下内参矩阵A了。内参阵A包含5个参数:α,β,u0,v0,γ。那么如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。一张标定板图像可以计算出一个单应性矩阵,每个单应性矩阵能提供两个方程,而内参数矩阵包含5个参数,要求解,至少需要3个单应性矩阵。为了得到三个不同的单应性矩阵,我们使用至少三幅棋盘格平面的图片进行标定。通过改变相机与标定板之间的相对位置来得到三个不同的图片。并且不同位置拍摄图片有一定的限制(不一定是每张标定图像都是可以用的,不同位置拍摄的图像计算的单应性矩阵组成的大矩阵的要是满秩的)

在张的分析中,通过求解得到![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image041.png)(绝对圆锥曲线的像,参考百度,具体没看懂)既可以得到相机的内参。具体如下:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image043.jpg)

B是一个对称阵,所以B的有效元素只剩下六个(因为有三对对称的元素是相等的,所以只要解得下面的6个元素就可以得到完整的B了),让这六个元素构成向量b。

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image045.jpg)

则可以得到:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image047.jpg)

利用约束条件可以得到:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image049.jpg)

这个方程组的本质和前面那两个用h和A组成的约束条件方程组是一样的。得到同样的结论:如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。我们怎样才能获得三个不同的单应性矩阵呢?答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0)

内参参数:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image051.png)

​ iii. 相机外参计算(封闭解)

基于内参估计外参:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image053.jpg)

由于噪声的存在,这样求解的矩阵R一般并不具备旋转矩阵的特性,更好的求解方法是通过奇异分解(cholesky分解)的方法

其实我们做了这么多推导,仅仅是为后面的极大似然参数估计提供初值。但当然这个初值也是不可或缺的,因为没有这个初值,就无法估计出更为准确的参数,并且初始解较为准确使得我们方便。

iv. 最大似然估计相机参数(数值解):

上述的推导结果是基于理想情况下的解,但由于可能存在高斯噪声,所以使用最大似然估计进行优化。假设同一相机从n个不同的角度的得到了n幅标定板的图像,每幅图像上有m个像点。Mij表示第i幅图像上第j个像点对应的标定板上的三维点,则

​ ![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image055.png)

其中![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image057.png)表示物点Mj在第i幅图像上的投影,A是相机内参矩阵,Ri,ti表示第i幅图像对应相机的旋转矩阵和平移向量。R是和Rodrigues formula(罗德里格旋转公式)相关。

则像点![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image059.png)的概率密度函数是:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image061.png)

构造似然函数:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image063.png)

为了能够让L取得最大值,需要最小化下面的值

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image064.png)

最大似然估计精确估计相机参数,使得如上公式的值最小情况下的相机参数,这是一个非线性优化的过程,使用Levenberg-Marquardt (称莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解。)算法解决求得关于相机内参的数值解。

​ v. 镜头畸变估计(径向):

​ 为了取得好的成像效果,通常要在相机的镜头前添加透镜。在相机成像的过程中,透镜会对光线的传播产生影响,从而影响相机的成像效果,产生畸变:

畸变(distortion)是对直线投影(rectilinear projection)的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。畸变简单来说就是一条直线投影到图片上不能保持为一条直线了,这是一种光学畸变(optical aberration),可能由于摄像机镜头的原因。畸变一般可以分为:径向畸变、切向畸变。径向畸变来自于透镜形状,切向畸变来自于整个摄像机的组装过程。

a.径向畸变:产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲径向畸变主要包含桶形畸变和枕形畸变两种。

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image066.png)

通过如下公式纠正:

​ ![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image067.png)

b.切向畸变:当成像仪被粘贴在摄像机的时候,会存在一定的误差,使得图像平面和透镜不完全平行而产生切向畸变。也就是说,如果一个矩形被投影到成像仪上时,可能会变成一个梯形

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image069.jpg)

通过如下公式纠正:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image070.png)

在以上的纠正公式中,(x, y)是畸变点在成像仪上的原始位置,r为该点距离成像仪中心的距离。

张氏标定法中只关注径向畸变。因为在实际情况下,径向畸变较小,所以其可以用主点(principle point)周围的泰勒级数展开的前几项进行描述。张氏标定法,利用泰勒级展开前两项来确定径向畸变的畸变系数。如下所示:

设,(u,v)是理想的无畸变的像素坐标;(![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image072.png)是畸变后的像素坐标;![img](file:///C:\Users\RHWANG1\AppData\Local\Temp\msohtmlclip1\01\clip_image074.png)是相机的主点;(x,y)和(![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image076.png)理想的无畸变的归一化的图像坐标和畸变后的归一化图像坐标,使用下面的式子表示径向畸变:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image077.png)

k1,k2表示径向畸变的系数。径向畸变的中心和相机的主心是在相同的位置(由相机模型得到,图像坐标系到像素坐标系的转换矩阵):

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image078.png)

若图像坐标系和像素坐标系平行则![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image080.png),则有:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image081.png)

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image082.png)

上面的等式是从一幅图像上的一个点取得,设有n幅图像,每幅图像上有m个点,则将得到的所有等式组合起来,可以得到2mn个等式,可以组成方程组Dk=d其中![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image084.png),其线性最小二乘解为:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image085.png)

得到畸变参数k1,k2后,可以先将图像进行去畸变处理,然后用去畸变后的图像坐标估计相机的内参数。和上面类似利用最大似然估计取得最优解,使用LM的方法估计使得下面式子是最小值的参数值:

![img](file:///C:\Users\RHWANG~1\AppData\Local\Temp\msohtmlclip1\01\clip_image086.png)

综上张正友的标定流程如下:

张正友标定的一般流程:

1.打印图案并将其粘贴到平面上。

2.通过移动平面或相机拍摄不同方向的标定物的平面的一些图像。

3.检测图像中的特征点。

4.如矩阵推导部分所示,使用闭式解决方案估算五个内在参数和所有外部参数

5.通过最大似然估计来优化所有参数(使用封闭解求得的相机参数作为初值,会缩短迭代的次数),包括镜头失真参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值