机器视觉是什么?
机器视觉的组成可分为硬件和软件两部分。
硬件负责成像,相当于人的“眼睛”,包括光源及光源控制器、镜头和工业相机;软件负责图像处理分析,相当于人的“视觉皮层”。具体而言,典型的机器视觉成套系统包括:
光源及光源控制器:共同为机器提供“看”的环境。合适的光源可突出目标特征,隐去无关的背景信息,进而大幅降低算法难度。
镜头:被摄物体信息采集和传递过程的起点,相当于“晶状体”。
工业相机:机器视觉中的图像采集单元,本质为将光信号转变为有序的电信号,相当于“视网膜”。工业相机对拍摄速度、图像稳定性、传输能力和抗干扰能力有较高要求。
视觉处理分析软件:通过编写合适的算法,进行图像的处理和分析,最终实现机器视觉功能目标,相当于“视觉皮层”。视觉处理分析软件通常基于PC使用,也可嵌入工业相机中,使其成为兼具图像采集、处理、通信功能的智能相机。
机器视觉软件能够做什么
具体而言,机器视觉具有识别(Identify)、测量(Gauge)、定位(Guide)、检测(Inspect)四大功能,各项功能的应用场景和实现关键在于:
识别(Identify):基于目标物的特征进行甄别,例如外形、颜色、字符、条码等,其中OCR/OCV(光学字符识别/光学字符验证)、条码识别重要的应用场景,在追踪管理和质量回溯环节可发挥重要作用。识别的关键在于高准确度和快速识别。
测量(Gauge):把获取的图像像素信息标定成常用的度量衡单位,然后在图像中精确地计算出目标物的几何尺寸,应用场景包括尺寸标注和误差测量等。机器视觉尤其擅长小尺寸、高精度以及复杂形态的测量。
定位(Guide):获得目标物体二维或三维的位置信息,进而引导生产设备(机器手、机床等)或检测设备进行精确定位或移动。定位功能的关键在于高精度和快速定位。
检测(Inspect):一般是指外观检测。检测的应用场景很多,如装配后的完整性检测(是否正确完成装配)、外观缺陷检测(是否有划痕、凹凸不平等)等。
主要功能及应用
机器视觉相比人眼视觉,具有图像采集和分析速度快、观测精度高、环境适应性强、客观性高、持续工作稳定性高等优势,因而可帮助终端使用者进行产品增质、成本降低以及生产数字化:
产品增质:
1)机器视觉可显著降低检测的漏检率和过杀率,提高生产的精度和良品率;
2)提高产品一致性;
3)在不规则、小尺寸、精细化部件的加工和检测,以及危险环境下具有更加明显的优势。
成本降低:
1)机器视觉采集和处理图像的时间在微秒级别,可显著提升效率;
2)单台系统可代替多人工作,并可7×24小时不间断工作;
3)柔性化程度高,若生产过程改变,仅需调整算法或增加部分硬件即可实现。
主流机器视觉软件介绍
主流的机器视觉软件有:侧重图像处理的图像软件包Opencv,Halcon、美国康耐视(Cogrex )的 visionpro;侧重算法的matlab,labview;侧重相机SDK开发的eVision等
visionpro
—-工业化、封装、人性化、评估的便捷性、开发的快速性。
—-取消了软件授权的形式,硬件授权价格在1.5万-3万不等。
—-性能上某些方面不如halcon,但是开发上手比halcon容易。
Halcon
—-功能最强大最牛,开放性强、有试用的 license、提供超过 1000 个算子 。
—-Halcon是一套标准的机器视觉算法包,架构最灵活,具有自己独特底层的数据管理。
—-使用 halcon 开发软件,节约产品成 本,缩短开发周期,应用范围广,用到图像处理的地方,都可以使用 halcon;
—-包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能。
1、Opencv
—-Opencv-好处是开源免费图像处理库。缺点是没人长期维护,可靠性,效率,效果和性能不如商业化软件,而且没有技术支持,开发慢,需要自己从头开始摸索。
—-Opencv定位模板做的不好,简单的应用用用就行了。
—-主要应用于计算机视觉领域,在机器视觉领域其实不算太多,主要还是定位、测量、外观、OCR/OCV,但感觉这几项都不是opencv的专长。
—-由于是开源软件,因此其版本繁多,函数库复杂,执行效率受到应用限制,比较适用于科研和学习,不适合工业应用。
国产机器视觉软件
1.SciSmart 智能视觉软件 SciVision 视觉开发包———深圳奥普特(OPT)
优点:做苹果手机项目(富士康),拥有数十人的软件开发及定制化应用团队,定制化开发应用能力比较强,在手机、电子等行业优势较大。
2.VisionAssembly的视觉集成包———————————-北京凌云光
优点:基于VisionAssembly的视觉集成包,包含对位、通讯、标定、结果计算等。低代码开发,中文界面。
其他视觉软件参考:
VisonPro 软件安装
1.关闭防火墙、杀毒软件,解压软件安装包,找到安装文件,双击运行,按照安装提示“下一步”安装即可,整个过程除了依据个人需要修改安装位置外,其他不作更改。
1.打开破解工具 注意关闭vp软件后使用
开始使用QuickBuild
双击图标即可启动QuickBuild.
QuickBuild应用程序是VisionPro软件包的一部分,提供了一个交互式环境,可以快速创建一个视觉应用程序
QuickBuild和CogJob 关系
可以包含多个cogjob
cogjob 主要用来设置像源Image Source 然后再job中添加不同视觉工具
多个CogJob 平行执行
建立图像源Image Source
开发视觉应用程序的第一步通常都是建立一个图像源,它可以是连接到相机,可以从图像数据库开始(数据库中包含在生产环境中采集到的图像),然后修改应用程序以适应来自连接相机的图像,这非常方便。
前期不必直接连摄像机,可以从一些预
先准备好的的图片开始,测试视觉程序。熟悉之后,可以把图片源改为相机。
打开图像数据库
- 双击QuickBuild窗口中的 Image Source(图像源) 节点。
- 默认情况下,Image Source被配置为从图像数据库获取图像。
- 点击选择文件来选择一个图像数据库文件。
本例中,选中 \Program Files\Cognex\VisionPro\Images目录下的 coins.idb。 - 点击对话框左上角的实时显示按钮:
确认后会打开实时显示窗口,以循环浏览图像数据库文件中所有的图像。
运行作业
此时,作业仅包含配置图像源,但你可以运行作业以查看图像在QuickBuild作业编辑器中的显示方式 目的 :切换图片 且运行检测结果
点击工具栏中的运行按钮。
-
-
1.图像数据库文件中获取的图像会显示在显示区中。
-
2.当运行工具时,工具旁边的小绿点表示它成功运行。
-
3.当所有工具都成功运行时,作业编辑器左下角会出现一个绿点。
-
4. 一直单击运行按钮,在待检测图片之间进行跳转
VP中的工具
1.打开vp工具
2.vp工具的列表
3.工具作用:用于实现视觉图像 各种功能的使用
4.工具是学习vp的重要内容
工具使用
PMAlignTool (模板匹配)
含义:CogPMAlign(Cognex Pattern(图案) Match(匹配) Align(排列)的缩写)
Pattern Match,[计]模式匹配。
当然Pattern也有图案的意思,理解成图像匹配,即在模板图像中寻找匹配的目标物体的特征。
模板匹配流程:
添加PMAlignTool工具到作业
1.单击工具箱按钮。
添加 CogPMAlignTool
一个新的CogPMAlign工具就出现在了图像源的下方。
添加像源
在 图像源 的 OutputImage(输出图像) 上单击,并将其拖入 CogPMAlign 工具的 (InputImage)输入图像,以链接由图像源生成的图像至需要 CogPMAlign 工具分析的输入图像上
获取训练图像
-
单击 抓取训练图像 ,使得工具以当前输入图像作为训练图像
-
从显示菜单中选中 Current.TrainImage(当前训练图像) 以显示抓取的训练图像 PMAlign工具会在其要分析的每个图像中搜索/寻找经过训练的模式(trained pattern,即目标图案)
-
单击 训练区域&原点 选项卡来配置训练参数。
-
5.从 区域形状 下拉菜单中选择 CogRectangle 。这会告诉工具,你将选择一个简单的矩形区域进行训练。 原点 和中心 分别表示以区域坐上点和中心点的位置 调整
6.点击并拖动小的训练区域矩形以包围大的圆点,告诉工具使用图像的哪一部分作为模式
7.点击中心原点按钮,将原点图标移动到矩形的中心。当工具在图像中找到特征时,它使用原点图标的相对位置来报告其位置。大多数情况下,寻找物体的中心就是你想要报道的位置。
8.点击训练参数选项卡以完成对模式的训练。
9.点击 训练 按钮。 经过训练的模式(图案)会出现在模式面板中, “已训练” 一词会显示在工具底部。
显示训练后图像
1.在图像下拉列表中选择 LastRun.InputImage 。最近一次运行图像的结果会在图像框中显示。
2.点击 运行 按钮。
4.点击 结果 选项卡查看工具生成的结果。
5.结果窗格列出在图像中找到的所有特征。你可以检测每个特征的分数、位置和其他结果。
当你选中结果窗格里的一行,相应形状在显示窗格中以蓝色突出显示
工具选项卡:
训练参数
算法:
PatQuick 特点:速度最快,对于三维或者低质量原件最佳,承受更多图像差异;
PatMax 特点:精确度最高,在二维元件上表现佳,最适合于细微细节;
PatFlex 特点:为高度灵活的图案设计,在弯曲不平的表面表现较佳,及其灵活
但不够精确;
训练模式
• 图像 对图像直接进行训练
• 带图像的形状模型 适用于建模器手动建模训练 包含模型和图像
• 带转换的形状模型 适用于建模器手动建模训练 只包含模型,一般为加载模型 不常用该模式
忽略极性:
从暗到亮 是正极性 从亮到暗是 负极性
进行全局极性的忽略(不考虑明暗关系) 一般用于物体光线不稳定时
训练:
对抓取的训练图像使用算法包 进行特征匹配
抓取训练图像
选取进行特征匹配的图像
加载模式
加载原有的vpp文件
保存模式
保存现有的vpp文件
信息
图像训练状态信息
训练区域与原点:
区域形状
模板匹配图像的区域形状
所选空间名称:
使用输入图像空间,即当前输入图像的图像空间 一般基于标定的方式(工具定位,标定工具与棋盘格校准工具),建立的空间描述关系。
像素空间:像素空间与根空间相似:其原点始终在左上角;其空间与图像像素相对应;但是,像素空间并不会图像处理的效果而进行调整;很少在应用中使用
根空间:默认从左上角开始的像素空间坐标。但是如果图像处理或者再次取样了,会自动重新调整
适应图像
自适应模板匹配图形大小
中心原点
获取模板匹配图形中心位置
Tune
用于复合图像训练
运行参数
查找概数
查找的结果的个数。
比如当前图像有四个待查找的图例。
Case1:设置查找数量为1个。如果四个结果的分数都相等,那么会显示4个结果
Case2:设置查找数量为3个。那么会按照查找分数的从大到小,显示排列前3个的结果
接受阈值
结果选项中 分数 低于阈值的不显示结果
超时
图像匹配时间超过 指定时间 终止匹配
计分时考虑杂斑
勾选后,匹配特征时计算考虑杂斑因素,将会导致结果选项中 分数变低
角度
匹配特征时 角度范围
缩放
匹配特征时 缩放范围
xy重叠
如果匹配物体有重合部分 取值范围0-1 数值越大 越能匹配重合部分
对比度阈值
对比度阈值越低,对比敏感度越高,视觉灵敏度越高。
搜索区域
区域形状
特征阈值
图形选项卡:
主要作用体现PMAlign工具 按照边缘(图像上不同像素的区域轮廓性 具有大小和方向的矢量)特征 进行匹配计算
1.显示粗糙
2.显示精细
调运行参数
创建和训练模式是告诉PMAlign工具要寻找什么东西。而运行参数是告诉工具如何去发现它。
-
点击允许参数
-
点击角度 箭头,将下限设为-45,上限设为45。
该设置允许你选择要查找的目标的相对角度
运行整个作业
现在可以运行整个作业了。关闭 CogPMAlign 工具窗口,或者把它拖到一边,这样就可以看到 QuickBuild作业编辑器了。
- 点击 Run Job Once(单次运行作业) 按钮。
- 可以点击 连续运行作业 ,使得QuickBuild获取图像并运行该工具,直到再次点击按钮。
- QuickBuild会运行整个作业:
- 从图像数据库或相机中获取下一个图像。
- 运行 CogPMAlignTool 发现图像中的下一个目标项。
- 将结果显示在显示窗格中。
图像显示模式
图像显示模式
1. 输入图像显示
2.输入图像训练显示
3.多图输入图像训练显示 在tune选项中复合图像使用
4.训练图像运行后图像的结果
1、像素
像素可以看做是图像中的小方格,图像是由很多的小方格组成,这些小方格都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。
可以将像素视为整个图像中不可分割的单位或者是元素。不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在。
像素是表示的图像的最小单位
2.灰度值
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值,灰度范围为0-255
3.勾选 忽略极性 选项。极性 会告诉工具,它应该考虑或忽略图案在亮背景上是暗的还是在暗背景上是亮的。由于该图案在深色背景下是浅色的,根据光线不同,耳朵在背景下可能是深色或浅色。该情况下,忽略极性是正确的做法。
特征颗粒度限制 默认是自动选择 系统会自动设置粗糙精细比例值
上限为25.5 精细 不能大于 粗糙
原则上 数值越大匹配度越低
弹性 影响匹配精确度 类似于范围取值 例如边缘匹配精度为20 弹性设为 1 那么就允许匹配 20.1到21的浮动值
边缘阈值 灰度值之间的差值的界限 阈值越大 匹配精度越低
1.边缘阈值为10 效果
2.1.边缘阈值为80 效果
保存模式 加载模式
可以把匹配好的模板 保存为vpp本地文件 或者打开已保存的vpp本地文件
1.帮助按钮 -控制参考页
可以查看工具具体使用文档
保存打开QuickBuild和CogJob
1.查看示例作业 提供很多demo 供参考使用
总结
1.如何使用QuickBuild和CogJob
2.PMAlignTool工具操作方法
抓取图像-设置训练区域及参数-训练模板-设置允许参数-运行-参看结果
3.PMAlignTool的基本原理
图案位置搜索工具
基于边缘特征的模板而不是居于像素的模板匹配
边缘特征表示图像中不同区域间界限的轮廓线(有大小有方向)
支持图像中的特征旋转和缩放
PMAlignTool常用参数
1.算法 忽略极性 粗糙度 精细度 边缘阈值 弹性
常用参数
算法:有六种选项,分别是:PatMax,PatQuick, PatMax 与 PatQuick,
PatFlex,PatMax-高灵敏度,透视 Patmax。
PatQuick 特点:速度最快,对于三维或者低质量原件最佳,承受更多图像差异;
PatMax 特点:精确度最高,在二维元件上表现佳,最适合于细微细节;
PatFlex 特点:为高度灵活的图案设计,在弯曲不平的表面表现较佳,及其灵活
但不够精确;
PatMax-高灵敏度特点:适用于对比度很低或者视频噪音或图像变形严重的图像
透视 Patmax 特点:适用于已经透视失真的二维特征;
忽略极性 从暗到亮 是正极性 从亮到暗是 负极性
进行全局极性的忽略(不考虑明暗关系) 一般用于物体光线不稳定时
xy重叠 如果匹配物体有重合部分 取值范围0-1 数值越大 越能匹配重合部分查找概数 能匹配的物体个数上限
希望查找的结果个数。
如果当前图像有四个待查找的图例。
Case1:设置查找数量为1个。如果四个结果的分数都相等,那么会显示4个结果
Case2:设置查找数量为3个。那么会按照查找分数的从大到小,显示排列前3个的结果接受阈值 结果选项中 分数 低于阈值的不显示结果 一般建议 0.5
计分考虑杂斑
考虑的时候,将会导致结果选项中 分数变低
粗糙度接受阈值法 结果选项中 粗糙 分数 低于阈值的不显示结果弹性:当实例于匹配模板 有一定出入时 (例如匹配模板为30像素 弹性+5 可以匹配到30.1-35的实例) 类似于误差值 一般建议在6以内范围
自动边缘阈值:(可以适当滤除一定的边缘干扰)
低于边缘阈值的会当作物件的背景。大于阈值的才会视作物件的轮廓。(边缘对比度)
如果设置一个过小的阈值,那么会产生过多的干扰
设置一个过大的阈值,将会造成边缘轮廓的损失
特征颗粒限制:
模板 边缘线段的颗粒限制旋转角度和缩放比例
实例与模板之间 可 接受的最小和最大角度值
实例与模板之间 可 接受的最小和最大缩放比例超时:
强制让当前搜索的任务时间限制到这个时间之内,超过就会直接结束
对比度阈值 我们将刚好看不清物体时的对比度值,称为对比度阈值。对比度阈值的倒数就是视觉对比敏感度。对比度阈值越低,对比敏感度越高,视觉功能越好。
掩摸训练
遮住不必要的图像特征
使用流程
1.在训练模式 :图像模式
2.点击图像掩膜编辑按钮 打开界面
1.选择不同形状的工具 并且移动形状到 遮盖区域
2.点击掩膜颜色
3.点击填充当前选项
4.点击应用
1.掩盖不必要的训练特征
1.利用橡皮擦可以清除部分掩膜效果
2.通过工具 笔刷 或者其他形状
3.清除圆形轮廓 (一般用于匹配形状相同(比如硬币) 但是内部图案不一样 想要匹配成功 可以使用掩膜加清除)
建模训练
模型编辑器允许您使用图像作为向导自动提取形状或者绘制您自己的形状,一般在需要训练的模型较为复杂同时特征也比较明显的情况下使用
使用流程
1.先修改训练模式为 带图像的形状模型
2:进入建模器
3:自定义轮廓特征
推荐直接提取形状,然后自动生成轮廓,然后删除嘈杂轮廓。
4:修改参数
- 修改区域模式为像素配对限定框
2勾选忽略极性
1.调整好训练区域
2.点击训练
3.
修改关键特征线段的权重
如果特定线段的特征数量少,可以适当改变权重值,让当前特征的比重是其他线段的10倍
1.点击添加圆
2.添加圆形到特征处
3.双击圆形边框 弹出界面 修改 权重参数
1.点击训练
2.圆形处特征线段增多
搜索区域 --区域以外计分参数 (不常用)
1.一般默认区域为整张图像区域 修改为区域形状
2.修改搜索区域大小
1.训练区域 不在搜索区域范围中 训练看不到结果
1. 修改特征阈值 可以计算在搜索区域外检测的结果
终端设置
1.输入终端
2.输出终端 对结果数据的展示
1.添加其他输出终端 在工具上右键 选择添加终端
1.添加个数输入终端
2.添加
CogPMAlign匹配多个局部特征
抓取多个特征需要多个CogPMAlignTool 如果需要整合 可以使用CogPMAlignMultiTool工具
1.对螺丝钉进行模板匹配
CogPMAlignMultiTool工具使用
1.点击add pattern添加 图案
2.双击 进入编辑页面
3.抓取训练图像
4.调整 图像模式current.patterntrianIamge
5.训练
6.图形选项 调整 参数
7.调整 图像模式lastRun.inputImage
因为以上调整无法发现多个螺丝 需要进入 主界面调整
1.查找概述 调整5
2.旋转值调整正负180
3.回到子界面
1.双击 进入编辑页面
2.运行
3.调整 图像模式lastRun.inputImage
4.看到匹配结果
为了在集合工具中 看到匹配效果 要把已经匹配好的图片 添加到 集合队列里
1.选中添加的图案
2.点击多训练
3.点击多参数选项
1.选中要转移的图案
2.点击转移按钮
3.转移到搜索队列中
4.点击运行 在集合工具中看到 输出结果
添加多个匹配图案 执行方法同上
最后注意想多个图案同时在集合中显示结果 要运行模式 调整为 exhaustive 多个运行模式