VisionPro---PatMaxTool工具使用

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;特征粒度的粗糙和精细调高,不勾选显示匹配特征。

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

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

           

              勾选                                                                    未勾选

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据链路层之广域网、PPP协议、HDLC协议

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

内部培训平台的系统 PlayEdu搭建私有化内部培训平台

PlayEdu是由白书科技团队多年经营的线上教育系统,专为企业提供的全新企业培训方案 我们的目标是为更多的企业机构搭建私有化内部培训平台,以满足不断增长的培训需求 通过PlayEdu,企业可以有效地组织和管理培训资源,提供高质量的…

Leetcode—1423.可获得的最大点数【中等】

2023每日刷题&#xff08;四十八&#xff09; Leetcode—1423.可获得的最大点数 思路&#xff1a;逆向求长为 n−k 的连续子数组和的最小值 参考灵茶山艾府题解 实现代码 class Solution { public:int maxScore(vector<int>& cardPoints, int k) {int mins 0, …

nodejs基于vue的社区物业缴费报修管理系统7vwc6

运行软件:vscode 前端nodejsvueElementUi 语言 node.js 框架&#xff1a;Express/koa 前端:Vue.js 数据库&#xff1a;mysql 开发软件&#xff1a;VScode/webstorm/hbuiderx均可 数据库用MySQL,后台用vue框架 基本要求&#xff1a; 1. 对项目进行详细实际的需求分析。 2. 在网…

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

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

某60区块链安全之Create2实战一学习记录

区块链安全 文章目录 区块链安全Create2实战一实验目的实验环境实验工具实验原理实验内容Create2实战一 实验步骤分析合约源代码漏洞Create2实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约Create2引发的漏洞及其利用 找到合约漏洞进行分析并形成利用 实…

基于SpringBoot + vue的在线视频教育平台

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

肖sir__mysql之视图__009

mysql之视图 一、什么是视图 视图是一个虚拟表&#xff08;逻辑表&#xff09;&#xff0c;它不在数据库中以存储形式保存&#xff08;本身包含数据&#xff09;&#xff0c;是在使用视图的时候动态生成。 二、视图作用 1、查询数据库中的非常复的数据 例如&#xff1a;多表&a…

微信支付/

微信支付准备工作 3.2.1 如何保证数据安全&#xff1f; 完成微信支付有两个关键的步骤&#xff1a; 第一个就是需要在商户系统当中调用微信后台的一个下单接口&#xff0c;就是生成预支付交易单。 第二个就是支付成功之后微信后台会给推送消息。 这两个接口数据的安全性&#x…

论文解读--Visual Lane Tracking and Prediction for Autonomous Vehicles

自动驾驶汽车视觉车道线跟踪和预测 摘要 我们提出了一种用于自动驾驶汽车跟踪水平道路车道标记位置的可视化方法。我们的方法是基于预测滤波的。预测步骤估计在每个新的图像帧中期望的车道标记位置。它也是基于汽车的运动学模型和嵌入式测程传感器产生的信息。使用适当准备的测…

区块链媒体:Web3.015个方法解析-华媒舍

Web3.0是第三代互联网的发展阶段&#xff0c;相较于Web2.0&#xff0c;它具有更高的可信性、安全性和去中心化特点。在Web3.0时代&#xff0c;推广变得更为重要&#xff0c;因为吸引用户和提高品牌知名度对于在竞争激烈的市场中脱颖而出至关重要。本文将揭秘推广Web3.0的15个秘…

Mysql安全之基础合规配置

一、背景 某次某平台进行安全性符合型评估时&#xff0c;列出了数据库相关安全选项&#xff0c;本文特对此记录&#xff0c;以供备忘参考。 二、安全配置 2.1、数据库系统登录时的用户进行身份标识和鉴别&#xff1b; 1&#xff09;对登录Mysql系统用户的密码复杂度是否有要…

CSS3 修改滚动条样式

上图&#xff1a; 上代码&#xff1a; /* 修改垂直滚动条 */ .right-list::-webkit-scrollbar {width: 2px; /* 修改宽度 */height: 5px; /* 修改高度 */ } /* 修改滚动条轨道背景色 */ .right-list::-webkit-scrollbar-track {background-color: #f1f1f1; } /* 修改滚动条滑块…

2023-12-03 LeetCode每日一题(可获得的最大点数)

2023-12-03每日一题 一、题目编号 1423. 可获得的最大点数二、题目链接 点击跳转到题目位置 三、题目描述 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#x…

吴恩达《机器学习》11-1-11-2:首先要做什么、误差分析

一、首先要做什么 选择特征向量的关键决策 以垃圾邮件分类器算法为例&#xff0c;首先需要决定如何选择和表达特征向量 &#x1d465;。视频提到的一个示例是构建一个由 100 个最常出现在垃圾邮件中的词构成的列表&#xff0c;根据这些词是否在邮件中出现来创建特征向量&…

【MATLAB】mlptdenoise分解+FFT+HHT组合算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 MLPT Denoise是一种基于小波变换的信号分解算法&#xff0c;可以将信号分解为多个具有不同频率特性的小波分量&#xff0c;并对每个小波分量进行频域分析。它基于最大似然参数调整&#…

Fiddler抓包工具之fiddler设置弱网测试

弱网测试 概念&#xff1a;弱网看字面意思就是网络比较弱&#xff0c;我们通称为信号差&#xff0c;网速慢。 意义&#xff1a;模拟在地铁、隧道、电梯和车库等场景下使用APP &#xff0c;网络会出现延时、中断和超时等情况。 Fiddler弱网测试流程&#xff1a; 一、限速操作…

PTA结构体经典编程题

目录 第一题&#xff1a;计算平均成绩 第二题&#xff1a;平面向量加法 第三题&#xff1a;查找书籍 第四题&#xff1a;通讯录排序 第五题&#xff1a;计算职工工资 第一题&#xff1a;计算平均成绩 思路&#xff1a;看到一个学生的基本信息&#xff0c;所以定义一个结构…

12.二维字符数组——输出basic和BASIC

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维字符数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 输出basic和BASIC 二、题目分析 法一&#xff1a; for(i0;i<1;i){ for(j0;j<6;j){ putchar(a[i][j]); pri…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《市场环境下运行的光热电站子系统容量优化配比研究》

这个标题涉及到对市场环境下运行的光热电站子系统进行容量优化配比的研究。让我们逐步解读&#xff1a; 市场环境下运行的光热电站&#xff1a; 这指的是光热电站在实际市场环境中的运行&#xff0c;可能包括了市场相关的经济、政策、竞争等因素。 子系统&#xff1a; 光热电站…