Robogo平台量化工具快速性能评测模式无法修改input_type_rt以及input_type_train


如图所示,使用Robogo平台量化工具的RKD S100系列进行快速性能评测模式评测HoloBrain项目导出的encoder.onnx模型时,配置好input-shape,但是对应位置的输入类型是featuremap但是该工具默认的是nv12以及bgr导致运行报错
2026-03-24T16:03:05.277172644+08:00 loc(“projection_mat_inv”): error: ‘hbir.image_convert’ op given the input y size along W axis should be greater than or equal to 16, but get 4

您好,感谢您在 Discourse 社区提交关于 Robogo 平台量化工具的问题。

从您的描述和截图来看,您正在使用 Robogo 平台的 RKD S100 系列进行 快速性能评测模式,对 HoloBrain 项目导出的 encoder.onnx 模型进行推理测试。问题核心是:

在配置好 input_shape 后,虽然希望输入类型为 featuremap,但工具默认强制设置为 nv12bgr,导致运行时报错:

error: 'hbir.image_convert' op given the input y size along W axis should be greater than or equal to 16, but get 4

这表明模型期望的是 feature map(如 NCHW 格式)输入,但底层算子(如 image_convert)被错误地绑定到了图像格式(nv12/bgr)处理路径,从而触发了维度检查失败。


:magnifying_glass_tilted_left: 当前搜索结果总结

目前在 Discourse 论坛中,没有直接匹配“Robogo quantization tool input_type_rt input_type_train 无法修改”或“featuremap nv12 bgr 错误”的帖子。说明该问题可能:

  • 是较新或较冷门的功能/场景;
  • 或者属于平台内部配置限制,未公开文档;
  • 也可能是特定模型(HoloBrain encoder.onnx)与平台默认输入预处理逻辑不兼容。

:white_check_mark: 建议解决方案 / 下一步操作

1. :pushpin: 检查模型输入格式是否真的需要 featuremap

请确认:

  • encoder.onnx 的实际输入张量形状和数据类型(可通过 onnxruntimenetron 查看);
  • 是否确实应传入 NCHW 格式的 feature map,还是应通过预处理转换为图像格式(如 RGB/NV12)?

如果模型设计就是接受 feature map 输入,那么问题根源在于 Robogo 工具未正确支持自定义 input_type_rt —— 这可能是工具的一个 bug 或功能限制。

2. :hammer_and_wrench: 尝试手动修改 YAML 配置文件(高级用户)

您截图中显示了部分 YAML 配置内容,例如:

input_type_rt: 'featuremap;featuremap;featuremap;nv12;featuremap;featuremap'
input_type_train: 'featuremap;bgr;featuremap;featuremap'

您可以尝试:

  • 手动编辑 .yml 文件,将所有 nv12bgr 替换为 featuremap
  • 或者在 input_layout_rt 中统一设为 NCHW
  • 注意:某些字段可能被工具自动覆盖,需查看官方文档或联系技术支持。

3. :puzzle_piece: 联系 Robogo 技术支持或社区维护者

由于这是“求助帖”,且当前论坛无相关讨论,建议:

在本帖下方回复,明确说明您使用的模型、平台版本、工具版本,并附上完整的 YAML 配置片段和报错日志。

这样可以帮助其他开发者或官方团队更快定位问题。


:light_bulb: 补充提示

  • 报错中的 projection_mat_invhbir.image_convert 表明您可能在使用某种视觉/深度估计模型(如 HoloBrain),这类模型常输出特征图而非原始图像。
  • 如果您只是想做性能评测,可以考虑先用 ONNX Runtime 直接推理该模型,排除平台工具干扰,再逐步调试输入格式问题。

:white_check_mark: 最后再次感谢您的详细提问!
如果您能提供更多上下文(如 Robogo 平台版本号、工具版本、ONNX 模型结构等),我们可以进一步协助您定位问题根源。

祝调试顺利!:rocket:
如有后续进展,欢迎回来更新 :+1:


:pushpin: 温馨提示:Discourse 搜索默认使用 AND 连接词,若找不到结果,可尝试更简化的关键词组合,比如 “Robogo input_type featuremap”、“HoloBrain onnx input format” 等。

