训练自己的yolov5样本, 并部署到rv1126 <三>
1325 打赏
训练自己的yolov5样本, 并部署到rv1126 <三> Marc 2022-11-22 10:07:57

还是那句话, 一步一个坑, 中间有多少坑我就不说了, 绝大部分问题跟py的版本有关系, 少部分跟之前的转码的脚本的问题, 好在现在都趟过去了, 如果你遇到模型转换的问题, 进来一步步走一遍, 不行的话, 你抽我…

接下来是戏核(hu)部分..

准备好训练好的yolov5的pt文件,
可以用Netron打开看看大概长啥样:

继续在py38的环境里面, 先转成onnx

  1. python export.py --rknpu rv1126 --weight runs/train/exp4/weights/best.pt --include onnx

理论上不会有报错, 输出的onnx格式模型, 放在刚才的best.pt的目录.
再用Netron看看onnx模型

到这里, 相信很多人都没啥问题, 关键是确认一下:

  1. Conv现在是3x3或者2x2的, 因为npu优化过3x3
  2. 激活函数现在是relu, 因为算起来够快…

接下来转rknn我是在ubuntu虚拟机/物理机下面实现的.

建一个py36的环境
  1. conda create -n rknn_py36 python=3.6
  2. conda activate rknn_py36
下载rknn的1.7.1的安装包
  1. wget https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.1/rknn-toolkit-v1.7.1-packages.tar.gz

解压之后, 先确认目前python是3.6版本.

安装rknn的依赖.

  1. tax rknn-toolkit-v1.7.1-packages.tar.gz
  2. cd packages
  3. pip install -r requirements-cpu.txt

祝你有个好梯子, 或者, 可以在pip后面加上清华的源, 方法自行百度一下吧, 还挺简单的.

如果你是把ubuntu装在ubuntu的物理机上, 而又有显卡加成, 那你可以直接装requirement-gpu

如果提示你有冲突, 说torchvision 0.4.0仅仅支持torch==1.2.0, 直接修改requirement-cpu.txt, 把torchvision的版本改成

  1. The conflict is caused by:
  2. The user requested torch==1.5.1
  3. torchvision 0.4.0 depends on torch==1.2.0

去这个网页, 查一下torch 1.5.1对应torchvision是0.6.1

装好依赖之后, 再根据你所在的环境, 安装对应的轮子:

因为我是在ubuntu上面的py36, 所以直接运行

  1. pip install rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whl

aach64是安装在arm-64的系统上的, 因为这是python的脚本,或者叫做库, 所以是可以直接在rv/rk系列的开发板上装的, 就是之前写的python版本的rknn-tool-kit方案, 基于debian或者ubuntu的.

这部分也基本上没啥大问题.

还是那句话, 如果太慢, 就用想办法用用国内的pip源吧

一般来说, 不会报错(除了刚才说的需要修改torchvision的版本部分).

查看rknn是否安装成功.

  1. (rknn_py36)marc@ubuntu:~/rknn_model_zoo/models/CV/object_detection/yolo/RKNN_model_convert$ python
  2. Python 3.6.13 |Anaconda, Inc.| (default, Jun 4 2021, 14:25:59)
  3. [GCC 7.5.0] on linux
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> from rknn.api import RKNN
  6. >>>

进入python的命令行, 直接import rknn, 如果不报错, 表示rknn安装成功.

确认板子的rknn的版本
用串口或者ssh登录到板子上.

  1. [root@RV1126_RV1109:/]# strings /usr/lib/librknn_api.so |grep version
  2. _version
  3. librknn_api version 1.7.3 (cf7f05f build: 2022-08-13 09:45:04)
  4. .gnu.version
  5. .gnu.version_r
  6. [root@RV1126_RV1109:/]# strings /usr/lib/librknn_runtime.so|grep version
  7. rknn_get_sdk_version
  8. pre_compile_version
  9. optimization_level_version
  10. op_version
  11. I [%s:%d]custom op version: %d
  12. E [%s:%d] rknn_query, info_len(%d) != sizeof(rknn_sdk_version)(%d)!
  13. librknn_runtime version 1.7.3 (2e55827 build: 2022-08-25 10:45:32 base: 1131)
  14. //int8 version
  15. W [%s:%d]Unsupported evis version
  16. E [%s:%d]unsupport kernel size:%d/dilation:%d/evis version:%d
  17. .gnu.version
  18. .gnu.version_r

可以看到rknn_api是1.7.3版本的, runtime也是1.7.3
这里面还涉及一个mini drive的问题, 先不用管它.

到这一步, rknn装好了.


声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
评论
0个
时间排序
内容存在敏感词
    0 条记录 第 0 /
    相关专栏
    打赏作者
    易百纳技术社区
    Marc
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    活动规则
    • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
    • 2.发布在平台的专栏需为原创技术专栏,且社区作为首次发布的平台,在其他平台发布需注明为转载
    • 3.周任务中的专栏需要达到一定质量才会被计入完成总数中。具体以平台审核为准,如有疑问,可联系社区客服(ebainacs)。
    • 4.专栏/资料的任务以审核通过的篇数为准,每个任务数量不做累计。
    • 5.任务完成后,现金奖励直接打款到微信账户EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换。
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区