编辑
2025-07-04
嵌入式
00

像RDK,RK这种带BPU,NPU的INT算力处理单元的开发板,一般要部署模型都要先进行从float32量化成int8或者int16。本文整理一遍其他教程方便记录。

参考的文章:

github官方文档:YOLOv11 Detect

CSDN博客:rdkx5部署yolov11

RDK论坛帖子:RDKx5板载yolov11我也是成功了!

RDK论坛帖子:YOLOv11,地瓜RDK X5开发板,TROS端到端140FPS!

这里主要记录差异点: 这一部分其实可以直接修改pip下载的ultralytics包的源码而不用卸载ultralytics整个包并且拉取ultralytics的git仓库源码: 假设你的Python虚拟环境路径为~/yolov11-env/ 那么在 ~/yolov11-env/lib/python3.11/site-packages/ultralytics/nn/modules 路径下就能找到head.py,注意不同版本的ultralytics 里面的Detect类的forward方法所在的位置不一样。

image.png

其他的内容就按照参考文章来 对于github官方文档:YOLOv11 DetectRDK论坛帖子:RDKx5板载yolov11我也是成功了!里面提及的移除bbox信息3个输出头的反量化节点如果不是追求极致推理速度可以跳过,后处理的时候注意一下一下这个几个反量化节点就可以了。怎么区别是bbox还是class,可以根据hb_model_modifier.log

通道数 64:通常是 YOLO 的 bbox head(3 anchor * (x,y,w,h) = 12 per anchor → e.g., 34class) 通道数 xx:是你的分类数量(如 COCO 数据集 80 类) cv2 分支:通常为 bbox(box regression) cv3 分支:通常为 class(class confidence)

比如我的模型分类数是4,有这样的hb_model_modifier.log文件,找到中间的地方,看到value_info附近:

2025-07-05 08:47:30,819 file: hb_model_modifier.py func: hb_model_modifier line No: 404 --------value_info---------- 2025-07-05 08:47:30,819 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv2.1/cv2.1.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 40 dim: 40 dim: 64 } 2025-07-05 08:47:30,819 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv3.1/cv3.1.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 40 dim: 40 dim: 4 } 2025-07-05 08:47:30,819 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv2.2/cv2.2.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 20 dim: 20 dim: 64 } 2025-07-05 08:47:30,820 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv3.0/cv3.0.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 80 dim: 80 dim: 4 } 2025-07-05 08:47:30,820 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv2.0/cv2.0.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 80 dim: 80 dim: 64 } 2025-07-05 08:47:30,820 file: hb_model_modifier.py func: hb_model_modifier line No: 406 name: "/model.23/cv3.2/cv3.2.2/Conv_output_0_quantized" type { elem_type: INT32 dim: 1 dim: 20 dim: 20 dim: 4 }

那么反量化的节点就是除了dim: 4以外的三个

本文作者:phae

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!