一种基于稀疏字典的相机标定方法与流程

文档序号:13949312阅读:542来源:国知局

本发明涉及一种相机标定方法,尤其涉及一种基于稀疏字典的相机标定方法。



背景技术:

早期的摄像机标定技术起源于十九世纪摄影测量学中的镜头校正,主要用来解决视点坐标与其对应的像点坐标间的精准匹配问题。摄像机模型就是由定义这个匹配关系的参数组成,通常将这些参数分为外部参数和内部参数。tsai在1987年所提出的两步标定法被认为是相机标定重要理论工作,被广泛应用于早期的相机标定过程中。该方法基于径向畸变点与真实点之间共线的假设模型采用两步策略分别求解相机的内外参数。求解参数的计算复杂度较低求解速度较快,但该算法在标靶平面与成像平面处于平行时求解的误差较大稳定不高。1999年,张正友提出的平面标定方法采用简单的平面物体作为标靶(即标定板),多次拍摄不同位置的标靶图像以非线性优化方法来估计摄像机参数。平面标靶的标定方法结合了传统标靶标定法与自标定法的思想,通过简单的二维平面标靶的简单手动操作就能获得较高的标定精度。

张正友平面标定法是一种新的、灵活的、精度高的方法。但是在使用张正友平面标定法的过程中,相机内参矩阵有六个未知量,为了计算相机内参矩阵必须建立关于这六个未知量的方程组,张正友平面标定法对每一张标定板图像只能建立2个方程,6个未知量情况下只有2个方程组,显然该方程组是欠定方程组。因此,张正友平面标定法必须对标定板进行至少3次不同角度拍照,至少获得6个方程组才能求出相机的内参矩阵,然后通过内参矩阵求得外参矩阵和畸变系数。而对标定板多次拍照的过程中,不仅操作繁琐,标定效率低,还可能由于人为操作导致标定板摆放的角度有重复或者相差不大,这样会导致重复计算无用数据,使标定结果的准确度降低。

张正友标定法的数学模型具体为:

其中,s为任意的比例因子,[rt]称为相机外参,r为旋转矩阵,t为平移矩阵。是相机的内参矩阵,(u0,v0)为坐标主点,α和β是图像在u和v轴的比例因子,γ是描述两个坐标倾斜角的参数。设内参矩阵r的第i列旋转矩阵为ri,r=[r1r2r3],则式(1)可变为:

设像素坐标m=[uv1]t,世界三维坐标m=[xy1]t,z=0的平面,h=k[r1r2t],可得:

显然,h是个3×3的系数矩阵,一组对应点m和m可以构造3个方程,只要3组m和m的数据就可以求出h矩阵。

令h=λk[r1r2t]=[h1h2h3],h为透视投影矩阵,它是标定板上的点和其像点之间的映射,其中,λ是个缩放因子标量,又因为r1和r2正交,则可得式(4)与式(5):

依照矩阵知识,当所取数目至少要大于等于3幅图像时,可以求得含有5个未知的内参矩阵k的唯一解。

即令

可知b矩阵是个对称矩阵,所以可以写成一个六行一列的向量形式:

b=[b11,b12,b22,b13,b23,b33]t(7)

现在假设h的第i列向量为hi=[hi1,hi2,hi3]t,然后可以得到:

hit=bhj=vijtb(8)

式中vij=[hi1hj1,hi1hj2+hi2hj1,hi2hj2,hi3hj1+hi1hj3,hi3hj2+hi2hj3,hi3hj3],于是根据两个内参矩阵的限制条件式(4)与式(5)可以得到约束关系为:

即vb=0,式中v是一个2×6的矩阵,即每张照片可以建立2个方程组,包含6个未知数。根据线性代数知识可知,该方程组为欠定方程组,求解6个未知量至少需要6个方程组,因此标定过程中至少需要三张照片才能解出所有未知数。



技术实现要素:

基于此,本发明的目的在于,提供一种初次运用后,每次只需拍摄一张标定板图像即可完成标定的基于稀疏字典的相机标定方法。

本发明所采用的技术方案是:

一种基于稀疏字典的相机标定方法,包括以下步骤:

步骤1:用相机在不同高度处对标定板拍摄多组图像,根据张正友标定法获得每组图像的内参矩阵k,将多组内参矩阵k对应的数据组成数据集y;

