瑞芯微RK3588s部署百度飞桨fastdeploy

本文详细介绍了如何在Ubuntu20.04环境下为ROC-RK3588S平台编译FastDeploy,涉及C++编译、交叉编译、Python安装包编译,以及Paddle模型的ONNX转换和RKNN推理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 环境

- 虚拟机ubuntu20
- ROC-RK3588S-PC_Ubuntu20.04-Xfce-r3115_v1.3.0c_240131

1. 编译C++

1.1 [DEV]编译

#安装依赖
$ sudo apt install git cmake g++ python3-pip
#获取源码
$ cd ~/Downloads
$ git clone https://github.com/PaddlePaddle/FastDeploy.git
#压缩备份:
$ 7z a FastDeploy_git_src_20240311.7z FastDeploy

# 编译安装

$ cd FastDeploy
$ git checkout develop
$ mkdir build && cd build
$ cmake .. -DENABLE_ORT_BACKEND=ON \
         -DENABLE_VISION=ON \
         -DENABLE_RKNPU2_BACKEND=ON \
         -DRKNN2_TARGET_SOC=RK3588 \
         -DCMAKE_INSTALL_PREFIX=${PWD}/fastdeploy-dev
$ make -j8
$ make install

1.2 [PC]交叉编译


# 准备交叉编译工具链
sudo apt install cmake build-essential
wget https://bj.bcebos.com/fastdeploy/third_libs/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz
tar -xzvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz -C /path/to/save

# 编译
cd FastDeploy
mkdir build && cd build
cmake ..  -DCMAKE_C_COMPILER=/home/xxjianvm/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
          -DCMAKE_CXX_COMPILER=/home/xxjianvm/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
          -DCMAKE_TOOLCHAIN_FILE=./../cmake/toolchain.cmake \
          -DTARGET_ABI=arm64 \
          -DENABLE_ORT_BACKEND=OFF \
          -DENABLE_RKNPU2_BACKEND=ON \
          -DENABLE_VISION=ON \
          -DRKNN2_TARGET_SOC=RK3588 \
          -DCMAKE_INSTALL_PREFIX=/home/xxjianvm/Downloads/FastDeploy/install
make -j8
make install

RKNN2_TARGET_SOC可

### 如何在瑞芯微 RK3588部署机器学习或深度学习算法 #### 选择合适的工具链和库 为了在瑞芯微RK3588平台上高效运行机器学习或深度学习模型,通常会选择特定于硬件的优化工具。对于基于ARM架构的设备如Orange Pi 5 (搭载RK3588S芯片),可以利用RKNN Toolkit来进行模型转换与部署[^1]。 #### 准备环境 安装必要的依赖项以及设置开发环境是第一步。这包括但不限于Linux系统的准备、Python解释器及其包管理工具pip等基础组件。针对RK3588平台,还需要特别关注支持该处理器特性的驱动程序和支持库版本的选择。 #### 转换模型至适合的目标格式 使用RKNN SDK中的API接口可将训练好的神经网络模型(例如来自PyTorch、TensorFlow等框架)转化为适用于RK3588执行的形式。此过程中可能涉及到量化处理以减少计算资源消耗并提高性能效率。 ```python from rknn.api import RKNN rknn = RKNN() ret = rknn.load_tensorflow(model_filename='model.pb', inputs=['input'], outputs=['output']) if ret != 0: print('Load TensorFlow model failed') exit(ret) ret = rknn.build(do_quantization=True, dataset='./dataset.txt') if ret != 0: print('Build RKNN model failed!') exit(ret) ``` #### 编写应用程序逻辑 完成上述准备工作之后,则可以根据具体应用场景编写相应的应用代码,在其中调用已加载的RKNN模型实例进行预测操作,并依据所得结果实施进一步的动作响应机制设计。这里提供了一个简单的例子用于说明如何创建一个能够读取图像输入并通过预训练过的PPO策略给出决策建议的应用流程。 ```python import cv2 img = cv2.imread('./test.jpg') out = rknn.inference(inputs=[img]) print(out) ``` #### 性能优化考量 考虑到实际产品化的需求,除了基本的功能实现外还需重视整体解决方案的成本效益分析。比如采用INT8精度代替FP32可以在不影响太多准确性的情况下显著降低功耗;另外也可以探索其他加速手段像多线程并发处理等方式提升吞吐量表现[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值