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

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

3天内不再提示

如何在Arm虚拟硬件的虚拟树莓派4上完成图像识别应用的部署

lhl545545 来源:Arm软件开发者 作者:Arm软件开发者 2022-09-30 10:00 次阅读

本期课程,小编将以计算机视觉领域的图像识别任务为目标,带领大家动手实现在树莓派的虚拟设备上部署基于 Paddle Lite 的图像识别模型,以及如何将在 Arm 虚拟硬件 (Arm Virtual Hardware, AVH) 上开发测试完成的应用快捷地移植到实体树莓派开发板上。

项目概述

1.1 目标任务:图像识别

图像识别是利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。图像分类是根据图像的语义信息对不同类别图像进行区分,是计算机视觉的核心,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层次视觉任务的基础。图像识别与分类在许多领域都有着广泛的应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等[1]。

1.2 推理框架:Paddle Lite

Paddle Lite 是百度飞桨推出的端侧和边缘侧轻量化推理引擎,可帮助开发者在移动设备、边缘设备和 loT 设备上运行模型,以便实现设备端机器学习。Paddle Lite 支持多语言、多平台运行,并针对移动端和边缘侧设备的机器学习进行了优化,旨在为这些场景的 AI 应用提供更高效轻量的推理能力,有效解决端侧和边缘侧设备算力和内存限制等问题。开发者可以轻松的通过 Paddle Lite opt[3]工具将 Paddle 模型转换为 Paddle Lite 模型,更多详细信息,可查看 Paddle-Lite 完整文档[4]。

1.3 部署平台:Arm 虚拟硬件

作为 Arm 物联网全面解决方案 (Arm Total Solution for IoT[5]) 的核心技术之一,AVH 很好地解决了实体硬件所面临的难扩展、难运维等痛点。AVH 提供了简单便捷并且可扩展的途径,让 IoT 应用的开发摆脱了对实体硬件的依赖并使得云原生开发技术在嵌入式物联网、边缘侧机器学习领域得到了应用。尤其是在芯片供应链紧张的当今时代,使用 AVH 开发者甚至可以在芯片 RTL 之前便可接触到最新处理器 IP。

目前 AVH 提供两种形式供开发者使用。一种是托管在 AWS 以及 AWS China 上以亚马逊机器镜像 AMI 形式存在的 Arm Corstone 和 Cortex CPU 的虚拟硬件,另外一种则是由 Arm 以 SaaS 平台的形式提供的 AVH 第三方硬件。本期课程我们将使用第二种由 Arm 以 SaaS 平台的形式提供的 AVH 第三方硬件中的虚拟树莓派 4 作为硬件部署平台。除树莓派外,该 AVH 平台目前还提供另外 2 块开发板的虚拟硬件:恩智浦的 i.MX 8M 以及意法半导体STM32U5 Discovery Kit。同时,我们也在持续增加所支持的开发板数量,敬请期待!

* 我们会在收到您的申请后尽快处理您的请求,建议使用公司/学校邮箱注册可加快审批流程并获得更及时的试用支持。

部署实战

本次图像识别应用部署工程示例代码位于 Paddle-Lite-Demo GitHub 仓库[7]。

2.1虚拟硬件创建与配置

账号审批通过后 (注册方式参考 1.3 节),访问https://app.avh.arm.com/login并使用该邮箱所注册的 Arm 账号登入 AVH 第三方硬件 SaaS 平台。

cb425aaa-3fff-11ed-b1c7-dac502259ad0.png

a. 在设备选项页面,点击创建设备 (CREATE DEVICE)

cb589f54-3fff-11ed-b1c7-dac502259ad0.png

b. 在设备选择页面,选择树莓派设备 (Raspberry Pi 4)。创建该设备需要消耗 4 个 CPU 核数,可在设备选项页面查看当前可使用 CPU 核数

cb976ac2-3fff-11ed-b1c7-dac502259ad0.png

c. 点击下一步 (NEXT) 进入设备配置页面

cbc0679c-3fff-11ed-b1c7-dac502259ad0.png

d. 选择官方提供的Raspberry Pi OS Desktop (11.2.0)作为操作系统,并点击选择 (SELECT) 进入配置确认页面

cbedd218-3fff-11ed-b1c7-dac502259ad0.png

