几何定位工具介绍#

章节目标#

  • 了解什么场景下需要使用几何定位工具

  • 了解几何定位工具中配置器和算子的连接关系

  • 了解几何定位工具中的配置器和算子

支持的使用场景#

  • 特定目标定位:用于对具有稳定特征目标进行高精度定位的场景,支持同时对多个目标定位。

几何定位工具中配置器和算子的连接关系#

几何定位工具中的配置器#

标签类别参数配置器(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 类型。