CogPMAlignTool
PatMax是一种图案位置搜索技术(识别+定位),PatMax图案不依赖于像素格栅,是基于边缘特征的模板匹配而不是基于像素的模板匹配,支持图像中特征的旋转与缩放,边缘特征表示图像中不同区域间界限的轮廓线(有大小有方向),特征是表示图像中不同区域之间界限的等高线,基于特征的表现可以比像素格栅表现更快捷和更准确地进行转化。
亚像素,面阵相机的成像面以像素为最小单位,实际上,相机在拍摄时,对图像进行了离散化处理,如果两个像素之间有5.2微米的距离,宏观上可以看做是连在一起的,但是微观上,它们之间还有无限更小的东西存在,这个更小的东西就是亚像素。亚像素精度是指相邻两像素之间的细分情况,输入值通常为二分之一,三分之一,四分之一。这意味着每个像素将被分为更小的单元从而对这些更小的单元实施插值算法。如果选择四分之一,就相当于每个像素在横向和纵向上都被当做四个像素来计算。比如在测量中,如位置、直线、圆等,都会出现亚像素。如测量某个圆的直径为100.12像素,这个后面的0.12就是亚像素。
PatMax进行图像训练时,它不仅会考虑训练区域中包含的所有特征,还可能会考虑训练区域之外的一些特征。所以如果训练窗口靠近图像边缘,则可能检测不到比粗粒度限制更接近图像边缘的特征,所以尽量让训练区域在图像中央。
PatMax从物体的图像中提取模式。PatMax模式是几何特征和这些特征之间的空间关系的集合,每个特征是两个不同像素值区域之间边界上点的集合。
模式特征
PatMax模式是特征的集合。个体特征被定义为不同像素区域之间的连续边界。这些区域可以有不同的强度、对比度或纹理,开放的或者闭环的。
模式特征的极性
PatMax模式特征由特征边界点的有序列表表示。特征边界点有位置和与相邻边界点连接的角度,特征边界点的角度是指图像坐标系与通过特征边界点绘制的垂直于特征边界的暗到明方向的直线间的夹角。
定位过程
PatMax使用不同大小的特征作为图像中定位所需的特征。一般情况下,PatMax使用大特征快速找到运行时图像中的近似模式匹配,使用小特征精确确定模式位置。
PatQuick:速度最快,对于三维或者低质量元件最佳,承受更多图像差异,例子:捡放。
PatMax:精确度最高,在二维元件上表现佳,最适合于细微细节,例子:薄片对齐。
PatQuick与PatMax:速度跟精度介于两者之间。
PatMax-高灵敏度:适用于对比度很低或者视频噪音或图像变形严重的图像,运行速度非常慢。
透视PatMax:查找已经历透视失真的二维特征。
PatFlex:为高度灵活的图案设计,在弯曲不平的表面上表现较佳,极其灵活,但不够精确,例子:标签定位。
设置训练参数下的算法模式为PatFlex,训练平整状态下的图片。
可以识别有畸变的图像。
这两个模式是分别用来保存和加载训练图片的参数。
带转换的形状模型主要用于建模。
带图形的形状模型用于普通训练、掩模。
训练图像的边缘特征是有极性的,即由明到暗,或者由暗到明。图案极性在沿边界的每个点上定义为向黑色的方向。默认状态下,PatMax只查找与受训图案具有相同极性的图案。
勾选训练参数下的忽略极性,训练图片。
可以识别两个相似的特征。
不勾选训练参数下的忽略极性,训练图片。只能识别灰度变化方向一样的特征。
弹性,在查找与原来的受训图案存在一些几何形状变化的元件时很有用途,用来指定允许PatMax忍受非线性几何变化的程度,影响匹配的准确度,弹性以像素为单位进行测量,通常为0到8,越高,允许图像出现的差异越大,匹配的准确度越低。设置弹性数值为0。
识别准确度较高,不能识别出这种差异较大的图片。
弹性常数改为7后,识别的准确度降低,可以识别出这种差异较大的特征。
粒度表示PatMax在图像中探测到哪些特征。
使得粒度更粗糙(更高):提高速度,降低精确度,探测粗糙并且减弱精细特征(可能是好的也可能是坏的)。
使得粒度更精细(更低):降低速度,提高线性精确度,探测精细并且减弱粗糙特征 (可能是好的也可能是坏的)。
在图形中训练特征下勾选显示粗糙和显示精细,就可以查看训练图像的粗糙和精细特征。
在训练参数下的特征粒度限制中,勾选自动选择,系统会默认自动计算出图像特征中的粗糙和精细的比例值。
如果不勾选自动选择,可以手动设置。当修改训练参数时,需要重新训练图像,注意手动设置时,粗糙颗粒度数默认大于精细颗粒度数,颗粒度数最大可以改为25.5,把粗糙颗粒度改为7,精细颗粒度改为7,重新训练图像,可以发现特征点数会变少,所以精细颗粒度数越大,特征点数越少。PMA匹配的最高精度可以达到四十分之一个像素。
图中,黄色线为粗糙特征,绿色线为精细特征。
当对匹配精度要求很高时,可以把精细调成最小,这样在训练图形中精细特征就会变多,适当降低粗糙参数,粗糙特征就会减弱。
当图像中的特征比较明显或者对匹配精度要求不高,提高算法速度时,可以适当调大精细参数,这样在训练图形中精细特征就会减少,调大粗糙参数,粗糙特征就会增多,训练时,就可以提高算法速度。
边缘阈值,定义了形成精细特征的条件,当两端灰度值的差达到边缘阈值时,就会形成这些特征,勾选自动边缘阈值,默认为10。
不勾选自动边缘阈值,就可以手动设置这个参数,把边缘阈值设置50,将精细特征形成的条件提高了,即当两端灰度差值大于50,才会形成精细特征,所以精细特征减少了。
训练时,训练区域和坐标原点如图所示。
点击训练区域与原点中的适应图像和中心原点,系统会自动将图像框起来,坐标原点放在图像中央。
也可以手动设置X、Y、旋转和倾斜这些数值,来设置框的大小、位置和坐标原点的位置。要维持最高的精确度,原点必须放置图案区域的中心。
查找概数默认为1,即图像中允许查找目标的最大个数为1,也就是用户希望查找的最大个数。
图中查找概数为1,却能查找到4个圆。从结果中可以看到这四个圆的分数都是一样的,即相似程度都是1,系统不能找到最大结果,所以把四个结果都列出来,供用户选择
接受阀值是PatMax用来确定匹配是否代表搜索图像之中模型的一个有效实例的分值(介于0和1.0之间)。提高接近值会减少搜索所需要的时间。
接受阈值是和结果中的分数相关,默认是0.5,即当分数大于0.5时,特征就会被识别出来。查找这个图形的结果中分数为0.58,大于0.5,所以能被识别。
设置接受阈值为0.7,这个特征就不会被识别了,因为它的相似程度为0.58,小于0.7。接受阈值越高,筛掉的不好的匹配结果就越多,匹配精度越高。
同理,粗糙度度接受阈值法,和查找结果中的粗糙分数相对应。
计分时,不考虑杂斑,这两个图的得分是一样的;考虑杂斑的话,有横线的这个三角形得分就会变低。
不勾选计分时考虑杂斑,训练后识别出来的特征得分为1。
勾选计分时考虑杂斑,训练后识别出来的特征得分降低。结果得分中就考虑了杂斑的干扰。
超时,如果勾选上的话,也就是整个工具的运行时间,要在这个时间范围内运行结束,否则这个程序会直接结束。
选择训练图像
如图所示,如果角度参数为默认值即0,特征的识别不支持旋转。
设置了角度参数后,即特征在正负180度内旋转时,特征都可以被识别。
结果对比
设置角度参数前后对比,识别同一张图片,设置了角度变化识别的时间更长,这是因为查找的范围变大 。
训练识别图中的圆,缩放参数默认为1。
只能识别和他一样大小的圆。
修改缩放参数0.5到2后,也可以识别缩小的圆。
X缩放和Y缩放这两个参数设置后,可以识别在X或Y方向上有缩放的特征。
运行参数中的模式粒度和训练参数中的特征粒度含义相同,不过它的针对对象是输入图像,而不是训练模板。图中粗糙为5,精细为1;与粗糙为8,精细为8对比。可以看出越大,匹配特征越多。
对比度阈值就是背景和目标图像的灰度值的差值。
XY重叠,默认为0.8,就是进行匹配时对当前输入图像可能有多个匹配结果,当同一目标的匹配结果有多个时,多个结果之间会有相互重叠的特征,那重叠度超过80%,会选择多个结果中得分高的结果输出。
运行参数中的自动边缘阈值和训练参数中的自动边缘阈值是相同。
分数,结果特征与训练图案特征的匹配程度是多少,就是目标图像与训练模板的相似度;X、Y和角度指所谓的定位,当前目标图像的位置,参考坐标是原始图像的原始坐标;拟合误差,拟合误差越大,匹配出来的准确程度也会受到影响;杂斑是除了训练模板中的特征,目标图像中还有其他训练图像没有的特征;粗糙分数对应运行参数中的粗糙度接受阈值法。
使用条件,比如只想要这个图中的外围边的特征,不想要中间这些圆孔的特征,这时候就需要掩膜。
打开上面菜单中的掩膜器,使用工具对不想要的特征进行掩膜,也就是覆盖上红色。
应用之后,训练图像,就会发现被红色遮挡的部分的特征就不会被提取出来了。
查看运行结果,勾选图形中诊断下的显示匹配特征,可以看出输入图像中中间区域没有匹配特征。匹配特征中绿色线表示匹配度良好,黄色线表示匹配度一般,红色线表示匹配度较差。绿色线越多,匹配程度越好,结果得分越高。
需要将训练参数中的训练模式改为带图像的形状模型才可以使用建模器。
打开建模器,提取特征轮廓,建模完成后,要想训练模板,还需要修改训练区域与原点中的训练区域下的区域模式修改为像素配对限定框,勾选训练参数中的忽略极性,这样才可以进行训练。
训练完成后,查看运行结果,只在建模区域中进行匹配。
在建模器中可以设置每条轮廓或线段的权重,双击线段,设置权重为10,即这一段线段所占比重是其他区域的10倍,所以建模时,可以把关键且数量较少的特征的权重变大。训练后,如果输入图形的这一条线段没有匹配上,那么对其结果得分会有很大影响,即得分会很低。
6补充
- 报错信息
训练模式下报错字符串信息
字符串消息 | 含义 |
10000,包含太少的特征 | 没有检测到足够的特征来训练一个可靠的模式,检查训练的特征显示。 |
10001,特征粒度难以选择 | 检查训练的特性显示。选择自动配置特性粒度时,才会返回此消息。 |
10100,模式可能没有预期的准确,因为训练模式显得模糊 | PatMax训练了一个模式,但由于模式是模糊的,可能会降低对齐结果的准确性。只有使用PatMax训练模式时,才会返回此结果 |
10101,模式可能没有预期的准确,无法可靠地测量自由度 | 经过训练的模式在指示的自由度方面可能是模糊的 |
10102,模式退化,结果可能会不稳定,因为在粗粒度限制下,所有的特征边界点都具有相同的方向 | 在粗粒度限制下,所有的特征边界点具有相同的方向,检查训练的特征显示。 |
10200,由于精细特征主导,模式运行缓慢 | 因为模式中大量的小特征,对齐可能需要更多时间。尝试手动指定更大的粗粒度值 |
运行模式下报错字符串信息
字符串消息 | 含义 |
20300,N个结果由于对比度阈值而丢失 | 因为对比度阈值低于指定的对比度阈值,故PatMax丢弃了一个或多个结果,可以降低对比度阈值来查看这些结果。 |
20301,N个结果由于接近较强的结果而被丢弃。 | 由于有更高的得分结果,所以PatMax丢弃了得分低的结果,可以增加查找概数或者接受阈值来显示这些结果。此消息中的分数值是近似的,因为在计算最终得分之前,结果被排除在处理之外了。 |
20302,N个结果由于杂斑影响而被丢弃 | 由于有太多杂斑丢弃了多个结果,可以设置忽略杂斑来查看所有丢弃的结果。 |
2.减小匹配时间的方法
减小匹配时间的方法:缩小运行参数中的角度,缩放的范围,提高接受阈值;匹配算法选择PatQuick;特征粒度的粗糙和精细调高,不勾选显示匹配特征。
在图形里面可以选择是否勾选显示匹配特征,勾选的话会在输出图像中显示找到的粗糙与精细特征绘制的图形。
勾选后会极大增加运行时间,在具体项目实施的时候建议取消勾选。
勾选 未勾选