rdkx5 yolov8-seg模型反量化出现问题

一般帧率多少才正常

:bar_chart: RDK X5 上 YOLOv8-seg 正常帧率参考


:white_check_mark: 官方参考帧率(INT8 量化模型)

模型 实现方式 正常帧率 来源
YOLOv8n-seg C++ 官方例程 45-55 FPS rdk_model_zoo
YOLOv8s-seg C++ 官方例程 30-40 FPS rdk_model_zoo
YOLOv8n-seg Python 优化后 20-25 FPS 社区案例
YOLOv8s-seg Python 优化后 15-20 FPS 社区案例

:magnifying_glass_tilted_left: 你的 15 FPS 是否正常?

情况 帧率 是否正常
Python + 未优化 10-15 FPS :warning: 偏低但有解释
Python + 已优化 20-25 FPS :white_check_mark: 正常
C++ 官方例程 45-55 FPS :white_check_mark: 正常
你的当前状态 15 FPS :cross_mark: 偏低,需排查

:bullseye: 15 FPS 的可能原因

原因 排查方法 解决
模型输出是 int32 horizon_nn 检查 dtype 重新量化(保留 Dequantize)
后处理未优化 添加耗时统计 应用 5 项 Python 优化
摄像头采集慢 耗时统计中看"采集"项 降低分辨率或换摄像头
JPEG 编码太慢 耗时统计中看"编码"项 降低质量或跳帧推流
系统负载高 top 命令查看 CPU 关闭其他进程

:high_voltage: 立即排查清单

# 1. 确认模型输出类型(最关键!)
python3 -c "
import horizon_nn as nn
model = nn.HBModel('/home/sunrise/yolov5_best_quant(kl.bin')
for i, out in enumerate(model.outputs):
    print(f'output_{i}: shape={out.shape}, dtype={out.dtype}')
"

# 2. 添加耗时统计(定位瓶颈)
# 用我之前给的 cam_thread 修改版

# 3. 检查系统负载
top -d 1

# 4. 测试官方 C++ 例程(对比硬件极限)
cd ~/rdk_model_zoo/demos/Seg/YOLOv8-Seg/build
./yolov8_seg_demo ../model/yolov5_best_quant\(kl.bin ../model/labels.txt

:clipboard: 预期结果对照

模块 正常耗时 你的耗时 状态
BPU 推理 15-25ms ? 待确认
后处理 15-20ms ? 待确认
JPEG 编码 5-10ms ? 待确认
总计 40-55ms (18-25 FPS) ~67ms (15 FPS) :cross_mark: 偏高

先把模型输出类型和耗时统计贴出来,我帮你精确定位哪一步拖慢了帧率!

如果是 float32 输出但只有 15 FPS,说明后处理或编码还有优化空间;如果是 int32 输出,必须重新量化!