香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

06-01 1619阅读

YOLO11环境配置和RK3588模型转换NPU部署

    • 前言
    • 1. 硬件配置
    • 2. 软件版本
    • 3. 【PC电脑】基础开发环境配置
      • 3.1 查看NVIDIA显卡驱动支持
      • 3.2 安装CUDA和cuDNN
      • 3.3 安装Python以及Pycharm开发平台
      • 3.4 安装Anaconda或Miniconda环境管理工具
      • 4. 【PC电脑】YOLO11 环境配置和测试
        • 4.1 创建conda虚拟环境
        • 4.2 配置Pycharm的开发环境
        • 4.3 安装YOLO11和依赖库
        • 4.4 安装Pytorch的GPU版本
        • 4.5 简单测试yolo命令推理效果
        • 4.6 训练自己的模型
        • 4.7 导出RKNN模型
        • 5. 【RKNN开发机】RKNN Toolkit2 环境配置
          • 5.1 安装基础开发工具
            • 5.1.1 安装Miniconda3
            • 5.1.2 安装PyCharm
            • 5.2 安装RKNN Toolkit2工具包
              • 5.2.1 下载RKNN相关库文件
              • 5.2.2 创建conda虚拟工作环境
              • 5.2.3 安装RKNN-Toolkit2
              • 5.3 安装编译工具
                • 5.3.1 安装CMake
                • 5.3.2 安装编译器
                • 6. 【RKNPU开发板】RKNPU2 环境配置
                  • 6.1 使用adb连接开发板
                  • 6.2 确认RKNPU2驱动版本
                  • 6.3 检查RKNPU2环境是否已安装
                  • 6.4 安装/更新RKNPU2环境
                  • 7. 【RKNN部署】YOLO11 模型 RKNPU 部署示例
                    • 7.1 将pt模型导出onnx中间格式
                    • 7.2 模型onnx格式转换成rknn格式
                    • 7.3 开发机Python_Demo连板推理
                    • 7.4 板端C_Demo调用NPU推理
                    • 8. 其他工具
                      • 8.1 Windows安装wget
                      • 8.2 Windows安装git
                      • 8.3 Windows安装WinSCP(与Linux系统文件互传)

                        前言

                        本文详细记录了笔者在2024年11月配置的YOLO11训练和测试环境,和之前配置YOLOv8的步骤内容基本一致,分别完成Windows PC YOLO模型训练机、Ubuntu PC RKNN模型开发机、RK3588 RKNPU边缘部署设备,三个平台的RKNN模型开发流程配置,使用瑞芯微提供RKNN Toolkit 2工具V2.3.0最新版,将yolo11模型转成onnx再转成rknn模型,最后交叉编译构建示例,实现在开发板使用C API调用NPU推理yolov8目标检测模型。本教程仅用于跑通官方的配置流程和示例程序,只为转换自己训练的模型进行部署,不涉及C/C++实际应用编程,建议先通篇阅读一次内容之后再上手实操。

                        (本文会尽量将步骤描述详细,虽然啰嗦但争取一篇搞定瑞芯微的NPU。如有错漏,大佬们请轻点喷,欢迎留言指正,Respect!)

                        1. 硬件配置

                        笔者使用到的硬件设备主要配置参数张贴如下,以供参考:

                        设备类型配置参数系统架构系统版本用途说明
                        PC电脑i5-12490F、 RTX 2070 Superx86_64Windows10数据集标注、模型训练
                        RKNN开发机Intel N100 (或者用虚拟机)x86_64Ubuntu-22.04模型导出、转换、性能分析、仿真测试
                        RKNPU开发板Orangepi 5 、RK3588SARM64Ubuntu-22.04推理、API接口调用、应用程序开发

                        叠个甲:其实RKNN开发机的搭建,也可以在PC电脑Windows上使用虚拟机安装Ubuntu(虚拟机安装教程请自行参考其他文章),只是我手头刚好有个闲置的x86迷你主机装好了Ubuntu-22.04,所以我选择把YOLO模型训练和导出部分放在Windows进行,训练完后再把模型文件拷贝进RKNN开发机里转换即可,这样比较方便我的工作环境而已,仅供参考。

                        2. 软件版本

                        注意:为了方便展示环境配置过程细节,我都使用了默认路径,你也可自定义路径,但路径中不应含有中文、空格和特殊字符等!

                        软件PC电脑RKNN开发机RKNPU开发板
                        NVIDIA Driver561.09\\
                        CUDA12.4\\
                        cuDNN8.9.7\\
                        Python3.93.83.10
                        Pytorch2.5.1+cu1242.4.0\
                        PycharmCommunity-2024.2.4Community-2024.2.4\
                        Miniconda324.9.224.9.2\
                        Ultralytics8.3.9(RK_Optimized)\\
                        RKNN Model Zoo\v2.3.0\
                        RKNN Toolkit2\v2.3.0\
                        RKNPU2\\v2.3.0

                        3. 【PC电脑】基础开发环境配置

                        说明:该部分内容是为了在Windows10 PC电脑中安装Python和YOLO11需要的开发工具。

                        3.1 查看NVIDIA显卡驱动支持

                        这一步主要是看显卡的驱动版本,以及查看该驱动所能支持的最高CUDA版本,注意这里不是指已安装的CUDA版本。

                        方法一:使用终端命令查看

                        1. 使用快捷键[Win]+[R]打开运行窗口,输入CMD打开终端命令行窗口。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                        2. 输入命令nvidia-smi查看驱动版本信息

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                        方法二:使用NVIDIA控制面板

                        1. 打开【NVIDIA控制面板】程序(不懂怎么找NV控制面板的点这里)
                        2. 点击左下角【系统信息】可以看到当前显卡驱动版本

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          在右边的一栏中显示了显卡的驱动版本,记住这串数字,等下去官网找更新的驱动版本。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          点击【组件】查看当前驱动版本支持的最高的CUDA版本,比如这里意思是最高支持安装12.6的版本

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          (可选)更新显卡驱动

                          如果显卡驱动较旧,想要支持更高的CUDA安装版本,可以使用浏览器进入NVIDIA官网,输入显卡型号,以搜索最新的显卡驱动程序

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          推荐安装Game Ready的驱动更适合,怕最新驱动不稳定的话也可以往前找稍微近期的版本。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          驱动下载完成后运行驱动安装程序,默认C盘路径、默认配置选项、一直点下一步安装即可。

                        3.2 安装CUDA和cuDNN

                        前面第1步已经查到显卡驱动显示当前可安装的最高CUDA版是12.6,意思是我下面选择安装的CUDA版本最高不能超过12.6!!!

                        先别急,这里简单普及一下知识点:

                        • 英伟达的CUDA是基于其GPU的并行计算平台,提供了并行编程的API,使GPU可以科学计算、深度学习、图形渲染等方面进行加速计算。而cuDNN可以理解为英伟达针对深度学习的GPU加速库,并进一步优化GPU的计算性能,当CUDA和cuDNN结合起来,即可实现更高效、更快速的深度学习模型训练和推理工作。因此CUDA和cuDNN的安装版本是需要相互匹配对应的。

                        • Pytorch是一个基于Python并依赖Numpy等库的深度学习框架,支持跨平台(Linux、Mac、Windows),主要提供CPU和CUDA两种计算平台的支持,它能够调用英伟达CUDA进行GPU的加速计算,而我们最终需要跑起来的YOLO系列算法就是基于Pytorch框架下实现的,因此YOLOv8也需要对应的合适版本的Pytorch并配置好才能运行。

                          总而言之,我们得先去Pytorch官网查看最新的Pytorch对于CUDA版本的支持情况,才知道现在应该安装哪个版本的CUDA。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          从Pytorch官网的信息中可以看到目前支持到CUDA 12.4版本,并且要求Python安装到3.9及以上版本,且需要有numpy库。提供conda和pip两种常见的便捷安装方式。

                          第一步:下载安装CUDA 12.4

                          OK,接下来我们先用浏览器打开英伟达CUDA Toolkit Archive官网找到CUDA 12.4的版本下载安装。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          下载完成后,在cuda_12.4.1_551.78_windows.exe文件上,右键【以管理员身份运行】进行安装。

                          ① 这里打开的是临时解压文件暂存路径,默认即可,安装完之后会自动清理缓存,点击【OK】

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          ② 在安装选项这里,更改选择为【自定义】然后【下一步】

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          ③ 勾选全部组件,然后【下一步】

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          ④ 安装默认路径自动安装在C盘(一个是方面后面找文件路径,另一个是避免以后有奇奇怪怪的报错)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          ⑤ 然后一直点【下一步】然后等待自动安装完成点【关闭】即可

                          安装完成后,打开cmd终端命令行输入nvcc -V验证是否安装成功

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          在系统搜索栏输入“高级系统设置”并打开

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          查看【高级】【环境变量】

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          检查“系统变量”中是否有如下两条。(同时记住这个CUDA安装路径,后面用到)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          第二步:下载cuDNN替换文件

                          使用浏览器打开英伟达官网cuDNN下载页面,注意选择对应到CUDA 12.x版本的cuDNN

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          点击展开后,选择适配于Windows的ZIP文件然后下载

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          这里可能会弹出提示让你用邮箱登录,按照提示要求,自行注册英伟达官网账号后登录即可下载。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          将下载的ZIP压缩包解压后,得到如下几个文件夹,将它们全部复制到刚刚CUDA安装路径下

                          (默认路径一般为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4这样的格式,只是最后的版本号可能有不同)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          这里弹出提示有同名文件,点击【替换目标中的文件】进行文件覆盖更新

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          打开【高级系统设置】【高级】【环境变量】,在“系统变量”中找到“Path”这一条双击进去

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          将如下两个路径添加进Path中:

                          C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin

                          C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libnvvp

                          (不同CUDA版本默认路径名称会略有不同,以上仅供参考,请以你们实际安装路径为准)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          3.3 安装Python以及Pycharm开发平台

                          ① 使用浏览器进入Python官网下载Python3.9版本安装包

                          页面往下翻找到Python3.9.x这些版本,选择64bit的版本下载

                          (够用就行,不太建议装太高的版本)

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          对安装包右键以【管理员身份运行】默认安装到C盘默认路径即可

                          ② 进入Pycharm官网下载社区版的开发工具安装包,双击默认安装即可

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          到这里为止,我们主要的系统主环境的必要软件已经安装完了,建议【重启电脑】以更新PC系统环境。

                          3.4 安装Anaconda或Miniconda环境管理工具

                          问:conda是什么?既然已经安装了Python,为什么还要安装conda?

                          答:Anaconda和Miniconda都是用来安装和管理Python虚拟开发环境的,它用来对我们系统配置环境进行隔离保护,比如当我们需要开发或验证N多个不同的项目时,遇到针对python或者一些依赖库有特殊版本的指定要求时,总不可能对我们电脑里已安装的Python和依赖库反复卸了装、装了卸吧,而利用conda工具就可以创建并管理多个虚拟环境,使用时只需要激活某个虚拟环境,针对实验项目的需要进行安装、更新、卸载各种依赖库即可,而不同虚拟环境之间、虚拟环境与系统环境之间互不干扰冲突,同时还可以导出环境配置文件在其他开发机上完美地复现,Miniconda可以理解为Anaconda的保留常用功能的最小化版本。

                          这里我们就选择安装Miniconda就好,只包含了最关键和最常用的功能,可以在Miniconda官网下载,也可以通过国内清华镜像源下载。

                          方法一:通过国内清华镜像源下载

                          这里提供很多版本,可以下载带有latest最新版,也可以下载带有py39预装了Python3.9默认环境的版本,注意这里不是决定最终开发环境的Python,这里只是给到一个初始Python环境,实际创建虚拟环境时你还可以自行按需指定Python版本,预装Python3.9只是为了在创建生成虚拟环境时节省下载时间和网络流量,快速创建新的环境。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          方法二:通过Miniconda官网下载安装包

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          安装完成后,在Win10搜索栏能找到对应的Anaconda Prompt终端命令行程序即可(尾部也可能带Miniconda标识)

                          后续我们创建并管理虚拟环境都是在这个Prompt终端命令行中完成,注意不是Windows那个CMD终端或PowerShell哟!

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          在conda工具里面,可以通过pip和conda来安装所需要的包。

                          打开conda Prompt,默认是进入到base环境,也就是系统级的配置环境,输入conda --version命令查看当前安装的conda版本

                          简单列举一些常用的conda操作命令如下:

                          1、列出所有可用的虚拟环境名称以及路径
                          # 方法一
                          conda info --envs
                          # 方法二
                          conda env list
                          2、创建一个虚拟环境
                          # 这里myenv就是创建的虚拟环境的自定义名称
                          conda create -n myenv 
                          # 也可以在后面指定Python的版本
                          conda create -n myenv python=3.9
                          3、激活一个环境
                          # myenv要改为虚拟环境的名称
                          conda activate myenv
                          4、安装一个第三方库
                          conda install numpy
                          5、退出当前环境
                          conda deactivate
                          6、移除清除某一个环境
                          conda remove -n myenv --all
                          (可选)配置conda使用国内的清华镜像源(下载提速用)
                          # 查看Conda默认的源
                          conda config --show channels
                          # 这里使用清华源为例,也可以使用其他第三方源
                          conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
                          conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
                          conda config --set custom_channels.auto https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
                          conda config --set show_channel_urls yes
                          

                          4. 【PC电脑】YOLO11 环境配置和测试

                          说明:该部分内容是为了配置YOLO11开发环境,调用英伟达GPU完成YOLO11模型训练和测试,并导出经过RK优化调整的.onnx格式模型,为后续转换为.rknn模型做好准备。

                          4.1 创建conda虚拟环境

                          打开Anaconda Prompt终端,默认进入base环境

                          # 创建一个名为“rkopt_yolo11”的虚拟环境,并指定了Python版本为3.9
                          conda create -n rkopt_yolo11 python=3.9
                          # 激活虚拟环境
                          conda activate rkopt_yolo11
                          

                          4.2 配置Pycharm的开发环境

                          打开软件,点击【New Project】先创建一个工程项目,自定义名字并修改项目存放路径,编译器类型选择【Base conda】即可。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          Tips:如果您需要将pycharm软件设置成中文,可按照如下步骤进行配置,然后重启软件。

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          在设置的【Python Interpreter】中,点击上图中下拉框的【Show All…】

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          按照下面步骤找到刚才用coanda创建的rkopt_yolo11虚拟环境

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          4.3 安装YOLO11和依赖库

                          特别注意,这里安装YOLO并不能直接pip install ultralytics,我们这里使用瑞芯微官方提供的仓库airockchip/ultralytics_yolo11,该仓库基于ultralytics/ultralytics官方原仓库做了修改,可以让我们基于从原仓库训练出来的.pt模型直接导出(format=‘rknn’)适配RKNPU的.onnx模型,使得RKNPU获得更高的推理效率。

                          除了最后导出模型时,需要参考RK提供的操作指引RKOPT_README进行,其他工作流程均按照原YOLO仓库的操作指引即可。更多模型结构优化的细节,请自行查阅RKNN模型库中的关于YOLO11对象检测这一节的示例说明。

                          下面我们直接拉取https://github.com/airockchip/ultralytics_yolo11仓库到我们的项目中

                          点击PyCharm左下角的终端命令行输入(因为前面配置了编译器,这里就会自动激活进rkopt_yolo11虚拟环境)

                          # 拉取ultralytics_yolo11仓库的main分支
                          git clone https://github.com/airockchip/ultralytics_yolo11.git
                          # 如果显示git不可用,请看最后一章的Win10安装git方法
                          

                          在ultralytics_yolo11目录下新建一个名为requirements.txt的文本,内容直接照如下拷贝即可:

                          # Ultralytics requirements
                          # Usage: pip install -r requirements.txt
                          # Base ----------------------------------------
                          matplotlib>=3.2.2
                          numpy>=1.22.2 # pinned by Snyk to avoid a vulnerability
                          opencv-python>=4.6.0
                          pillow>=7.1.2
                          pyyaml>=5.3.1
                          requests>=2.23.0
                          scipy>=1.4.1
                          torch>=1.7.0
                          torchvision>=0.8.1
                          tqdm>=4.64.0
                          # Logging -------------------------------------
                          # tensorboard>=2.13.0
                          # dvclive>=2.12.0
                          # clearml
                          # comet
                          # Plotting ------------------------------------
                          pandas>=1.1.4
                          seaborn>=0.11.0
                          # Export --------------------------------------
                          # coremltools>=7.0.b1  # CoreML export
                          onnx>=1.12.0  # ONNX export
                          onnxsim>=0.4.1  # ONNX simplifier
                          # nvidia-pyindex  # TensorRT export
                          # nvidia-tensorrt  # TensorRT export
                          # scikit-learn==0.19.2  # CoreML quantization
                          # tensorflow>=2.4.1  # TF exports (-cpu, -aarch64, -macos)
                          # tflite-support
                          # tensorflowjs>=3.9.0  # TF.js export
                          # openvino-dev>=2023.0  # OpenVINO export
                          # Extras --------------------------------------
                          psutil  # system utilization
                          py-cpuinfo  # display CPU info
                          # thop>=0.1.1  # FLOPs computation
                          # ipython  # interactive notebook
                          # albumentations>=1.0.3  # training augmentations
                          # pycocotools>=2.0.6  # COCO mAP
                          # roboflow
                          

                          【解释说明】这个requirements.txt是RK官方要求满足的依赖库清单,但是在仓库main分支中却没有见到(不知为啥),但其实在之前ultralytics_yolov8仓库的rk_opt_v1.6分支里面就有,我们把他手动补充到ultralytics_yolo11目录下再自动安装依赖即可。其中一个位置我还作了修改:取消了onnx和onnxsim两行注释,原因是在后面导出RKNN模型的时候报错提示:说妹找到onnx…所以干脆在这里就装上onnx即可。

                          继续在终端输入命令进行依赖库安装,注意下面这几句命令真的超级关键!

                          cd ultralytics_yolo11
                          pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
                          pip install -e .
                          

                          4.4 安装Pytorch的GPU版本

                          有了前面配置yolov8开发环境的经验,这里同样也是需要卸载CPU版本pytorch并重装CUDA版本的pytorch

                          输入pip list可以看到有torch、torchvision两个依赖包

                          输入pip uninstall torch卸载CPU版本的torch

                          输入pip uninstall torchvision卸载CPU版本的torchvision

                          使用浏览器进入到Pytorch官网https://pytorch.org/,因为前面给显卡装了12.4版本的CUDA和cudnn,所以这里也必须选择CUDA12.4

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          终端输入上面自动生成的命令pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

                          安装完后再次pip list,可以确认这次安装的是GPU版本了

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          也可以创建一个python脚本程序,打印查看详细的torch版本信息以及torch调用CUDA情况

                          import torch
                          print(torch.__version__)  # pytorch版本
                          print(torch.cuda.is_available())  # GPU可用性
                          print(torch.cuda.device_count())  # GPU个数
                          print(torch.backends.cudnn.version())  # 查看对应CUDA的版本号
                          print(torch.version.cuda)  # 查看对应CUDA的版本号
                          quit()  # 退出Python
                          

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          4.5 简单测试yolo命令推理效果

                          目前YOLO可在不依赖Python环境的情况下,终端使用yolo单行命令实现全部功能,详见:https://docs.ultralytics.com/usage/cli/

                          ①先去官网下载官方的预训练模型 yolo11n.pt 和测试图片(bus.jpg),同样将下载的文件放到ultralytics_yolo11目录下。

                          https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
                          https://ultralytics.com/images/bus.jpg
                          

                          ② 使用yolo单行命令执行简单推理测试(注意前面下载的文件路径)

                          # 第一个参数是指任务[detect, segment, classify]
                          # 第二个参数是模式[train, val, predict, export, track)]
                          # model 参数指向模型文件所在路径
                          # source 参数指向预测媒体对象文件所在路径
                          yolo detect predict model=yolo11n.pt source=bus.jpg
                          

                          香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                          从输出的信息可以看到,默认调用了GPU执行推理,推理耗时28ms,肉眼看不出是否框得更准,但置信度明显比yolov8n要高一点。

                          根据官方的示例教程说明,可以添加一个指定推理设备的参数device,例如以下几种可能:

                          • 当你只有CPU能跑时,不用指定都是默认为device=cpu
                          • 当你既有CPU也有GPU时,就默认会优先设置为device=0,如需用CPU则需要手动设置device=cpu
                          • 你要是有多个显卡同时挂载,甚至能设置为device=0,1,2,3

                            除了使用yolo命令,当然也可以使用Python脚本程序执行各项任务,在官网可获取示例:https://docs.ultralytics.com/usage/python/

                            以下是yolo11n模型的python目标检测推理示例:

                            # 将前面下载的yolo11n.pt模型文件和bus.jpg测试照片拷贝到项目同级文件夹下
                            import cv2
                            from ultralytics import YOLO
                            model = YOLO("yolo11n.pt")  # 加载模型
                            image = cv2.imread("bus.jpg")   # 加载照片
                            results = model.predict(source=image)   # 执行推理任务
                            for result in results:
                                result.show()   # 显示结果
                            

                            4.6 训练自己的模型

                            可以使用YOLO的官方流程指引,用最原始的.pt预训练模型,自己准备的数据集图片进行训练。

                            可以参考我的这篇文章《X-AnyLabeling自动标注数据集并训练自己的YOLO11目标检测模型》

                            Tips:建议在训练.pt模型前,将默认的激活函数 SiLU 改为 ReLU ,训练的效果几乎不变,模型可能精度略微下降,但是模型的文件更小,在NPU上推理的速度大幅提升。具体操作方法和说明可以参考这篇文章。

                            (注意:数据集标注、模型训练的内容较多,需要参考官方教程或其他文章,结合各自需求训练即可,这一步可以暂时先跳过。)

                            4.7 导出RKNN模型

                            在ultralytics_yolo11目录下,拷贝一份yolo11n.pt命名为my_yolo11n.pt假装当作是用我们的数据集训练出来的模型。

                            ① 在终端使用yolo命令导出rknn模型

                            cd ultralytics_yolo11
                            yolo export model=my_yolo11n.pt format=rknn
                            

                            ② 使用python脚本导出rknn模型

                            例如在ultralytics_yolo11目录下新建一个.py脚本

                            from ultralytics import YOLO
                            model = YOLO("my_yolo11n.pt")
                            model.export(format='rknn')
                            

                            (注意:导出的模型名为my_yolo11n.onnx,不要怀疑这个.onnx后缀,它是一种中间格式,只要导出时设置了format='rknn'且没有报错并成功生成文件,那就说明环境配置对了,同时这个特殊的.onnx也是无法在当前配置环境下使用yolo命令执行推理的。)

                            也可以直接使用 RKNN Model Zoo 仓库中yolo11目录下README文档中提供的经过airockchip/ultralytics_yolo11 仓库优化的预训练模型

                            ./yolo11n.onnx

                            ./yolo11s.onnx

                            ./yolo11m.onnx

                            Tips:airockchip/ultralytics_yolo11 仓库目前已支持:检测、分割、姿态、旋转框检测模型的导出,更多说明请查阅 RKNN Model Zoo,但是目前仅有目标检测的开发示例流程,分割、姿态、旋转框检测模型部署示例RK官方还没更新,你也参考之前yolov8的自己琢磨。

                            5. 【RKNN开发机】RKNN Toolkit2 环境配置

                            5.1 安装基础开发工具

                            5.1.1 安装Miniconda3

                            使用浏览器进入清华镜像源网站(https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/)下载对应的x84_linux安装包

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            然后进入下载的文件所在目录下执行./Miniconda3-py39_24.9.2-0-Linux-x86_64.sh

                            开始安装一路按[Enter]键,输入yes接受使用条款,不想看可以按[Q]键退出条款阅读,

                            安装的路径可以自定义,或者直接按[Enter]键使用默认安装路径

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            询问是否设置“打开终端自动进入conda默认base环境”,这里选择输入yes,同时这里也提示了取消该设置的命令

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            安装完成后重启系统或者执行source ~/.bashrc直接进入conda默认base环境,使用conda --version命令查看conda版本

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            配置conda使用国内的清华镜像源(下载提速用)
                            # 查看Conda默认的源
                            conda config --show channels
                            # 这里使用清华源为例,也可以使用其他第三方源
                            conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
                            conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
                            conda config --set custom_channels.auto https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
                            conda config --set show_channel_urls yes
                            
                            5.1.2 安装PyCharm

                            使用浏览器进入官网下载页面(https://www.jetbrains.com/pycharm/download/?section=linux),选择社区版的Linux安装包

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            直接右键对下载的包进行解压,或在终端输入命令tar -xzf pycharm-conmunity-2024.3.tar.gz(注意文件名中的版本号会有不同)

                            然后进入到其中的bin文件夹目录下,输入命令sh ./pycharm.sh直接启动软件

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            在初次启动的欢迎界面,点击左下角设置,创建桌面条目。这样就可以在启动界面看到软件图标。

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            5.2 安装RKNN Toolkit2工具包

                            5.2.1 下载RKNN相关库文件
                            # 新建一个工作目录
                            mkdir Project
                            # 进入到该目录下
                            cd Project
                            # (可选)安装git工具
                            sudo apt install git
                            # 下载 RKNN-Toolkit2 仓库
                            git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
                            # 下载 RKNN Model Zoo 仓库
                            git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1
                            # 注意:
                            # 1.参数 --depth 1 表示只克隆最近一次 commit
                            # 2.如果遇到 git clone 失败的情况,也可以直接在 github 中下载压缩包到本地,然后解压至该目录
                            

                            文件目录结构如下:

                            Project
                            ├── rknn-toolkit2
                            └── rknn_model_zoo
                            
                            5.2.2 创建conda虚拟工作环境
                            # 创建名为“toolkit2”的python3.8环境
                            conda create -n toolkit2 python=3.8
                            # 查看所有环境及位置
                            conda env list
                            # 激活toolkit2环境
                            conda activate toolkit2
                            
                            5.2.3 安装RKNN-Toolkit2

                            (注意:请在以上conda激活的toolkit2环境下进行安装RKNN-Toolkit2)

                            方法一(推荐):通过pip源的方式安装(清华镜像源)

                            pip install rknn-toolkit2 -i https://pypi.tuna.tsinghua.edu.cn/simple
                            # (可选)如果之前已经安装了,需要进行版本更新升级
                            pip install rknn-toolkit2 -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade
                            

                            方法二:通过本地wheel包安装

                            # 进入 rknn-toolkit2 目录
                            cd Projects/rknn-toolkit2/rknn-toolkit2
                            # 请根据不同的 python 版本及处理器架构,选择不同的 requirements 文件,例如:
                            # python3.8 x86_64 对应 requirements_cp38.txt
                            # python3.8 ARM64 对应 arm64_requirements_cp38.txt
                            pip install -r packages/requirements_cpxx.txt
                            # pip install -r packages/arm64_requirements_cpxx.txt
                            # 安装 RKNN-Toolkit2
                            # 请根据不同的 python 版本及处理器架构,选择不同的 wheel 安装包文件:
                            # 其中 x.x.x 是 RKNN-Toolkit2 版本号,cpxx 是 python 版本号, 是处理器架构类型 (x86_64 对应x86_64/aarch64 对应 ARM64)
                            # 具体可以前往以下网页进行确认新版本的资源文件名称
                            # https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2/packages
                            pip install packages/rknn_toolkit2--x.x.x-cpxx-cpxx-manylinux_2_17_.manylinux2014_.whl
                            

                            验证是否安装成功,可以输入python进入python交互模式,尝试导入rknn,如未报错,即说明安装成功。

                            from rknn.api import RKNN
                            exit()  # 退出
                            

                            5.3 安装编译工具

                            5.3.1 安装CMake
                            # 更新包列表
                            sudo apt update
                            # 安装 cmake
                            sudo apt install cmake
                            
                            5.3.2 安装编译器

                            ① 确认RKNPU开发板的系统类型、系统架构

                            (注意这部分需要adb连接开发板,连接方法看6.1节。但如果事先已经知晓了开发板的安装系统,可以直接跳过第1步)

                            # 确认开发板系统类型
                            adb shell getprop ro.build.version.release
                            # 如输出位数字则为 Android 系统,数字为 Android 系统版本号
                            # 否则为Linux系统,输出内容为/bin/sh: getprop: not_found
                            # 确认系统架构
                            # 如果是Android系统
                            # adb shell getprop ro.product.cpu.abi
                            # 输出 arm64-v8a 表示 ARM 64 位架构、第八版本的 ABI。
                            # 如果是Linux系统
                            adb shell uname -a
                            # 该命令的参考输出信息如下,其中 aarch64 表示 ARM 64 位架构。
                            # Linux Rockchip 5.10.160 #183 SMP Tue Oct 24 18:52:11 CST 2023 aarch64 GNU/Linux
                            

                            笔者使用的是OrangePi 5 开发板,板端安装的64位Ubuntu22.04系统,因此下面步骤仅针对Linux 系统的开发板。

                            ② 下载安装 GCC 交叉编译器

                            开发板为64位系统:https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-lin

                            ux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

                            开发板为32位系统:https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linuxgnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz

                            ③ 将GCC软件包解压到 Project 文件目录下,以64位的软件包举例,目录结构如下:

                            Project
                            ├── rknn-toolkit2
                            ├── rknn_model_zoo
                            └── gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
                            

                            记住此时GCC 编译器的路径是/Project/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu

                            该路径在后面第7.5节编译RKNN C Demo时会用到

                            6. 【RKNPU开发板】RKNPU2 环境配置

                            6.1 使用adb连接开发板

                            (这部分内容仅针对香橙派5开发板进行记录、说明步骤,其他开发板请参考具体产品的用户手册)

                            1、准备一条品质良好的Type-C数据线,并确保以下USB Type-A接口未被占用。

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            2、将一端连接到 Ubuntu PC(即RKNN开发机),另一端连接到开发板的下图左边这个Type-C数据口,注意不是右边的Type-C供电口。

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            3、开发板进入终端输入以下命令,将Type-C口设置为device模式用途

                            # 方法一:
                            sudo set_device.sh
                            # 方法二
                            # 如果系统中不存在set_device.sh脚本,则使用以下命令:
                            sudo bash -c "echo device > /sys/kernel/debug/usb/fc000000.usb/mode"
                            sudo systemctl restart usbdevice
                            

                            后台进程确认adbd是否已启动

                            ps -ax | grep "adbd"
                            # 输出示例:
                            # 808   ?        Sl   0:00  /usr/bin/adbd
                            # 3707  ttyFIQ0  S+   0:00  grep --color=auto adbd
                            

                            4、回到Ubuntu PC上,使用终端安装adb工具

                            sudo apt-get update
                            sudo apt-get install -y adb
                            

                            连接开发板Type-C口后,查看是否有识别到adb设备

                            adb devices
                            # 正常的输出示例:
                            # List of devices attached
                            # e0f9f71bc343c305     device
                            # 如果显示如下,则说明前面第3步设置开发板的Type-C未配置好或命令无效,请尝试第3步的方法二重新配置开发板
                            # List of devices attached
                            # e0f9f71bc343c305     no permissions (user in plugdev group......
                            

                            使用adb登录到开发板linux系统

                            adb shell
                            # root@orangepi5:/# = 0.9.2。

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            6.3 检查RKNPU2环境是否已安装

                            RKNN-Toolkit2 的连板调试功能要求板端已安装 RKNPU2 环境,并且板端启动 rknn_server 服务。

                            rknn_server 是一个运行在开发板上的后台代理服务,用于接收Ubuntu PC 通过 USB传输过来的协议,然后执行板端 runtime 库中对应的接口,并返回结果给Ubuntu PC。要保证 RKNN-Toolkit2 和 RKNN Server 、Runtime 库的版本一致且版本 >= 1.5.0。如果板端没有安装 RKNN Server 和 Runtime 库或版本不一致,都需要重新安装/更新 RKNPU2 。

                            在Ubuntu PC开发机的终端输入以下命令进行检查:

                            # 进入开发板终端
                            adb shell
                            # 启动 rknn_server
                            restart_rknn.sh
                            # start rknn server, version: x.x.x   # 表示启动服务成功
                            # 查询rknn_server版本
                            strings /usr/bin/rknn_server | grep -i "rknn_server version"
                            # rknn_server version: x.x.x   # 笔者这里未显示输出,大概是厂家预装的NPU驱动版本比较旧的问题
                            # 查询librknnrt.so库版本
                            strings /usr/lib/librknnrt.so | grep -i "librknnrt version"
                            # librknnrt version: x.x.x    
                            

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            由于第三方开发板厂家发布的系统固件,对于预装的RKNPU驱动可能存在固件版本滞后等问题,一般都建议按照下一节更新RKNPU2,已匹配我们刚才下载安装的v2.3.0最新版RKNN-Toolkit2 ,从而达到更好的推理性能。

                            6.4 安装/更新RKNPU2环境

                            根据官方手册的操作指示,进入rknn-toolkit/rknpu2目录,使用adb工具将rknn_server和librknnrt.so推送到板端,然后重新启动rknn_server。

                            (注意:不同版本和系统对应的文件存放路径有不同,请自行进入文件目录里面确认,下面仅以64位Linux为例展示。)

                            cd rknn-toolkit2/rknpu2
                            # 推送 rknn_server 到板端
                            adb push runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin
                            # 推送 librknnrt.so 到板端
                            adb push runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib
                            # 进入板端
                            adb shell
                            # 赋予可执行权限
                            chmod +x /usr/bin/rknn_server
                            chmod +x /usr/bin/start_rknn.sh
                            chmod +x /usr/bin/restart_rknn.sh
                            # 重启 rknn_server 服务
                            restart_rknn.sh
                            # 再次检查 rknn_server 版本
                            strings /usr/bin/rknn_server | grep -i "rknn_server version"
                            # 再次检查 librknnrt.so 版本 
                            strings /usr/lib/librknnrt.so | grep -i "librknnrt version"
                            

                            香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                            7. 【RKNN部署】YOLO11 模型 RKNPU 部署示例

                            7.1 将pt模型导出onnx中间格式

                            (注意:这一步在Windows PC电脑上进行)

                            YOLO11模型导出方法步骤请参考4.7节完成。

                            将导出的模型文件my_yolo11n.onnx拷贝到RKNN开发机的项目中,文件保存路径如下:

                            /Project/rknn_model_zoo/examples/yolo11/model/my_yolo11n.onnx
                            

                            可以使用WinSCP工具把文件从Windows系统发送到Linux系统,需要将设备都连接到同一个局域网内,WinSCP安装方法参考8.3节。

                            7.2 模型onnx格式转换成rknn格式

                            (注意:这一步在RKNN开发机Ubuntu PC电脑上进行)

                            # 激活toolkit2虚拟环境
                            conda activate toolkit2
                            # 进入RKNN model zoo 项目仓库yolov8模型转换python示例,注意检查你的实际项目路径
                            cd /Project/rknn_model_zoo/examples/yolo11/python
                            # 执行模型onnx to rknn 转换
                            # 第1个参数:加载的.onnx模型路径
                            # 第2个参数:计算芯片平台系列型号,例如目前支持rk3562/rk3566/rk3568/rk3576/rk3588/rk1808/rv1109/rv1126
                            # 第3个参数(选填):量化类型i8/u8/fp,其中i8/u8是执行量化,fp是不量化,默认是i8(即int8量化)
                            # 第4个参数(选填):导出的.rknn模型路径,默认输出的文件路径为../model/yolo11.rknn
                            python convert.py ../model/my_yolo11n.onnx rk3588
                            # or 指定量化类型、指定输出模型路径及名称
                            python convert.py ../model/my_yolo11n.onnx rk3588 i8 ../model/my_yolo11n.rknn
                            

                            7.3 开发机Python_Demo连板推理

                            (注意:后面步骤均在RKNN开发机Ubuntu PC电脑上进行,且确保已按照6.1节的步骤以ADB方式连接到RK3588开发板)

                            修改RKNN Model Zoo 模型库中官方提供的Python Demo推理脚本yolo11.py,文件路径如下:

                            /Project/rknn_model_zoo/examples/yolov8/python/yolo11.py
                            

                            如果是使用自己训练的模型,需要手动在脚本里面修改以下几个参数:

                            • OBJ_THRESH:置信度阈值,用于筛选出较高置信度的框。阈值越大,出来的框准确度较高,框的数量越少;阈值越小,框的数量越多,但误检的框也更多。
                            • NMS_THRESH:非极大值抑制,用于抑制重叠率高的框。阈值越高,允许更多重叠率高的框;阈值越小,抑制更多重叠率高的框,过低的阈值也可能会导致漏检。
                            • IMG_SIZE:图片输入模型推理时强制resize的尺寸,必须和训练时设置的一致,且与推理前加载的新图片尺寸无关。
                            • CLASSES:对象类别名称,一般与训练时的数据集中检测对象标注的类别名称一致。
                            • coco_id_list:和对象类别名称classes绑定的ID编号。

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              笔者这里使用的是官方的yolo11n模型,没有用其他数据集二次训练,所以后面三个参数在yolo11.py实例脚本中默认给出了一致的内容,如上图的一共90个检测类,如果对推理结果的检出框的效果不满意,可以试着修改前两个阈值进行调整,自行排查原因。

                              # 终端输入命令,在python文件夹下执行连板推理Python Demo
                              cd /Project/rknn_model_zoo/examples/yolo11/python
                              # 显示推理结果图片
                              python yolo11.py --model_path ../model/my_yolo11n.rknn --target rk3588 --img_show
                              # 保存推理结果图片
                              python yolo11.py --model_path ../model/my_yolo11n.rknn --target rk3588 --img_save
                              # 推理转换前的onnx模型,运行在此RKNN开发机的CPU,仅用于推理效果的对比
                              python yolo11.py --model_path ../model/my_yolov11.onnx --img_show
                              

                              模型经过int8量化后,检测框的位置精度一致,置信度也仅有0.01波动(左边是yolo11n.onnx模型,右边是yolo11n.rknn模型)

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              对比yolov8n和yolo11n在同样的RK3588 NPU连板推理,精度有些许提升(左边是yolov8n.rknn模型,右边是yolo11n.rknn模型)

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              7.4 板端C_Demo调用NPU推理

                              将C/C++ 源代码编译成可执行文件,编译之前先修改Project/rknn_model_zoo目录下的build-linux.sh脚本

                              即在脚本的开头#!/bin/bash之后插入一行,指定编译器的路径 GCC_COMPILER 为本地的 GCC 编译器绝对路径,例如:

                              # 参考第5.3.2节安装的GCC编译器路径
                              # 必须要用系统绝对路径,而不是相对路径,不然会报错显示找不到,这里坑死我了
                              GCC_COMPILER=/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
                              # 例如:
                              GCC_COMPILER=/home/galitao/RKNN/Project/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
                              

                              执行build_linux.sh脚本,编译示例程序

                              # 进入 rknn_model_zoo 目录
                              cd Project/rknn_model_zoo
                              # 运行 build-linux.sh 脚本
                              # 用法:./build-linux.sh -t  -a  -d  [-b ] [-m]
                              # -t : target (rk356x/rk3588) # 平台类型,其中rk3568/rk3566 都统一为rk356x
                              # -a : arch (aarch64/armhf) # 板端系统架构
                              # -d : demo name # 对应 examples 目录下子文件夹的名称,如yolov8、yolo11、mobilenet 等等
                              # -b : build_type(Debug/Release) # 默认是Release
                              # -m : enable address sanitizer, build_type need set to Debug
                              sudo bash ./build-linux.sh -t rk3588 -a aarch64 -d yolo11
                              

                              编译完事后,会在Project/rknn_model_zoo目录下生成install文件夹,里面存放的文件如下:

                              install
                              └── rk3588_linux_aarch64 # rk3588平台
                                └── rknn_yolo11_demo
                                  ├── lib # 依赖库
                                  │	├── librga.so 
                                  │	└── librknnrt.so 
                              	├── model # 模型推理材料
                              	│	├── bus.jpg # 测试照片
                              	│   ├── coco_80_labels_list.txt # 检测类别
                                  │	└── my_yolo11n.rknn # 模型文件
                              	├── rknn_yolo11_demo # 可执行文件
                                  └── rknn_yolo11_demo_zero_copy # 零拷贝调用API的可执行文件
                              

                              将rknn_yolo11_demo整个文件夹,用ADB推送到开发板上

                              # 推送到开发板上,自己新建或找个路径存放即可
                              adb push install/rk3588_linux_aarch64/rknn_yolo11_demo /rknn/rk3588_yolo11_c_demo/
                              

                              到板端运行C demo模型推理的可执行文件

                              # 使用adb远程登录到开发板终端
                              adb shell
                              # 进入新建的目录下
                              cd /rknn/rk3588_yolo11_c_demo/
                              # 设置依赖库环境
                              export LD_LIBRARY_PATH=./lib
                              # 运行可执行文件
                              ./rknn_yolo11_demo model/yolo11.rknn model/bus.jpg
                              dir # 查看当前目录下的文件如下,生成了一张out.png图片
                              # lib   model   out.png   rknn_yolo11_demo   rknn_yolo11_demo_zero_copy
                              # 使用快捷键【Ctrl】+【D】退出adb远程登录
                              

                              回到Ubuntu PC终端上用adb拉取刚刚在开发板上生成的结果图片

                              # 拉取out.png图片到rknn_model_zoo目录下
                              adb pull /rknn/rk3588_yolo11_c_demo/out.png .
                              

                              板端C_demo检测结果和连板仿真Python_demo检测结果一致(左边是Python_demo推理结果,右边是C_demo推理结果)

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              对比yolov8n和yolo11n的C_Demo推理结果,后者精度有些许提升(左边是yolov8n.rknn模型,右边是yolo11n.rknn模型)

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              8. 其他工具

                              8.1 Windows安装wget

                              介绍:wget是一个Linux命令行工具,用于从Web服务器上下载文件,官方提供了wget for Windows的工具包。

                              常见报错:Windows未安装好时,在CMD使用wget命令一般会提示:'wget' 不是内部或外部命令,也不是可运行的程序

                              ①从官网下载64位exe文件:GNU Wget 1.21.3 for Windows (eternallybored.org)

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              ②将下载的wget.exe文件复制到C:\Windows\System32路径下即可

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              ③验证是否安装成功,使用cmd终端输入命令wget会提示缺少链接参数,或使用wget --version查看安装版本。

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              8.2 Windows安装git

                              浏览器进入Git官网下载页面,选择下载Windows的安装包。

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              启动安装包,默认选项一路点下一步即可,提示添加Path的时记得勾选,安装完之后进去系统环境变量查看是否有该项。

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              在cmd终端输入git -v检查安装的版本

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              8.3 Windows安装WinSCP(与Linux系统文件互传)

                              在WinSCP官网Download页面下载安装包,即可免费使用,文件可以拖拽式传输,十分方便。

                              初次使用提示登录站点,默认使用SFTP协议,22端口,输入局域网内的Linux系统设备的IP地址、用户名、密码即可。

                              香橙派5 RK3588 RKNN开发环境配置 YOLO11模型转换NPU部署推理 (2024.11)

                              如果遇到IP地址、用户名、密码都对,但显示对方拒绝连接,可能是Linux平台未安装或未开启SSH服务,请开启SSH服务后重试。

                              下面以 Ubuntu 22.04 LTS为例安装并启动SSH服务:

                              # 更新软件包
                              sudo apt-get update
                              # 安装 OpenSSH 服务器(一般安装完会自动开启ssh服务)
                              sudo apt-get install openssh-server
                              # 手动开启 SSH 服务
                              sudo /etc/init.d/ssh start
                              # 检查 SSH 服务状态
                              sudo systemctl status ssh
                              

                              参考资料:

                              PyCharm+Miniconda3安装配置教程

                              YOLOv8 CUDA12.1安装+环境配置教程

                              2024最新的YOLOv8安装配置全流程

                              Conda 环境的本质

                              Miniconda 安装及使用

                              ubuntu22.04 怎么开启SSH服务

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码