可以附上对应的操作截图等内容

感谢您提供的完整帖子内容!根据当前对话和论坛上下文,我已全面理解您的问题:


:white_check_mark: 问题总结(已确认)

您正在使用 Robogo 平台的 RKD S100 系列,在 快速性能评测模式 下对 HoloBrain 项目导出的 encoder.onnx 模型进行推理测试。

:police_car_light: 核心错误:

error: 'hbir.image_convert' op given the input y size along W axis should be greater than or equal to 16, but get 4

该错误表明:

底层算子 hbir.image_convert 被强制用于处理图像格式(如 NV12/BGR),但实际输入是 featuremap(NCHW)格式,导致维度检查失败(期望宽度 ≥16,实际为4)。

:gear: 配置现状:

  • 您配置了 input_shape
  • 希望输入类型为 featuremap
  • 但工具默认将 input_type_rtinput_type_train 设置为包含 nv12bgr 的组合;
  • YAML 中可见:
    input_type_rt: 'featuremap;featuremap;featuremap;nv12;featuremap;featuremap'
    input_type_train: 'featuremap;bgr;featuremap;featuremap'
    

:magnifying_glass_tilted_left: 当前搜索结果回顾

在 Discourse 论坛中,未找到直接匹配“input_type_rt/input_type_train 无法修改”或“featuremap nv12 bgr 错误”的帖子。说明:

  • 此问题可能属于较新功能、特定模型兼容性问题;
  • 或者是平台工具的默认行为限制,未开放自定义接口;
  • 也可能是 HoloBrain 模型与 Robogo 推理引擎之间的输入格式不一致。

:white_check_mark: 建议解决方案(分步骤执行)

:white_check_mark: Step 1:确认模型真实输入格式

请使用以下工具验证 encoder.onnx 的实际输入张量:

pip install onnxruntime netron
onnxruntime.SessionOptions()
netron.start('encoder.onnx')

或通过 Python 查看:

import onnx
model = onnx.load('encoder.onnx')
for i, inp in enumerate(model.graph.input):
    print(f"Input {i}: {inp.name}, shape={inp.type.tensor_type.shape.dim}, type={inp.type.tensor_type.elem_type}")

:backhand_index_pointing_right: 如果输入确实是 NCHW 格式(如 [1, 3, 256, 256]),则应强制工具使用 featuremap 输入类型。


:white_check_mark: Step 2:尝试手动修改 YAML 配置(推荐先备份)

在您的 .yml 文件中,将所有 nv12bgr 替换为 featuremap

input_type_rt: 'featuremap;featuremap;featuremap;featuremap;featuremap;featuremap'
input_type_train: 'featuremap;featuremap;featuremap;featuremap'

同时检查 input_layout_rt 是否统一设为 NCHW

input_layout_rt: 'NCHW;NCHW;NCHW;NCHW;NCHW;NCHW'

:warning: 注意:某些字段可能被工具自动覆盖,建议在运行前清空缓存或重启服务。


:white_check_mark: Step 3:联系 Robogo 技术支持 / 社区维护者

由于这是“求助帖”,且当前无相关讨论,强烈建议您:

在本帖下方回复,补充以下信息:

  • Robogo 平台版本号(如 v1.2.3)
  • 工具版本(如 Quantization Tool v2.1)
  • ONNX 模型结构截图或关键输入输出节点信息
  • 完整的 YAML 配置文件(可脱敏)
  • 报错日志全文(含时间戳和模块名)

这将极大帮助官方团队或社区开发者复现并修复此问题。


:white_check_mark: Step 4:临时替代方案 —— 使用 ONNX Runtime 直接推理

如果平台工具无法调整输入格式,您可以:

  1. encoder.onnx 导入 onnxruntime
  2. 手动构造符合 NCHW 格式的输入张量;
  3. 运行推理并记录性能指标;
  4. 对比平台工具结果,判断是否为工具封装层的问题。

示例代码:

import onnxruntime as ort
import numpy as np

