几何匹配工具介绍#
章节目标#
了解什么场景下需要使用几何匹配工具
了解几何匹配工具中配置器和算子的连接关系
了解几何匹配工具中的配置器和算子
算法升级
如何调整训练和推理参数
支持的使用场景#
特定目标定位:用于对多个相似2D工件做高精度定位。相对于AI定位,几何匹配只需要一个模版作为训练集,秒级训练时间,且无需GPU即可得到快速和准确的定位结果。同时,由于此工具参数较多,如何根据图像特点调整参数以获得最优的效果有一定难度,需要用户对图像处理知识有一定的了解。
几何匹配工具中配置器和算子的连接关系#
详细参数定义及各配置器输入输出请参考 工具及详细流程图
几何匹配工具中的配置器#
标签类别参数配置器(label_classes.conf)#
描述:用于配置定位工具中可能出现的目标类别列表(
visionflow::param::LabelClasses),例如[螺钉, 电阻],目标标签列表会被用于标注器以提前确定类别范围。几何匹配支持同时定位多个目标,每种类别的标签只能有一个。标注时应保持矩形框紧贴目标,如标注框过大,会导致匹配效率下降。
标注器参数配置器(label_oper.conf)#
描述:用于配置标注器的自定义附加参数(
visionflow::param::BinaryPacks),例如不同标注类别对应的标注样式(纹理、颜色、线宽、线型等)。为了生成几何匹配工具所需要的标注,在几何匹配工具中我们引入了标注器算子,由于目前标注过程需由人工标注产生,所以标注器算子中的执行逻辑交由人工操作实现而标注器中需要提供较多的几何匹配标注工具,这些标注工具的参数是需要维护在visionflow工程数据中的,且这些参数是由标注器的设计者决定,因此当前标注器参数配置提供了一个较灵活自动的自定义二进制数据类型,以让标注器开发者可以自动设置参数。
几何匹配工具训练器(trainer)#
描述:几何匹配工具训练器,用于生成几何匹配工具模型。
几何匹配工具中的算子#
标注器算子(label_oper)#
描述:用于产生某张图像上的目标标注、掩模、不学习区域。标注器算子在当前几何匹配工具中是一个占位算子,实际无法自动运行,需要交给标注器开发者自己触发运行。
如何产生标注:通过直接给label_oper算子设置输出对应的目标标注、不学习区域(VFLOW:Without-Training)来完成标注过程。
Warning
目标标注需要根据所在视图的状态(已标注在训练集在中(train)、已标注在测试集中(test)、已标注未知集合(unknown))来进行相应的状态更新,否则会影响view_tagger的正常功能
视图标签算子(view_tagger)#
描述:在visionflow中,视图有四种状态,已标注在训练集在中(train)、已标注在测试集中(test)、已标注未知集合(unknown)、未标注(unlabel)。当几何匹配工具的前序工具的推理结果发生改变时,view_tagger可以复用之前已有的标注用于生成新的视图的状态。
基本原理:在标注器算子中,生成的标注均带有标签,以表示某个标注是在train、test、unknown状态,当前序工具推理结果发生改变并生成新的view时,会计算新的view和当前已有标注的IOU值,若某个view能找到CIOU大于指定阈值的标注,则将该标注的状态赋予该view。
推理算子(infer)#
描述:将输入的视图经过推理,并根据预设的阈值进行过滤,只保留概率值高于阈值的目标区域,并进行非极大值抑制(NMS)操作,输出最终的目标识别结果。其输出为
visionflow::props::PolygonRegionList类型。
算法升级#
在visionflow0.10.3及以前的版本中,使用的几何匹配工具为旧版。在当前版本中,我们对几何匹配工具做了全面升级,且支持同时定个多个类别的目标。对于旧版的几何匹配工具,用新版可以正常打开、训练和推理,原有的模型也可以正常使用。但建议用户尽早升级为新版的几何匹配工具,以获得更好的效果,同时旧版的几何匹配工具也会在未来某个版本移除。使用新版VisionFlow创建的几何匹配工具默认为新版,且不能再创建旧版的工具。新版与旧版使用同样的加密狗。
如何调整训练和推理参数#
训练#
原理:首先需要提供含有一个待检产品的训练模板,用于进行模型训练。提取模版上的边缘点,找出边缘点之间的连线形成边缘链,再将边缘链的信息保存下来用于比对即完成训练。
参数 |
推荐值 |
调整方式 |
|---|---|---|
选择图像页面 |
0 |
|
手动参数 |
否 |
|
最小对比度 |
30 |
|
最小特征链长度 |
5 |
|
最小可区分像素数 |
16 |
|
特征点缩减 |
自动缩减 |
|
推理#
原理:根据搜索范围(包括旋转范围和缩放范围)将训练好的模板扩增,然后在金字塔顶层逐一与图像上每个位置进行比对,当相似度超过阈值时,即找到了一个匹配结果。搜索完顶层的后,再将结果逐层映射到底层,确定目标的准确位置和角度。直到在指定像素精度找到了所有目标后完成推理。
参数 |
推荐值 |
调整方式 |
|---|---|---|
角度旋转范围 |
-180~180 |
|
缩放范围 |
1~1 |
|
长宽比范围 |
1~1 |
|
极性 |
严格一致 |
|
最小对比度 |
0 |
|
匹配分数 |
0.5 |
|
匹配个数 |
1 |
|
贪婪度 |
0.9 |
|
目标交叠率 |
0.5 |
|
像素精度 |
1像素 |
|
允许超出边界 |
否 |
|