VisionPro---PatMaxTool工具使用

news2025/1/24 10:41:50

CogPMAlignTool

PatMax是一种图案位置搜索技术(识别+定位),PatMax图案不依赖于像素格栅,是基于边缘特征的模板匹配而不是基于像素的模板匹配,支持图像中特征的旋转与缩放,边缘特征表示图像中不同区域间界限的轮廓线(有大小有方向),特征是表示图像中不同区域之间界限的等高线,基于特征的表现可以比像素格栅表现更快捷和更准确地进行转化。

亚像素,面阵相机的成像面以像素为最小单位,实际上,相机在拍摄时,对图像进行了离散化处理,如果两个像素之间有5.2微米的距离,宏观上可以看做是连在一起的,但是微观上,它们之间还有无限更小的东西存在,这个更小的东西就是亚像素。亚像素精度是指相邻两像素之间的细分情况,输入值通常为二分之一,三分之一,四分之一。这意味着每个像素将被分为更小的单元从而对这些更小的单元实施插值算法。如果选择四分之一,就相当于每个像素在横向和纵向上都被当做四个像素来计算。比如在测量中,如位置、直线、圆等,都会出现亚像素。如测量某个圆的直径为100.12像素,这个后面的0.12就是亚像素。

PatMax进行图像训练时,它不仅会考虑训练区域中包含的所有特征,还可能会考虑训练区域之外的一些特征。所以如果训练窗口靠近图像边缘,则可能检测不到比粗粒度限制更接近图像边缘的特征,所以尽量让训练区域在图像中央。

PatMax从物体的图像中提取模式。PatMax模式是几何特征和这些特征之间的空间关系的集合,每个特征是两个不同像素值区域之间边界上点的集合。

模式特征

PatMax模式是特征的集合。个体特征被定义为不同像素区域之间的连续边界。这些区域可以有不同的强度、对比度或纹理,开放的或者闭环的。

模式特征的极性

PatMax模式特征由特征边界点的有序列表表示。特征边界点有位置和与相邻边界点连接的角度,特征边界点的角度是指图像坐标系与通过特征边界点绘制的垂直于特征边界的暗到明方向的直线间的夹角。

定位过程

PatMax使用不同大小的特征作为图像中定位所需的特征。一般情况下,PatMax使用大特征快速找到运行时图像中的近似模式匹配,使用小特征精确确定模式位置。

1 训练参数

1.1 算法模式

PatQuick:速度最快,对于三维或者低质量元件最佳,承受更多图像差异,例子:捡放。

PatMax:精确度最高,在二维元件上表现佳,最适合于细微细节,例子:薄片对齐。

PatQuick与PatMax:速度跟精度介于两者之间。

PatMax-高灵敏度:适用于对比度很低或者视频噪音或图像变形严重的图像,运行速度非常慢。

透视PatMax:查找已经历透视失真的二维特征。

PatFlex:为高度灵活的图案设计,在弯曲不平的表面上表现较佳,极其灵活,但不够精确,例子:标签定位。

设置训练参数下的算法模式为PatFlex,训练平整状态下的图片。

可以识别有畸变的图像。

1.2 保存模式和加载模式

这两个模式是分别用来保存和加载训练图片的参数。

1.3 训练模式

带转换的形状模型主要用于建模。

带图形的形状模型用于普通训练、掩模。

1.4 忽略极性

训练图像的边缘特征是有极性的,即由明到暗,或者由暗到明。图案极性在沿边界的每个点上定义为向黑色的方向。默认状态下,PatMax只查找与受训图案具有相同极性的图案。

勾选训练参数下的忽略极性,训练图片。

可以识别两个相似的特征。

不勾选训练参数下的忽略极性,训练图片。只能识别灰度变化方向一样的特征。

1.5 弹性

弹性,在查找与原来的受训图案存在一些几何形状变化的元件时很有用途,用来指定允许PatMax忍受非线性几何变化的程度,影响匹配的准确度,弹性以像素为单位进行测量,通常为0到8,越高,允许图像出现的差异越大,匹配的准确度越低。设置弹性数值为0。

