机器视觉康耐视VisionPro多模板匹配工具(三)
多模板匹配工具(CogPMAlignMultiTool)理论
顺序最近成功
此模式是顺序模式的变体。在这种模式下,可以评估队列中模式的顺序,并可以基于顺序搜索的结果进行修改。
队列中模式的顺序确定如下:
Ø来自最近搜索的结果列表首先被简化为分数大于或等于StopSequentialThreshold的一组结果。每个模式仅保留得分最高的实例。
Ø如果精简列表为空,则队列中模式的顺序保持不变。
Ø如果精简列表不为空,则将最高得分模式推到队列的最前面;得分第二高的模式位于第二位置,依此类推。
顺序最大成功
此模式是顺序模式的变体。在这种模式下,可以评估队列中模式的顺序,并且可以基于先前N次搜索的结果进行修改。N是由ResultStatisticWindowLength属性指定的用户定义的整数。
之前N次搜索运行的结果以直方图形式列出。对于每个模式,直方图记录在最近N次运行中找到的实例数,这些实例的得分大于或等于StopSequentialThreshold。
有关直方图的注意事项:
Ø对于所有模式,直方图在每次运行后都会更新:
Ø最早的结果(超过N个)被丢弃
Ø仅当分数大于或等于StopSequentialThreshold时才添加新结果。
Ø仅当更改ResultStatisticWindowLength或通过调用ResetResultStatistics时,才会清除直方图。
队列中模式的顺序确定如下:
Ø直方图中计数最高的模式被推到队列的前面。
Ø计数第二高的模式是第二,依此类推。
详尽的
此模式允许我们尝试查找队列中的所有模式。使用穷举模式可以实现计算托盘中不同零件的使用情况。穷举模式可以利用并行处理的优势。多模型队列中的模式可以使用CogVisionToolMultiThreading对象启用的尽可能多的内核同时并行执行。
返回的结果将有所不同,具体取决于ReportResultsFromOnePatternOnly值以及分数是否大于或等于AcceptThreshold。下表描述了结果:
ReportResultsFromOnePatternOnly | 假 | 真正 |
所有分数均大于或等于 AcceptThreshold | 返回从所有模式中找到的结果(请参见下面的示例1.)。 | 将返回得分最高于AcceptThreshold的模式结果。如果出现平局,将返回更高的得分模式(请参见下面的示例2)。 |
所有分数均小于AcceptThreshold | 返回从所有模式中找到的结果(请参见下面的示例1.)。 | 如果所有分数均不高于AcceptThreshold,则返回得分最高的模式的结果。如果出现平局,则返回结果列表中第一个模式的结果(请参见下面的示例3)。 |
为了说明运行时参数之间的交互,请考虑以下示例:
Ø多模型工具包含2个训练有素的图案:一个圆形和一个正方形。
Ø队列同时包含圆形和正方形。
Ø运行时图像具有三个圆圈和五个正方形。
返回的结果将根据ReportResultsFromOnePatternOnly的值而有所不同。
1.如果将ReportResultsFromOnePatternOnly设置为false,则返回从所有模式中找到的结果。
影响结果的运行时参数如下:
Øroximatenumbertofind设置为4。
ØAcceptThreshold设置为0.5。
以下结果处理如下:
返回两种模式的结果。
2.如果将ReportResultsFromOnePatternOnly设置为true,并且所有分数均大于或等于AcceptThreshold,则返回得分最高于AcceptThreshold的模式结果。如果出现平局,将返回更高的得分模式。
影响结果的运行时参数如下:
Øroximatenumbertofind设置为4。
ØAcceptThreshold设置为0.5。
以下结果处理如下:
Ø返回两种模式的结果。
Ø发现3个结果的分数高于圆形图案的阈值。
Ø发现4个结果的分数高于正方形图案的阈值。
Ø将返回得分最高于AcceptThreshold的模式结果。返回正方形图案的结果。
3.在将ReportResultsFromOnePatternOnly设置为true且分数小于AcceptThreshold的情况下,将返回得分最高的模式的结果。如果出现平局,则返回列表中第一个模式的结果。
影响结果的运行时参数如下:
Øroximatenumbertofind设置为4。
ØAcceptThreshold设置为0.98。
以下结果处理如下:
Ø返回两种模式的结果。
Ø发现3个结果的分数低于圆形图案的阈值。
Ø发现4个结果的分数低于正方形图案的阈值。
Ø由于圆具有最高的得分结果,因此返回圆图案的结果。

ReportResultsFromOnePatternOnly
一个运行时参数,用于指示仅应报告来自单个模式(队列中)的结果(如前所述)。
UseXYOverlapBetweenPatterns
用于确定是否将来自不同模式的评分较低的重叠结果丢弃的运行时参数,因此不计入应用于NumberNumberToFind阈值的总数。
近似数字查找
roximateNumberToFind属性通知PatMax有关要为队列中的每个模式定位的结果数。
PMAlign工具中返回的结果数量可能会让我们感到惊讶,因为在某些情况下,返回的结果比roximateNumberToFind指定的结果更多。多模型工具具有完全相同的行为,因为多模型使用相同的NumberNumberToFind值运行其模式。
多模型工具不会丢弃从定位每个模式返回的任何结果。
StopSequentialThreshold
StopSequentialThreshold参数仅在顺序模式下使用。该参数控制停止条件。此值必须大于AcceptThreshold。它不会更改PatMax搜索算法或单个模式返回的结果。
搜索订单队列
该队列可用于所有模式,并且在每次以SequentialMostRecentlySuccessful和SequentialMostSuccessful模式运行后都会更新。
我们可以对模式排队序列进行写访问。这使我们可以实施自己的序列修改启发式方法,该方法可以基于先前的结果或任何其他数据。
例如,我们可以决定在一组代表性的运行时图像上运行所有模式(在多模型中),然后将排队序列基于模型的相对评分。
在“多模型”工具中,每个结果都将标识生成它的模式。
局限性
多模型工具的局限性如下:
Ø仅支持8位图像类型CogImage8Grey。
Ø仅支持PatMax和PatQuick算法。
Ø不支持PatFlex和PatPerspective算法。
模式无法链接到QuickBuild中的“多模型”工具。可以将图案保存到磁盘并加载到“多模型”编辑控件中。

夜雨聆风