e. 配置确认页面可以自定义设置设备名称以及选择是否需要设置高级启动选项 (勾选该选项将进入高级启动项配置页面),本示例无需配置高级启动选项,因此直接点击创建设备 (CREATE DEVICE) 按键进行设备创建

cc2015f2-3fff-11ed-b1c7-dac502259ad0.png

cc49a444-3fff-11ed-b1c7-dac502259ad0.png

f-g. 设备创建过程可以实时查看设备创建进程。当提示Device is ready时,说明设备已经创建完成

ccf64ca8-3fff-11ed-b1c7-dac502259ad0.png

h. 点击控制台 (CONSOLE) 按键,输入 pi 作为用户名,raspberry 作为密码即可成功登入该设备。可以通过输入uname -a查看当前系统基本信息。可选地,也可以直接使用树莓派桌面 (位于左侧显示区) 上的终端完成后续操作

cd489ec2-3fff-11ed-b1c7-dac502259ad0.png

* 友情提示:可以通过红色标记处的符号将显示区域放大便于后续观看和操作

2.2运行环境准备

在创建好的虚拟树莓派控制台终端依次输入以下代码完成相应依赖项 (主要包括:gcc, g++, opencv, cmake) 的安装与配置。

$ sudo apt-get update

$ sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config

$ wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz

$ tar -zxvf cmake-3.10.3.tar.gz

$ cd cmake-3.10.3

$ ./configure

$ make

$ sudo make install

2.3部署图像分类应用

a. 克隆示例代码并切换到 master 分支

$ cd ~

$ git clone https://github.com/PaddlePaddle/Paddle-Lite-Demo

$ cd Paddle-Lite-Demo

$ git checkout master

b. 下载模型和预测库,当提示Download successful!,说明已经下载完成

$ cd PaddleLite-armlinux-demo

$ ./download_models_and_libs.sh

c. 编译与运行

为更直观的查看结果,建议直接使用树莓派桌面上的终端来编译和运行代码 (可选地,通过右侧控制端中的终端来编译和运行程序)。打开桌面的终端并切换至图像分类应用路径下 (位于 Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo 目录)。该图像识别应用旨在识别该目录下 images 文件夹中的 tabby_cat.jpg 图片。

$ sh run.sh # build and run image classification application

注意:由于 opencv 4.x 和 3.x 版本兼容问题,若使用 opencv 4.x 版本 (按照上述步骤默认安装),请将 image_classification_demo.cc 中的以下几处代码进行兼容性修改,确保编译成功。

Line 70: CV_BGRA2RGB

改为cv::COLOR_ BGRA2RGB

Line 259 & 260: CV_CAP_PROP_FRAME_WIDTH

改为cv::CAP_PROP_FRAME_WIDTH

d. 查看运行结果

运行结果示意图如下,该图片成功地被识别为虎斑猫 tabby (置信度最高)。

2.4虚拟树莓派 vs 实体树莓派

在 2.1-2.3 节中,我们完成了在 AVH 的虚拟树莓派 4 开发板上完成基于 Paddle Lite 的图像识别应用的部署。为了让各位开发者更直观地感受在虚拟树莓派 4 和在实体树莓派 4 开发板上进行开发部署的差异,我们使用树莓派 400 开发套件[8](键盘内部集成有树莓派 4 的大部分组件) 作为实体树莓派硬件平台进行该 Paddle Lite 图像识别应用的部署。同样地,需要安装 Raspberry Pi OS with desktop 操作系统 (64 位)[9]。各位开发者可以选用单独的树莓派 4 开发板进行同样的体验和测试。

各位开发者可以将 2.3 节中兼容性修改后的代码上传至 GitHub 等代码仓库并直接在实体树莓派 4/400 开发板上下载和使用该代码。按照 2.1-2.3 节中相同的命令操作完成实体树莓派开发板上环境的运行配置以及应用的部署,其结果与虚拟树莓派 4 上的运行结果一致,对比示意图 (图 5) 所示。可见,在确保结果准确性的情况下,在虚拟树莓派上的 Processing Time 更短,其获得推理测试结果的速度更快。

图 5:运行对比结果示意图

* 注:虚拟硬件显示界面的色差将会在后续版本更新中修复

小结

