yolov5s的pt文件转换成rknn(在rk3399pro用python环境运行)

1 下载rknn中指定的yolov5版本,我查到的版本是c5360f6e7009eb4d05f14d1cc9dae0963e949213,但是这个版本没有转换成功,用dd7f0b7e05e7658e9cd4fc8f02de5b7df060785d这个版本转换成功了。下载地址:https://github.com/ultralytics/yolov5/tree/dd7f0b7e05e7658e9cd4fc8f02de5b7df060785d,其中下载yolov5s.pt文件注意是yolov5中5.0版本的。
2 在yolov5中运行转换程序,python export.py --weights yolov5s.pt --img 640 --batch 1 --include onnx。
执行这个命令就模型的格式转换为onnx。
3 下载netron,查看onnx的网络结构,点击view->properties

yolov5s的pt文件转换成rknn(在rk3399pro用python环境运行)_第1张图片
注意输出的节点,751,812,873,就是模型转换中需要修改的参数。

4 首先在rk3399pro搭建rknn环境,环境搭建可以参考我的另一篇文章,我的rknn驱动是1.7.1,python环境是3.7。

5 修改模型转换参数,将输出的节点参数改成这个
yolov5s的pt文件转换成rknn(在rk3399pro用python环境运行)_第2张图片
参考了rknn的案列,将输出的节点都减去19(我也没有去了解原理)。
6 根据rknn提供的onnx的yolov5案列,运行代码,python3 test.py。运行结果如下:
yolov5s的pt文件转换成rknn(在rk3399pro用python环境运行)_第3张图片

你可能感兴趣的:(python,YOLO,开发语言)