了解 Mech-MSR 工程中的数据流
关于数据流
在Mech-MSR中,每个“步骤”表示一个算法处理单元,它接收输入,执行计算,并输出结果。通过端口连接多个步骤以形成数据流,逐步处理各种类型的数据,最终完成整个测量和检测任务。

数据类型
在Mech-MSR工程中,数据类型描述的是步骤之间数据传输的基本形式,例如Surface(表面数据)、Profile(轮廓线)、Shape3D(三维几何特征)、Number(数值)等等。通常,相连端口的数据类型应相同,才能确保数据能够正确传递和处理。
单击此处,了解如何在Mech-MSR中查看端口数据类型
右键单击工程编辑区空白处,选择设置步骤端口显示选项,然后选择显示类型和名字或只显示类型选项,端口上可显示数据类型。端口的数据类型名称包含在一对<>
符号中,例如:<Surface>
、<Profile>
、<Number>
、<Shape3D>
。

你还可以从数据类型名称中获取以下信息:
-
名称后缀
-
:表示可选输入项。例如,多数步骤的输入端口对齐参数组(Pose-
)非必要输入,输入为空不会影响步骤运行。 -
名称后缀
[]
:表示端口的声明维度信息。参考数据维度小节了解详情。
框架循环
当实际输入数据维度大于端口声明维度,步骤运行时会根据端口声明维度对输入数据进行逐层循环处理。步骤的这一循环运行过程即为框架循环。
-
:若步骤需要进行框架循环,步骤卡片右下角会出现该循环图标,图标上的数字表示循环层数(层数为1时不显示数字)。
-
:若当前框架循环不可行,则出现该循环出错图标。

循环深度
循环深度表示步骤处理某端口数据时需要循环运行的层数,由端口上方的循环图标 表示,图标上的数字表示循环层数(层数为1时不显示数字)。
循环深度的计算公式:循环深度 = 实际输入数据的维度 - 端口声明维度。由此,可推算出数据的实际维度。
当步骤的多个端口均有输入时,需要确保各个端口数据的循环深度相同,否则步骤无法运行。 |
- 示例
-
如下图所示,“定位表面特征点”步骤的输入端口表面数据处出现
图标,表示该端口数据需要步骤逐层循环处理,循环深度为2。已知端口声明维度为0,则可得出实际输入数据的维度为2。
升维和降维
右键单击数据流,然后选择切片升维或合并降维选项,改变数据维度。

切片升维
切片升维通过对数据进行切片操作,将数据提升一个维度。数据升维后,端口上方会显示 图标。
|

合并降维
合并降维通过合并操作将多个数据合并,将数据降低一个维度。数据降维后,端口上方会显示 图标。
|

复用输入
若端口数据无法或者没有必要进行升维或降维操作,可选择步骤循环运行时反复使用维度较低的端口数据(即复用输入),从而确保步骤能正常运行。被复用的端口上方会显示 图标。
单击此处,查看功能入口
在步骤的参数配置区,展开运行标志,并勾选复用输入选项。

|
自动升维
当实际输入数据维度小于端口声明维度,系统会对输入数据进行自动升维操作,确保输入数据满足端口声明维度要求。若某一端口数据被自动升维,该端口上方会显示 图标,图标上的数字表示提升的维数(提升1个维度时不显示数字)。
与切片升维不同,自动升维通过整体打包的方式提升数据维度。 |
错误排查
CV-E0508:数据循环深度不一致
问题现象:
运行工程或步骤,弹窗提示某步骤“数据循环深度不一致,……”。
解决方案:
-
复用输入:若任意一个端口数据不是列表,尝试在步骤参数栏的“运行标志”下勾选复用输入。
-
降低维度:若循环深度较高的端口数据为数组(列表),右键单击数据流连线,选择合并降维降低数据维度,从而保证端口数据的循环深度一致。
-
提升维度:若循环深度较低的端口数据为数组(列表),右键单击数据流连线,选择切片升维提高数据维度,从而保证端口数据的循环深度一致。
-
检查各个端口的输入,确保输入数据正确。
CV-E0509:端口数据个数不一致
问题现象:
运行工程或步骤,弹窗提示某步骤“端口数据个数不一致,……”。
解决方案:
-
若个数较少的端口数据不是列表,在步骤参数栏的“运行标志”下勾选复用输入。
-
若个数较少的端口数据是列表,右键单击数据流连线,选择合并降维降低数据维度,然后在步骤参数栏的“运行标志”下勾选复用输入。
-
若以上方法仍无法解决问题,可尝试使用数据提取步骤或其他有效方法,确保端口数据个数一致。
无法通过切片操作增加维度
问题现象:
单击数据流,然后从右键菜单中选择切片升维,运行步骤或工程后,弹窗提示“无法通过切片操作增加维度,……”。
可能原因:
-
该端口的输入数据不是列表。
-
升维后维度超过步骤处理能力上限。
解决方案:
取消勾选切片升维选项。若存在循环深度不一致问题,可参考数据循环深度不一致问题寻求其他解决方案。如果问题仍未解决,联系梅卡曼德技术支持。
无法通过合并操作降低维度
问题现象:
单击数据流,然后从右键菜单中选择合并降维,运行步骤或工程后,弹窗提示“无法通过合并操作降低维度,……”。
可能原因:
-
该端口的输入数据已为0维,无法再降维。
-
该端口的输入数据不是列表,无法降维。
解决方案:
取消勾选合并降维选项。若存在循环深度不一致问题,可参考数据循环深度不一致问题寻求其他解决方案。如果问题仍未解决,联系梅卡曼德技术支持。