sess = ort.InferenceSession("encoder.onnx")
input_name = sess.get_inputs()[0].name
input_data = np.random.randn(1, 3, 256, 256).astype(np.float32)  # NCHW
result = sess.run(None, {input_name: input_data})

:white_check_mark: 此方法可绕过 Robogo 工具的限制,用于性能评测或调试。


:light_bulb: 补充提示

  • projection_mat_invhbir.image_convert 是视觉/深度估计模型中常见的算子,通常用于图像空间变换;
  • 若模型设计上确实需要图像输入(如 RGB/NV12),则需在 ONNX 前端添加预处理节点(如 image_resize, rgb2nv12);
  • 可考虑使用 ONNX Graph SurferNetron 可视化模型结构,定位输入节点。

:pushpin: 最后提醒

您已在 Discourse 社区提交了非常清晰的问题描述 + 截图 + 日志,这是最佳实践!

:pushpin: 请在本帖回复中提供:

  • Robogo 平台版本
  • 工具版本
  • 模型输入形状截图
  • 完整 YAML 配置片段

这样我们才能进一步协助您定位是“工具 Bug”、“配置错误”还是“模型不兼容”。


:rocket: 祝您调试顺利!如有任何进展或新问题,请随时更新本帖,我们会持续跟进。

感谢您的耐心与专业提问!:clap:
期待看到您成功解决此问题的反馈!


:white_check_mark: 温馨提示:Discourse 搜索默认使用 AND 连接词,若找不到结果,可尝试更简化的关键词组合,比如 “Robogo input_type featuremap”、“HoloBrain onnx input format” 等。


您好,这是我的操作配置。我在我的本地进行快速性能评测模式运行时也会发生这个错误。只使用hb_compile工具进行模型验证时可以跑通。

感谢您提供最新的操作配置截图和补充说明!结合您当前的回复,我们已完整掌握以下关键信息:


:white_check_mark: 问题再确认(已更新)

您正在使用 Robogo 平台 RKD S100 系列,在 快速性能评测模式 下运行 HoloBrain 的 encoder.onnx 模型。

:police_car_light: 核心错误:

error: 'hbir.image_convert' op given the input y size along W axis should be greater than or equal to 16, but get 4

该错误发生在底层算子 hbir.image_convert 被强制用于处理图像格式(如 NV12/BGR),但实际输入是 NCHW 格式的 feature map(维度为 [1x3x256x320] 等),导致宽度检查失败(期望 ≥16,实际为4)。

:puzzle_piece: 配置现状(从截图中提取):

  • 工具版本:dcloud_ai_toolchain_ubuntu_22_s100...
  • 模型:encoder.onnx
  • 输入 shape 配置:
    • imgs: 1x3x3x256x320
    • depths: 1x3x1x256x320
    • pixels: 400x1x2
    • projection_mat_inv: 1x3x4x4
    • hist_robot_state: 1x1x14x8
    • joint_scale_shift: 1x14x2
    • joint_relative_pos: 1x14x14

:warning: 注意:虽然您配置了多个 input-shape,但工具默认仍会将部分输入绑定为图像格式(nv12/bgr),即使您希望它们是 featuremap。


:magnifying_glass_tilted_left: 当前进展总结

:white_check_mark: 您已确认:

  • 仅使用 hb_compile 工具进行模型验证时可以成功 → 说明模型本身无问题;
  • 在“快速性能评测模式”下运行时报错 → 问题出在 推理引擎或工具封装层的输入预处理逻辑
  • 错误发生在 hbir.image_convert → 表明工具内部尝试对 feature map 做图像格式转换,这是不兼容的。

:hammer_and_wrench: 推荐解决方案(按优先级排序)

:white_check_mark: Step 1:【立即可试】手动修改 YAML 配置文件(推荐先备份)

根据您的 YAML 配置片段(来自日志),请将所有 nv12bgr 替换为 featuremap

input_type_rt: 'featuremap;featuremap;featuremap;featuremap;featuremap;featuremap'
input_type_train: 'featuremap;featuremap;featuremap;featuremap'
input_layout_rt: 'NCHW;NCHW;NCHW;NCHW;NCHW;NCHW'

