定位工具介绍#

章节目标#

  • 了解什么场景下应该选用定位工具

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

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

支持的使用场景#

  • ROI提取:输出目标类别和矩形框。能够将目标截取完整,供后续模块进行处理。
    • 目标的确定性比较高,通常为固定的刚体平面件,也可以稍有变形。对各类干扰比较鲁棒

    • 精度有一定要求,但不严苛(位置精度1~2像素,角度偏差3°内)

  • 高精度定位 :输出特定特征的精确姿态(位置精度1像素,角度偏差1°内)

支持两种主要的使用方式:

  • 单点法:标注时,用一个旋转矩形将目标框住;模型推理的输出结果也是将目标框住的旋转矩形。类似于支持旋转的目标检测

  • 多点法:标注时,手动选取若干个特征明显的点(关键点)分别标出;模型推理的输出结果是各个关键点的位置,再通过“模板匹配”功能将各个点的结果进行整合,输出目标级的姿态结果

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

定位工具中的配置器#

标签类别参数配置器(label_classes.conf)#

  • 描述:用于配置定位工具中可能出现的目标类别列表(visionflow::param::LabelClasses),例如[螺钉, 电阻, 焊板的角点],目标标签列表会被用于标注器以提前确定类别范围

Warning

  • 背景类为默认类别,不需要显式设置在LabelClasses中

  • 不能出现重复的缺陷类别名

标注器参数配置器(label_oper.conf)#

  • 描述:用于配置标注器的自定义附加参数(visionflow::param::BinaryPacks),例如不同标注类别对应的标注样式(纹理、颜色、线宽、线型等)。为了生成定位工具所需要的标注,在定位工具中我们引入了标注器算子,由于目前标注过程需由人工标注产生,所以标注器算子中的执行逻辑交由人工操作实现而标注器中需要提供较多的定位标注工具,这些标注工具的参数是需要维护在visionflow工程数据中的,且这些参数是由标注器的设计者决定,因此当前标注器参数配置提供了一个较灵活自动的自定义二进制数据类型,以让标注器开发者可以自动设置参数。

图像均值配置器(image_mean_conf)#

  • 描述:用于计算训练集中的视图的灰度均值,灰度均值会被用于训练及推理过程中对输入视图进行提前减均值操作。

  • 基本原理:统计训练集中所有视图各通道的灰度总和并除以训练集图像总数。

定位工具训练器(trainer)#

  • 描述:基于AI算法的定位工具训练器,用于生成定位工具模型。

定位工具中的算子#

标注器算子(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)#

  • 描述:将输入的视图经过推理网络计算后得到对应的目标特征图( visionflow::props::FeatureMap ), visionflow::props::FeatureMap 是一个多张灰度图的集合,表征视图上对应的像素点属于对应类目标的概率以及其对应的宽高和角度信息。

trt模型推理算子(trt_infer)#

  • 描述:与infer算子功能相同,当需要推理trt模型时选择trt_infer算子。

推理结果过滤算子(filter)#

  • 描述:将推理算子的输出的特征图,根据预设的阈值进行过滤,只保留概率值高于阈值的目标区域,并进行非极大值抑制(NMS)操作,输出最终的目标识别结果。其输出为 visionflow::props::PolygonRegionList 类型。

推理结果模板匹配算子(object_matcher)#

  • 描述:用于“多点法”的使用方式。此时推理结果为一系列的特征点,需要将这些点的结果进行整合,输出目标级的信息。其输出为 visionflow::props::PolygonRegionList 类型。

模板由一系列关键点来描述。根据这些点的位置关系,在推理结果中找到满足同样关系的点集,整合成目标结果。

推理结果比对算子(comparator)#

  • 描述:计算推理结果和对应标注的相似性,得到最终模型效果的评价指标:目标召回率、目标精确率

  • 基本原理:参考 模型评估