了解步骤数据流
本节将介绍Mech-Vision工程中的数据流,以及数据类型、数据维度、框架循环与常见问题排查方法。
数据类型
数据类型描述端口上传输的数据形式,例如图像、点云、位姿、数值等。
建立数据流时,输入端口与输出端口的数据类型必须兼容,否则无法创建连接。关于连接操作,可参考创建和删除步骤之间的连接。
|
调试工程时,可结合运行步骤并查看可视化输出结果确认上游步骤输出的数据类型与下游步骤预期是否一致。 |
数据维度
数据维度表示数据的结构层级。
-
端口声明维度
表示端口期望接收或输出的数据维度。通常在数据类型后通过
[]表示维度层级。例如:
-
Pose:零维数据; -
Pose []:一维数据; -
Pose [][]:二维数据。 -
实际输入/输出数据维度
表示步骤运行时端口上实际传输的数据维度。实际维度可能大于、等于或小于端口声明维度。
框架循环
当实际输入数据维度大于端口声明维度时,步骤会按层循环处理输入数据,这一过程称为框架循环。
当步骤存在多个输入端口时,需要保证各端口在运行时的循环层级可以对齐,否则步骤可能无法按预期运行。
循环深度
循环深度表示步骤处理某端口数据时需要循环的层数,可理解为:
循环深度 = 实际输入数据维度 - 端口声明维度
当步骤多个输入端口的循环深度不一致时,通常需要通过调整维度或启用复用输入来对齐。
升维和降维
当端口间循环深度不一致时,可在数据连线上进行升维或降维操作,调整数据结构,使输入更容易对齐。
-
切片升维:将数据提升一个维度。
-
合并降维:将数据降低一个维度。
|
具体可用性取决于当前数据是否为列表结构以及步骤本身的处理能力。若无法通过升维或降维解决,可结合复用输入处理。 |
复用输入
当某个端口数据无法或不适合进行升维、降维时,可启用复用输入,在步骤循环运行时重复使用维度较低或数量较少的输入数据,从而帮助步骤继续运行。
该参数入口位于步骤参数选项卡的运行标志分组,详细说明可参考了解步骤通用参数。
顶层维度
部分步骤的输入端口没有固定声明维度,可直接继承上游输入数据的维度作为当前端口处理依据。这种情况可理解为顶层维度输入。
在工程调试时,若某端口维度表现与预期不一致,可优先检查其上游输出结构以及该端口是否属于此类输入方式。
错误排查
数据循环深度不一致
问题现象:
运行步骤或工程时,提示多个输入端口循环层级不一致。
解决方案:
-
检查各输入端口的实际数据结构,确认上游输出是否符合预期。
-
尝试在数据连线上进行切片升维或合并降维,使端口循环深度对齐。
-
视场景启用步骤的复用输入,帮助对齐输入。
端口数据个数不一致
问题现象:
运行步骤或工程时,提示多个输入端口的数据个数不一致。
解决方案:
-
检查上游步骤输出的数据个数与组织方式。
-
对数据个数较少的端口,尝试启用复用输入。
-
若有必要,可先通过维度调整再配合复用输入进行处理。