步骤2:从数据集y中随机抽取k个样本,作为稀疏字典d的原子,并初始化编码矩阵x,确定稀疏度l,设置稀疏编码误差ε;

步骤3:固定稀疏字典,求取每个样本的稀疏编码;

步骤4:采用稀疏字典方法,逐列更新稀疏字典d和编码矩阵x;判断迭代误差是否收敛,若是,进行步骤5,若否,回到步骤3;

步骤5:用相机对标定板拍摄一张图像,求解稀疏系数x,利用稀疏系数x以及步骤4中得到的稀疏字典d,求出相机的内参矩阵k和外参矩阵;

步骤6:求解畸变系数,利用步骤5中得到的内参矩阵k和外参矩阵,进行极大似然估计,得到畸变系数和内参矩阵k的最优解;判断迭代误差是否收敛,若是,结束标定,若否,重新执行步骤6。

本发明的基于稀疏字典的相机标定方法,在对每台相机进行初次运用时,用相机在不同高度处对标定板拍摄多组图像,通过步骤1-4构建出稀疏字典,在以后每次使用该相机时,只需拍摄一张标定板图像,通过步骤5-6即可完成相机标定。

进一步地,在步骤1中,用相机在不同高度处对标定板拍摄多组图像,根据张正友标定法获得每组图像的内参矩阵k,每组内参矩阵k根据以下公式求出相应的式:

b=[b11,b12,b22,b13,b23,b33]t

其中,t为相机的平移矩阵,矩阵b由内参矩阵k获得:

将每组得到的式记录为列向量yi,多组列向量yi组成数据集y。

进一步地,在步骤2中,将编码矩阵x初始化为0矩阵,取稀疏度l=2,设置稀疏编码误差ε=1^-16。

进一步地,在步骤3中,求取每个样本的稀疏编码,编码过程采用以下公式:

d,x=argmind,x{||x||0},

st.||y-dx||2≤ε。

进一步地,步骤3具体包括以下步骤:

步骤31:稀疏字典d=[d1,d2,d3,d4,d5,d6],输入样本y,令稀疏字典的原子为di,i=1,2,3,4,5,6,从di中找出与向量y最近的向量,即分别计算点乘di*y,找出最大值所对应的原子dmax1;

步骤32:将原子dmax1作为第一个原子,令编码向量为:

x1=(0,a,0,0,0),a为未知参数;

步骤33:按照以下公式,采用求解最小二乘法的方法求解系数a

y-a*dmax1=0;

步骤34:利用x1与dmax1相乘重构出数据,并计算残差向量y':

y'=y-a*dmax1

判断残差向量y'的模长是否满足稀疏编码误差ε,若是,则进行步骤4,若否,则进行步骤35;

步骤35:计算剩余的稀疏字典的原子di与残差向量y'的最近的向量,即分别计算点乘di*y,找出最大值所对应的原子dmax2,作为第二个原子,令新的编码向量为:

x2=(0,a,c,0,0),a、c为未知参数;

步骤36:按照以下公式,采用求解最小二乘法的方法求解系数a和c

y-a*dmax1-c*dmax2=0;

步骤37:更新残差向量y':

y'=y-a*dmax1-c*dmax2

判断残差向量y'的模长是否满足稀疏编码误差ε,若是,则进行步骤4,若否,则继续循环。

进一步地,在步骤4中,采用稀疏字典方法,逐列更新稀疏字典d和编码矩阵x,即当更新第k列原子的时候,其它的原子固定不变;令当前要更新第k个原子为dk,令编码矩阵x对应的第k行为xk,则目标函数为:

使用奇异值分解法分解矩阵ek,得到最大奇异值所对应的正交单位向量,作为新的dk,将最大奇异值所对应的特征向量与该最大奇异值相乘以更新xk;判断迭代误差是否收敛,若是,进行步骤5,若否,回到步骤3。

进一步地,在步骤5中,用相机对标定板拍摄一张标定板图像,根据张正友标定法数学模型,求解系数矩阵v;将步骤4中得到的稀疏字典d代入vdx=0,求解稀疏系数x;利用求解得到的稀疏系数x以及稀疏字典d,根据b=dx求解b;将求解得到的b代入以下公式,以求出内参矩阵k:

b=[b11,b12,b22,b13,b23,b33]t

根据内参矩阵k,代入张正友标定法数学模型,求出外参矩阵,所述外参矩阵包括旋转矩阵r和平移矩阵t。