识别准确度较高,不能识别出这种差异较大的图片。

弹性常数改为7后,识别的准确度降低,可以识别出这种差异较大的特征。

1.6 特征粒度限制

粒度表示PatMax在图像中探测到哪些特征。

使得粒度更粗糙(更高):提高速度,降低精确度,探测粗糙并且减弱精细特征(可能是好的也可能是坏的)。

使得粒度更精细(更低):降低速度,提高线性精确度,探测精细并且减弱粗糙特征 (可能是好的也可能是坏的)。

在图形中训练特征下勾选显示粗糙和显示精细,就可以查看训练图像的粗糙和精细特征。

在训练参数下的特征粒度限制中,勾选自动选择,系统会默认自动计算出图像特征中的粗糙和精细的比例值。

如果不勾选自动选择,可以手动设置。当修改训练参数时,需要重新训练图像,注意手动设置时,粗糙颗粒度数默认大于精细颗粒度数,颗粒度数最大可以改为25.5,把粗糙颗粒度改为7,精细颗粒度改为7,重新训练图像,可以发现特征点数会变少,所以精细颗粒度数越大,特征点数越少。PMA匹配的最高精度可以达到四十分之一个像素。

图中,黄色线为粗糙特征,绿色线为精细特征。

当对匹配精度要求很高时,可以把精细调成最小,这样在训练图形中精细特征就会变多,适当降低粗糙参数,粗糙特征就会减弱。

当图像中的特征比较明显或者对匹配精度要求不高,提高算法速度时,可以适当调大精细参数,这样在训练图形中精细特征就会减少,调大粗糙参数,粗糙特征就会增多,训练时,就可以提高算法速度。

1.7 自动边缘阈值

边缘阈值,定义了形成精细特征的条件,当两端灰度值的差达到边缘阈值时,就会形成这些特征,勾选自动边缘阈值,默认为10。

不勾选自动边缘阈值,就可以手动设置这个参数,把边缘阈值设置50,将精细特征形成的条件提高了,即当两端灰度差值大于50,才会形成精细特征,所以精细特征减少了。

2 训练区域与原点

训练时,训练区域和坐标原点如图所示。

点击训练区域与原点中的适应图像和中心原点,系统会自动将图像框起来,坐标原点放在图像中央。

也可以手动设置X、Y、旋转和倾斜这些数值,来设置框的大小、位置和坐标原点的位置。要维持最高的精确度,原点必须放置图案区域的中心。

3 运行参数

3.1 查找概数

查找概数默认为1,即图像中允许查找目标的最大个数为1,也就是用户希望查找的最大个数。

图中查找概数为1,却能查找到4个圆。从结果中可以看到这四个圆的分数都是一样的,即相似程度都是1,系统不能找到最大结果,所以把四个结果都列出来,供用户选择

3.2 粗糙度接受阈值和接受阈值参数

接受阀值是PatMax用来确定匹配是否代表搜索图像之中模型的一个有效实例的分值(介于0和1.0之间)。提高接近值会减少搜索所需要的时间。

接受阈值是和结果中的分数相关,默认是0.5,即当分数大于0.5时,特征就会被识别出来。查找这个图形的结果中分数为0.58,大于0.5,所以能被识别。

设置接受阈值为0.7,这个特征就不会被识别了,因为它的相似程度为0.58,小于0.7。接受阈值越高,筛掉的不好的匹配结果就越多,匹配精度越高。

同理,粗糙度度接受阈值法,和查找结果中的粗糙分数相对应。

3.3 计分时考虑杂斑

计分时,不考虑杂斑,这两个图的得分是一样的;考虑杂斑的话,有横线的这个三角形得分就会变低。

不勾选计分时考虑杂斑,训练后识别出来的特征得分为1。

勾选计分时考虑杂斑,训练后识别出来的特征得分降低。结果得分中就考虑了杂斑的干扰。

3.4 超时

