本期課程,小編將以計(jì)算機(jī)視覺(jué)領(lǐng)域的圖像識(shí)別任務(wù)為目標(biāo),帶領(lǐng)大家動(dòng)手實(shí)現(xiàn)在樹莓派的虛擬設(shè)備上部署基于 Paddle Lite 的圖像識(shí)別模型,以及如何將在 Arm 虛擬硬件 (Arm Virtual Hardware, AVH) 上開發(fā)測(cè)試完成的應(yīng)用快捷地移植到實(shí)體樹莓派開發(fā)板上。
項(xiàng)目概述
1.1 目標(biāo)任務(wù):圖像識(shí)別
圖像識(shí)別是利用計(jì)算機(jī)對(duì)圖像進(jìn)行處理、分析和理解,以識(shí)別各種不同模式的目標(biāo)和對(duì)象的技術(shù),是應(yīng)用深度學(xué)習(xí)算法的一種實(shí)踐應(yīng)用。圖像分類是根據(jù)圖像的語(yǔ)義信息對(duì)不同類別圖像進(jìn)行區(qū)分,是計(jì)算機(jī)視覺(jué)的核心,是物體檢測(cè)、圖像分割、物體跟蹤、行為分析、人臉識(shí)別等其他高層次視覺(jué)任務(wù)的基礎(chǔ)。圖像識(shí)別與分類在許多領(lǐng)域都有著廣泛的應(yīng)用,包括安防領(lǐng)域的人臉識(shí)別和智能視頻分析等,交通領(lǐng)域的交通場(chǎng)景識(shí)別,互聯(lián)網(wǎng)領(lǐng)域基于內(nèi)容的圖像檢索和相冊(cè)自動(dòng)歸類,醫(yī)學(xué)領(lǐng)域的圖像識(shí)別等[1]。
1.2 推理框架:Paddle Lite
Paddle Lite 是百度飛槳推出的端側(cè)和邊緣側(cè)輕量化推理引擎,可幫助開發(fā)者在移動(dòng)設(shè)備、邊緣設(shè)備和 loT 設(shè)備上運(yùn)行模型,以便實(shí)現(xiàn)設(shè)備端機(jī)器學(xué)習(xí)。Paddle Lite 支持多語(yǔ)言、多平臺(tái)運(yùn)行,并針對(duì)移動(dòng)端和邊緣側(cè)設(shè)備的機(jī)器學(xué)習(xí)進(jìn)行了優(yōu)化,旨在為這些場(chǎng)景的 AI 應(yīng)用提供更高效輕量的推理能力,有效解決端側(cè)和邊緣側(cè)設(shè)備算力和內(nèi)存限制等問(wèn)題。開發(fā)者可以輕松的通過(guò) Paddle Lite opt[3]工具將 Paddle 模型轉(zhuǎn)換為 Paddle Lite 模型,更多詳細(xì)信息,可查看 Paddle-Lite 完整文檔[4]。
1.3 部署平臺(tái):Arm 虛擬硬件
作為 Arm 物聯(lián)網(wǎng)全面解決方案 (Arm Total Solution for IoT[5]) 的核心技術(shù)之一,AVH 很好地解決了實(shí)體硬件所面臨的難擴(kuò)展、難運(yùn)維等痛點(diǎn)。AVH 提供了簡(jiǎn)單便捷并且可擴(kuò)展的途徑,讓 IoT 應(yīng)用的開發(fā)擺脫了對(duì)實(shí)體硬件的依賴并使得云原生開發(fā)技術(shù)在嵌入式物聯(lián)網(wǎng)、邊緣側(cè)機(jī)器學(xué)習(xí)領(lǐng)域得到了應(yīng)用。尤其是在芯片供應(yīng)鏈緊張的當(dāng)今時(shí)代,使用 AVH 開發(fā)者甚至可以在芯片 RTL 之前便可接觸到最新的處理器 IP。
目前 AVH 提供兩種形式供開發(fā)者使用。一種是托管在 AWS 以及 AWS China 上以亞馬遜機(jī)器鏡像 AMI 形式存在的 Arm Corstone 和 Cortex CPU 的虛擬硬件,另外一種則是由 Arm 以 SaaS 平臺(tái)的形式提供的 AVH 第三方硬件。本期課程我們將使用第二種由 Arm 以 SaaS 平臺(tái)的形式提供的 AVH 第三方硬件中的虛擬樹莓派 4 作為硬件部署平臺(tái)。除樹莓派外,該 AVH 平臺(tái)目前還提供另外 2 塊開發(fā)板的虛擬硬件:恩智浦的 i.MX 8M 以及意法半導(dǎo)體的 STM32U5 Discovery Kit。同時(shí),我們也在持續(xù)增加所支持的開發(fā)板數(shù)量,敬請(qǐng)期待!
* 我們會(huì)在收到您的申請(qǐng)后盡快處理您的請(qǐng)求,建議使用公司/學(xué)校郵箱注冊(cè)可加快審批流程并獲得更及時(shí)的試用支持。
部署實(shí)戰(zhàn)
本次圖像識(shí)別應(yīng)用部署工程示例代碼位于 Paddle-Lite-Demo GitHub 倉(cāng)庫(kù)[7]。
2.1虛擬硬件創(chuàng)建與配置
賬號(hào)審批通過(guò)后 (注冊(cè)方式參考 1.3 節(jié)),訪問(wèn)https://app.avh.arm.com/login并使用該郵箱所注冊(cè)的 Arm 賬號(hào)登入 AVH 第三方硬件 SaaS 平臺(tái)。
a. 在設(shè)備選項(xiàng)頁(yè)面,點(diǎn)擊創(chuàng)建設(shè)備 (CREATE DEVICE)
b. 在設(shè)備選擇頁(yè)面,選擇樹莓派設(shè)備 (Raspberry Pi 4)。創(chuàng)建該設(shè)備需要消耗 4 個(gè) CPU 核數(shù),可在設(shè)備選項(xiàng)頁(yè)面查看當(dāng)前可使用 CPU 核數(shù)
c. 點(diǎn)擊下一步 (NEXT) 進(jìn)入設(shè)備配置頁(yè)面
d. 選擇官方提供的Raspberry Pi OS Desktop (11.2.0)作為操作系統(tǒng),并點(diǎn)擊選擇 (SELECT) 進(jìn)入配置確認(rèn)頁(yè)面
e. 配置確認(rèn)頁(yè)面可以自定義設(shè)置設(shè)備名稱以及選擇是否需要設(shè)置高級(jí)啟動(dòng)選項(xiàng) (勾選該選項(xiàng)將進(jìn)入高級(jí)啟動(dòng)項(xiàng)配置頁(yè)面),本示例無(wú)需配置高級(jí)啟動(dòng)選項(xiàng),因此直接點(diǎn)擊創(chuàng)建設(shè)備 (CREATE DEVICE) 按鍵進(jìn)行設(shè)備創(chuàng)建
f-g. 設(shè)備創(chuàng)建過(guò)程可以實(shí)時(shí)查看設(shè)備創(chuàng)建進(jìn)程。當(dāng)提示Device is ready時(shí),說(shuō)明設(shè)備已經(jīng)創(chuàng)建完成
h. 點(diǎn)擊控制臺(tái) (CONSOLE) 按鍵,輸入 pi 作為用戶名,raspberry 作為密碼即可成功登入該設(shè)備??梢酝ㄟ^(guò)輸入uname -a查看當(dāng)前系統(tǒng)基本信息??蛇x地,也可以直接使用樹莓派桌面 (位于左側(cè)顯示區(qū)) 上的終端完成后續(xù)操作
* 友情提示:可以通過(guò)紅色標(biāo)記處的符號(hào)將顯示區(qū)域放大便于后續(xù)觀看和操作
2.2運(yùn)行環(huán)境準(zhǔn)備
在創(chuàng)建好的虛擬樹莓派控制臺(tái)終端依次輸入以下代碼完成相應(yīng)依賴項(xiàng) (主要包括: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部署圖像分類應(yīng)用
a. 克隆示例代碼并切換到 master 分支
$ cd ~
$ git clone https://github.com/PaddlePaddle/Paddle-Lite-Demo
$ cd Paddle-Lite-Demo
$ git checkout master
b. 下載模型和預(yù)測(cè)庫(kù),當(dāng)提示Download successful!,說(shuō)明已經(jīng)下載完成
$ cd PaddleLite-armlinux-demo
$ ./download_models_and_libs.sh
c. 編譯與運(yùn)行
為更直觀的查看結(jié)果,建議直接使用樹莓派桌面上的終端來(lái)編譯和運(yùn)行代碼 (可選地,通過(guò)右側(cè)控制端中的終端來(lái)編譯和運(yùn)行程序)。打開桌面的終端并切換至圖像分類應(yīng)用路徑下 (位于 Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo 目錄)。該圖像識(shí)別應(yīng)用旨在識(shí)別該目錄下 images 文件夾中的 tabby_cat.jpg 圖片。
$ sh run.sh # build and run image classification application
注意:由于 opencv 4.x 和 3.x 版本兼容問(wèn)題,若使用 opencv 4.x 版本 (按照上述步驟默認(rèn)安裝),請(qǐng)將 image_classification_demo.cc 中的以下幾處代碼進(jìn)行兼容性修改,確保編譯成功。
Line 70: CV_BGRA2RGB
改為cv::COLOR_ BGRA2RGB
Line 259 & 260: CV_CAP_PROP_FRAME_WIDTH
改為cv::CAP_PROP_FRAME_WIDTH
d. 查看運(yùn)行結(jié)果
運(yùn)行結(jié)果示意圖如下,該圖片成功地被識(shí)別為虎斑貓 tabby (置信度最高)。
2.4虛擬樹莓派 vs 實(shí)體樹莓派
在 2.1-2.3 節(jié)中,我們完成了在 AVH 的虛擬樹莓派 4 開發(fā)板上完成基于 Paddle Lite 的圖像識(shí)別應(yīng)用的部署。為了讓各位開發(fā)者更直觀地感受在虛擬樹莓派 4 和在實(shí)體樹莓派 4 開發(fā)板上進(jìn)行開發(fā)部署的差異,我們使用樹莓派 400 開發(fā)套件[8](鍵盤內(nèi)部集成有樹莓派 4 的大部分組件) 作為實(shí)體樹莓派硬件平臺(tái)進(jìn)行該 Paddle Lite 圖像識(shí)別應(yīng)用的部署。同樣地,需要安裝 Raspberry Pi OS with desktop 操作系統(tǒng) (64 位)[9]。各位開發(fā)者可以選用單獨(dú)的樹莓派 4 開發(fā)板進(jìn)行同樣的體驗(yàn)和測(cè)試。
各位開發(fā)者可以將 2.3 節(jié)中兼容性修改后的代碼上傳至 GitHub 等代碼倉(cāng)庫(kù)并直接在實(shí)體樹莓派 4/400 開發(fā)板上下載和使用該代碼。按照 2.1-2.3 節(jié)中相同的命令操作完成實(shí)體樹莓派開發(fā)板上環(huán)境的運(yùn)行配置以及應(yīng)用的部署,其結(jié)果與虛擬樹莓派 4 上的運(yùn)行結(jié)果一致,對(duì)比示意圖 (圖 5) 所示??梢?jiàn),在確保結(jié)果準(zhǔn)確性的情況下,在虛擬樹莓派上的 Processing Time 更短,其獲得推理測(cè)試結(jié)果的速度更快。
圖 5:運(yùn)行對(duì)比結(jié)果示意圖
* 注:虛擬硬件顯示界面的色差將會(huì)在后續(xù)版本更新中修復(fù)
小結(jié)
本期課程,小編帶領(lǐng)大家學(xué)習(xí)了解了如何在 Arm 虛擬硬件的虛擬樹莓派 4 上完成圖像識(shí)別應(yīng)用的部署,并將其結(jié)果與實(shí)體硬件開發(fā)板上的運(yùn)行結(jié)果進(jìn)行了對(duì)比。不難看出,AVH 有效地解決了實(shí)體硬件所面臨的種種痛點(diǎn)問(wèn)題,開發(fā)者無(wú)需再受硬件資源的約束,可以隨時(shí)隨地的開始軟件開發(fā)之旅。
-
ARM
+關(guān)注
關(guān)注
134文章
9025瀏覽量
366409 -
硬件
+關(guān)注
關(guān)注
11文章
3199瀏覽量
66048 -
圖像識(shí)別
+關(guān)注
關(guān)注
9文章
517瀏覽量
38207 -
樹莓派
+關(guān)注
關(guān)注
116文章
1686瀏覽量
105439
原文標(biāo)題:AVH 動(dòng)手實(shí)踐 (四) | 在 Arm 虛擬硬件 (樹莓派) 上部署 Paddle Lite 圖像識(shí)別模型
文章出處:【微信號(hào):Arm軟件開發(fā)者,微信公眾號(hào):Arm軟件開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論