PMAlign模板匹配工具
PMAlign工具介绍:
PMAlign 编辑控件为 CogPMAlignTool,及其组件提供图形用户界面,此工具可用于训练模板,然后使用在连续的输入图像中搜索模板。可指定执行模板训练或模板搜索时要使用的 算法类型,并可选择利用图像还是利用形状模型集合创建已训练模板。输入图像内的可选搜索区域可限制模板搜索的范围。
核心算法PatMax
• PatMax 是一种图案位置搜索技术
根据特征直接搜索并查找目标
PaxMax功能
• 使用一个工具测量
• 图案的位置
• 相对于原来训练图案的尺寸
• 相对于原来训练图案的角度
• 空前的精确度
• 多达1/40像素的平移
• 多达1/50 度的旋转
• 多达0.05%比例
• 速度得到提高
• 基本图案查找速度更快
• 角度和尺寸的确定更快
PaxMax应用
• 定位桃汁罐头上的拉环;在平移、旋转和灯光方面的差异(探测是否存在)
尽管类型有差异、灯光有变化、元件角度旋转、外形极其相似,也可以对引擎盖进行识别(整理和归类 )
PMAlign工具的使用
选择图像
在软件安装目录找到bracket图片
默认路径为:C:\Program Files\Cognex\VisionPro\Images
选择工具
点击扳手图标选择工具(双击/直接拖拽)
Cog是康耐视的缩写所以我们平时在说某个工具的时候
一般只说它中间的这样一个单词
PMAline工具是一个图像搜索和定位的工具
连接图像和工具
链接像源的输出图像( OutputImage )到 PMAlign的输入图像( InputImage )拖放
参数介绍
训练图案
根据图像训练的模板
对当前输入的图像进行识别和定位
PMAlign工具有三个相关的图像
要训练我们的图案,需要一个Current.TrainImage
图像
Current.InputImage将输入图像提供给PMAlign工具
Current.TrainImage包含训练图像。
LastRun.InputImage缓冲区显示该工具最近在其上运行的最后一个图像。
抓取训练图像
-
在控件中按下抓取训练图像按钮
-
选择图像显示Current.TrainImage
-
移动矩形框放置目标区域
-
选择标签页 训练区域与原点
-
单击中心原点
- 点击训练按钮训练
- 信息位置显示当前训练的结果显示
- 单击运行图标运行
InfoStrings表示图案训练是否成功它们还警告受训图案可能存在的各种问题
运行参数调整
运行之后会发现有一张图片匹配不到
原因是图片的角度不同,需要设置运行参数 角度的范围
抓取其他部位
如果需要找某个圆,需要找到合适的区域形状
运行参数调整
运行发现问题: 相同大小的圆可以找到,大的圆找不到
设置缩放倍数
详解
抓取训练图像
设置中心原点
训练
训练特征
精细和粗糙
PMAlign工具是一个图像搜索定位工具, 是基于图像轮廓来进行搜索定位
它使用的轮廓特征,也可以叫边缘特征
图形选项卡下:
绿色跟黄色的线是一个个离散的小线段,那它们就是我们所说的边缘特征,绿色的线比黄色的线要小,在相同的位置的话,绿色的线数量也比黄色的线要多,所以绿色的线是精细特征,黄色的线是粗糙特征,就相当于我们在画画的时候草图和精细的图,精细特征可以来勾勒出一些细节特征,而粗糙特征,只能画一个大体的样子,这个就是我们说的边缘特征
图像上不同像素区域的轮廓线叫做边缘, 是一个有大小和方向的量
大小
浮动显示下来查看
选择训练图像
工件左侧绿色的边缘特征左边灰度值是180右边的灰度值是70左右,这个时候的灰度特征之间的,这个边缘两边的灰度值的差值大概是100所以它的幅值也就是边缘的大小叫幅值,幅度的幅大概是100,
工件中间仍然是一个绿色绿色的边缘特征那这两侧的灰度方值的长值大概也就30所以它的幅值大小大概是30
方向
横坐标是x竖坐标纵坐标是y沿着x方向,左侧这个边缘特征,两边灰灰度的变化由大到,由明到暗而右侧这个边缘两边灰度的变化是由小到大也是由暗到明
这就体现了它具有方向性
特征粒度
边缘特征越多,边缘特征越多越精细,匹配的结果准确程度会越高
边缘特征越大,越少我们匹配的速度会越快,但是准确度也会变差
所以边缘特征会直接影响我们匹配的效果
取消勾选可以手动设置:
训练参数如果我们把精细改成7,会发现粗糙也变成了7,所以这里粗糙精颗粒度一定要大于等于精细,这是粗糙跟精细的设置原则
设置完成会发现这种颗粒参数的会变得个数会变少
所以就是颗粒度数的越大特征点选取的会变会越少
粗糙跟精细的特征也是有一定范围的它最大是25.5
注意:设置训练模板之后需要重新训练
Patmax算法
默认我们是Patmax
Patmax和PatQuick这两种算法呢是比较常用的算法
Patmax的定位精度会比PatQuick高但它的速度没有PatQuick快,所以这两种算法一种偏向于高精度,一种偏向于高快的速度,
而Patmax与PatQuick这个算法是综合前面两个算法的优点
Pataflex,Padmax高灵敏度,透视Patmax参考示例作业
总结:
PatMax 涉及的点数多,精度比较高,速度稍微慢。定位的精度可以为1/40像素
PatQuick 算法速度快
PatQuick与PatMax算法:处于两者中间
PatFlex算法:比较适合于畸变的情况
训练模式
默认选择图像模式即可
极性:
边缘是有方向的,如果按照从背景到目标的方向的话开查看,边缘是由暗到明,或者由明到暗他的一种极性
可以使得图案更明确些。应该使用极性,除非对象受极性变化的影响。注意下面说明的可能模糊的对象。
查看帮助文档
如果我们勾选了忽略极性就是模板的轮廓线跟这几张图片的轮廓线都是可以匹配上的
如果我们考虑极性的话
模板跟左边这个可以匹配
跟右边的就不可以匹配了
因为他们极性不同
一般不建议忽略极性
弹性:
在查找与原来的受训图案存在一些几何形状变化的元件时很有用途
用来指定允许PatMax 忍受非线性几何形状变化的程度
弹性以像素为单位进行测量,通常为0到8
在提高弹性时,PatMax 可能找到非预期的匹配- 精确降低
举例:
比如我们找一个身高一米75的人,弹性是0.那这个人的身高只能是一米75,如果是一米75.001,那也是不符合我们要求的,如果我们把弹性设置成1或者是2,也就是说我们可以接受
我们查到的结果是一米75.11米76,甚至1米74,这个结果都是我们可以接受的
所以说弹性就是允许有一定的误差
自动边缘阈值(可以适当滤除一定的边缘干扰)
自动边缘预值就是刚才跟大家提到有幅值, 幅值的大小这里大概是100
如果这里设置成10左侧这个边缘就可以出现
那中间的边缘灰度值对比度是30如果我们边缘一直勾选掉我们设置成60 再来训练中间位置,有一些特征就会被忽略掉
加载模式和保存模式
保存模板可以把当前训练的参数进行保存
如果我们复位
点击加载模式恢复默认值
角度
如果设置是0只能识别角度和训练模板一模一样的图片,不能发生角度的旋转,可以识别角度和当前模板发生角度偏移的图片,可以根据项目的具体情况设置(设置的越大查找的范围也越大),会导致运行的时间变长,匹配的概率也会增大
缩放
允许匹配的目标比模板大或者小,上限和下线
查找概数
查找概数设置的是1,但是因为得分相同,所以查找到的了4个
接受阈值
接受阈值和查找到的结果相关,如果接受阈值是0.5.表示结果里面的相似程度必须大于50%,分数大于0.5才能作为结果输出
粗糙程度接受阈值
与接受阈值相同,对应得分中粗糙分数,对应粗糙分数进行筛选
计分时考虑杂斑
如左边的三角形是训练模板,右侧两个图片得分都是98,如果不考虑杂斑.两个图形都会匹配到,如果考虑杂斑,右侧的得分就会变低
图案训练
PatMax 图案训练的总指南:
• 选择一个有一致特征的代表性图案
• 减少不必要的特征和图像噪音
• 只训练重要的特征
• 考虑遮罩,来创建代表性图案
• 更大的图案会提供更高的精确度
• 实际上,界点越多,精确度越高
模型原点
在PatMax定位搜索场景中模型的实例时,模型原点 可以辨别要向您报告的点
要维持最高的精确度,原点必须放置图案区域的中心
运行期间
运行参数
• 选择运行期间算法
• 然后规定在运行期间图像中要找到的实例数量
• 指定接受阀值
搜索区域
区域模式:和训练页面一致
区域形状:可以选择整图搜索,也可以选择特定区域和范围
• 默认状态,PatMax搜索整个图像寻找可能的匹配
• 要让PatMax 只在图像的一个部分中查找,使用一个区域形状(Region Shape)
• 通过键入值或者使用图形设置大小和位置
图形
• 最后,选择在运行期间需要显示的图像
• 记住图形的更新需要时间
结果
• 结果显示在结果标签的下面
• 如果找到多个实例,它们将按得分降序排列返回
• 得分
• 结果特征与训练图案特征的匹配程度是多少
• X、Y
• 所找到的图案相对于指定原点的位置
• 角度
• 所找到的图案相对于原来训练的图案的角度
• 如果使用标称角度,这始终等于标称值
• 比例
• 所找到的图案的大小与原始训练图案的对比
• 如果使用标称比例,这总是等于标称值
• a.k.a.锁定比例
• 比例 X、比例Y
• 所找到的图案的大小与原始训练图案沿X和Y轴方向的对比
• 如果使用标称比例,这总是等于标称值
训练模式
• 图像 对图像直接进行训练
• 带图像的形状模型 适用于建模器手动建模训练 包含模型和图像
• 带转换的形状模型 适用于建模器手动建模训练 只包含模型,一般为加载模型 不常用该模式
掩膜训练
掩膜训练:遮住被影响的不必要的特征
工具:可以选择笔刷、笔和矩形,选择矩形时默认在图像左上角位置
1.移动矩形到遮蔽区域
2.选择掩膜图标
3.填充当前选项
4.确定
绿色部分越多,匹配的精度越高
分数低
建模训练
建模训练:模型编辑器允许您使用图像作为向导自动提取形状或者绘制您自己的形状,一般在需要训练的模型较为复杂同时特征也比较明显的情况下使用
选择带图像的形状模型,
此时建模器图标会亮起单击建模器图标
建模器界面,可以选择提取形状,自动提取也可以手动添加模型和轮廓
自动提取模型
单击训练产看结果
建模器优势
设置为10表示这段特征的比重是其他的区域的10倍数
可以把关键特征数量比较少的权重设置的比较大
总结
一、 功能介绍:训练一个图像 然后再在其他图像或者同一幅图像的其他位置去寻找该图像。在这个过程中你可以得到
- 图像尺寸变化
- 角度变化
- 其他的综合因素。
二、 图像:主要有输入图像 训练图像 和 最后输出图像
三、 选择模板区域的方式有两种: - 直接框选,在区域训练和原点里面直接加选择图像框选想要匹配的对象(适合背景干扰较少的图像)
- 是区域掩膜(适合背景有干扰的图像),在框选区域里面再筛选不需要的部分进行掩膜,增加准确度。如下图所示,掩膜内部黑色框后,搜索只会找外部白色大框但是不淹膜的这些地方都会去搜索。
四、 搜索区域
五、 各种运行参数
主要有限制匹配得分、角度范围、缩放范围等 - 查找概数:指定结果总数,可能有时一个图里面要匹配出多个模板,这个概述就要改变。
- 接受阈值:指定结果分数的接受阈值。仅接受分数大于或等于此值的结果
- 计分时考虑杂斑:仅适用于Patmax,如果选中,背景噪音以及杂点会拉低得分,否则得分会忽略背景干扰而升高
- 角度和缩放上下限制:尽量不使用标称值改变,而用上下限制决定搜索对象的可接受范围,角度尽量不要调整的过大。
https://blog.csdn.net/qq_41036272/article/details/119237948