超时,如果勾选上的话,也就是整个工具的运行时间,要在这个时间范围内运行结束,否则这个程序会直接结束。

3.5 角度

选择训练图像

如图所示,如果角度参数为默认值即0,特征的识别不支持旋转。

设置了角度参数后,即特征在正负180度内旋转时,特征都可以被识别。

结果对比

设置角度参数前后对比,识别同一张图片,设置了角度变化识别的时间更长,这是因为查找的范围变大 。

3.6 缩放

训练识别图中的圆,缩放参数默认为1。

只能识别和他一样大小的圆。

修改缩放参数0.5到2后,也可以识别缩小的圆。

X缩放和Y缩放这两个参数设置后,可以识别在X或Y方向上有缩放的特征。

3.7 使用模式粒度限制

运行参数中的模式粒度和训练参数中的特征粒度含义相同,不过它的针对对象是输入图像,而不是训练模板。图中粗糙为5,精细为1;与粗糙为8,精细为8对比。可以看出越大,匹配特征越多。

3.8 对比度阈值

对比度阈值就是背景和目标图像的灰度值的差值。

3.9 XY重叠

XY重叠,默认为0.8,就是进行匹配时对当前输入图像可能有多个匹配结果,当同一目标的匹配结果有多个时,多个结果之间会有相互重叠的特征,那重叠度超过80%,会选择多个结果中得分高的结果输出。

3.10 自动边缘阈值

运行参数中的自动边缘阈值和训练参数中的自动边缘阈值是相同。

4 结果

分数,结果特征与训练图案特征的匹配程度是多少,就是目标图像与训练模板的相似度;X、Y和角度指所谓的定位,当前目标图像的位置,参考坐标是原始图像的原始坐标;拟合误差,拟合误差越大,匹配出来的准确程度也会受到影响;杂斑是除了训练模板中的特征,目标图像中还有其他训练图像没有的特征;粗糙分数对应运行参数中的粗糙度接受阈值法。

5 掩模和建模

5.1 掩模

使用条件,比如只想要这个图中的外围边的特征,不想要中间这些圆孔的特征,这时候就需要掩膜。

打开上面菜单中的掩膜器,使用工具对不想要的特征进行掩膜,也就是覆盖上红色。

应用之后,训练图像,就会发现被红色遮挡的部分的特征就不会被提取出来了。

查看运行结果,勾选图形中诊断下的显示匹配特征,可以看出输入图像中中间区域没有匹配特征。匹配特征中绿色线表示匹配度良好,黄色线表示匹配度一般,红色线表示匹配度较差。绿色线越多,匹配程度越好,结果得分越高。

5.2 建模

需要将训练参数中的训练模式改为带图像的形状模型才可以使用建模器。

打开建模器,提取特征轮廓,建模完成后,要想训练模板,还需要修改训练区域与原点中的训练区域下的区域模式修改为像素配对限定框,勾选训练参数中的忽略极性,这样才可以进行训练。

训练完成后,查看运行结果,只在建模区域中进行匹配。

在建模器中可以设置每条轮廓或线段的权重,双击线段,设置权重为10,即这一段线段所占比重是其他区域的10倍,所以建模时,可以把关键且数量较少的特征的权重变大。训练后,如果输入图形的这一条线段没有匹配上,那么对其结果得分会有很大影响,即得分会很低。

6补充

  1. 报错信息

训练模式下报错字符串信息

字符串消息

含义

10000,包含太少的特征

没有检测到足够的特征来训练一个可靠的模式,检查训练的特征显示。

10001,特征粒度难以选择

检查训练的特性显示。选择自动配置特性粒度时,才会返回此消息。

10100,模式可能没有预期的准确,因为训练模式显得模糊

PatMax训练了一个模式,但由于模式是模糊的,可能会降低对齐结果的准确性。只有使用PatMax训练模式时,才会返回此结果

10101,模式可能没有预期的准确,无法可靠地测量自由度

经过训练的模式在指示的自由度方面可能是模糊的

