机器视觉系统需要的信息包含在采集到的数字图像中,以像素的形式存在。要实现准确测量和控制,需要使用真实世界的坐标系和测量单位,即要得到像素与真实世界坐标系的映射关系,才能进行后续处理。

透视畸变(perspective distortion):相机未能垂直于被测目标安装

径向畸变(radial lens distortion):相机所使用的镜头特性并不都与其光心处的特征一致

切向畸变(tangential distortion):图像传感器未能与镜头光面平行安装

非线性畸变(nonlinear distortion):检测目标表面位非线性平面,存在起伏

渐晕(vignetting):光源不能提供均匀光照

采集图像灰度分布不均:传感器有杂质或者目标表面非均匀

机器视觉系统的校准多基于对各种畸变或相机进行建模完成,不同校准方法效果因使用场合而异。可以使用误差映射表误差统计对选用的校准方法进行定量评价

畸变模型

(。。。。。。)

图像校准

机器视觉系统的校准是为了找出图像中像素点真实世界坐标系映射关系的过程,这一过程通常在空间域进行。

简易系统校准法(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) 与平均值差值的平均值

某次测量值与平均值之间的差称为偏差 表示为 其中表示N次测量结果的平均值。在N次测量中,偏差绝对值最大的测量值可能与真值差距最大。可以使用测量值偏差绝对值的平均值(平均偏差)来表示一组测量值的精密度

  • 标准偏差(standard deviation)

实际工作中多用标准偏差表示数据精密度,他的数值大小只说明在一定的条件下进行多次测量时随机误差出现的概率密度分布情况。 其中u表示真值。

(。。。。。。)

IMAQ Get Calibration Info3:返回用来衡量系统校准质量的相关信息,包括误差映射表(error map),畸变率(%distortion),平均误差(mean error),最大误差(maximum error)以及标准差等。

误差映射:由一个和图像大小相同的二维数组组成,数组中每个元素对应各个像素的坐标转换为世界坐标时产生的位置误差 ,表中的值本质可认为是绝对误差。

其中代表计算得到的世界坐标,表示图像中坐标为的像素在世界坐标系中点真实坐标,为位置误差,其值越小,坐标越精确。

畸变率:可用来说明采集图像相对于正常图像的变形情况,等于像素位置误差占像素到光心对应像素距离的百分比,本质属于相对误差。当像素畸变率为正时,成像画面呈桶形向外膨胀;当畸变率为负时,成像画面将向中间收缩;畸变率越大,图像畸变越严重。一般需确保畸变小于1%。

误差平均值

误差标准差

平均位置误差标准差

图像几何校正

若已知机器视觉系统的畸变特性并得到了畸变的数学模型,便可以纠正所采集图像中的透视畸变和镜头畸变,将采集的图像转换为矫正图像。

IMAQ Correction Learn Setup:用于配置图像矫正时要用到的ROI,如何使用这些ROI以及图像的缩放方式

IMAQ Correct Calibrated Image:可通过平移,放大,插值等方法对整个输入图像进行矫正,并生成新的矫正图像

图像矫正

机器视觉学习笔记(五)——系统校准与图像校正(基于LabVIEW)相关推荐

  1. 【K210】K210学习笔记五——串口通信

    [K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...

  2. 机器视觉学习笔记(4)——单目摄像机标定参数说明

    机器视觉学习笔记(4)--单目摄像机标定参数说明 标签: 机器视觉 1.针孔摄像机模型 在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理.投影平面到小孔的距离为焦距f,物体到小孔的距离为Z, ...

  3. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  4. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  5. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  6. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  7. Python学习笔记五:控制语句

    Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...

  8. motan学习笔记 五 opentracing学习入门

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  9. 哈工大操作系统学习笔记五——内核级线程实现

    哈工大os学习笔记五(内核级线程实现) 文章目录 哈工大os学习笔记五(内核级线程实现) 一. 中断入口.中断出口(前后两段) 1. 从int中断进入内核(中断入口第一段) 2.中断出口(最后一段) ...

最新文章

  1. 各系统QT安装ROS后不显示src问题
  2. 程序员如何乘风破浪?从数据库历史看技术人发展 | CSDN 高校俱乐部
  3. bzoj2339[HNOI2011]卡农 dp+容斥
  4. 【Xamarin开发 Android 系列 4】 Android 基础知识
  5. 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
  6. (课程学习笔记)Python初级入门精讲
  7. python简单定义_python定义类的简单用法
  8. Spring Data JPA初使用 *****重要********
  9. 一个神奇的测试_这4个在线黑科技工具拥有神奇的魔法,值得收藏!
  10. IOS基础:ActionSheet(上拉菜单)的实现
  11. rsync 安装 配置 实例
  12. 两个摄像头自动切换画面_你知道吗?你的手机摄像头之间会打架
  13. 利用计算机对调查问卷进行,关于电脑需求调查问卷
  14. 袁亚湘院士谈如何做好研究生:如果不思考,人再聪明也无济于事
  15. 当你的MS OFFICE打不开时,安全模式也失效,来看我给你变戏法吧
  16. java对excel加密_随笔:Java 对Excel等文件进行加密、解密
  17. scp 自定义端口号
  18. HP笔记本电源灯亮不能开机 - 静电问题
  19. 努力赚钱,是为了不让自己的爱情受到别人金钱的考验
  20. python只读打开文件,python如何使用只读、不显示窗口的方式打开ppt文件

热门文章

  1. 阿里云大学考试python中级题目及解析-python高级
  2. 8、手动制作QFN10表贴封装
  3. 为什么企业要慎重选择高防服务器租用托管?
  4. 《人性》——电影简记
  5. 验证为制药无菌生产提供保障
  6. oracle 数据备份 命令,Oracle备份常用命令
  7. android中如何显示图片的一部分
  8. 从YouTube删除不合适的评论
  9. 衣柜有味道就有甲醛吗
  10. python 全栈开发,Day57(响应式页面-@media介绍,jQuery补充,移动端单位介绍,Bootstrap学习)...