0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实战RK3568性能调优:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU

北京迅为电子 2025-11-07 13:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

当你拿到性能强大的RK3568核心板,是否曾对那颗标称1Tops的NPU感到无从下手?特别是在Android系统上,如何绕过复杂的环境配置,快速部署AI模型?本文将抛开理论,直击实战,手把手带你利用迅为提供的完整资料,在Android系统上点亮NPU,让你的AI应用跑得更快、更稳。

wKgZO2kNhoyANfKzAAN9ijOwaGA549.png



为什么选择迅为的官方工具链?

RK3568的NPU确实强大,但对许多开发者而言,它就像一座“锁住的金矿”。从零开始交叉编译、解决依赖、适配系统……这个过程不仅繁琐,还极易因版本问题无法发挥硬件最佳性能。

迅为提供的RKNPU2工具链,其核心价值在于:

·开箱即用:工具已预编译,与Android系统内核、驱动深度适配,省去大量环境配置时间。
·性能最优:针对迅为硬件进行了底层参数调优,确保NPU算力被高效利用。
·生态完整:从模型转换、示例代码到部署指南,提供了详情手册。


接下来,我们将进入最核心的实战环节。


让NPU跑起来-在Android系统中使用NPU

下载rknpu2并拷贝到虚拟机Ubuntu,如下图所示,RKNPU2提供了访问

rk3568芯片NPU的高级接口

wKgZPGkNaJaAbtkrAAHDA_DTv1U424.png

下载地址为“iTOP-3568开发板\02_【iTOP-RK3568开发板】开发资料\11_NPU

使用配套资料\01_rknpu2工具

Android平台有俩种方式来调用RKNN API

第一种:AI应用直接链接RKNN SDK库文件librknnrt.so

第二种:应用链接Android平台HIDL实现的librknn_api_android.so,HIDL

是用于指定Android HAL和其用户之间的接口的一种接口描述语言。

如果需要通过CTS/VTS测试(兼容性测试套件/供应商测试套件)的安卓设

备,可以使用基于Android平台HIDL实现的RKNN API。

如果不需要通过CTS/VTS测试的安卓设备,建议直接使用librknnrt.so,这

样对各个调用接口流程的链路更短,可以提供改好的性能。

对于使用Android HIDL实现的RKNN API的代码位于RK356x Android系统

SDK的vendor/rockchip/hardware/interfaces/neuralnetworks目录下。当编译完

Android系统时,会生成一些NPU相关的库,如下所示,但是对于应用只需要链

接使用librknn_api_android.so即可。

/system/lib/librknn_api_android.so

/system/lib/librknnhal_bridge.rockchip.so

/system/lib64/librknn_api_android.so

/system/lib64/librknnhal_bridge.rockchip.so

/vendor/lib64/rockchip.hardware.neuralnetworks@1.0.so

/vendor/lib64/rockchip.hardware.neuralnetworks@1.0-adapter-helper.so

/vendor/lib64/librknnrt.so

/vendor/lib64/hw/rockchip.hardware.neuralnetworks@1.0-impl.so

在RKNN SDK中提供了Android平台的MobileNet图像分类、SSD目标检

测、YOLOv5目标检测示例。这些Demo能够为客户基于RKNN SDK开发自己

的AI应用提供参考。在rknpu2/examples中还有很多例子,如下图所示:

wKgZO2kNaJeAGDgTAAMAU7szORE468.png

下面以rknn_yolov5_demo在RK3568 Android 64位平台上运行为例,来讲

解如何快速上手运行。整体思路分为三步:

1在虚拟机Ubuntu18.04上交叉编译demo程序rknn_yolov5_demo(demo

已经默认是rknn,无需进行模型转换)

2部署到iTOP-RK3568开发板

3在开发板上运行demo

3.2.1 下载编译所需工具

1 Android系统编译需要下载NDK,Android NDK下载地址为如下所示:

https://developer.android.google.cn/ndk/downloads/older_releases#ndk-17c-download

s

将下载地址复制到浏览器,并打开网页,如下图所示:

wKgZPGkNaJaAVnJiAAIAjdcJstA382.png

2点击“我同意这些条款”,



3往下滑动网页,找到Android NDK r17c(建议的版本),下载Linux 64位(x86)

的软件包,

4下载完毕,在Ubuntu的/opt/tool_chain目录下新建tool_chain文件夹,然后将android-ndk-r17c-linux-x86_64.zip拷贝到ubuntu的/opt/tool_chain路径下,然后解压,

3.2.2 修改编译工具路径

1因为此章节以rknn_yolov5_demo在RK3568 Android11 64位平台上运行为

例,所以修改examples/rknn_yolov5_demo/build-XXX.sh的编译工具路径,如下

