吴亚帅,刘新妹,殷俊龄,高志亨
(中北大学 电子测试技术国家重点实验室,太原 030051)
机器视觉被广泛地应用于自动化检测和测量的视觉系统中[1].在实际应用中,精密度的局限性会导致机器视觉系统采集的图像产生各种畸变,例如径向畸变、透视畸变等[2],随着成像设备制造技术的不断提高,数字图像的分辨率越来越高,图像的畸变在检测中不容忽视,必须对其进行矫正[3].图像畸变矫正技术的研究主要有两个方面:光学机械设计上的矫正和数字图像处理上的矫正[4].利用光学和机械结构对镜头进行矫正存在诸多局限性,如高精度的光学图像采集镜头价格昂贵、结构设计较为复杂等[5],因此采用数字图像处理技术对畸变进行矫正已成为目前研究的主要方向.
在图像畸变矫正理论中,畸变模型的确立是畸变矫正的理论基础,也是相机标定的主要内容,而对于参考模型的选取将直接影响到畸变图像矫正的效果[6].目前在研究中的畸变模型各有优缺点,比如Fitzgibbon模型[7]包含未知参数少,计算量小但精度不高;Brown模型[8]和Heikkila 模型[9]较复杂,虽可以较好的提高图像矫正精度,但算法计算的复杂性与工作量也成倍增加[10].因此,需要根据实际情况合理规划建立摄像头的畸变模型,达到实验设计目的.
目前常用的软件开发平台有:HALCON、Vision Pro、OpenCV 和LabView 等[11].其中LabView 采用图形化编程方式,软件开发周期短,特别适合工控及自动化测试场合,能够快速完成视觉系统的模型建立,提高测试效率[12].因此,本文以PCB 板为研究对象,结合径向畸变和切向畸变,使用了一种多项式畸变成像模型,基于LabView 平台和NI Version 模块采用校准点阵对机器视觉系统进行校准,利用双线性插值算法对图像畸变进行矫正,并对矫正结果进行对比分析得出结论.
理想条件下,机器视觉成像系统可以被抽象为小孔成像模型,镜头的图像畸变可以忽略不计.然而实际并非理想,镜头本身特性的不完美性对成像的最终结果造成的影响是不可忽视[13].
本文在图像畸变的矫正主要研究径向畸变和切向畸变,径向畸变是由于现实中镜头所用的凸透镜或凹透镜组合固有的光学特性,导致真实坐标点沿着像面径向产生的偏移.切向畸变与径向畸变的影响不同,切向畸变是使图像像素沿着切线方向变形,如将矩形变为梯形图像[14].
根据泰勒级数定义和镜头在畸变中心处不会产生畸变,以及径向畸变是沿畸变中心对称的特性,径向畸变数学模型表示式为:
式中,r为理想中像素点到原点的距离,(x,y)为畸变点在图像的原始坐标,即为图像矫正后的坐标;k1,k2,…,kn表示径向畸变的待定系数.
切向畸变的数学模型表示式为:
式中,(x,y)为图像畸变像素点在相机图像平面的原始坐标位置;(xcorrected,ycorrected)为矫正后的新坐标位置,p1,p2为描述切向畸变的待定系数.
本文结合式(1)和式(2)采用的多项式畸变模型表达式为:
式中,k1,k2,p1,p2,k3为需要求解的镜头畸变系数.
本文对畸变模型的研究建立4 种计算机视觉坐标系:世界坐标系、相机坐标系、成像平面坐标系和图像坐标系,坐标系统转换模型示意图如图1.不难看出,真实世界坐标系与相机坐标系之间的变换可以通过旋转和平移来实现.
图1 坐标系统转换模型示意图
世界坐标系在平移T后,先沿z轴旋转 θ度,再沿y轴旋转 φ度,最后沿z轴旋转 ψ度便可以得到相机坐标系,转换关系表示为:
其中,R为旋转矩阵,与θ,φ 和 ψ有关.
若不考虑镜头畸变影响,成像点可有相机坐标系投影得到:
式中,f为相机焦距,图像坐标系和成像平面坐标系转换关系为:
其中,(x,y)为图像像素坐标,Sx,Sy分别为每个像素在两个坐标轴上的物理尺寸,(x0,y0)为光轴与像平面交点在图像坐标系中的坐标,fx,fy为成像平面上的等效焦距.
设Ow中的zw=0,可以得出:
式中,k为比例系数,M为相机内部参数矩阵.
设H为单应性矩阵,令:
由旋转矩阵R的φ、ψ的正交性,可以得出约束方程:
只要采集的图像有足够的图像和物理空间的对应点,就可以求出H,M矩阵中只有5 个未知量,当采集的图像至少为3 幅时,就可以根据建立的约束方程求出M矩阵中的内参数.由式(7)进一步得到相机视觉模型的外参数θ,φ,ψ和T由此可知,成像过程其实就是三维空间坐标系之间的转换过程.
本文图像选用德国Basler acA 系列相机及其配套镜头采集,且按上述坐标系之间的转换,结合多项式畸变模型和2.2 节的公式基于LabView和NI Version 软件平台建立坐标系.设计满足实验要求的15×15 圆点阵列,并粘在一张光滑平板上.相邻水平点、垂直点的中心间距均为10 mm,点直径4 mm.其中主要采集模板中的4×5 点阵.建立的坐标系如图2.
图2 坐标系建立前后图
在进行坐标转换时涉及的点数较多,本文选取图像中的其中20 个点的坐标,依据上述坐标系之间的转换关系,得出转换结果如表1.
表1 多项式畸变成像模型坐标转换参数
由各点的转换结果,可得:最大误差为0.010848;计算平均误差为0.008485;标准差为0.000449.也证实了:实际坐标和图像坐标的转换通过这一步骤,可以实现较小误差的精确转换.
在机器视觉系统中,系统校准是指利用包含多个点的标准模板,为系统提供真实世界坐标系中多个坐标点的已知信息[15].有了这些信息,就可以结合成像系统模型,获得图像总各像素点与真实世界之间的线性或非线性的映射关系,如将这些信息应用到后续的图像采集中,就可以降低各种畸变对系统检测结果的影响,并可对畸变图像进行矫正.
日前在LabView 平台研究常用的系统校准方法有:简易系统校准法、透视校准和校准点阵校准.简易系统校准法和透视校准是两种通过手工输入已知信息点就可以实现系统校准的方法,在实践工程中,若镜头存在径向或切向畸变,手工输入已知信息点的校准方法就相对麻烦和效率低下[16].本文采用校准点阵为校准过程提供信息点输入的工具,对系统进行校准.
这里采用上文中的多项式畸变成像模型的机器视觉系统采用校准点阵,在实验室的LabView 平台上进行程序设计和图像校准.校准程序界面如图3.
图3 图像校准程序界面
校准图和校准结果如图4.在LabView 中通常采用误差映射表(error Map)、畸变率(distortion)、平均误差(mean error)、最大误差(maximum error)以及标准差(standard deviation)等相关信息来衡量判断系统校准的质量.误差映射表表示产生畸变像素与真实位置之间的距离,其值越小,说明计算得到的真实世界的坐标越精确;畸变率主要用来说明采集的图像相对于正常图像的变形情况,等于像素位置误差占像素到光心位置所对应像素距离的百分比,本质上属于相对误差,在机器视觉系统中,一般要确保畸变率小于1%.
图4 图像校准前后对比以及误差参数图
由系统校准结果图4(c)可见:误差映射表(error map)为0.6530;均误差(mean error)为0.66;畸变率(distortion)为0.19%,达到较好的校准结果.
经过系统校准后,可对采集图像进行一定的畸变的矫正,在机器视觉系统中,图像的坐标值都是整数离散的,处理后的图像坐标信息往往与原图像的位置坐标并不一一对应,这就会导致图像矫正完的坐标对应原图有可能出现不是整数点,因此,就需要用到图像插值算法[17],进一步提高图像的清晰度.
图像矫正的方法目前主要有:0 阶插值算法、双线性插值算法、三次卷积插值算法[18].0 阶插值算法是根据就近原则,利用距离目标点最近的像素点来代替目标点,该算法计算便捷快速,但会产生较为严重的失真,无法满足清晰度要求较高的图像处理;双线性插值算法通过在水平和垂直两个方向均进行线性插值来确定新图像中像素值,处理后图像缩放质量较高;三次卷积插值算法将插值点附近的16 个参考点的灰度值变化考虑在内,利用三次分段函数多项式进行计算,精度高但计算量较大,且对硬件处理要求较高[19].
对比分析3 种插值算法,双线性插值法改善了灰度值离散的问题,且兼顾满足插值精度和算法简洁性的要求.因此,本文的图像矫正算法采用双线性插值法.
在实验室电路板检测平台上进行了搭建和对采集图像的畸变矫正,图像矫正可以采用适应原图比例(scale to fit)和保持原图比例(scale to preserve)两种方式.在校准程序中添加矫正模块的程序代码,图像矫正程序界面如图5黑框内容所示.
图5 图像矫正程序界面
图像矫正的结果如图6(b)、图6(c)所示.图像矫正的误差参数如图7所示.
图6 PCB 电路板图像不同方式下矫正前后对比图
图7 校准并矫正后的误差参数图
由此得出:(1)使用不同缩放模式对图像进行矫正,生成的矫正图像尺寸不同;(2)在Scale to Preserve 方式下生成的矫正图像要略大于源图像;(3)矫正方式的不同只对矫正后生成图像的尺寸大小有影响,与矫正精度无关;(4)采用线性插值算法进行矫正后的图像畸变率为0.10%要小于校准后的畸变率0.19%.
本文对结论在实验室的电路板检测平台上进行验证,取一块PCB 电路板采集15 幅图像,按照设计的矫正方案,分别采用多项式畸变模型和Heikkila 模型进行畸变矫正实验,矫正后各项误差参数见表2、表3.
得到表2、表3中15 幅图像矫正后的误差映射平均值分别为0.4393、0.6487,均畸变率为分别0.152701%和0.436 4306%,从误差参数的平均值来看,采用多项式畸变模型矫正误差明显较小效果更好,满足图像矫正的处理要求;图像矫正后像素精度达到0.01,畸变率最小可达到0.087727%,实现了满意的矫正效果.
本文通过分析摄像头的成像原理和图像畸变的原因,基于LabView 平台在多项式畸变模型的背景,使用校准点阵对机器视觉系统进行校准,用本文设计的矫正方式对图像进行矫正.通过实验测试,得到图像矫正后像素误差可精确至0.01,畸变率最小可至0.087727%,且在LabView 平台中程序编写相对简单,开发周期较短.证明此方法较好地实现了对图像畸变的矫正,有效消除畸变影响,是实现精密检测中的必要手段和有效的方法.
表2 多项式畸变模型的PCB 图像矫正后误差参数表
表3 Heikkila 模型的PCB 图像矫正后误差参数表