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

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

3天内不再提示

如何在基于Arm架构的边缘AI设备上部署飞桨模型

Arm社区 来源:Arm社区 2025-09-06 14:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Arm 与领先的开源深度学习平台强强联合,会带来什么?那就是推动创新的“火箭燃料”。Arm 携手百度,利用双方在高能效计算平台与 AI 模型的技术积累,助力广大开发者加快边缘 AI 解决方案的开发和部署。

为了加速边缘 AI 的创新,并将机器学习能力高效地应用于嵌入式设备,Arm 与百度紧密合作,在Arm Ethos-U85上成功实现了涵盖图像分类、目标检测、人脸检测、姿势检测、图像分割以及光学字符识别应用场景的经典 PaddleLite 视觉模型的流畅部署。

Arm-Examples 的 GitHub 公共仓库中已提供涵盖上述六个典型应用场景的完整开发环境。本文将重点说明将 OCR 场景中的识别模型部署在 Ethos-U85 处理器上的工作流程,以及部署其他模型时的一些注意事项。如需详细了解其他案例的技术细节,请参考仓库中对应模型的部署指南。

代码仓库(即将上线):https://github.com/Arm-Examples/Paddle-on-Ethos-U

如果你还想了解更多有关模型部署的技术细节,那下周WAVE SUMMIT 深度学习开发者大会 2025上的这场 Arm 技术分享可绝对不能错过!快来 Mark 住以下议程!

基于 Armv9 边缘 AI 计算平台,实现 ML 模型高性能部署

9 月 9 日 13:30 - 13:45

北京望京凯悦酒店

硬件论坛 · 软硬协同 模力无限

边缘侧的人工智能 (AI) 数据处理工作负载正在不断改变应用场景和用户体验。Ethos-U85正是为了满足未来边缘 AI 应用的需求而设计。为了加快芯片开发周期并简化流程,Arm 提供了包括 Arm Corstone-320 物联网参考设计平台[1]在内的一整套参考设计。本篇技术博客的案例代码正是在 Corstone-320 的固定虚拟平台[2]上进行测试。

开始之前,需要确保你的运行环境的软件配置满足以下条件:

Python 3.9 版本

Cmake 3.21 或 3.22 版本

可以创建虚拟环境的工具,例如:venv(本文使用)、Anaconda 等

测试系统环境为 ubuntu 20.04 或 22.04

步骤 1:创建虚拟运行环境,用于模型的训练或部署

# create virtual environment
python3.9 -m venv ppocr_rec
source ppocr_rec/bin/activate

注意:代码仓库中部分其他模型由于存在模型微调步骤,其模型训练和部署环境可能有差异,请参考代码仓库内部署指南。

步骤 2:从 GitHub 代码仓库下载示例代码,

并安装所需软件包

# download source code
git clone https://github.com/Arm-Examples/Paddle-on-Ethos-U

# configure virtual environment
cd Paddle-on-Ethos-U
./install.sh

步骤 3:下载飞桨模型

# download model

wget -O./model_zoo/PpocrRec_infer_int8/ch_ppocr_mobile_v2.0_rec_slim_opt.nb

https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_slim_opt.nb

步骤 4:使用代码仓库中的模型转换脚本

(write_model.py) 转换模型

本文所使用模型的主要包括以下三个模型转换步骤:

将飞桨格式的模型(后缀为 .nb 格式的文件)转换成中间表示 IR 文件(后缀为 .json 格式的文件),该步骤生成的中间表示 IR 文件将自动与输入的飞桨模型文件位于同一目录下(已知限制:--out_dir 参数针对此转换情况不生效)。

# Convert nb models to IR
python ./readnb/write_model.py --

model_path ./model_zoo/PpocrRec_infer_int8/ch_ppocr_mobile_v2.0_rec_slim_opt.nb --

out_dir .

将中间表示 IR 模型进行手动调整,由于调整部分较分散,为便于开发者体验,可通过补丁包的方式快速完成模型调整。

# Finish IR model adjustment by adding patch
cp ./model_zoo/PpocrRec_infer_int8/g_ch_ppocr_mobile_v2.0_rec_slim_opt.json ./readnb/test_asset/ppocr_rec/
cd ./readnb/test_asset/ppocr_rec/
patch -p0 g_ch_ppocr_mobile_v2.0_rec_slim_opt.json < g_ch_ppocr_rec.patch
cd ../..

