基于角点检测的摄像机标定算法及应用∗

2019-02-27 08:32王晓辉
计算机与数字工程 2019年2期
关键词:角点视场棋盘

王晓辉 李 星

(1.中国飞机强度研究所 西安 710065)(2.中国煤炭科工集团西安研究院 西安 710065)

1 引言

摄像机标定的过程,实际上是计算摄像机成像过程中的相关参数,对于计算机视觉的实现有重要意义[1]。结合实际应用场合,传统标定方法不适用于在线标定和无标定物的场合。针对航拍视频测量系统来说,鉴于无人平台载荷量的限制,传统标定方法中过大的立体标定物显得很不便携[2];自标定方法虽然简单灵活,对外界要求较低,可以摆脱标定参照物的束缚,但标定精度低,可靠性较差,同时由于没有外部物理数值的输入,不能够直接求解出摄像机的外部参数,无法适用于航拍视频系统进行空间定位[3~4];而基于主动视觉的标定方法需要一定的视觉控制平台,相比而言价格昂贵,成本[5]。

鉴于此,我们使用平面模板进行摄像机标定,通过自适应角点检测方法和改进的摄像机标定模型,一方面满足了视频系统对标定物便携性的要求,另一方面保证了空间物理信息输入的准确性,从而有效地提高了标定精度和效率。具体地,本文通过摄像机视场角测量试验,证明了该方法的可行性、准确性和有效性。

2 角点检测

基于Hessian矩阵角点检测的思想[6~7],结合Harris算子提出了一种全新的自适应角点检测方法,主要思想是通过引入图像形状算子和圆形对称模板,动态、准确地获取角点位置坐标,从而提高了摄像机标定输入信息的准确性。

2.1 基于Hessian矩阵的自适应角点检测

通过对图像I(x,y)进行高斯平滑,得到r(x,y),再利用对称差分模板对r(x,y)做卷积得到图像的二次偏导数rxx,rxy,ryy,具体运算如下:

其中g(x,y)是方差为σ的高斯函数,图像的Hessian矩阵为M根据矩阵M的两个特征值λ1,λ2(λ1>0,λ2<0)得到棋盘格角点位置的形状算子S=λ1*λ2,其中S取负极大值的点(x*,y*)即为像素级角点位置。在实际中,我们取S=-S,使得求解形状算子的负极大值转换为求解正极大值,然后在形状算子图像S上,依次以每个像素为中心移动局部检测窗口,只要窗口中心的S等于对应窗口内的最大属性值Smax且大于阈值th*,则该中心点初步确定为角点。鉴于固定阈值的缺陷,在此我们采用一种自适应阈值法。

首先取S=-S,然后检测出局部窗口中心点形状算子大于0且为邻域最大值的所有像素点,总数记为n,然后对检测出的形状算子进行正向排序,计算两相邻形状算子之差:Sd=(S2-S1,S3-S2,…Sn-Sn-1),其中Sd的最大值对应像素点的形状算子S*,从而取th*=corr0*S*,0<corr0<1。

2.2 自适应剔除伪角点

根据棋盘格角点的对称特性[3],采用圆形对称模板剔除伪角点(如图1所示)。

图1 角点特征和圆形对称模板扇区编号

具体来说,通过将圆形模板分为10个扇区并编号,依次累计各个扇区像素的灰度值,整个模板区域像素的平均灰度值为Imean,各扇区的灰度值为Ii。由于棋盘格角点邻域具有中心对称性,因此当真正的角点位于圆形模板中心时,Ii与Ii+5(i=1,2,…,5)灰度值相近,也就是说(Ii-Imean)与(Ii+5-Imean)同号,即

本文使用的角点检测算法,同时也结合了多尺度角点检测算法,从而最大程度地保证了角点的完整性。具体在作者的文献[8]中,列举了大量实验说明本文检测算法的优越性。

3 摄像机标定实现与应用

