本期課程,小編將以計算機視覺領域的圖像識別任務為目標,帶領大家動手實現在樹莓派的虛擬設備上部署基于 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文章
9143瀏覽量
368359 -
硬件
+關注
關注
11文章
3359瀏覽量
66357 -
圖像識別
+關注
關注
9文章
521瀏覽量
38317 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105775
原文標題:AVH 動手實踐 (四) | 在 Arm 虛擬硬件 (樹莓派) 上部署 Paddle Lite 圖像識別模型
文章出處:【微信號:Arm軟件開發者,微信公眾號:Arm軟件開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論