进一步地,在步骤6中,根据以下等式,求解畸变系数k1和k2:

令一张标定板图像的角点数量为z,每个角点得到一个该等式,一共得到2z个该等式,采用最小二乘法求解线性方程组,得到解k1和k2;其中,(u,v)为理想无畸变的像素坐标,为对应实际观测到的带畸变的像素坐标,(u0,v0)为主点坐标,(x,y)为理想无畸变的归一化图像坐标。

进一步地,在步骤6中,利用求解得到的畸变系数,以及步骤5中得到的内参矩阵k和外参矩阵,进行极大似然估计,即通过最小化以下函数来估计内参矩阵k的完整集,以得到畸变系数和内参矩阵k的最优解:

其中,像素坐标m=[uv1]t,世界三维坐标m=[xy1]t,r为旋转矩阵,t为平移矩阵,n为标定板图像数量,取n=1,z为一张标定板图像的角点数量。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1为本发明的基于稀疏字典的相机标定方法的流程图。

具体实施方式

请参阅图1,其为本发明的基于稀疏字典的相机标定方法的流程图。

本发明的基于稀疏字典的相机标定方法,包括以下步骤:

1)步骤1:用相机在不同高度处对标定板拍摄多组图像,根据张正友标定法获得每组图像的内参矩阵k,将多组内参矩阵k对应的数据组成数据集y。

具体地,每组内参矩阵k根据以下公式(7)求出相应的式:

b=[b11,b12,b22,b13,b23,b33]t

其中,t为相机的平移矩阵,矩阵b由内参矩阵k获得,即公式(6):

将每组得到的式记录为列向量yi,多组列向量yi组成数据集y。

2)步骤2:从数据集y中随机抽取k个样本,作为稀疏字典d的原子,并初始化编码矩阵x,确定稀疏度l,设置稀疏编码误差ε。

具体地,将编码矩阵x初始化为0矩阵,取稀疏度l=2,设置稀疏编码误差ε=1^-16。

3)步骤3:固定稀疏字典,求取每个样本的稀疏编码。

具体地,编码过程采用以下公式:

d,x=argmind,x{||x||0},

st.||y-dx||2≤ε。

稀疏编码误差ε作为重构误差允许的最大值。

步骤31:稀疏字典d=[d1,d2,d3,d4,d5,d6],输入样本y,令稀疏字典的原子为di,i=1,2,3,4,5,6,从di中找出与向量y最近的向量,即分别计算点乘di*y,找出最大值对应的原子dmax1。

本实施例中,假设d2*y最大,那么dmax1就是d2。

步骤32:将原子dmax1作为第一个原子,令编码向量为:

x1=(0,a,0,0,0),a为未知参数。

在本实施例中,d2作为第一个原子。

步骤33:按照以下公式,采用求解最小二乘法的方法求解系数a

y-a*dmax1=0。

本实施例中,即求解y-a*d2=0。

步骤34:利用x1与dmax1相乘重构出数据,并计算残差向量y':

y'=y-a*dmax1;

本实施例中,即计算y'=y-a*d2

判断残差向量y'的模长是否满足重构误差阈值范围,即是否满足稀疏编码误差ε,若是,则进行步骤4,若否,则进行步骤35;

步骤35:计算剩余的稀疏字典的原子di与残差向量y'的最近的向量,即分别计算点乘di*y,找出最大值对应的原子dmax2,作为第二个原子,令新的编码向量为:

x2=(0,a,c,0,0),a、c为未知参数。

在本实施例中,即计算除了d2以外,剩余的原子d1,d3,d4,d5,d6与残差向量y'的最近的向量,即分别计算点乘d1*y',d3*y',d4*y',d5*y',d6*y',假设d3*y'为最大值,则d3作为第二个原子。

步骤36:按照以下公式,采用求解最小二乘法的方法求解系数a和c

y-a*dmax1-c*dmax2=0。

本实施例中,即求解公式y-a*d2-c*d3=0。

步骤37:更新残差向量y':

y'=y-a*dmax1-c*dmax2;

本实施例中,更新残差向量y'具体为y'=y-a*d2-c*d3。

判断残差向量y'的模长是否满足重构误差阈值范围,即是否满足稀疏编码误差ε,若是,则进行步骤4,若否,则按照步骤31-37的规律,继续循环,直到满足稀疏编码误差ε为止。

