本期课程,小编将以计算机视觉领域的图像识别任务为目标,带领大家动手实现在树莓派的虚拟设备上部署基于 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 平台。
a. 在设备选项页面,点击创建设备 (CREATE DEVICE)
b. 在设备选择页面,选择树莓派设备 (Raspberry Pi 4)。创建该设备需要消耗 4 个 CPU 核数,可在设备选项页面查看当前可使用 CPU 核数
c. 点击下一步 (NEXT) 进入设备配置页面
d. 选择官方提供的Raspberry Pi OS Desktop (11.2.0)作为操作系统,并点击选择 (SELECT) 进入配置确认页面
e. 配置确认页面可以自定义设置设备名称以及选择是否需要设置高级启动选项 (勾选该选项将进入高级启动项配置页面),本示例无需配置高级启动选项,因此直接点击创建设备 (CREATE DEVICE) 按键进行设备创建
f-g. 设备创建过程可以实时查看设备创建进程。当提示Device is ready时,说明设备已经创建完成
h. 点击控制台 (CONSOLE) 按键,输入 pi 作为用户名,raspberry 作为密码即可成功登入该设备。可以通过输入uname -a查看当前系统基本信息。可选地,也可以直接使用树莓派桌面 (位于左侧显示区) 上的终端完成后续操作
* 友情提示:可以通过红色标记处的符号将显示区域放大便于后续观看和操作
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
+关注
关注
134文章
9036浏览量
366651 -
硬件
+关注
关注
11文章
3236浏览量
66083 -
图像识别
+关注
关注
9文章
519浏览量
38222 -
树莓派
+关注
关注
116文章
1697浏览量
105485
原文标题:AVH 动手实践 (四) | 在 Arm 虚拟硬件 (树莓派) 上部署 Paddle Lite 图像识别模型
文章出处:【微信号:Arm软件开发者,微信公众号:Arm软件开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论