结论
20FPS 确实异常,YOLO26n 在 RDK X5 上正常应达到 120-150FPS。既然你已按官方流程编译,问题可能出在推理调用方式或SDK 版本。
优先排查项
确认推理脚本调用方式
# 关键:是否使用了 hobot_dnn 调用 BPU?
# 错误示例:直接用 onnxruntime 推理
import onnxruntime as ort # ❌ 这是 CPU 推理
# 正确示例:使用 hobot_dnn
from hobot_dnn import Device, Model # ✅ 这是 BPU 推理
请确认:你运行的是哪个推理脚本?
- 官方示例路径:
rdk_model_zoo/samples/vision/ultralytics_yolo26/inference/ - 还是自己写的脚本?
检查模型编译输出
# 确认编译后生成的是 .hbmodel 格式
ls -lh *.hbmodel
# 查看模型信息(确认 BPU 版本)
hbm_model_info your_model.hbmodel
查看实际耗时分布
在推理脚本中添加时间戳:
import time
# 预处理前
t1 = time.time()
# 推理
outputs = model.process(inputs)
# 后处理前
t2 = time.time()
# 后处理完成
t3 = time.time()
print(f"预处理: {(t2-t1)*1000:.2f}ms")
print(f"推理: {(t2-t1)*1000:.2f}ms")
print(f"后处理: {(t3-t2)*1000:.2f}ms")
需要补充的信息
请回复以下内容,方便精准定位:
| 项目 | 你的情况 |
|---|---|
| 推理脚本 | 官方示例 / 自定义 |
| 模型格式 | .hbmodel 文件大小 |
| SDK 版本 | hobot_ddk --version 输出 |
| 输入分辨率 | 640 / 其他 |
| 耗时分布 | 预处理/推理/后处理各多少 ms |
快速自检命令
# 1. 确认板子型号
cat /proc/device-info | grep Product
# 2. 确认 DDK 版本
hobot_ddk --version
# 3. 查看模型编译信息
hbm_model_info your_model.hbmodel | head -20
# 4. 检查 BPU 负载(推理时运行)
top -d 1 # 看是否有 hbm_runtime 进程
相关社区案例
根据搜索结果,以下帖子可能有参考价值:
- RDK X5 的 YOLO26 范例为何仍使用 NMS? - 官方示例配置说明
- rdk x5 使用 model_zoo 量化部署 yolo26,几乎无法使用 - 转换流程问题排查
- 使用 rdk_model_zoo 上的导出 yolo26 效果很差 - 精度/性能问题
常见原因速查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 20FPS 左右 | CPU 推理 | 确认使用 hobot_dnn 调用 BPU |
| 精度差 | 量化配置错误 | 检查 export 脚本的量化参数 |
| 报错 missing lib | DDK 版本不匹配 | 升级最新 SDK |
先运行上面的自检命令,把输出贴出来,我可以帮你进一步分析具体是哪个环节的问题。