Navigation

    蓝鲸ROS机器人论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    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
    2376
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • xiaoqiang
      xiaoqiang last edited by 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 Reply Last reply Reply Quote 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community