ROS交流群
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
RK3588 npu python运行 YOLOv8 和 YOLOv8-seg 的教程
-
在 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 为例:- 升级 NPU 运行库。参考 RK3588 在 Ubuntu22.04 下使用 rknn-toolkit2 的注意事项。
- 克隆源代码:
git clone http://git.bwbot.org/publish/rknn3588-yolov8.git
- 准备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%。