何浩 黄景维
摘要:在计算机视觉检测中,广泛应用张正友标定法进行相机标定。但是至少需要三次或更多次地拍摄标定物,这需要烦琐的人工操作,难以实现相机标定的自动化。基于张正友标定法,该文提出了一种基于稀疏字典学习的相机标定方法。该文根据张正友相机标定模型,在相机的不同焦距下,离线获取大量标定图像,计算出不同焦距下的内参参数,并以此构造稀疏字典。当在线使用该相机的时候,根据一幅图像和该稀疏字典进行相机标定,可以获得非常好的内参初始值,再利用极大似然法优化相机参数。通过内参参数对比和重投影法对标定结果进行了评估,实验结果表明,该方法可以得到有效的相机标定内外参数以及畸变参数,实现单幅图像的相机标定,可以提高产品视觉检测的自动化。
关键词:单目相机;相机标定;张正友标定法;稀疏表示;字典学习
中图分类号:TP391.4 文献标识码:A
文章编号:1009-3044(2020)08-0184-04
1 概述
计算机视觉在质量检测、过程控制、机器人导航等领域有着广泛的应用[1]。在计算机视觉中,常常需要摄像机拍摄物体的图像。然而,在实际的成像过程中,由于摄像机镜头的光学特性、镜头的老化等原因,可能会出现诸如径向畸变或切向畸变等几何畸变,从而影响计算机视觉的精度[2]。因此,必须准确校准相机。
为了校准相机,自标定技术[3]通过在静态场景中移动相机以拍摄足够的图像,并且使用图像信息来评估相机的内部参数。这样的技术是灵活的,并且经常用于机器人。由于要估计的参数很多,不能保证得到可靠的结果。对于这样的问题,使用具有已知几何结构的精密三维标定物,例如具有三个正交平面的三维标定物,可以有效地完成标定。但是,标定物通常非常昂贵。一维标定物[4]通过多次移动获取多幅图像,这对于同时标定多个摄像机是非常有效的。但是,精确标定需要多次移动,并不适用于工业场景。使用带棋盘格的二维平面来实现相机标定[5],即张氏标定法,该方法只需要三幅以上的标定图像获得初始值,然后通过优化获得精确的标定结果。由于它不需要昂贵的标定设备,而且可以很容易地获得足够的图像进行精确标定,因此在摄像机标定和视觉研究中得到了广泛的应用。然而,要获得合适的初始值和准确的标定结果,需要三幅甚至更多的图像,这就意味着需要对工作人员进行更多的繁杂操作,不利于在线标定与自动化。
因此,研究如何通过更少的图像实现高精度的相机标定是非常必要的。该文提出一种基于稀疏字典学习的相机标定方法,通过离线构造用于数据恢复的完备稀疏字典来稀疏表示相机参数,在在线标定过程中,只需一幅图像就能准确地恢复标定参数,有利于快速实现摄像机标定,提高计算机视觉检测的自动化。
2 张氏标定相机模型
理想针孔摄像机模型在计算机视觉中得到了广泛的应用,理想针孔摄像机的投影模型将世界坐标系转换为像素坐标系。如图1所示。
3 稀疏字典构建与学习
根据式(6),b包含相机内参5个变量,根据式(9)方程组求解,在只有1张标定板图像的时候,无法求解准确的相机内参初值。所以本文將求解相机内参的问题归结为一个多变量的优化问题,并从多变量优化的角度提出一种基于稀疏字典学习的相机标定方法。通过多组数据样本训练,得到一个稀疏字典,使得b能够在字典上稀疏表示为:
b=Dη(15)
其中,D是稀疏字典,而η是b在D上的投影。那么,式(9)可以表示为:
VDη=0
(16)
因为1张标定图提供一个单应性矩阵H,H矩阵隐含相机内参信息,而稀疏字典具有隐藏样本数据特征的特点,因此,本文使用稀疏字典计算式(15),可以利用单幅图像得到准确的相机内参初值,从而实现单幅图像的高精密相机标定。
3.1 K-SVD算法训练稀疏字典
稀疏字典的含义是,寻找一个稀疏系数x,以及字典D,使得Dx尽可能还原原始信号y,且x尽可能稀疏,x就是y的稀疏表示。稀疏字典学习的优势在于能对样本数据实现降维表示,隐藏样本数据最朴质特征,提高计算速度。
稀疏字典学习的实现过程:通过离线采集相机标定图,通过张氏标定法得到样本数据Y,Y的每一列表示采集得到的一
对于上式优化问题,常用-_SVD[7]训练方法进行字典训练,根据误差最小原则,使用SVD奇异值分解法对误差项进行分解,选择使误差最小的分解项,利用这个误差最小的分解项更新字典的原子和对应原子的稀疏编码,经过不断迭代,最后可以得到优化的解,以及优化了的稀疏字典。因为目标函数(18)存在两个未知变量,K-SVD字典学习算法的过程首先是固定字典更新稀疏编码,然后固定稀疏编码更新字典,交替迭代更新,从而加快字典学习的目标函数(18)收敛[8]。
3.2 基于稀疏字典的单幅图像标定
单幅图像标定计算过程如下:
1)用相机对二维平面标定板进行拍照,根据式(2)计算单应性矩阵H;
2)根据式(18)计算矩阵V;
3)训练并得到稀疏字D,带入式(16),求解稀疏编码η,再根据式(15)可以求得b向量,即可根据式(10)得到相机内参初始值;
4)通过式(11)计算相机外参;
5)初始化畸变系数为0,通过极大似然法对内参、外参和畸变系数进行优化,得出最终结果。
由上述过程可知,使用稀疏字典算法,通过对多组样本数据进行学习得到的稀疏字典,字典获得样本数据重要特征。此外,利用稀疏字典对数据样本具有降维表示的特点,求出b所隐含的相机内参的稀疏表示,可以实现1张标定图就能求出准确的相机内参初值,再通过极大似然优化得到完整的相机内外参数和畸变系数。
4 实验结果
如图2为样本测试图,使用的是迈德威视的MV-GE200GM-T相机。通过Tanimoto[9]系数对张氏标定法计算9张标定图的相机内参值与稀疏字典学习标定法计算(1张标定图)的相机内参值的最终优化结果对比,其中,以张氏标定法9张图的结果为标准如表1一表4。
重投影誤差对比:实验中使用重投影误差作为评价指标来对相机标定结果进行评价。重投影误差公式为:
使用稀疏字典学习标定法进行标定,通过式(19)计算标定结果的重投影误差;使用张正友标定法9张标定图像情况下的进行标定,通过式(19)计算标定结果的重投影误差。两种标定方法的重投影误差对比如图3所示。
5 结论
本文提出了一种基于稀疏字典学习的摄像机标定方法,该方法可以在一幅图像上估计出合适的成像参数初值,并进一步优化所有标定参数。我们分别计算了标定参数的精度、重投影误差。通过分别对3幅图像和9幅图像的张氏标定法进行比较,得出:(1)仅用一幅具有较大特征点的标定物对摄像机进行标定,标定参数的精度可达99%;(2)计算的重投影误差在0.5像素的合理范围内。该方法使得标定操作简单,达到了满意的标定精度,进一步提高了机器视觉检测的自动化程度和检测效率。
参考文献:
[1] Semeniuta, Oleksandr. Analysis of Camera Calibration withRespect to Measurement Accuracy[J]. Procedia Cirp, 41:765-770.
[2] Zhang G, He J, Yang X. Calibrating camera radial distortionwith cross-ratio invariability[J]. Optics and Laser Technology,2003, 35(6):457-461.
[3] Faugeras o D, Luong Q T, Maybank S J. Camera Self-Calibra-tion: Theory and Experiments[C]. European Conference onComputer Vision. Springer-Verlag, 1998.
[4] Zhang Z. Camera calibration with one-dimensional objects[J].lEEE Transactions on Pattern Analysis and Machine Intelli-gence, 2004, 26(7):0-899.
[5] Zhang Z. A Flexible New Technique for Camera Calibration[J]. lEEE Transactions on Pattern Analysis and Machine Intel-ligence, 2000, 22(11):1330-1334.
[6] AHARON, M. An algorithm for designing overcomplete dic-tionaries for sparse representation[J]. IEEE Transactions onSignal Processing, 2006, 54.
[7] Li Y, Li F, Bai B. Image fusion via nonlocal sparse K-SVDdictionary learning[J]. Applied Optics, 2016,55(7):1814-1826.
[8] Renjie WU, Kamata S. A Similar K-SVD Optimization Algo-rithm Generalizing the K-Means and the Bayesian tracking[J].Journal of Parasitology, 2013,57(5 7) : 1145-1168.
[9] Cha S., Yoon S. and Tappert C., Enhancing Binary FeatureVector Similarity Measures[R], CSIS Reports, 2005.