本期课程,小编带领大家学习了解了如何在 Arm 虚拟硬件的虚拟树莓派 4 上完成图像识别应用的部署,并将其结果与实体硬件开发板上的运行结果进行了对比。不难看出,AVH 有效地解决了实体硬件所面临的种种痛点问题,开发者无需再受硬件资源的约束,可以随时随地的开始软件开发之旅。

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

    关注

    134

    文章

    8651

    浏览量

    361776
  • 硬件
    +关注

    关注

    11

    文章

    2922

    浏览量

    64764
  • 图像识别
    +关注

    关注

    8

    文章

    447

    浏览量

    37908
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104732

原文标题:AVH 动手实践 (四) | 在 Arm 虚拟硬件 (树莓派) 上部署 Paddle Lite 图像识别模型

文章出处:【微信号:Arm软件开发者,微信公众号:Arm软件开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于DSP的快速纸币图像识别技术研究

    本课题通过对现有图像识别技术进行研究和分析,针对当前DSP(数字信号处理)技术的新发展,提出了基于DSP的快速图像识别概念。快速图像识别技术以嵌入式系统为算法的实现平台,它结合了当前最新的数信号处理
    发表于 11-05 14:43

    树莓做人脸识别

    基于云服务平台的人脸识别1、设备树莓2、USB摄像头。2、要求l使用USB摄像头抓拍(可以使用各种开源软件,也可以自己编程)脸部照片;l使用人脸识别的云服务平台(可选择FACECOR
    发表于 08-07 23:19

    请问树莓可以用于工业监控吗?

    大家好,我是一名学生,想做一个有关图像识别的课题,请问树莓可以用于本地的图像处理吗?能否满足工业需求?我的想法是:1、在树莓派上插摄像头,
    发表于 12-14 09:34

    【NXP IMX6UL开发板申请】基于IMX6UL的图像识别

    项目名称:基于IMX6UL的图像识别试用计划:1.提前准备好虚拟机与LINUX系统以及必备的硬件2.板子到手后,先熟悉板子的基本电路原理3.把板子与虚拟机连接联通
    发表于 01-16 11:23

    树莓部署LabVIEW程序并开机自启

    的把程序部署到myRIO或者***Rio,硬件电后程序自动运行,就像普通的单片机一样。 树莓当然也可以,其设置方法和myRIO基本一致。
    发表于 05-31 03:42

    【瑞芯微RK1808计算棒试用申请】图像识别以及芯片评测

    平台移植经验2,本人有TensorFlow的开发经验,在树莓和zynq使用过深度学习工程,可以快速移植本平台3,充分利用8GBEMMC空间,计算u***的传输速度,以及完成PC传
    发表于 09-18 19:21

    如何创建虚拟机?

    树莓带你掌握嵌入式linux产品实战开发–开发环境安装(五)作者:伍俊伟 wjw@paipaiiot.com本文非作者授权,禁止转载2020年8月8日文章目录从树莓带你掌握嵌入式
    发表于 12-16 07:45

    Arm Virtual Hardware 3rd Party Hardware评估示例

    ,免去了本地复杂的硬件部署。简化开发并加速产品设计。开发者通过访问云服务器,能在虚拟硬件执行实际硬件
    发表于 06-17 11:55

    arm的云服务器外树莓4安装kata-container

    kata-container是目前比较热门的安全容器项目,目前kata-container已经支持在arm64平台运行。如果你想在arm64平台运行kata除了租借
    发表于 07-12 16:02

    使用ART-PI获取OV7670的图像来做图像处理和图像识别

    流程图硬件初始化:时钟、I2C、DCMI、SDRAM、LTDC进入图像处理线程,启动拍照并等待拍照完成信号量完成拍照释放拍照完成信号量得到
    发表于 08-31 16:16

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

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

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

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

    使用Arm虚拟硬件进行Matter开发和Wi-Fi控制

    ,请注册,注册完成后返回此步骤。2.在“设备”选项卡中,单击“创建设备”按钮。3.单击树莓 4板。4.单击“下一步”按钮继续。5.单击右侧
    发表于 02-09 16:17

    使用Arm虚拟硬件进行Matter开发和Wi-Fi控制

    ,请注册,注册完成后返回此步骤。2.在“设备”选项卡中,单击“创建设备”按钮。3.单击树莓 4板。4.单击“下一步”按钮继续。5.单击右侧
    发表于 02-09 16:17

    Arm虚拟硬件用户指南

    用于第三方板的Arm虚拟硬件(AVH)为流行的物联网开发套件提供基于云的功能准确的虚拟模型,模拟CPU、外围设备、传感器和板组件。它允许开发人员在实际
    发表于 08-08 07:45