导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    RK3588 npu python运行 YOLOv8 和 YOLOv8-seg 的教程

    技术交流
    1
    1
    2381
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • xiaoqiang
      xiaoqiang 最后由 xiaoqiang 编辑

      在 RK3588 上运行 YOLOv5 的教程比较丰富,而对于 YOLOv8 相关的 Python 开源库则较少。对于多线程推理,一个不错的开源库是 rknn-multi-threaded。RKNN_model_zoo 中的 examples 提供了 YOLOv8 的相关 demo,但其 Python 后处理部分编写不佳,需要 PyTorch 依赖,并且后处理耗时较大,无法满足视频实时推理的需求。
      我们在 rknn-multi-threaded 的基础上,对 RKNN_model_zoo 中的 YOLOv8 example 进行了整合,并使用 github Copilot 重写了后处理函数。这一改进不仅取消了对 PyTorch 的依赖,还将后处理耗时从几百毫秒降低到了几十毫秒。在 3 线程模式下,推理 YOLOv8s 模型可以达到约 45fps,而推理 YOLOv8s-seg 模型则可以达到约 25fps。

      一、优化修改后的开源代码库

      • yolov5: http://git.bwbot.org/publish/rknn-multi-threaded.git
      • yolov8: http://git.bwbot.org/publish/rknn3588-yolov8.git
      • yolov8-seg: http://git.bwbot.org/publish/rknn3588-yolov8-seg.git

      二、代码运行说明

      上面三个代码仓库的运行方法相同,都是通过 git clone 克隆代码后,准备好 Python 环境,然后执行 main.py。我们以 YOLOv8 为例:

      1. 升级 NPU 运行库。参考 RK3588 在 Ubuntu22.04 下使用 rknn-toolkit2 的注意事项。
      2. 克隆源代码:
      git clone http://git.bwbot.org/publish/rknn3588-yolov8.git
      
      1. 准备python运行环境:
        我们在 RK3588 上使用的是 Ubuntu22.04 Desktop,默认的 Python 版本是 3.10。为了避免破坏系统环境,我们使用 virtualenv 来配置需要的 Python 运行环境。
      sudo apt install python3-virtualenv
      
      #进入上面git clone下来的文件夹根目录
      cd rknn3588-yolov8
      
      #创建虚拟环境
      virtualenv --system-site-packages -p /usr/bin/python3 venv
      
      #激活虚拟环境
      source venv/bin/activate
      
      #开始在虚拟环境中安装rknn_toolkit_lite2,这里需要安装和python版本相同的whl
      pip install rknn_toolkit_lite2-2.0.0b0-cp310-cp310-linux_aarch64.whl
      
      #安装opencv
      pip install -i https://mirror.baidu.com/pypi/simple opencv_contrib_python
      

      4.环境配置完成,开始运行yolov8:

      python main.py
      

      在 main.py 文件中,您可以修改模型、线程数,还可以修改成实时推理摄像头。

      # 推理视频文件
      cap = cv2.VideoCapture('./720p60hz.mp4')
      # 推理实时摄像头
      cap = cv2.VideoCapture(0)
      cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)
      cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)
      

      三、运行结果

      YOLOv8s 的运行速度大约是 YOLOv5 的 70%,YOLOv8s-seg 的运行速度大约是 YOLOv8s 的 50%。
      YOLOv8s 运行截图
      YOLOv8s-seg 运行截图
      YOLOv8s-seg 实时摄像头截图

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community