4)步骤4:采用稀疏字典方法,逐列更新稀疏字典d和编码矩阵x;判断迭代误差是否收敛,若是,进行步骤5,若否,回到步骤3。

具体地,逐列更新稀疏字典d,并更新对应的非零编码。

k-svd采用逐列更新的方法更新稀疏字典,就是当更新第k列原子的时候,其它的原子固定不变。假设当前要更新第k个原子,令编码矩阵x对应的第k行为,则目标函数为:

使用奇异值分解法分解矩阵ek,得到最大奇异值所对应的正交单位向量,作为新的dk,将最大奇异值所对应的特征向量与该最大奇异值相乘以更新xk;判断迭代误差是否收敛,若是,进行步骤5,若否,回到步骤3,继续在步骤3和4之间循环,直到收敛。

5)步骤5:用相机对标定板拍摄一张图像,求解稀疏系数x,利用稀疏系数x以及步骤4中得到的稀疏字典d,求出相机的内参矩阵k和外参矩阵。

具体地,用相机对标定板拍摄一张标定板图像,根据张正友标定法数学模型,求解系数矩阵v,具体根据背景技术部分的张正友标定法的数学模型求解,此处不赘述;将式(9)vb=0转化为vdx=0,将步骤4中得到的稀疏字典d代入vdx=0,求解稀疏系数x,x是稀疏度为2的固定稀疏系数;利用求解出的稀疏系数x以及稀疏字典d,根据b=dx求解b;将求解得到的b代入以下公式,以求出内参矩阵k:

b=[b11,b12,b22,b13,b23,b33]t

根据内参矩阵k,代入张正友标定法数学模型,即式(2),求出外参矩阵,所述外参矩阵包括旋转矩阵r和平移矩阵t。

6)步骤6:求解畸变系数,利用步骤5中得到的内参矩阵k和外参矩阵,进行极大似然估计,得到内参矩阵k和畸变系数的最优解;判断迭代误差是否收敛,若是,结束标定,若否,重新执行步骤6。

具体地,首先求解畸变系数,然后做与畸变相反的变换,消除畸变。

由于在实际情况下,径向畸变较小,所以其可以用主点周围的泰勒级数展开的前两项进行描述。设(u,v)是理想无畸变的像素坐标,是对应实际观测到的带畸变的像素坐标,(u0,v0)代表着主点坐标,(x,y)代表理想无畸变的归一化图像坐标,是对应实际的带畸变的归一化图像坐标。于是有:

其中k1和k2为前两阶的径向畸变系数。对于中心点的畸变同样适用。然后由可以得到:

对于图像上的任意一点,我们有上述两个等式。这两个等式化成矩阵形式如下:

令一张标定板图像的角点数量为z,每个角点得到一个该等式,一共得到2z个该等式,采用最小二乘法求解这个线性方程组的解k1和k2。

为了得到实际的、存在径向畸变的摄像机参数,需要把求解得到的畸变参数,连同前面得到的理想无畸变条件下的内参矩阵k和外参矩阵一起,进行极大似然估计。通过最小化下列函数来估计参数的完整集,最后得到畸变系数和内参矩阵k的最优解:

其中,像素坐标m=[uv1]t,世界三维坐标m=[xy1]t,r为旋转矩阵,t为平移矩阵,n为标定板图像数量,取n=1,z为一张标定板图像的角点数量。

本发明的基于稀疏字典的相机标定方法,在对每台相机进行初次运用时,用相机在不同高度处对标定板拍摄多组图像,通过步骤1-4构建出稀疏字典,在以后每次使用该相机时,只需拍摄一张标定板图像,通过步骤5-6即可完成相机标定。在步骤5-6中,本方法将式(9)中的6个未知量减少到2个,将vb=0转化为vdx=0,求解稀疏系数,然后利用步骤1-4中得到的稀疏字典,求出相机的内参矩阵和外参矩阵,再通过极大似然估计得到畸变系数和内参矩阵的最优解,即完成对相机的标定。本方法无需每次使用相机时对标定板进行至少3次不同角度的拍摄,而只需拍摄一张标定板图像,省去了多次转换角度拍照的过程,减少人员的操作,提高相机标定效率,同时避免了多次拍摄中由于人为操作导致标定板摆放的角度有重复或者相差不大导致重复计算无用数据的问题,提高标定的准确度。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1