机器视觉是什么?
机器视觉的组成可分为硬件和软件两部分。
硬件负责成像,相当于人的“眼睛”,包括光源及光源控制器、镜头和工业相机;软件负责图像处理分析,相当于人的“视觉皮层”。具体而言,典型的机器视觉成套系统包括:
光源及光源控制器:共同为机器提供“看”的环境。合适的光源可突出目标特征,隐去无关的背景信息,进而大幅降低算法难度。
镜头:被摄物体信息采集和传递过程的起点,相当于“晶状体”。
工业相机:机器视觉中的图像采集单元,本质为将光信号转变为有序的电信号,相当于“视网膜”。工业相机对拍摄速度、图像稳定性、传输能力和抗干扰能力有较高要求。
视觉处理分析软件:通过编写合适的算法,进行图像的处理和分析,最终实现机器视觉功能目标,相当于“视觉皮层”。视觉处理分析软件通常基于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
HALCON机器视觉软件_百度百科
—-功能最强大最牛,开放性强、有试用的 license、提供超过 1000 个算子 。
—-Halcon是一套标准的机器视觉算法包,架构最灵活,具有自己独特底层的数据管理。
—-使用 halcon 开发软件,节约产品成 本,缩短开发周期,应用范围广,用到图像处理的地方,都可以使用 halcon;
—-包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能。
1、Opencv
opencv_百度百科
—-Opencv-好处是开源免费图像处理库。缺点是没人长期维护,可靠性,效率,效果和性能不如商业化软件,而且没有技术支持,开发慢,需要自己从头开始摸索。
—-Opencv定位模板做的不好,简单的应用用用就行了。
—-主要应用于计算机视觉领域,在机器视觉领域其实不算太多,主要还是定位、测量、外观、OCR/OCV,但感觉这几项都不是opencv的专长。
—-由于是开源软件,因此其版本繁多,函数库复杂,执行效率受到应用限制,比较适用于科研和学习,不适合工业应用。
国产机器视觉软件
1.SciSmart 智能视觉软件 SciVision 视觉开发包———深圳奥普特(OPT)
Sina Visitor System
优点:做苹果手机项目(富士康),拥有数十人的软件开发及定制化应用团队,定制化开发应用能力比较强,在手机、电子等行业优势较大。
2.VisionAssembly的视觉集成包———————————-北京凌云光
优点:基于VisionAssembly的视觉集成包,包含对位、通讯、标定、结果计算等。低代码开发,中文界面。
其他视觉软件参考:
机器视觉软件介绍 - 知乎
VisonPro 软件安装
1.关闭防火墙、杀毒软件,解压软件安装包,找到安装文件,双击运行,按照安装提示“下一步”安装即可,整个过程除了依据个人需要修改安装位置外,其他不作更改。
1.打开破解工具 注意关闭vp软件后使用
C:\Program Files\Cognex\VisionPro\Images
开始使用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(排列)的缩写)
在模板图像中寻找匹配的目标物体的特征。
模板匹配流程:
添加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文件
信息
图像训练状态信息
训练区域与原点:
区域形状
模板匹配图像的区域形状
所选空间名称:
使用输入图像空间,即当前输入图像的图像空间 一般基于标定的方式(工具定位,标定工具与棋盘格校准工具),建立的空间描述关系。
像素空间:像素空间与根空间相似:其原点始终在左上角;其空间与图像像素相对应;但是,像素空间并不会图像处理的效果而进行调整;很少在应用中使用
根空间:默认从左上角开始的像素空间坐标。但是如果图像处理或者再次取样了,会自动重新调整
适应图像
自适应模板匹配图形大小
中心原点
获取模板匹配图形中心位置
运行参数
查找概数
查找的结果的个数。
比如当前图像有四个待查找的图例。
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.输入图像训练显示
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.在训练模式 :图像模式
2.点击图像掩膜编辑按钮 打开界面
1.选择不同形状的工具 并且移动形状到 遮盖区域
2.点击掩膜颜色
3.点击填充当前选项
4.点击应用
1.掩盖不必要的训练特征
1.或使用几何图形进行掩膜设置
点击属性设置几何图形位置与大小
点击填充当前选项进行 掩膜设置
1.利用橡皮擦可以清除部分掩膜效果
2.通过工具笔刷 或者其他形状
3.清除圆形轮廓 (一般用于匹配形状相同(比如硬币) 但是内部图案不一样 想要匹配成功 可以使用掩膜加清除)
总结
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.添加其他输出终端 在工具上右键 选择添加终端
1..添加匹配结果的个数 输出终端