本发明属于图像处理技术领域,涉及一种基于非线性优化的少图高精度相机标定方法。
背景技术
目前,相机标定方法有线性变换法、非线性优化法、两步标定法等方法,(1)线性变换法:计算复杂度小,有唯一的解析解,但是由于相机标定对数据噪声相当敏感,该方法的结果精度较低。(2)非线性优化法:通过迭代优化得到一个最优解,可以得到高精度的结果,但相机标定是一个非凸优化问题,其精度对初始值高度依赖。(3)两步标定法(如张正友标定算法):通过线性变换求得参数初始值,然后对其进行非线性优化,本质上是由粗到精的方法,以其精度高和标定板制作简单而得到广泛应用,但其在只有一到两张标定图时效果不佳。
相机模型就是用表达式模拟相机成像过程,通常采用小孔成像模型,如图1所示,相机模型表达式为:
其中,r11-r33的3×3矩阵为旋转矩阵,太复杂,但可以用ψ、θ和
当不考虑相机畸变时,相机标定就是求k中的5个参数和r中的6个参数。但实际上在精度要求高的情况下必须考虑相机畸变,也就是说通过
这里又有2个参数,所以考虑相机畸变时,相机标定就是求13个参数。直接计算非常困难,一般先算出p=k[i|o]r,然后再分解出11个参数。但由于标定数据存在噪声,用解析方法计算的结果往往不精确,所以,一般只是将其作为非线性优化的初始值。
因此,现有相机标定方法中,对少图相机标定方法,要么标定物特别复杂,要么精度不高。故,有必要研究一种少图高精度的相机标定方法。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于非线性优化的相机标定方法,在张正友标定算法的基础上,引入知识和约束条件,使得搜索范围更小,从而减小陷入局部最优的可能性,使算法更稳定。该方法只要有两张图甚至一张图就可以算出所有参数,然后通过图中的已经尺寸物体精确确定未知尺寸的物体等数据,适用于刑侦等特殊场合。
为达到上述目的,本发明提供如下技术方案:
一种基于非线性优化的相机标定方法,该方法具体包括以下步骤:
s1:获取数据:制作棋盘格标定板,并测量各方格的尺寸,从不同角度拍摄两张以上照片;
s2:计算单应矩阵;
s3:计算内参数、外参数和畸变因数的初始值;
s4:用非线性优化方法精化计算结果。
进一步,所述步骤s2具体包括:令齐次坐标为
上式结果为2×12矩阵;将标定点(角点)坐标和及其图像上的像点坐标代入上式解方程组,得到单应矩阵p(是一个3×4的矩阵);
进一步,所述步骤s3具体包括:采用无畸变情况下的相机模型,如下式:
其中,f表示焦距;uo、vo表示主点在图像中的坐标;r11~33表示旋转矩阵的各元素;t1~3表示平移向量的各元素、x、y表示三维空间中目标点的坐标,u、v表示目标点的像的图像坐标;zc表示相机坐标系中目标点的z坐标。
已知p,计算下式等号右侧中的参数:
其中,p是3x4的矩阵,只取其中的第1、2、4列,即删除第3列后,得到另外一个3x3的矩阵h,其中的第i个列向量表示为:hi=[hi1hi2hi3]t;
(1)计算内参数:f和uo、vo
求解如下方程组:
即
vb=0
其中,vij=[hi3hj3-(hi3hj1+hi1hj3)-(hi2hj3+hi3hj2)hi1hj1+hi2hj2],
(2)计算外参数:
令
其中,τ=1/‖a-1h1‖,r1、r2、r3和t分别为外参数矩阵r中的各个列向量;
(3)计算畸变因数:
k=(dtd)-1dtd
其中,k=[k1k2]t,
进一步,所述步骤s4具体包括:采用levenberg-marquardt方法进一步优化内外参数和畸变因子,优化的目标函数为:
其中,
本发明的有益效果在于:本发明所述方法只需要打印一个棋盘格图形,测量其尺寸就可以标定相机,其精度明显优于经典的张正友标定算法。
附图说明
为了使本发明的目的、技术方案和效果说明更加清楚,本发明提供如下附图:
图1为小孔成像模型图;
图2为棋盘格标定板;
图3为本发明所述相机标定方法流程图;
图4为单图无噪声的成功率对比图;
图5为本发明所述方法与张氏算法误差的均值对比图(单图无噪声);
图6为本发明所述方法与张氏算法误差的标准差对比图(单图无噪声);
图7为双图无噪声的成功率对比图;
图8为本发明所述方法与张氏算法误差的均值对比图(双图无噪声);
图9为本发明所述方法与张氏算法误差的标准差对比图(双图无噪声);
图10为双图量化噪声的成功率对比图;
图11为本发明所述方法与张氏算法误差的均值对比图(双图量化噪声);
图12为本发明所述方法与张氏算法误差的标准差对比图(双图量化噪声)。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
一种基于非线性优化的相机标定方法,如图3所示,具体包括以下步骤:
s1:获取数据:如图2所示,制作棋盘格标定板,并测量各方格的尺寸,从不同角度拍摄两张以上照片;
s2:计算单应矩阵;
s3:计算内参数、外参数和畸变因数的初始值;
s4:用非线性优化方法精化计算结果。
仿真实验:
分别对单图、双图以及实图(两张图)使用本发明所述相机标定方法和张正友标定方法进行相机标定处理,分别从成功率、准确度和精确度三方面进行对比分析两种方法的效果。成功率用标定结果为具有物理意义的实数的次数与总实验次数的比值表示。准确度计算结果与参考值的差的均值来度量。精确度用标定结果的标准差来度量。
1、单图无噪声效果
(1)成功率:如图4所示,图4a中灰色表示成功,黑色表示不成功,上图为本发明提出的算法,下图为经典的张正友算法;图4b为不同角点数下的结果;图4c为标定板与相机不同角度下的结果;图4b和4c中,实线为本发明提出的算法;虚线为张正友算法。
(2)准确度:如图5所示,图5表示本发明所述方法与张氏算法的误差均值对比图,反映准确度。
(3)精确度:如图6所示,图6表示本发明所述方法与张氏算法的误差标准差对比图,反映精确度。
2、双图无噪声效果
(1)成功率:如图7所示,图7a中灰色表示成功,黑色表示不成功,上图为本发明提出的算法,下图为经典的张正友算法;图7b为不同角点数下的结果;图7c为标定板与相机不同角度下的结果;图7b和7c中,实线为本发明提出的算法;虚线为张正友算法。
(2)准确度:如图8所示,图8表示本发明所述方法与张氏算法误差的均值对比图,反映准确度。
(3)精确度:如图9所示,图9表示本发明所述方法与张氏算法误差的标准差对比图,反映精确度。
3、双图量化噪声效果
(1)成功率:如图10所示,图10a中灰色表示成功,黑色表示不成功,上图为本发明提出的算法,下图为经典的张正友算法;图10b为不同角点数下的结果;图10c为标定板与相机不同角度下的结果;图10b和10c中,实线为本发明提出的算法;虚线为张正友算法。
(2)准确度:如图11所示,图11表示本发明所述方法与张氏算法误差的均值对比图,反映准确度。
(3)精确度:如图12所示,图12表示本发明所述方法与张氏算法误差的标准差对比图,反映精确度。
4、实图(两图)效果
(1)成功率:张氏算法成功率为20%,本发明提出的算法为100%。
(2)准确度和精确度:因为没有标准值,所以对真实图标定时不能直接计算其误差,所以,用标定出来的参数计算得到的图像点与实际的图像点的距离差来反映准确度,用不同图像组合计算出的内参数的标准差来反映精确度。从表1、表2中可看出,本发明提出的算法精确度远高于张氏算法。
表1重投影错误率表
表2内部参数的标准差值表
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。