yolov11n的模型转换和在RV1126B板端的测试
·
环境
使用的虚拟机:Ubuntu 64_2004_rv1126B_yolov11(虚拟机登录密码:123456)
工具链:gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf
yolov11版本:ultralytics-main
链接: https://pan.baidu.com/s/11VXeBSWKJudZFxKL2my8Fg 提取码: 6m74 (需要解压码)
1、模型转换(pt转onnx)
当前的模型转换需要修改一下源代码:修改head.py文件实现输的是1*144*80*80,1*144*40*40,1*144*20*20模型

head.py文件中的class Detect(nn.Module):类中的def forward(函数,添加代码如下
# ✅ 导出时直接输出 feature map(3个尺度)
if self.export:
outputs = []
feats = preds["one2many"]["feats"] if self.end2end else preds["feats"]
for i in range(self.nl):
# box + cls 拼接(还没 decode)
box = self.cv2[i](feats[i])
cls = self.cv3[i](feats[i])
out = torch.cat((box, cls), 1) # (1, no, h, w)
outputs.append(out)
return outputs # ✅ 返回3个输出
转换的脚本,打开虚拟机
cd /home/wyj/wyj/ultralytics-main
conda activate yolov11
python export.py

如需要更换模打开文件export.py,更换模型的名字就可以了

2、模型转换(onnx转rknn)
cd /home/wyj/wyj/ultralytics-main
conda activate yolov11
python test.py

如果需要更换模型打开源test.py文件后修改一下的位置

dataset.txt文件中放置的是量化的图片路径。
转换后的墨香检测结果保存路径Save results to result.jpg!

3、板端测试程序编译
cd /home/wyj/wyj/rknn-toolkit2-master/rknpu2/examples/rknn_yolov11_demo
conda activate yolov11
./build-linux.sh -t rv1126b -a armhf -b Release

本人测测试系统是32位的(所以使用的库也是32位的)。生成的可执行文件就是在当前目录下的install文件夹,推送到板端就可以测试了。

后端的处理时间较长,大概是100ms左右,以下是优化后的后处理部分,大概后处理部分是10ms左右。
cd /home/wyj/wyj/rknn-toolkit2-master/rknpu2/examples/rknn_yolov11_demo_5ms
conda activate yolov11
./build-linux.sh -t rv1126b -a armhf -b Release
将生成的文件使用adb的方式推送到板端
./adb push install/rknn_yolov5_demo_Linux /wyj/
./adb shell
cd wyj
chmod -R 777 *
export LD_LIBRARY_PATH=./lib
./rknn_yolov5_demo model/RV1126Byolov11n_relu.rknn model/bus.jpg
#接测结果推送到本地
./adb pull /wyj/out.jpg
优化前后的对比截图


测试结果

更多推荐


所有评论(0)