本页目录

  • 常见问题
  • 转换参数不正确
  • 模型转换成功但预测结果不正确
  • 不兼容的模型格式
  • 不支持的操作
  • 模型架构问题
  • SNPE 兼容性

故障排除

并非所有模型都能成功转换为目标 RVC 平台。 以下列出了转换过程中可能出现的常见问题。

常见问题

转换参数不正确

通常,输入/输出张量的形状、名称或类型会不匹配。解决方案: 仔细检查您的模型和所有转换参数的含义,并相应地进行调整。 您可以使用 Netron 工具来研究 ONNX 模型的特性。

模型转换成功但预测结果不正确

转换可能成功,但运行时预测结果仍然错误。 这通常意味着编译后的模型接收到了错误的输入解释,或者输出结果被错误地解读。解决方案: 在源框架、ONNX 和转换后的模型上对比同一张测试图像,然后验证以下各项:
  • 输入张量的名称、形状、布局和数据类型与源模型匹配。
  • encoding.from 与源模型训练时的颜色顺序匹配,且运行时输入与 encoding.to 匹配。
  • 归一化只应用一次。如果转换将均值和缩放因子烘焙到了导出的模型中,则不要在主机上重复该归一化操作。
  • 导出的 config.jsonmean: nullscale: null 可能是正确的;这通常意味着预处理已经烘焙到了编译后的模型中。
  • 调整大小、裁剪和填充行为仍然与原始的训练或推理流程一致。
  • 如果模型需要语义后处理,则类名称、解析器元数据和 heads 配置必须存在。

不兼容的模型格式

源模型格式可能不受转换平台支持,或者目标格式可能与模型的某些特性不兼容。解决方案: 建议首先将源模型转换为 ONNX 格式,因为这样在针对相应 RVC 平台进行转换时可提供最多的选项。

不支持的操作

源模型可能包含转换工具或目标模型格式不支持的操作。解决方案: 请查阅您计划运行转换的目标平台对应的 支持的操作 如果该操作不受支持,请考虑用支持的可选方案替换它。 如果没有可用的替代方案,请考虑将模型拆分为更简单的组件,这些组件可以单独转换,并将有问题的部分交给主机端处理。 您可以使用 onnx-modifier 工具对 ONNX 模型进行修改。

模型架构问题

复杂或非标准的模型架构可能会导致转换问题。解决方案: 如果可能,简化模型架构。 考虑使用 onnx.checker 工具来识别 ONNX 模型中的潜在问题。

SNPE 兼容性

如果您正在排查 RVC4 转换或运行时问题,请确保用于导出模型的 SNPE 版本与您正在运行的 Luxonis OS 镜像中捆绑的 SNPE 运行时以及 DepthAI 版本匹配。使用下表作为快速兼容性参考:
SNPE 版本DepthAI 版本Luxonis OS 版本
2.32.63.0.03.6.11.11.01.25.3
2.41.03.6.1 及更新版本1.25.3 及更新版本