机器视觉图像处理——基于LabVIEW系统校准与图像校正
机器视觉系统需要的信息包含在采集到的数字图像中,以像素的形式存在。要实现准确测量和控制,需要使用真实世界的坐标系和测量单位,即要得到像素与真实世界坐标系的映射关系,才能进行后续处理。
· 透视畸变(perspective distortion):相机未能垂直于被测目标安装
· 径向畸变(radial lens distortion):相机所使用的镜头特性并不都与其光心处的特征一致
· 切向畸变(tangential distortion):图像传感器未能与镜头光面平行安装
· 非线性畸变(nonlinear distortion):检测目标表面位非线性平面,存在起伏
· 渐晕(vignetting):光源不能提供均匀光照
· 采集图像灰度分布不均:传感器有杂质或者目标表面非均匀
机器视觉系统的校准多基于对各种畸变或相机进行建模完成,不同校准方法效果因使用场合而异。可以使用误差映射表和误差统计对选用的校准方法进行定量评价。
畸变模型
通过综合上述多种畸变方式,可获得图像处理前后的坐标关系。
畸变径向分量:
畸变切向分量:
在上述公式中:
包含了5个畸变参数:k1、k2、k3、p1、p2
对于一个给定的镜头成像系统,这5个畸变参数怎么获得?这就涉及到“相机标定”,即需要根据一系列已知的若干对原成像点与畸变成像点的坐标值,带入以上公式来解出。
图像校准
机器视觉系统的校准是为了找出图像中像素点与真实世界坐标系映射关系的过程,这一过程通常在空间域进行。
简易系统校准法(simple calibration):也称点-距校准法(point-distance calibration)。直接根据小孔成像模型计算出图像像素大小或像素间距在工作面上对应的实际距离,这是一种不考虑任何畸变近乎理想的方法,适用于畸变较小的场合。使用IMAQ Set Simple Calibration2来快速建立点距校准的映射关系。
透视校准(perspective calibration):也称点-坐标校准法(point-coordination calibration)。通过一系列已知真实世界坐标和尺寸信息的点确定三维世界坐标系中目标点到图像像素的数学映射关系,已知点不能少出四个,已知点数越多关系越准确,适用于存在透视畸变的系统。使用IMAQ Learn Perspective Calibration来校准透视畸变。
以上两种方法都是通过手工输入已知信息点实现系统校准的方法。
校准点阵(calibration grid):校准点阵是一副纵向和横向相邻点中心间距相等的点阵图像,默认情况下会使用阵中左上角的中心作为原来建立图像坐标系,把横纵方向相邻点距离作为输入,即可得到所有点在世界坐标的位置。(用最小二乘法确定畸变模型最佳参数)适用于径向或者切向畸变,尽可能使点阵覆盖整个机器视觉系统所检测的工作区域。
NI Vision校准函数分类:
1.简易校准:相机垂直于观测目标且镜头畸变可忽略不计
IMAQ Set Simple Calibration2:使用横纵坐标上的像素比率设置简单的校准。
2.透视畸变:相机未垂直于观测目标安装
IMAQ Learn Perspective Calibration:学习透视校准信息,以纠正相机引入的不垂直于被检查对象平面的透视失真
3.镜头畸变:确定镜头畸变模型参数(分割畸变模型;多项式畸变模型)
IMAQ Learn Distortion Model:学习相机和镜头设置的变形模型。如果相机不垂直于被检查的对象,可以将失真建模与透视校准结合起来。
(需要对镜头畸变进行校准的常见场合:a.检测目标具有较大平坦表面但检测特征区域相对较小 b.要求通过建立多项式畸变模型来提高检测结果的精确度 c.相机垂直固定于检测目标上方并可移动以检测各个区域 d.可观测的视场有限)
4.相机模型建立:在三维坐标系中建立相机模型
IMAQ Learn Camera Model: 学习详细的相机特性,包括焦距、光学中心和失真模型。因为摄影机模型包含一个失真模型,所以不需要计算单独的失真模型。
(基于多幅校准点阵图像(一般多于5幅),相机,检测目标之间的关系来建立相机模型)
IMAQ Get Camera Model:返回已学习摄影机模型的内部和外部参数。
5.工作面非线性:校准工作平面位非线性曲面的系统
IMAQ Learn Micro Plane:学习用于校正非平面工作平面中图像的微平面校准信息
(与IMAQ Learn Distortion Model,IMAQ Learn Camera Model实现的校准方法又统称为点阵校准法(Grid based calibration),均可用IMAQ Calibration Target to Points-Circular Dots 2自动生成的reference points 簇作为输入来确定模型参数)
6.输入辅助:检测所采集校准点阵图像中的各点,并返回各点中心在图像中的像素坐标以及他们在校准点中的世界坐标。
IMAQ Calibration Target to Points-Circular Dots 2:检测二值图像中的圆点,并返回用于校准的像素点和真实世界点,使用提供的灰度图像细化圆点的位置。(可以自动的从整幅校准点阵图或其中的某个ROI中检测各个点中心的像素坐标,并能根据输入的点阵信息(点间距和度量点位)计算世界坐标,工作时需要包含二值图(提取校准点)和灰度图(优化调整像素坐标))
7.坐标校准及转换:
IMAQ Set Calibration Axis Info:将坐标系信息指定给校准模板图像。用于设定校准信息的世界坐标系
IMAQ Convert Pixel to Real World:将图像中的像素坐标转换为世界坐标
IMAQ Convert Real World to Pixel:将世界坐标转换为图像中的像素坐标
8.校准信息处置:
IMAQ Set Calibration Info2:将校准模板图像中的校准信息关联到另一幅图像中
IMAQ Get Calibration Info:读取与图像关联的图像校准信息
IMAQ Get Calibration Thumbnail Image:获取系统校准过程中所保存的缩略图
IMAQ Compact Calibration Info:删除系统校准过程中所使用的相关信息及缩略图,以压缩包含系统校准信息的文件尺寸
IMAQ Read Image And Vision Info:从PNG格式的文件中读取图像和机器视觉信息
IMAQ Write Image And Vision Info File2:将图像和机器视觉信息写入PNG格式的文件
9.图像矫正
IMAQ Correction Learn Setup:配置图像矫正过程要用到的参数;
IMAQ Correct Calibration Image:对包含校准信息的图像进行矫正;
透视畸变的校准一般作用于整幅图像,而镜头畸变,相机模型以及非线性工作面的准则既能作用于整幅图像也能作用于指定ROI。
生成系统校准信息
若系统中存在镜头畸变,透视畸变且工作面为起伏的非平面,那么可以先使用IMAQ Learn Distortion Model,再用IMAQ Learn Perspective Calibration,最后用IMAQ Learn Micro Plane对系统进行校准。
图像明暗场矫正函数:
1.IMAQ Flat Field Correct:使用平场和暗场图像校正图像强度并返回校正后的图像。
2.IMAQ Estimate Flat Field Model:通过在提供的图像上拟合数学模型来返回平面场图像。根据从原图像中选取的点阵,拟合一个代表图像灰度分布的多项式模型,并基于该模型估算明场图像用于明场矫正。
3.IMAQ Compute Average Image:计算所提供图像的平均图像。
4.IMAQ Compute Media Image:计算所提供图像的中值
坐标校准
平面坐标系可以使用坐标原点,横轴的角度以及纵轴的方向来表示。
NI Vision的系统校准VI按照以下原则定义:
1.坐标原点:若为手工输入点,去两个方向上坐标值均为最小的点中心;若使用校准矩阵,则去左上角点中心。
2.横轴的角度为0:即横轴由点阵首行各点确定的矢量决定。
3.纵轴的方向:间接方向(indirect)与笛卡尔坐标系的纵轴方向(direct)相反。
即当使用NI Vision提供的VI建立的坐标系进行校准后,得到的像素坐标和世界坐标之间的映射关系是建立在默认校准坐标系基础上的。而在实际中,不能保证产品每次在固定位置检测,所以需要搜索固定目标特征来进行建系,实现自动检测。
IMAQ Set Calibration Axis Info2:为图像重新设置坐标系
方法一:角度法(坐标原点,旋转角,纵轴方向)
适合没有畸变且新坐标原点位于图像中的机器视觉系统,可将坐标原点设置为边缘线的交叉点或固定特征中心处,纵轴方向根据需求指定为间接或直接方向。
夹角正负与纵轴方向有关,若新坐标系与参考坐标系纵轴方向相同,则旋转角度为正,相反则旋转角度为负。大小为新坐标系相对于参考坐标系横轴沿逆时针方向旋转的度数。
方法二:双点法(坐标原点,位于横轴正方向的点,坐标系类型)
适合有畸变且可以直接从图像中确定新坐标原点位置的机器视觉系统,坐标原点与横坐标上的点所构成的直线与图像水平方向的夹角指明了新坐标系的旋转角。
方法三:三点法
适合不仅有畸变,被测目标还会在图像中平移,旋转。
先使用A,B两点确定一条坐标轴和方向,用C点与A,B所成直线的垂直交点来确定坐标原点。再基于坐标系类型,确定另一个坐标轴。
IMAQ Build CoordSys(Points)封装了双点法和三点法,开发时直接根据目标上的特征点,调用该VI来确定参考或测量坐标系。
一旦重新设立了校准坐标系,所有校准信息都将基于新定义的坐标系。
校准坐标使用
误差与校准质量
测量结果质量可根据准确度(accuracy)测量值与真值的接近程度和精密度(precision)相同类似测量环境下多次测量值之间的相互接近的程度等指标来衡量。
误差:用于定量表示测量的准确度。
·从表示方法来看
1.绝对误差(absolute error):测量值与真值之间的差表示为
,x为测量值,u为真值。
2.相对误差(relative error):绝对误差与真值的比值表示为
,反映了测量误差在真实值中所占的比例。
·从成因来看
1.系统误差(systematic error):由测量方法,仪器,操作等引起,有固定的方向,可重复出现,可对系统校准来消除。
2.偶然误差(accidental error):也称随机误(random error):偶然的不可避免的原因造成,大小和方向都不固定,不可通过系统校准消除。
精密度:相同或类似测量环境下多次测量值之间的分散程度,精密度是保证准确度的先决条件,只有消除了系统误差的前提下,精密度越高,准确度才会越高。
·平均偏差(average deviation) 与平均值差值的平均值
某次测量值与平均值之间的差称为偏差表示为
其中xn表示N次测量结果的平均值。在N次测量中,偏差绝对值最大的测量值可能与真值差距最大。可以使用测量值偏差绝对值的平均值(平均偏差)来表示一组测量值的精密度
。
·标准偏差(standard deviation)
实际工作中多用标准偏差表示数据精密度,他的数值大小只说明在一定的条件下进行多次测量时随机误差出现的概率密度分布情况。
其中u表示真值
IMAQ Get Calibration Info3:返回用来衡量系统校准质量的相关信息,包括误差映射表(error map),畸变率(%distortion),平均误差(mean error),最大误差(maximum error)以及标准差等。
误差映射:由一个和图像大小相同的二维数组组成,数组中每个元素对应各个像素的坐标转换为世界坐标时产生的位置误差 ,表中的值本质可认为是绝对误差。
其中
代表计算得到的世界坐标,(x,y) 表示图像中坐标为 (i,j) 的像素在世界坐标系中点真实坐标,eij为位置误差,其值越小,坐标越精确。
畸变率:可用来说明采集图像相对于正常图像的变形情况,等于像素位置误差占像素到光心对应像素距离的百分比,本质属于相对误差。当像素畸变率为正时,成像画面呈桶形向外膨胀;当畸变率为负时,成像画面将向中间收缩;畸变率越大,图像畸变越严重。一般需确保畸变小于1%。
图像几何校正
若已知机器视觉系统的畸变特性并得到了畸变的数学模型,便可以纠正所采集图像中的透视畸变和镜头畸变,将采集的图像转换为矫正图像。
IMAQ Correction Learn Setup:用于配置图像矫正时要用到的ROI,如何使用这些ROI以及图像的缩放方式。
IMAQ Correct Calibrated Image:可通过平移,放大,插值等方法对整个输入图像进行矫正,并生成新的矫正图像。
图像矫正
为了帮助更多学员加入机器视觉学习行列,编者准备了一份LabVIEW机器视觉入门与编程基础视频教程,让大家能够快速、高效地上手视觉系统搭建、实战项目。
7天入门LabVIEW机器视觉视频教程,资料截图如下:
助教老师小优