1、图像畸变
1.1、图像畸变的原因
1.2、图像畸变类型
1.2.1、透视畸变
1.2.2、径向畸变
1.2.3、切向畸变
1.2.4、灰度不均
2、图像校准
2.1、简易系统校准法和透视校准法
2.2、校准点阵
2.3、NI Vision校准方法
3、图像矫正
搭建机器视觉系统应尽可能确保生成的图像足以使算法快速准确地从中提取所需信息。为了实现这一目标,常需要在设备选型和系统搭建过程中考虑设备的技术指标、被测目标的尺寸、设备安装的空间限制、相机安装方式、图像采集设备的性能以及图像采集软件等关键问题。
构建机器视觉系统采集到的图像质量应确保机器视觉算法快速、准确地提取所需要的信息,以便作出相关决定。然而要实现准确测量和控制,机器视觉系统必须使用真实世界的坐标系和测量单位。这意味着,要事先得到像素与真实世界坐标系的映射关系,才能在后续过程中使用其进行计算。
例如,在某个测量两点之间距离的机器视觉系统中,已知图像中每个像素代表真实世界坐标系中的2cm,那么若图像中两个点之间有10个像素,则理想情况下可得知两点之间的距离为20cm。
然而真实世界总没有想象中那样理想,设备的局限性和系统连接过程中的各种问题会使机器视觉系统采集到的图像产生各种畸变(distortion),常见的几种情况如下:
机器视觉系统的准确性受到以上问题的极大影响,因此,不仅在计算像素到真实世界坐标系的转换关系时要重点考虑准确性的问题,还要考虑如何对图像进行矫正。
搭建机器视觉系统理想情况下可以被抽象为小孔成像模型。然而现实世界并不总是很理想。
首先,受各种安装条件的限制,相机可能无法垂直于被测目标安装,这就会导致系统生成的图像发生透视畸变,如下图所示:
透视畸变在相机未能垂直监测目标时发生,在这种情况下,所成图像遵循透视规律,离镜头越近的部分所成图像越大,反之越小。
透视畸变是由镜头的安装方式等外部因素引起的,镜头畸变则是由其自身光学特性的不完美造成的,如下图所示:
理想情况下图中物面上的点P1和P2在像面上的成像遵循小孔成像原则,然而由于现实中镜头所用凸透镜或凹凸透镜组合固有的光学特性,会导致这些点沿着像面的径向产生偏移,从而产生镜头的径向畸变。
镜头畸变常用成像画面柜对于正常图像的畸变率(%Distortion)表示。
通常在为机器视觉系统选择镜头时,需要确保镜头的最大畸变小于1%。
切向畸变是由于相机在生产制造过程中未能使其图像传感器与光轴垂直安装而造成的。在这种情况下相机图像传感器与镜头之间并未平行安装,而是存在一定的角度,如下图所示:
与径向畸变的影响不同,切向畸变会使图像像素沿切线方向变形,如将矩形变为梯形图像。
灰度分布不均是指在光源不能提供均匀的光照、相机镜头存在渐晕、相机传感器有杂质或被测目标表面非线性时导致图像中灰度不能均匀分布的情况,如下图所示:
对于此类畸变,通常需要通过明场校正(bright field correction)来处理。明场校正又称为平场校正(flat field correction),是指基于机器视觉系统采集或由数学模型估算的明亮背景图像(明场)对灰度分布不均匀的图像进行矫正的过程。经过明场矫正后,图像中的灰度分布会更接近真实情况,且相机传感器杂质对图像的影响也会被消除。
明场校正过程基于下面的公式进行计算:
机器视觉系统的校准是综合考虑机器视觉成像系统的多种畸变因素,找出图像中像素点与真实世界坐标系映射关系的过程,这一过程通常在空间域进行。
对于机器视觉系统来说,为了实现与真实世界坐标相关的测量和控制,通常会利用手工输入的方法或包含多个点的标准模板,为系统提供真实世界坐标系中多个点的已知信息。这些信息包括点在真实世界坐标系中的位置信息、点与点之间的距离等。一旦有了这些已知信息,就可以结合成像系统模型,获得图像中各像素点与真实世界之间线性或非线性的映射关系。如果将这些计算得来的关系应用到后续采集的图像中,就可以降低各种畸变对视觉系统检测结果的影响,甚至可以对畸变图像进行矫正。
简易系统校准法和透视校准法是两种通过手工输入已知信息点就可实现系统校准的方法。
在实际工作中,若镜头存在径向或切向畸变,手工输入已知信息点的校准方法就显得麻烦且效率低下,此时可以使用校准点阵(calibration grid)为校准过程提供输入。
校准点阵是一幅纵向和横向相邻点中心间距相等的点阵图像。默认情况下,校准过程会使用点阵中左上角点的中心作为原点来建立图像坐标系。因此,若将纵横两个方向上相邻点间的距离dx和dy作为输入,校准过程就可得知点阵中所有点在世界坐标系中的位置,如下图所示:
当要对搭建好的机器视觉系统进行校准时,可以采集校准点阵的图像,并根据最小二乘法确定出畸变模型参数来完成校准过程。
在实际工作中,镜头或机器视觉系统供应商一般都会提供校准点阵。NI Vision的随机文档中也附有校准点阵的样本图像,通常位于安装NI Vision的文档安装目录中,例如我的安装路径下:
C:\Users\Public\Documents\National Instruments\Vision\Documentation\CalibrationGrid.pdf
校准点阵的选择或制作一般都遵循以下规则:
Nl Vision提供了多种计算机视觉系统校准方法的VI,它们位于LabVIEW的视觉与运动→Vision Utilities→Calibration函数选板中,如下图所示:
函数说明及使用可参见帮助手册:
接下来讲解一个生成系统校准信息的案例,思路如下所示:
程序实现如下所示:
程序中Reference Points簇中的数据将作为IMAQ Learn Distortion Model和IMAQ LearnPerspective Calibration的关键输入,以便于它们计算多项式镜头畸变模型的K1、K2、K3参数和透视畸变模型参数。经这两个VI计算后,得到的系统校准信息将与IMAQ Local Threshold生成的二值图像关联,作为校准模板图像输出。使用IMAQ Get Calibration Info返回校准过程的配置信息以及校准的坐标原点。此外,程序还暗示了在系统校准过程中可以连续使用消除不同类型畸变的系统校准VI。例如,若系统中既含有镜头畸变和透视畸变,且工作面又为非线性工作面(工作面为起伏的非平面),则可以先使用IMAQ Learn Distortion Model和IMAQ Learn Perspective Calibration,再使用IMAQ LearnMicro Plane对系统进行校准,最终生成的校准模板图像将包含综合的系统校准信息。
效果如下所示:
程序下载请参见:https://download.csdn.net/download/m0_38106923/18350630
NI Vision使用IMAQ CorrectionLearn Setup和IMAQ Correct Calibrated lmage对图像进行矫正,矫正函数也位于:LabVIEW的视觉与运动→Vision Utilities→Calibration函数选板中,也可参见帮助文档进行理解。
由于计算量特别大,图像矫正过程一般都极为耗时,因此若非必要,应尽可能避免矫正整个图像,而只需矫正图像中感兴趣的区域。图像矫正过程中的矫正区域由系统校准过程定义的系统校准ROI (Calibration ROI)和用户为图像矫正过程定义的图像矫正ROI(Correction ROI)共同决定。下表列出了几种确定图像矫正区域的ROI组合:
拓展学习:LabVIEW感兴趣区域分析(实战篇—1)
下图进一步对可供选择的几种ROl组合情况进行了说明:
对2.3、NI Vision校准方法中代码添加图像矫正功能,程序如下所示:
程序中矩形方框之前的代码会将源灰度图像转换为二值图像,并生成图像校准信息。方框内新增的代码中,IMAQ Correction Learn Setup用于配置图像矫正过程对整个图像有效,而且要求矫正图像保留源图像中特征区域的大小,矫正过程中无须生成矫正表。新增的IMAQ orrect Calibrated lmage会使用双线性插值算法进行图像矫正计算,生成新的矫正图像,效果如下所示:
对比2.3、NI Vision校准方法中示例效果,可见新图像矫正效果理想。
程序下载请参见:https://download.csdn.net/download/m0_38106923/18351386
机器视觉系统校准过程的质量可从准确度和精密度两个角度去衡量,包括误差映射表、畸变率、平均误差、最大误差以及标准差等指标,由这些指标可以计算测量结果的可信程度。如果需要对采集到的畸变图像或其中部分感兴趣的区域进行矫正,则可以根据畸变模型和系统校准信息,通过平移、放大、插值等方法生成消除透视畸变和镜头畸变的矫正图像。图像矫正过程极为耗时,在机器视觉系统开发过程中,若非必要,应尽可能避免。