关于摄像机标定原理不再赘述,本文基于张正友的经典标定模型[2],考虑到时下对于标定速度、精度、实时性的要求和现代数码产品制造工艺的提升[9],提出了一种改进的三参数模型,具体在足作者文献[10]中有所描述,主要按照线性求解内外参数,引入畸变量综合求解,从而实现摄像机的标定。在此基础上可以完成对图像的畸变校正,从而进行摄像机镜头视场角的测量实验。

3.1 基于角点检测的摄像机标定的实现

基于以上角点检测算法,在改进模型的基础上,可以完成标定获得摄像机内外参数,其中标定过程如图2所示。

图2 基于角点检测的摄像机标定过程

根据以上算法实现机理,基于VC 6.0和OpenCV编程,对此进行了软件实现,并植入到GML Camera calibration toolbox[11]中,整个过程可以实现棋盘格角点的自动检测、排序和匹配(如图3所示),并且可以直接作为标定的输入信息,从而使得整个标定过程更直观,更高效(如图4所示)。

图3 棋盘格角点自动检测

图4 摄像机标定结果

3.2 基于摄像机标定的视场角测量实验

3.2.1 实现方案

将棋盘格模板放置于基准架前,保持激光测距仪(Insight200)的发射端口所在平面和棋盘格模板平面相对平行。在实验中,需要将两个激光点完全落在摄像头视场范围内。获得图像信息后,通过摄像机标定实验可以得到摄像机的内外参数,获得摄像头的焦距,同时也可以获取激光点所在的图像像素位置,从而利用几何知识计算出摄像头视场角,实验装置如图5所示。

图5 摄像机视场角测量实验方案图

实验中使用JAI公司的CV-A10CL镜头,素材是在日光灯下拍摄所得的20幅640×480的棋盘格图像,其中棋盘格模板是6×7的方格组成,每个方格尺寸35mm(如图6所示)。

图6

3.2.2 摄像机标定

通过以上方法,完成摄像机标定,并且和标定工具箱[12]进行了对比,见表1。

表1 摄像机标定内部参数

在此CCD像元尺寸(参见文献[13])dx=dy=5.6μm,可将数字焦距换算成物理焦距:

误差分析:

可以看出,本文模型方法对焦距的估计值与标准焦距的相对误差为0.69%,而原始模型对焦距的估计值与标准焦距的相对误差为1.36%,两者相差一倍,从而说明本文方法的有效性和准确性。

3.2.3 图像畸变校正

通过摄像机参数,对图像进行畸变校正[14~15],效果如图7所示。3.2.4 视场角测量

图7 图像畸变校正效果图

1)通过对校正图像进行内角点检测,获得内角点的亚像素级坐标。计算知图中方格横向边长为dpx=83.9251pixel,纵向边长为dpy=84.7608pixel,实际方格边长为d=35mm,从而可知图像的单元尺度因子:Dx=d/dpx=0.4170,Dy=d/dpy=0.4129。

设摄像机镜头在水平方向的绝对视场角为θx,垂直方向的绝对视场角为θy,从而根据几何关系计算如下:

4)摄像机视场角计算及误差分析

根据摄影成像原理,视场角的计算公式如下:

代入理论值和原始模型方法以及本文模型方法下的参考值,计算结果见表2。

表2 视场角测量结果误差分析

可以看出,本文方法模型下对摄像机视场角的测量值更接近理论值,而原始模型方法下对摄像机视场角的测量值相比理论值误差较大。

4 结语

本文基于改进的棋盘格角点自适应检测算法和改进的三参数模型,可以实时动态地完成对摄像机的标定,进而完成了对摄像机视场角的测量实验,相比标定工具箱来说,本文模型方法的测量精度明显提高,测量误差缩小一半,从而进一步说明了本文方法的有效性和准确性,有一定的实用价值。

猜你喜欢
角点视场棋盘
一种晶圆自动光学检测系统的混合路径规划算法
一种改进的自适应FAST 角点检测算法
大视场日盲紫外告警系统研究
多支撑区域模式化融合角点检测算法仿真
基于点云聚类的垛型角点检测方法
角点检测技术综述①
提高多相机视场组合精度的调节措施
蔡司胜利
棋盘人生
棋盘里的天文数字