瑞芯微1126环境配置说明

1126环境配置说明

主要参照:

RV1109_RV1126 EVB板使用总结_咬我呀_Gemini的博客-CSDN博客_evb板

  1. usb驱动安装

  1. 虚拟机vmware如何共享文件夹

VMware ubuntu虚拟机与主机共享文件夹_whr197的博客-CSDN博客_ubuntu虚拟机和主机共享文件夹

  1. 开发板连接电脑以及深度学习

瑞芯微 TB-RK3399Pro -- 开发板环境_荪荪的博客-CSDN博客_rk3399

  1. 配置rknn

[RV1109/RV1126系列]-1.安装部署RKNN_ToolKit进行算法NPU移植_Ant5985的博客-CSDN博客_rv1126部署pytorch

  1. RV1109_RV1126 EVB板使用总结

RV1109_RV1126 EVB板使用总结_咬我呀_Gemini的博客-CSDN博客_evb板

  1. 认识buildboot

认识Buildroot_就是个linux工程师的博客-CSDN博客_buildroot

  1. 安装tensorflow报错时,可以升级pip

一开始安装tensorflow报错

升级pip后重新安装正常

  1. 安装rknn报错

可见rknn和python的一个画图库matplot是冲突的,此处暂时不做处理;

  1. Pc仿真环境中试跑demo

  1. 客户端连接Com无法打开,重新安装驱动

D:\BaiduNetdiskDownload\rp-rv1126_rv1109\06-工具\烧写驱动\DriverAssitant_v5.0

  1. Rknn sever编译烧录

  1. 重要:如何连接adb 进行调试

  1. Usb接入ubuntu系统后报错

  1. Pc联机调试开发板,报错

没有rknnsever,所以不能进行联机调试;

  1. 开发板 连接pc端联调,需要开发板侧有rknn server模块;

  1. 安装交叉编译工具链

  1. 交叉编译rknn的demo

  1. 交叉编译文件上传到板子上

  1. 在板子上运行算法模型

### YOLOv8 模型转换与部署至瑞芯微 RKNN 平台教程 #### 准备工作 为了成功将YOLOv8模型转换并部署到瑞芯微RKNN平台上,需准备必要的开发环境和工具链。确保安装了Python、PyTorch以及ONNX等相关库。 #### 将 PyTorch 模型导出为 ONNX 格式 首先需要把原始的YOLOv8 PyTorch模型保存成通用中间表示形式——ONNX文件。此过程涉及定义输入张量形状,并调用`torch.onnx.export()`函数完成转换操作[^3]。 ```python import torch from ultralytics import YOLO model = YOLO('yolov8n.pt') # 加载预训练好的YOLOv8 nano版本模型 dummy_input = torch.randn(1, 3, 640, 640) # 创建虚拟输入数据用于导出 output_onnx = 'yolov8n.onnx' input_names = ["image"] output_names = ['boxes', 'labels'] torch.onnx.export(model, dummy_input, output_onnx, input_names=input_names, output_names=output_names, opset_version=12) ``` #### 使用 RKNN Toolkit 进行模型优化与编译 一旦获得了`.onnx`格式的目标检测网络结构描述文档,则可以利用官方提供的[RKNN Toolkit](https://github.com/rockchip-linux/rknn-toolkit),将其进一步转化为适用于特定硬件架构下的可执行二进制码(即`.rknn`文件)。具体命令如下所示: ```bash pip install rknn-toolkit==1.7.0 # 安装对应版本的RKNN toolkit包 ``` 接着编写一段简单的脚本来处理后续步骤: ```python from rknn.api import RKNN if __name__ == '__main__': # Create RKNN object rknn = RKNN() # Pre-process config print('--> Config model') rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform='rv1126') # Load ONNX model print('--> Loading model') ret = rknn.load_onnx(model='./yolov8n.onnx') if ret != 0: print('Load ONNX model failed!') exit(ret) # Build model print('--> Building model') ret = rknn.build(do_quantization=True, dataset='./dataset.txt') if ret != 0: print('Build model failed!') exit(ret) # Export RKNN model print('--> Exporting RKNN model') ret = rknn.export_rknn('./yolov8n.rknn') if ret != 0: print('Export RKNN model failed!') exit(ret) print('done') ``` 上述代码片段展示了如何通过设置量化参数来减小最终生成的应用程序体积大小的同时保持较高的精度水平;同时也指定了目标平台为RV1126系列处理器作为运行载体之一[^1]。 #### C++ 接口实现推理功能 最后,在嵌入式设备端可通过C++ API接口加载之前构建出来的`.rknn`文件来进行实时图像识别任务。下面给出了一段简化版的例子说明怎样初始化会话对象、配置输入输出缓冲区尺寸规格等细节事项[^2]: ```cpp #include "rknn_api.h" int main() { const char* model_path = "./yolov8n.rknn"; int ret; /* 初始化 */ rknn_context ctx; ret = rknn_init(&ctx, model_path, 0, 0, NULL); if (ret < 0){ printf("rknn_init fail! ret=%d\n", ret); return -1; } /* 获取输入输出属性信息 */ rknn_tensor_attr *input_attrs = new rknn_tensor_attr[input_num]; memset(input_attrs, 0, sizeof(rknn_tensor_attr)*input_num); for(int i=0; i<input_num; ++i){ input_attrs[i].index=i; ret=rknn_query(ctx,RKNN_QUERY_INPUT_ATTR,&input_attrs[i],sizeof(rknn_tensor_attr)); ... } } ``` 这段源码实现了基本的功能框架搭建,实际应用中还需要补充更多逻辑控制语句以满足不同场景需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值