了解步骤控制流

本节将介绍Mech-Vision步骤中的控制流,以及如何使用控制流。

在Mech-Vision中,一般的步骤运行流程是根据数据流由上而下进行的,在步骤使用过程中,还可以为步骤配置控制流,用于步骤或流程的触发。如果当前步骤被接入控制流,当该控制流被触发时,该步骤才会运行,如果控制流未被触发,则该步骤不会运行。

如下图所示,为视觉工程中的两个视觉处理流程,红色箭头为控制流。当控制流未被触发时,运行 D → E → F 流程;当控制流被触发时,运行 D → E → F 流程的同时,也将运行 A → B → C 流程。

workflow

在Mech-Vision工程编辑区,步骤处于选中状态时,两侧的点即为控制流连接点。左侧的连接点可连接输入控制流,用于其他步骤触发该步骤运行;右侧的连接点可连接输出控制流,用于该步骤触发其他步骤运行。

control flow connection point

在使用过程中,可根据实际需求连接输入控制流和输出控制流,无需全部连接。

下文将介绍三种常见的控制流使用方法。

根据布尔值触发控制流

在配置视觉工程时,常在工程中添加“分支”,不同的“分支”对应不同的视觉处理流程,然后根据不同的规则触发不同的“分支”,用于在不同情况下运行不同的视觉处理流程。

通常使用根据布尔值触发控制流步骤进行触发操作,该步骤通常与输出布尔值的步骤连用,例如根据阈值对数值进行二分类步骤。

如下图所示,展示了当点云置信度符合指定要求时进行点云变换的视觉处理流程,该流程中各个环节的具体说明如下。

  1. “点云聚类,并输出符合条件的点云”步骤输出点云置信度。

  2. “根据阈值对数值进行二分类”步骤判断上一步的点云置信度是否超过设定阈值,如果超过阈值,则布尔值结果为 False,反之为 True。

  3. “根据布尔值触发控制流”步骤获取到上一步的布尔值结果后,根据布尔值结果触发“点云变换”步骤,然后继续运行后续步骤。

trigger control by flag example

有/无输出时触发控制流

在运行视觉工程时,可能会遇到步骤无输出的情况,如果工程中有多个视觉处理流程,可通过进行相关设置来触发另一“分支”运行。同样,也可以在步骤有输出时,触发另一“分支”运行。

在工程配置过程中,首先需在运行标志处用于触发控制流的步骤勾选有输出时触发控制流无输出时触发控制流

trigger control flow with output example 1

以勾选有输出时触发控制流为例,如下图所示,“3D匹配”步骤有输出时,将触发“点过滤”步骤运行,然后继续执行后续步骤。

trigger control flow with output example 2

使用控制流禁用无关步骤

在实际的项目中,由于硬件更新或其他相关因素,某些步骤可能会变得不再必要。然而,出于对未来可能性的考虑或记录历史操作的需要,可能仍希望保留这些步骤。在这种情况下,可使用控制流禁用这些与当前需求不相关的步骤,确保工程的灵活性和可追溯性。

如下图所示,如果想跳过“点云降采样”步骤,直接运行“点过滤”以及后续步骤,可在左侧添加“点过滤”步骤,并将输出控制流连接至“点云降采样”步骤,即可禁用右侧的视觉处理流程,在运行工程时,将只执行左侧的视觉处理流程。

使用控制流禁用无关步骤时,无需在运行标志处为触发控制流的步骤勾选有输出时触发控制流无输出时触发控制流

annotate irrelevant steps example

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。