可选地,再次使用转换脚本将手动调整后的中间表示 IR 模型转换为 TOSA 图[3]并使用官方提供的编译器 Ethos-U Vela 进行模型的编译。更多关于 Ethos-U Vela 编译器的信息可以查看 PyPI 社区的相关介绍[4],或可访问 developer.arm.com 中的相关技术指南[5]。也可选择跳过此步骤,因为在步骤 5 中会自动执行该转换命令。

# Finish final model conversion and do model compilation with vela

python write_model.py --

model_path ./test_asset/ppocr_rec/g_ch_ppocr_mobile_v2.0_rec_slim_opt.json --

out_dir ../download_nb --do_vela

步骤 5:构建 OCR 识别应用并查看结果

cd ..
./paddle_verify.sh -m ppocr_rec -p ./model_zoo/PpocrRec_infer_int8/test.jpg

示例测试结果如下:

telnetterminal0: Listening for serial connection on port 5000

telnetterminal1: Listening for serial connection on port 5001

telnetterminal5: Listening for serial connection on port 5002

telnetterminal2: Listening for serial connection on port 5003

handles.inputs->count is 1

input tensor scratch_addr address 0x7c11f840

input shapes 122880

copy input data into scratch_addr

handles.outputs->io[x] shapes is 655360

output tensor output_addr address 0x7c1bf840

output shapes 655360

output bin [0x7c1bf840 655360]

handles.outputs->count is 1

Shape : 655360

Rec Reuslut: 纯臻营养护发素

Confidence: 0.966813

============ NPU Inferences : 1 ============

Profiler report, CPU cycles per operator:

ethos-u : cycle_cnt : 2083105832 cycles

Operator(s) total: 574619648 CPU cycles

Inference runtime: -987073648 CPU cycles total

NOTE: CPU cycle values and ratio calculations require FPGA and identical CPU/NPU frequency

Inference CPU ratio: 100.00

Inference NPU ratio: 0.00

cpu_wait_for_npu_cntr : 574619648 CPU cycles

Ethos-U PMU report:

ethosu_pmu_cycle_cntr : 2083105832

ethosu_pmu_cntr0 : 479

ethosu_pmu_cntr1 : 21

ethosu_pmu_cntr2 : 118511

ethosu_pmu_cntr3 : 0

ethosu_pmu_cntr4 : 592

Ethos-U PMU Events:[ETHOSU_PMU_SRAM_RD_DATA_BEAT_RECEIVED,

ETHOSU_PMU_SRAM_WR_DATA_BEAT_WRITTEN,

ETHOSU_PMU_EXT_RD_DATA_BEAT_RECEIVED, ETHOSU_PMU_EXT_WR_DATA_BEAT_WRITTEN,

ETHOSU_PMU_NPU_IDLE]

============ Measurements end ============

Running Model Exit Successfully

Application exit code: 0.

Info: /OSCI/SystemC: Simulation stopped by user.

[run_fvp] Simulation complete, 0 Dump to out_tensors.bin

在基于 Arm 架构的边缘 AI 设备上部署飞桨模型,开发者往往需要优化模型、准备软件并选择合适的硬件。上述介绍的步骤将有助于开发者高效地在边缘侧部署 AI 应用,实现贴近数据源的快速推理与处理。快来动手尝试吧!

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

    关注

    135

    文章

    9507

    浏览量

    389056
  • 模型
    +关注

    关注

    1

    文章

    3655

    浏览量

    51753
  • 边缘AI
    +关注

    关注

    0

    文章

    204

    浏览量

    5862