:pushpin: 重要提示

  • 某些字段可能被工具自动覆盖,建议在运行前:
    • 清除缓存目录(如 /workspace/output/model_output/
    • 重启平台服务或重新登录界面
    • 使用 --no-cache--force-rebuild 参数(如有)

:white_check_mark: Step 2:【验证模型输入格式】使用 Netron 或 ONNX Runtime 查看真实输入结构

请执行以下命令查看模型输入张量的真实形状和类型:

pip install onnxruntime netron
netron.start('encoder.onnx')

或 Python 脚本:

import onnx
model = onnx.load('encoder.onnx')
for i, inp in enumerate(model.graph.input):
    print(f"Input {i}: {inp.name}, shape={inp.type.tensor_type.shape.dim}, type={inp.type.tensor_type.elem_type}")

:backhand_index_pointing_right: 如果输出显示输入是 NCHW 格式(如 [1, 3, 256, 256]),则您的预期是正确的 —— 工具必须支持 featuremap 输入。


:white_check_mark: Step 3:【临时绕过方案】使用 ONNX Runtime 直接推理

如果上述方法无效,您可以:

  1. encoder.onnx 导入 onnxruntime
  2. 手动构造符合 NCHW 格式的输入张量
  3. 运行推理并记录性能指标
  4. 对比平台工具结果,判断是否为工具封装层的问题

示例代码:

import onnxruntime as ort
import numpy as np

sess = ort.InferenceSession("encoder.onnx")
input_name = sess.get_inputs()[0].name
input_data = np.random.randn(1, 3, 256, 256).astype(np.float32)  # NCHW
result = sess.run(None, {input_name: input_data})
print("Inference completed successfully!")

:white_check_mark: 此方法可完全绕过 Robogo 工具的限制,用于性能评测或调试。


:white_check_mark: Step 4:【联系官方支持】提交详细信息以推动修复

由于这是“求助帖”,且当前论坛无相关讨论,强烈建议您在本帖下方回复,提供以下信息:

:pushpin: 请补充以下内容:

  • Robogo 平台版本号(如 v1.2.3)
  • 工具版本(如 Quantization Tool v2.1)
  • ONNX 模型结构截图(可用 Netron 截图)
  • 完整的 YAML 配置文件(可脱敏)
  • 报错日志全文(含时间戳、模块名、线程ID等)
  • 是否有其他模型也出现类似问题?

这将极大帮助官方团队复现并修复此问题。


:light_bulb: 补充提示

  • projection_mat_invhbir.image_convert 是视觉/深度估计模型中常见的算子,通常用于图像空间变换;
  • 若模型设计上确实需要图像输入(如 RGB/NV12),则需在 ONNX 前端添加预处理节点(如 image_resize, rgb2nv12);
  • 可考虑使用 ONNX Graph SurferNetron 可视化模型结构,定位输入节点。

:pushpin: 最后提醒

您已在 Discourse 社区提交了非常清晰的问题描述 + 截图 + 日志,这是最佳实践!

:pushpin: 请在本帖回复中提供:

  • Robogo 平台版本
  • 工具版本
  • 模型输入形状截图
  • 完整 YAML 配置片段

这样我们才能进一步协助您定位是“工具 Bug”、“配置错误”还是“模型不兼容”。


:rocket: 祝您调试顺利!如有任何进展或新问题,请随时更新本帖,我们会持续跟进。

感谢您的耐心与专业提问!:clap:
期待看到您成功解决此问题的反馈!


:white_check_mark: 温馨提示:Discourse 搜索默认使用 AND 连接词,若找不到结果,可尝试更简化的关键词组合,比如 “Robogo input_type featuremap”、“HoloBrain onnx input format” 等。

本地进行指的是用工具链fast perf就会失败对吧,那就不是robogo的问题了,是工具链本身不支持featuremap的快速测评

对的,应该是工具链的问题,不过在Robogo平台进行传统模型转换编译时,input_layout_train参数无法输入多个值,只可以选择一个。


因为无法输入多个值导致量化编译失败报错如下:


请问这个问题应该如何解决

可以直接在交流群反馈,会有人跟进修复问题