在人工智能與邊緣計算深度融合的今天,將AI模型高效部署于終端設備已成為產(chǎn)業(yè)智能化的關鍵。本文將分享基于米爾MYD-LR3576邊緣計算盒子部署菜品識別安卓Demo的實戰(zhàn)經(jīng)驗。該設備憑借其內(nèi)置的強勁瑞芯微RK3576芯片,為視覺識別模型提供了充沛的本地AI算力,成功將“智慧識菜”的能力濃縮于方寸之間,充分證明了其作為邊緣AI應用堅實載體的卓越性能與可靠性。
實機演示效果
本地部署,實時推理。在這段實機視頻中,MYD-LR3576正同步運行YOLOv11s(目標檢測)與PPLCNetV2(特征提取)模型。其性能核心在于:兩個模型的NPU推理時間均被壓縮至驚人的20ms/幀,為高性能邊緣AI應用提供了堅實底座。
本文以米爾電子的MYD-LR3576邊緣計算盒子為例,講解如何在Android平臺部署yolo11s、PPLCNETV2模型實現(xiàn)實時菜品識別。為開發(fā)者與研究者提供一份兼具實踐參考與技術洞察的模型端到端的部署指南。
MYD-LR3576邊緣計算盒(搭載米爾基于RK3576核心板)
1. 基本介紹
1.1 邊緣計算盒
米爾MYD-LR3576-B邊緣計算盒是一款基于瑞芯微RK3576處理器設計的高性能嵌入式AI設備。 該處理器集成八核CPU架構(4×Cortex-A72 + 4×Cortex-A53)與算力達6 TOPS的NPU(2核心),具備強大的邊緣端AI推理能力。
產(chǎn)品標配8GB LPDDR4X內(nèi)存與64GB eMMC存儲,支持雙千兆網(wǎng)口、WiFi 6、多路USB 3.0及4K顯示輸出,提供完整的Debian/Linux軟件開發(fā)環(huán)境。
憑借其高性能NPU與豐富接口,該設備可高效支撐計算機視覺、智能分析等邊緣AI場景,為菜品識別、工業(yè)質檢等應用提供穩(wěn)定可靠的硬件平臺。
1.2 RKNN-Toolkit2 SDK
要將YOLOv11s、PPLCNetV2等主流AI模型高效地部署在MYD-LR3576-B這樣的邊緣設備上,并充分發(fā)揮其NPU的算力,離不開一個關鍵的軟件工具鏈——RKNN-Toolkit2。這是由瑞芯微官方提供的核心SDK,專為其RK系列芯片的NPU(神經(jīng)網(wǎng)絡處理單元)設計。
1.2.1 RKNN-Toolkit2 是什么?
RKNN-Toolkit2是一個功能完整的模型轉換、推理和性能評估工具包。它的核心作用在于充當一個“翻譯官”和“優(yōu)化器”,將開發(fā)者們在主流深度學習框架(如PyTorch, TensorFlow, ONNX等)上訓練好的模型,轉換成可以在瑞芯微NPU上高效運行的專用格式——RKNN模型。
1.2.2 核心功能與工作流程
該工具鏈為AI模型在邊緣端的部署提供了全流程支持:
1. 模型轉換
· 支持多框架輸入: 可直接加載PyTorch(.pt)、TensorFlow(.pb)、ONNX(.onnx)等格式的模型。
· 量化優(yōu)化: 支持將FP32模型量化為INT8或INT16精度,在保證精度的同時,大幅減小模型體積、提升推理速度、降低功耗。這正是實現(xiàn)20ms超快推理的關鍵步驟之一。
· 模型優(yōu)化: 工具會自動對模型圖結構進行編譯和優(yōu)化,使其適配RKNPU的硬件架構,提取最大性能。
2. 仿真推理與精度分析
· 在模型部署到物理設備(如MYD-LR3576-B)之前,可以在PC上進行仿真推理,驗證模型轉換后的正確性和精度,極大方便了前期的調(diào)試工作。
3. 性能評估
· 提供模型性能分析工具,可以評估模型在NPU上的理論推理時間和內(nèi)存占用,幫助開發(fā)者進行模型選型和優(yōu)化。
4. 跨平臺部署支持
· 除了Python環(huán)境下的開發(fā)工具,RKNN-Toolkit2還提供了C/C++版本的運行時庫(RKNN API)。這使得開發(fā)者可以輕松地將優(yōu)化后的RKNN模型集成到最終的生產(chǎn)環(huán)境中,無論是Linux、Android還是Debian系統(tǒng)(正如MYD-LR3576-B所搭載的),都能實現(xiàn)高效、低延遲的推理。
1.2.3 與MYD-LR3576的完美協(xié)同
在本文的菜品識別Demo中,正是利用了RKNN-Toolkit2的強大能力:
· 步驟一: 在PC端將預訓練好的YOLOv11s(目標檢測)和PPLCNetV2(圖像分類)模型通過該工具鏈轉換為.rknn格式文件。
· 步驟二: 將轉換好的RKNN模型文件與調(diào)用RKNN Runtime的應用程序一同部署到MYD-LR3576邊緣計算盒上。
· 步驟三: 應用程序通過RKNN Runtime API加載模型,調(diào)用NPU執(zhí)行計算,最終實現(xiàn)了雙模型協(xié)同、單次推理均僅20ms的卓越性能。
總結而言,RKNN-Toolkit2是釋放MYD-LR3576-B內(nèi)部6 TOPS NPU潛力的鑰匙。 它大大降低了開發(fā)者將AI模型部署到瑞芯微邊緣計算平臺的技術門檻和開發(fā)周期,使得構建像實時菜品識別這樣的高性能AI應用變得簡單而高效。
1.3 RKNN Model Zoo
RKNN Model Zoo 是一個專為瑞芯微NPU打造的 “模型商店” 或 “開箱即用模型庫” 。該項目收集了大量經(jīng)典的、高性能的深度學習模型,并已經(jīng)過預轉換和調(diào)優(yōu),直接提供了現(xiàn)成的 RKNN格式模型文件,同時附帶了完整的示例代碼。
RKNN Model Zoo優(yōu)點:
· 開箱即用的體驗: 開發(fā)者無需從頭開始進行模型訓練和復雜的轉換調(diào)試,可以直接下載所需的RKNN模型文件,利用提供的示例代碼在MYD-LR3576等設備上快速運行起來,立即看到效果,極大地縮短了概念驗證(PoC)的周期。
· 官方性能保證: 倉庫中的模型都提供了詳細的性能基準數(shù)據(jù),包括在特定RK芯片上的推理速度和精度。這為開發(fā)者選型提供了權威參考,確保模型在目標設備上能夠達到預期的性能。
· 最佳實踐范例: 每個模型都附帶完整的C++和Python示例代碼,清晰地展示了如何加載RKNN模型、進行數(shù)據(jù)預處理、執(zhí)行推理以及解析輸出結果。這對于學習如何在自己的應用程序中集成和調(diào)用RKNN模型而言,是極具價值的學習資料。
2. 搭建環(huán)境
2.1 刷入Android系統(tǒng)
米爾的MYD-LR3576邊緣盒子默認是Linux系統(tǒng),在我們的場景中,需要先刷機為Android系統(tǒng)。
2.1.1 獲取資料
登錄米爾開發(fā)者中心,在開發(fā)者平臺注冊綁定產(chǎn)品信息,在包裝盒側面會有一個產(chǎn)品型號系列號,可通過微信掃碼綁定。 綁定成功后,依次點擊我的產(chǎn)品->軟件資料->Android14操作系統(tǒng):
然后復制提取碼后點擊“阿里云盤”字樣即可打開米爾提供的所有相關資料文件。如:
是我們需要的文件,分別是軟件開發(fā)指南、安卓系統(tǒng)鏡像文件以及工具,下載上述文件。
2.1.2 鏡像燒錄
在軟件開發(fā)指南中的第四章有詳細的鏡像編譯步驟,開發(fā)者可以根據(jù)情況自行編譯鏡像,方便進行自定義。本文直接使用了資料中已經(jīng)編譯好的Android鏡像進行燒錄。
1. 安裝驅動
驅動安裝工具壓縮包位于 03-Tools/DriverAssitant 目錄下,解壓運行 DriverAssitant工具,出現(xiàn)以下界面,首先點擊卸載驅動,然后點擊驅動安裝:
2. 燒錄鏡像到EMMC
RKDevTool是瑞芯微提供的適用于 RK 系列芯片的 windows 下的便捷開發(fā)工具,為開發(fā)人員提供了固件燒錄/鏡像燒錄|設備擦除|設備切換/固件解包等功能。
1. 首先登陸邊緣盒子,使用Type-C線將邊緣盒子的DEBUG(電源接口旁寫著Type-C字樣)口連接到windows電腦;然后打開設備管理器,配置COM口參數(shù):
· 波特率:115200
· 數(shù)據(jù)位:8
· 停止位:1
· 校驗位:無
· 流控:無
· 打開串口終端軟件填入上述參數(shù),然后給盒子上電,即可進入系統(tǒng);
2. 進入系統(tǒng)后在終端輸入reboot loader即可進入loader模式;
3. 打開工具文件夾下的RKDevTool(沒有解壓請解壓),雙擊RKDevTool.exe,會看到提示:發(fā)現(xiàn)一個LOADER設備;
4. 此時點擊升級固件->固件,選擇剛剛下載的Android鏡像文件(剛下載的為zip文件,解壓出里面的鏡像文件),然后點擊升級按鈕并等待完成:
5. 此時已經(jīng)完成Android系統(tǒng)的燒錄。
2.2 準備RKNN-Toolkit2環(huán)境
注意:這里的操作是在另外一臺電腦上操作,并且已經(jīng)配置了python環(huán)境或Conda環(huán)境。為模型轉換、量化以及測試提供基礎環(huán)境。
1. 可以直接通過網(wǎng)絡安裝:
2. 通過本地 wheel 包安裝
首先克隆RKNN-Toolkit2項目文件:
或者手動下載下面涉及到的文件。
然后進入項目根目錄后:
3. 模型轉換
rknn_model_zoo中包含了很多官方已經(jīng)適配的模型,包括模型訓練以及模型轉換腳本。
3.1 yolo11模型轉換
rknn_model_zoo中已經(jīng)包含了yolo全系列模型,因此yolo11模型的轉換非常簡單,我們直接將訓練好的模型(通常是.pt格式)先轉為onnx格式。該轉換過程通常建議在與訓練模型相同的環(huán)境中進行。 轉換命令:
執(zhí)行完畢后,會生成 ONNX 模型。假如原始模型為 yolo11s.pt,則生成 yolo11s.onnx 模型。 然后進入rknn_model_zoo項目根目錄,再依次進入examples/yolo11/python路徑下,有一個python轉換腳本:convert.py,可通過python convert.py 查看腳本幫助文檔:
根據(jù)文檔可知,腳本的第一個參數(shù)是要被轉換的onnx模型路徑,第二個參數(shù)是平臺,即SOC型號,第三個參數(shù)是量化相關,我們的平臺是rk3576,如果量化則選i8,不量化則選fp。我們這里選擇量化:
?? 選擇量化需要準備校準數(shù)據(jù),讀取的數(shù)據(jù)路徑在腳本中已經(jīng)固定為../../../datasets/COCO/coco_subset_20.txt,這里需要修改為我們自己的數(shù)據(jù),數(shù)量建議至少20張。
python convert.py onnx模型路徑/yolo11s.onnx rk3576 i8
轉換成功后可看到:
腳本默認將轉換后的模型存儲在../model中。
3.2 PPLCNETV2模型轉換
PPLCNETV2網(wǎng)絡是Paddle提供的,因此需要使用paddle2onnx工具,先將paddle格式轉為onnx格式:
由于RKNN官方?jīng)]有PPLCNET模型的Demo,因此我們需要自己根據(jù)模型轉換的API文檔編寫rknn模型的轉換腳本,可復制一份Yolo11的轉換腳本進行修改,重點修改模型的輸入輸出形狀、歸一化參數(shù)等。然后參考yolo11的轉換命令進行轉換。
4. 菜品識別案例
本章將詳細介紹基于米爾MYD-LR3576邊緣計算盒開發(fā)的菜品識別安卓Demo應用。該案例完整展示了從特征庫構建到實時識別的全流程,充分體現(xiàn)了設備在端側AI應用中的實用性與高性能。
4.1 特征注冊
特征注冊是構建可擴展菜品識別系統(tǒng)的關鍵第一步,其目的是為系統(tǒng)創(chuàng)建一個本地的、可定制的菜品特征庫。
· 操作流程: 用戶在Demo界面點擊“特征注冊”按鈕后選擇一個事先準備好的文件夾。該文件夾內(nèi)部包含多個子文件夾,每個子文件夾代表一道唯一的菜品,并以菜品名稱命名(例如:“紅燒肉”、“清蒸鱸魚”)。子文件夾內(nèi)則包含該菜品從不同角度、在不同光照條件下拍攝的若干張圖片。
· 技術實現(xiàn): Demo應用會遍歷整個文件夾結構。對于每一張圖片,系統(tǒng)會調(diào)用內(nèi)置的PPLCNetV2特征提取模型進行特征提取。該模型會將輸入的菜品圖片轉換成一個高維、緊湊的特征向量(也就是老生常談的特征嵌入)。最后,系統(tǒng)將每道菜所有圖片的特征向量與其名稱關聯(lián)起來,使用向量數(shù)據(jù)庫存儲于設備本地,形成一個結構化且高效查詢的特征數(shù)據(jù)庫。
該設計的優(yōu)勢在于:用戶無需重新訓練龐大的深度學習模型,僅需提供數(shù)十張示例圖片,即可快速、靈活地擴充或修改系統(tǒng)所能識別的菜品庫,極大地提升了應用的實用性和適應性。
4.2 菜品識別
Demo提供了三種識別模式,以適應不同場景下的需求:
4.2.1 拍照識別
用戶可以直接調(diào)用設備攝像頭,現(xiàn)場對菜品進行拍照。拍完后,系統(tǒng)立即對照片進行識別,并繪制識別結果。
4.2.2 本地圖片識別
用戶可以從手機相冊中選擇已有的菜品圖片進行識別。
4.2.3 實時視頻流識別
Demo啟動設備攝像頭并開啟實時預覽,視頻流中的每一幀都會被送入識別流水線。系統(tǒng)能夠連續(xù)、不間斷地進行識別,并將結果實時覆蓋顯示在視頻畫面上,提供流暢的“所見即所識”體驗。
4.3 識別流水線與性能表現(xiàn)
無論采用哪種識別模式,其核心的識別流水線是相同的,并且都得益于MYD-LR3576強大的NPU算力:
1. 目標檢測: 當一張圖片或視頻幀輸入后,首先由 YOLOv11s模型進行推理。它的任務是精準定位圖片中菜品所在的位置,并輸出其邊界框,為后續(xù)處理劃定了關鍵區(qū)域。
2. 特征提取: 系統(tǒng)將YOLOv11s檢測出的菜品區(qū)域裁剪出來,并送入 PPLCNetV2特征提取模型中,生成該區(qū)域的特征向量。
3. 特征比對: 最后,系統(tǒng)將這個新生成的特征向量與特征注冊階段建立的數(shù)據(jù)庫中的所有已知特征向量進行相似度計算(通常使用余弦相似度)。找出相似度最高的已知菜品,并將其名稱作為識別結果輸出。
性能亮點: 在MYD-LR3576上,經(jīng)過RKNN-Toolkit2優(yōu)化后,YOLOv11s和PPLCNetV2這兩個模型在NPU上的單次推理時間均穩(wěn)定在20ms左右,這確保了即使在最耗費資源的實時視頻流模式下,系統(tǒng)也能保持較流暢的識別幀率。
4.4 準確率評估功能
為了量化識別系統(tǒng)的可靠性,Demo還內(nèi)置了準確率評估功能。用戶可以選擇一個包含已標注圖片的測試集,系統(tǒng)會自動運行批量識別,并將識別結果與真實標簽進行比對,最終生成一份包含準確率等關鍵指標的評估報告,為模型優(yōu)化和特征庫完善提供了數(shù)據(jù)依據(jù)。
4.5 案例總結
該菜品識別Demo僅實現(xiàn)了基礎功能,且沒有做針對性優(yōu)化,如所有操作都是同步進行,即攝像頭數(shù)據(jù)獲取或讀取本地圖像->格式轉換->色彩空間轉換->預處理->模型推理->結果后處理這一整套流程都是同步進行,且模型推理時僅使用了一個NPU核心(共兩個),如果使用NPU進行圖像處理并配合圖像隊列異步處理以及充分利用NPU核心,其性能可以達到15-20幀。即便Demo沒有針對優(yōu)化,RK3576的性能同樣足夠支撐端側復雜AI流水線的能力。從高效的特征注冊到實時的多模型推理,其強勁的NPU算力是實現(xiàn)所有功能流暢運行的基石,為智慧餐飲等領域提供了可靠的硬件解決方案。