图所示:

wKgZPGkNaJaAFAd9AAJBDW_HqYI370.png

2修 改build-android_RK356X.sh文 件 , 将ANDROID_NDK_PATH修 改 为android-ndk-r17c的保存路径,

NDK在ubuntu上的路径为/opt/tool_chain/android-ndk-r17c/,如下图所示。

意!!!ANDROID_NDK_PATH修改的路径要和实际的路径一致。

3.2.3 更新 RKNN 模型

RKNN是Rockchip NPU平台(也就是开发板)使用的模型类型,是以.rknn结

尾的模型文件。

RKNN SDK提供的demo程序中默认自带了RKNN模型,在RKNN SDK的

examples/rknn_yolov5_demo/model/RK356X/目录下,

如使用自己的模型需要转换成rknn模型,转换方法可以参考第5章节。

在得到RKNN模型之后,demo程序使用C接口在RK3568平台开发应用,

3.2.4 编译 demo

1在终端命令窗口进入rknn_yolov5_demo文件夹,输入以下命令:

cd examples/rknn_yolov5_demo/

2运行build-android_RK356X.sh脚本编译程序

./build-android_RK356X.sh

3此例子为编译RK3568的安卓11 64位平台。若需要编译其他平台请选择相应

的脚本。详情可参考/rknpu2/examples/rknn_yolov5_demo/README.md。 若在编

译时出现cmake错误,可执行“apt install cmake”命令安装cmake后再运行编

译脚本。

4编译完成之后,编译好的程序一般放在install目录,

5我们可以编译生成Android或Linux Demo(需要交叉编译环境)。也可以直

接 下 载 编 译 好 的Demo, 可 以 在 网 盘 资 料 资 料“iTOP-3568开 发 板\02_

【iTOP-RK3568开 发 板 】 开 发 资 料\11_NPU使 用 配 套 资 料\02_NPU

demo\Android”下载。

3.2.5 开发板运行 demo

1开发板上要烧写Android11系统,并连接好usb线。

接着使用命令sudo apt install android-tools-adb在虚拟机Ubuntu上安装adb工

具。

2开发板系统启动之后,我们将开发板连接到虚拟机Ubuntu18.04上。

3开发板被ubuntu识别之后,在demo目录下输入“adb devices”命令可以查看到

开发板设备。

4推送拷贝rknn_server到开发板,输入以下命令:

adb push runtime/RK356X/Android/rknn_server/arm64/rknn_server /vendor/bin/

5推送拷贝librknnrt.so到开发板,输入以下命令:

adb push runtime/RK356X/Android/librknn_api/arm64-v8a/librknnrt.so /vendor/lib64

6使用adb推送拷贝rknn_yolov5_demo_Android(上一小节编译好的程序)到开

发板的/data目录,注意!因为android系统权限问题,只能拷贝到data目录。输

入以下命令拷贝:

adb push rknn_yolov5_demo_Android /data/

如果拷贝失败,要在串口终端上输入以下命令,然后再进行push操作

su

chmod 777 /data

7然后我们进入开发板所在的系统,输入“adb shell”命令。

8进入程序所在的目录,输入以下命令:

cd /data/rknn_yolov5_demo_Android/

9设置库文件的路径,输入以下命令:

export LD_LIBRARY_PATH=./lib

10 运行程序来识别相应的图片中物体,输入以下命令:

用法Usage: ./rknn_yolov5_demo

./rknn_yolov5_demo ./model/RK356X/yolov5s-640-640.rknn ./model/bus.jpg

11打开一个新的窗口终端,下载识别后的图片out.jpg到虚拟机ubuntu18.04上

查看,输入以下命令:

adb pull /data/rknn_yolov5_demo_Android/out.jpg ./

查看out.jpg如下图所示:

wKgZPGkNaJeAdyP6AAOfc82M0sE425.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3984

    浏览量

    133014
  • 开发板
    +关注

    关注

    25

    文章

    6121

    浏览量

    113144
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战RK3568内核模块符号导出详解

    工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战RK3568内核
    的头像 发表于 11-21 13:25 625次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b>工业<b class='flag-5'>RK3568</b>稳定可靠】itop-<b class='flag-5'>3568</b>开发板Linux驱动开发<b class='flag-5'>实战</b>:<b class='flag-5'>RK3568</b>内核模块符号导出详解

    RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2 的使用

    RK3568开发板NPU实战】别再闲置你的NPU!手把手教你玩转RKNN-Toolkit2
    的头像 发表于 11-11 14:21 532次阅读
    【<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板<b class='flag-5'>NPU</b><b class='flag-5'>实战</b>】别再闲置你的<b class='flag-5'>NPU</b>!手把手教你玩转RKNN-Toolkit2 的使用

    RK3568 NPU实战】别再闲置你的NPU!手把手带你用资料跑通Android AI检测Demo,附完整流程与效果

    RK3568 NPU实战】别再闲置你的NPU!手把手带你用
    的头像 发表于 11-10 15:58 855次阅读
    【<b class='flag-5'>RK3568</b> <b class='flag-5'>NPU</b><b class='flag-5'>实战</b>】别再闲置你的<b class='flag-5'>NPU</b>!手把手带你用<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>资料</b>跑通<b class='flag-5'>Android</b> AI检测Demo,附完整流程与效果

    嵌入式Linux新手入门:为什么RK3568+资料是黄金组合

    嵌入式Linux新手入门:为什么RK3568+资料是黄金组合
    的头像 发表于 11-04 14:05 245次阅读
    嵌入式Linux新手入门:为什么<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>+<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>资料</b>是黄金组合

    RK3568开发板模型推理测试实战LPRNet 车牌识别

    RK3568开发板模型推理测试实战LPRNet 车牌识别
    的头像 发表于 08-25 14:55 1062次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板模型推理测试<b class='flag-5'>实战</b>LPRNet 车牌识别

    RK3568 重制版RK3568驱动指南全面升级

    RK3568 重制版RK3568驱动指南全面升级
    的头像 发表于 07-28 15:25 1483次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b> 重制版<b class='flag-5'>RK3568</b>驱动指南全面升级

    RK3568驱动指南GPIO子系统 GPIO操作函数实验

    电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1039次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>驱动指南GPIO子<b class='flag-5'>系统</b> GPIO操作函数实验

    RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能

    RK3568驱动指南GPIO子系统实战:实现动态切换引脚复用功能
    的头像 发表于 05-22 14:27 1674次阅读
    <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>驱动指南GPIO子<b class='flag-5'>系统</b><b class='flag-5'>实战</b>:实现动态切换引脚复用功能

    RK3568开发板瑞芯微资料升级更新驱动开发指南

    解码,多路视频源同时解码。H.265/H264/VP9/VP8视频解码和1080p100fps H.265/H.264/VP9视频编码。 RK3568推出全新安防后端硬盘录像机 NVR/XVR 芯片
    发表于 04-17 16:36

    RK3568多个系统版本并流畅运行Android12和11版本

    解码,多路视频源同时解码。H.265/H264/VP9/VP8视频解码和1080p100fps H.265/H.264/VP9视频编码。 RK3568推出全新安防后端硬盘录像机 NVR/XVR 芯片
    发表于 04-14 16:20

    NPU性能深度评测:瑞芯微RK3588、RK3576、RK3568RK3562

    随着AI技术不断发展,越来越多的嵌入式设备开始集成NPU(神经网络处理单元),以实现更高效的AI推理。作为国产芯片厂商的佼佼者,瑞芯微推出的RK3588、RK3576、RK3568
    的头像 发表于 04-03 11:17 6167次阅读
    <b class='flag-5'>NPU</b><b class='flag-5'>性能</b>深度评测:瑞芯微<b class='flag-5'>RK</b>3588、<b class='flag-5'>RK</b>3576、<b class='flag-5'>RK3568</b>、<b class='flag-5'>RK</b>3562

    爆款推荐 | RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!

    爆款推荐 | RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!
    的头像 发表于 03-19 13:41 1179次阅读
    爆款推荐 | <b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板4核处理器+1T算力<b class='flag-5'>NPU</b>+好用到爆的配套<b class='flag-5'>资料</b>和视频!

    【北京】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识

    【北京】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
    的头像 发表于 03-06 11:23 1000次阅读
    【北京<b class='flag-5'>迅</b><b class='flag-5'>为</b>】iTOP-<b class='flag-5'>RK3568</b>OpenHarmony<b class='flag-5'>系统</b>南向驱动开发GPIO基础知识

    [RK3568开发板]非科班也能玩转Android应用,体验QT跨平台能力

    [RK3568开发板]非科班也能玩转Android应用,体验QT跨平台能力
    的头像 发表于 12-18 16:41 1357次阅读
    [<b class='flag-5'>迅</b><b class='flag-5'>为</b><b class='flag-5'>RK3568</b>开发板]非科班也能玩转<b class='flag-5'>Android</b>应用,体验QT跨平台能力

    iTOP-RK3568开发板独立NPU通过算法加特应用到以下的场景

    ,多路视频源同时解码。H.265/H.264/VP9/VP8视频解码和1080p 100fps H.265/H.264/VP9视频编码。 RK3568推出全新安防后端硬盘录像机 NVR/XVR
    发表于 12-06 10:48