10102,模式退化,结果可能会不稳定,因为在粗粒度限制下,所有的特征边界点都具有相同的方向

在粗粒度限制下,所有的特征边界点具有相同的方向,检查训练的特征显示。

10200,由于精细特征主导,模式运行缓慢

因为模式中大量的小特征,对齐可能需要更多时间。尝试手动指定更大的粗粒度值

   运行模式下报错字符串信息

字符串消息

含义

20300,N个结果由于对比度阈值而丢失

因为对比度阈值低于指定的对比度阈值,故PatMax丢弃了一个或多个结果,可以降低对比度阈值来查看这些结果。

20301,N个结果由于接近较强的结果而被丢弃。

由于有更高的得分结果,所以PatMax丢弃了得分低的结果,可以增加查找概数或者接受阈值来显示这些结果。此消息中的分数值是近似的,因为在计算最终得分之前,结果被排除在处理之外了。

20302,N个结果由于杂斑影响而被丢弃

由于有太多杂斑丢弃了多个结果,可以设置忽略杂斑来查看所有丢弃的结果。

2.减小匹配时间的方法

减小匹配时间的方法:缩小运行参数中的角度,缩放的范围,提高接受阈值;匹配算法选择PatQuick;特征粒度的粗糙和精细调高,不勾选显示匹配特征。

在图形里面可以选择是否勾选显示匹配特征,勾选的话会在输出图像中显示找到的粗糙与精细特征绘制的图形。

勾选后会极大增加运行时间,在具体项目实施的时候建议取消勾选。

           

              勾选                                                                    未勾选

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1279381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis-安装、配置和修改配置文件、以及在Ubuntu和CentOS上设置Redis服务的开机启动和防火墙设置,以及客户端连接。

目录 1. Redis简介 2. 离线安装 2.1 准备工作 2.2 解压、安装 2.3 修改配置文件 2.4 redis服务与关闭 2.5 redis服务的开机启动 2.5.1 Ubuntu上的配置 2.5.2 centos上的配置 3. 在线安装 4. 设置防火墙 5. 客户端连接 1. Redis简介 Redis 是完全开源免费的&#x…

配置typroa上传图片到gitee

在typora这个位置下载插件 在picgo.exe文件夹下输入cmd 打开命令行输入如下命令安装相关插件 .\picgo install gitee-uploader .\picgo install super-prefix 之后按照官方文档更改相关配置 官方文档参考 https://picgo.github.io/PicGo-Core-Doc 博客参考:…

JSP学习资源网站系统eclipse定制开发mysql数据库BS模式java编程

一、源码特点 java 学习资源网站系统是一套完善的web设计系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发,数据库为Mysql5.0,…

FL Studio水果软件2024简体中文语言版本下载

