Rk3566 yolov5部署(一)Ubuntu系统烧写及cmake安装

RK3566/RK3588 yolov5部署(二)NPU冒烟测试及rknn_api使用

RK3566/RK3588 yolov5部署(三)yolov5单线程部署并查看NPU占用情况

RK3566/RK3588 YoloV5部署(四) yolov5多线程部署

部署平台 Rk3566(orangepi3b 8G)

1.使用 balenaEtcher 烧录 Linux 镜像

(1)首先准备一张 16GB 或更大容量的 TF 卡,TF 卡的传输速度必须为 class10 级或 class10 级以上。

(2)官网下载ubuntu系统镜像:

香橙派(Orange Pi)-Orange Pi官网-香橙派开发板,开源硬件,开源软件,开源芯片,电脑键盘

官网服务与下载中找到orangepi3b

在官方镜像中选择ubuntu镜像并下载解压。

(3)下载 Linux 镜像的烧录软件balenaEtcherhttps://www.balena.io/etcher/

(4)将tf卡插入读卡器,连接电脑,进入 balenaEtcher 页面后,点击从文件烧录。

选中解压好的.img文件

点击选择目标磁盘,选择tf卡,最后点击现在烧录

Linux 镜像烧录完后,balenaEtcher 默认还会对烧录到 TF 卡中的镜像进行校验,

确保烧录过程没有出问题。如下图所示,显示绿色的进度条就表示镜像已经烧录完成,balenaEtcher 正在对烧录完成的镜像进行校验

成功烧录完成后拔出 TF 卡插入到开发板的TF卡槽中使用。

(5)Windows平台使用mobexterm进行串口调试

首先需要准备一个 3.3V USB TTL 模块,然后将 USB TTL 模块的 USB接口一端插入到电脑的 USB 接口中。

USB TTL 模块 GNDTXD RXD 引脚需要通过杜邦线连接到开发板的调试串口上

a. USB TTL 模块的 GND 接到开发板的 GND

b. USB TTL 模块的 RX 接到开发板的 TX

c. USB TTL 模块的 TX 接到开发板的 RX
下载MobeXterm(选择Home版,选择Portable版):

MobaXterm free Xserver and tabbed SSH client for Windows

点击Session,在弹出页面点击Serial,选择串口的端口号(如果已经插入usb但看不到端口,则需要安装串口驱动)并设置波特率为1500000,左后点击ok

给开发板上电,窗口会显示串口输出信息

进入系统:

扫描周围的 WIFI 热点,并连接网络:

nmcli dev wifi 
sudo nmcli dev wifi connect wifi_name password wifi_passwd

注意wifi_name换成你的wifi名字,wifi_passwd换成WiFi密码

系统会要求输入密码,此时输入默认密码orangepi

连接成功:

用ifconfig查看当前设备ip

(6)使用windows下用MobeXterm进行ssh远程连接:

a.打开 Session

b. 然后在 Session Setting 中选择 SSH

c. 然后在 Remote host 中输入开发板的 IP 地址

d. 然后在 Specify username 中输入 Linux 系统的用户名 root orangepi

e. 最后点击 OK 即可

2.在开发板上安装cmake

(1)打开cmake官网:CMake - Upgrade Your Software Build System

(2)点击download,选择Linux aarch64版本:

(3)将下载好的文件直接拖动到MobeXterm远程连接窗口,终端cd到文件路径,先给文件可执行权限,直接运行脚本安装:

sudo chmod +x cmake-4.0.0-linux-aarch64.sh
./cmake-4.0.0-linux-aarch64.sh

添加到环境变量:

vim ~/.bashrc

按i进入插入模式,在最后一行添加

export PATH="$PATH:/xxx/xxx/bin

按esc推出插入模式,按“:wq”保存并退出vim

source ~/.bashrc

输入cmake --version

打印版本则安装成功

### RK3566 平台 YOLOv5 NPU 配置教程及性能优化 #### 1. 安装必要的依赖项 为了在RK3566上成功部署YOLOv5并利用NPU加速,需安装系列基础软件包。这包括但不限于编译工具链、Python环境以及特定于硬件平台的支持库。 ```bash sudo apt-get update && sudo apt-get install -y build-essential cmake git libopencv-dev python3-pip pip3 install numpy opencv-python ``` #### 2. 获取 Rockchip NPU SDK 访问官方GitHub仓库下载适用于RK3566的NPU驱动程序和C++推理示例[^2]。通过克隆指定分支获取最新版本源码: ```bash git clone https://github.com/rockchip-linux/rknpu.git -b rk356x cd rknpu make ``` #### 3. 转换YOLOv5模型至支持格式 由于原生PyTorch模型无法直接被NPU加载执行,因此需要借助ONNX作为中间表示形式完成转换过程。可以使用`torch.onnx.export()`函数实现此目的;另外还需注意调整输入张量尺寸以匹配目标设备特性。 ```python import torch from models.experimental import attempt_load model = attempt_load('yolov5s.pt', map_location='cpu') # 加载预训练权重文件 dummy_input = torch.randn(1, 3, 640, 640) # 创建虚拟数据样本 torch.onnx.export(model, dummy_input, "yolov5s.onnx") # 导出为ONNX格式 ``` #### 4. 编基于 C++ 的推理代码 参照rknpu项目中的demo.cpp模板编自定义应用程序逻辑,在其中集成已准备好的onnx模型,并调用相应API接口完成前向传播计算任务。特别提醒要设置好正确的输入输出节点名称与形状参数。 ```cpp #include <iostream> #include "rknn_api.h" int main() { const char* model_path = "./yolov5s.rknn"; int ret; /* 初始化 */ rknn_context ctx; ret = rknn_init(&ctx, model_path); /* 准备输入数据 */ float input_data[] = { ... }; // 填充实际测试图片像素值 /* 执行推理 */ rknn_tensor_attr input_attrs[1]; memset(input_attrs, 0, sizeof(rknn_tensor_attr)); input_attrs[0].index = 0; ... } ``` #### 5. 性能优化建议 针对具体应用场景采取适当措施提升检测效率: - **量化感知训练**:采用INT8精度代替FP32可显著减少内存占用同时加快运算速度; - **多线程处理机制**:充分利用CPU资源分担部分工作负载,比如图像预处理阶段; - **动态调整NPU频率**:依据当前负荷状况灵活改变功耗模式,平衡能耗与吞吐量之间的关系[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值