原文标题:手把手教你在 Arm 边缘 AI 计算平台上部署飞桨模型

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    何在C#中部署PP-OCRv4模型

    《超4万6千星的开源OCR黑马登场,PaddleOCR凭什么脱颖而出?》收到了读者热烈反响c,很多读者提出:如何在C#中部署PP-OCRv4模型
    的头像 发表于 02-17 10:58 2680次阅读
    如<b class='flag-5'>何在</b>C#中<b class='flag-5'>部署</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b>PP-OCRv4<b class='flag-5'>模型</b>

    Arm方案 基于Arm架构边缘设备(树莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文将为你展示如何在树莓派或 NVIDIA Jetson Nano 等基于 Arm 架构边缘设备上部
    的头像 发表于 07-28 11:50 2522次阅读

    1 GHz Arm® Cortex®-M85 MCU上部署AI模型

    ,即可体验在1GHzArmCortex-M85MCU上部署AI模型。(公众号后台回复RA8P1,加入交流群)目录应用效果预览流程图环境准备训练模型a
    的头像 发表于 12-02 21:04 8771次阅读
    1 GHz <b class='flag-5'>Arm</b>® Cortex®-M85 MCU<b class='flag-5'>上部署</b><b class='flag-5'>AI</b><b class='flag-5'>模型</b>

    边缘部署模型优势多!模型量化解决边缘设备资源限制问题

    电子发烧友网报道(文/李弯弯)大模型边缘部署是将大模型部署边缘
    的头像 发表于 01-05 00:06 6116次阅读

    AI模型部署边缘设备的奇妙之旅:如何实现手写数字识别

    处理,而不必传输到外部服务器,这有助于更好地保护用户隐私和数据安全。 然而,边缘计算也带来了独特的挑战,特别是在资源受限的嵌入式系统中部署复杂的AI模型时。为了确保神经网络
    发表于 12-06 17:20

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    并非易事,它涉及到从选择合适的算法架构到针对特定硬件平台进行优化等一系列复杂的工作。 接下来,我们将详细介绍如何在资源受限的边缘设备上成功部署
    发表于 12-19 14:33

    介绍在STM32cubeIDE上部署AI模型的系列教程

    介绍在STM32cubeIDE上部署AI模型的系列教程,开发板型号STM32H747I-disco,值得一看。MCUAI原文链接:【嵌入式AI开发】篇四|
    发表于 12-14 09:05

    如何用Arm虚拟硬件在Arm Cortex-M上部署PaddlePaddle

    推理模型  3. 使用TVMC为目标设备编译 Paddle 推理模型4. 构建文本识别应用程序并将其部署Arm Virtual带有
    发表于 09-02 14:48

    Arm虚拟硬件上部署PP-PicoDet模型

    1、在Arm虚拟硬件上部署PP-PicoDet模型  经典的深度学习工程是从确认任务目标开始的,我们首先来简单地介绍一下目标检测任务以及本期部署实战课程中我们所使用的工具和平台。  目
    发表于 09-16 14:42

    嵌入式边缘AI应用开发指南

    部署到TI硬件上。然而,将深度学习模型部署到硬件加速器上只是难题的冰山一角。为帮助您快速构建高效的边缘AI应用,TI采用了GStreamer
    发表于 11-03 06:53

    图为科技联合百度、英伟达共同推出AI软硬一体快速部署方案

    基于图为科技边缘计算机系列产品,仅用三行代码就能搞定百度AI算法的部署;让AI算法
    的头像 发表于 12-20 11:01 1735次阅读
    图为科技联合百度<b class='flag-5'>飞</b><b class='flag-5'>桨</b>、英伟达共同推出<b class='flag-5'>AI</b>软硬一体快速<b class='flag-5'>部署</b>方案

    【报名有奖】Imagination+百度模型部署实战 Workshop 邀您参加

    举办线上Workshop,现已开放注册报名。在此次的Workshop中,您将学习“端到端在Imagination硬件上部署模型的工作流程”,来自百度
    的头像 发表于 09-28 10:20 1157次阅读
    【报名有奖】Imagination+百度<b class='flag-5'>飞</b><b class='flag-5'>桨</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>实战 Workshop 邀您参加

    【RK3588平台】使用FastDeploy进行AI部署

    随着人工智能产业应用发展得越来越快,开发者需要面对的适配部署工作也越来越复杂。在实际进行项目时,需要处理不同场景,不同操作系统,不同编程语言,这些都为AI开发者项目落地带来不小的挑战。(
    的头像 发表于 01-11 16:15 3734次阅读
    【RK3588平台】使用<b class='flag-5'>飞</b><b class='flag-5'>桨</b>FastDeploy进行<b class='flag-5'>AI</b><b class='flag-5'>部署</b>

    恩智浦如何在边缘设备上部署LLM

    开放式聊天机器人到任务型助手。虽然LLM主要聚焦基于云和服务器端的应用,但人们对在嵌入式系统和边缘设备部署这些模型的兴趣也在不断增加。
    的头像 发表于 11-29 09:39 1383次阅读

    边缘AI实现的核心环节:硬件选择和模型部署

    边缘AI的实现原理是将人工智能算法和模型部署到靠近数据源的边缘设备上,使这些
    的头像 发表于 06-19 12:19 1083次阅读
    <b class='flag-5'>边缘</b><b class='flag-5'>AI</b>实现的核心环节:硬件选择和<b class='flag-5'>模型</b><b class='flag-5'>部署</b>