ON THIS PAGE

  • 模型转换
  • 总览
  • 转换指南
  • 故障排查

模型转换

总览

为了在我们的设备上充分使用HubAI的潜力, 它们需要被转换为它们要运行平台的 RVC 编译格式. 下面, 我们简单地分布说明, 指导使用我们的云服务在 HubAI 上进行转换. 对于本地 (离线) 模型, 请参考 Modelconverter 工具.

转换指南

转换一个 HubAI 模型:
  • 点击所需模型 (公有或私有)的图标, 下滑至 Model Variants 板块, 然后点击感兴趣的变体旁边的 Convert 按钮.
  • 这会打开一个弹窗, 列出了可以转换模型的所有的 (RVC) 平台. 选择感兴趣的平台. 请注意, 这些选项取决于上传的模型文件的格式. 简单地说, 只有 ONNX 格式允许所有支持的平台的转换.
  • 接下来, 系统会要求您填写模型的描述符和转换参数 (如果模型文件是NN存档, 则可能会预定义一些参数). 根据所选平台, 系统会要求您:
    • Model Instance Name: 在 HubAI 上转换的模型的名称(e.g. RVC2).
    • Ir version / Snpe version: 模型转换的目标格式版本.
    • Disable Onnx Simplification (OPTIONAL): 选择此选项可在转换期间禁用ONNX模型简化(用其常量输出替换冗余运算符).
    • Mo Args (OPTIONAL): 对于RVC2和RVC3(停止供应), OpenVINO Model Optimizer 用于将模型转换为IR格式. 您可以在此处指定自定义参数. 如果自定义参数和默认参数之间发生冲突, 自定义参数会始终保持优先. 请查阅 official documentation 以了解更多信息.
    • Compile Tool Args (OPTIONAL): 对于RVC2, OpenVINO compile tool 被用于编译模型进行推理. 您可以在此处指定自定义参数. 如果自定义参数和默认参数之间发生冲突, 自定义参数会始终保持优先. 请查阅 official documentation 获取更多信息.
    • POT Target Device: POT的目标设备 (仅RVC3). 最好设置为VPU, 如果失败则设置为ANY.
    • Shape: 网络的输入形状.
    • Scale Values: 用于每个通道的刻度值列表 (例如 123.675, 116.28, 和 103.53 用于 ImageNet).
    • Mean Values: 用于每个通道的平均值列表 (例如 58.395, 57.12, 和 57.375 用于 ImageNet).
    • Encoding From / Encoding To: 转换所需的输入通道顺序 (例如从 RGB 到 BGR 或 vice versa). Encoding From 定义基础模型的输入通道顺序, Encoding To 定义转换模型的所需顺序. 如果为两者传递相同的顺序, 则模型被转换, 而无需修改任何输入通道顺序.
    • Quantization Data: 对于RVC3和RVC4平台的转换, 执行量化以降低模型计算和内存成本 (在转换概念部分阅读更多内容 Conversion Concepts ). 这个过程需要将示例输入数据传递给模型. 目前没有上传自定义量化数据集的选项, 但我们提供了一些通用数据集供您选择 (从 Open Images V7forklift-1 数据集中提取的1024张图像的精选集). 为获得最佳量化结果, 选择与模型的训练数据集最相似的一个 (或使用允许指定自定义量化数据集的 Modelconverter 工具切换到局部转换):
      • Driving - 街道和车辆的图像 (OIv7 类 例如车辆, 小汽车, 交通灯等等);
      • Food - 水果, 蔬菜, 生食和预制食品的图像 (OIv7 类例如苹果, 沙拉, 披萨等等);
      • General - OIv7 图像的随机子集, 表示一组不同的对象和场景;
      • Indoors - 室内空间的图像 (OIv7 类例如桌子, 椅子, 壁炉等等);
      • Random - 随机像素图像;
      • Warehouse - 仓库内部图像 (叉车-1 图像的随机子集);
    • Max Quantization Images: 量化中使用的最大的图像数.
    • Target Precision: 量化的目标精度 (仅限RVC4). 有两个选项可用: FP16 (半精度浮点量化) 和 INT8 (整形量化). 如果您需要在速度和准确性之间取得平衡, 同时将量化效果降至最低, 请选择FP16, 如果您想要获得最佳性能和模型压缩, 并且可以接受潜在的次要精度权衡, 请选择INT8.
  • 填写完参数后, 点击 Export 按钮. 这将通过创建新的模型变型实例并将其状态标记设置为 Pending 来启动转换过程. 转换过程将需要几分钟才能完成, 具体取决于模型的大小和复杂性.
  • 转换完成由 Success 状态标记. 现在可以通过 DepthAI API 下载或引用该模型(查看 Inference 指南).

故障排查

并非所有模型都可以针对所需平台进行转换. 您可以按如下方式检查失败的转换日志:
  • Failed Conversions 部分找到"failed conversion job", 然后点击它的名称.
  • 点击右上角的 Logs 按钮下载转化日志, 或通过滚动页面底部的 Conversion process logs 直接检查它们.