Fl Studio21是最好的音乐制作软件,但它的成本超过300美元......一个年轻的新音乐创作者怎么能从上到下,地球上没有比 FL Studio 21 更完整的音乐制作软件了。14 年来,它一直是行业领导者,并且随着随后的每一次更新(在此…

字符函数 和 字符串函数

今天我打算介绍一些字符函数和字符串函数,有一些字符串函数我实现了模拟,但文章中没有放出来,如果需要的欢迎来到我的gitee里面拿取(在test.c11-23里面) 这是我的gitee:小汐 (lhysxx) - Gitee.com 字符函数 1. islow…

编程怎么学才能快速入门,分享一款中文编程工具快速学习编程思路,中文编程工具之边条主控菜单构件简介

编程怎么学才能快速入门,分享一款中文编程工具快速学习编程思路,中文编程工具之边条主控菜单构件简介 一、前言 零基础自学编程,中文编程工具下载,中文编程工具构件之扩展系统菜单构件教程编程系统化教程链接https://jywxz.blog…

Python标准库:math库【侯小啾python领航班系列(十六)】

Python标准库:math库【侯小啾python领航班系列(十六)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

LLM推理部署(四):一个用于训练、部署和评估基于大型语言模型的聊天机器人的开放平台FastChat

FastChat是用于对话机器人模型训练、部署、评估的开放平台。体验地址为:https://chat.lmsys.org/,该体验平台主要是为了收集人类的真实反馈,目前已经支持30多种大模型,已经收到500万的请求,收集了10万调人类对比大模型…

Java项目调用C/C++ SDK的方案汇总

Java项目调用C/C SDK的方案汇总 背景调研JNIJNativeJNAJavaCPP 背景 Java项目中需要调用到一个C项目,于是对目前通用的解决方案做了一些调研,这里做一个汇总。 调研 JNI JNI:Java Native Interface,JNI是一套编程接口&#xf…

盘点25个Html游戏Game源码网页爱好者不容错过

盘点25个Html游戏Game源码网页爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 下载链接:https://pan.baidu.com/s/1lSNLjWB4xMuLV8m_kDtczw?pwd6666 提取码:6666 项目名称 21点游戏 H5…

影刀实例五,网页表单中多下拉框填写问题

一,背景 网页表单中,经常有这样一个场景,填写籍贯.并且是以三个下拉框表示,分别代表省,市,县.并且都是非标准的,不能直接使用影刀内置命令.常规思路是:分别处理省,市&…

P2 Linux系统目录结构

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🛸推荐专…

面试题:说说 Cookie、Session、Token、JWT?

文章目录 什么是认证(Authentication)什么是授权(Authorization)什么是凭证(Credentials)什么是 Cookiecookie 重要的属性 什么是 Sessionsession 认证流程 Cookie 和 Session 的区别什么是 Token&#xff…

matlab操作方法(一)——向量及其操作

1.向量及其操作 matlab是英文Matrix Laboratory(矩阵实验室)的简称,是基于矩阵运算的操作环境。matlab中的所有数据都是以矩阵或多维数组的形式存储的。向量和标量是矩阵的两种特殊形式 向量是指单行或者单列的矩阵,它是构成矩阵…

23种设计模式之C++实践(二)

23种设计模式之C++实践 3. 设计模式(二)组合型模式7. 适配器模式——不兼容结构的协调7.2:类适配器模式7.3:双向适配器模式适配器模式总结8.桥接模式——处理多维度变化桥接模式总结9. 组合模式——树形结构的处理9.2 透明组合模式9.3 安全组合模式组合模式总结10. 装饰模式…

【数据库】数据库基于封锁机制的调度器,使冲突可串行化,保障事务和调度一致性

封锁使可串行化 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…

MySQL 教程 1.5

MySQL 创建数据表 创建 MySQL 数据表需要以下信息: 表名表字段名定义每个表字段的数据类型 语法 以下为创建 MySQL 数据表的 SQL 通用语法: CREATE TABLE table_name (column1 datatype,column2 datatype,... ); table_name 是你要创建的表的名称。…

鸿蒙基础入门与高频知识点梳理

介绍鸿蒙高频知识点,持续更新中 一、鸿蒙代码结构 ├──entry/src/main/ets // 代码区 │ ├──common │ │ └──Constant.ets // 常量类 │ ├──entryability │ │ └──EntryAbility.ts // 程序入口类 │ ├──p…

学习-java多线程面试题

为什么不建议用Executors启动线程池 *队列LinkedBlockingQueue是没有边界的队列,请求多会造成OOM *建议使用ThreadPoolExecutors 线程池中提交一个任务的流程? 1先判断线程池是否有线程,如果与就直接执行,没有就放队列 2如果队列满了&#…

【ArcGIS Pro微课1000例】0041:Pro强大的定位搜索功能、定位窗格、地图上查找地点

一谈到搜索,你是不是还停留在矢量数据的属性表中呢?今天给大家介绍ArcGIS Pro中定位搜索强大功能的使用,可以基于在线地图、矢量数据等多种数据源,进行地址、地名、道路、坐标等的查找。 文章目录 一、定位工具介绍二、在线地图搜索三、本地矢量数据搜索四、无地图搜索五、…