EasyEdge是百度基於Paddle Mobile研發的端計算模型生成平台,能夠幫助深度學習開發者將自建模型快速部署到設備端。只需上傳模型,最快2分種即可生成端計算模型並獲取SDK。本文介紹EasyEdge生成端計算模型,並集成到手機APP的流程。
采用模型:基於MobileNet 的SSD模型
SSD使用一個卷積神經網絡實現“端到端”的檢測:輸入為原始圖像,輸出為檢測結果,無需借助外部工具或流程進行特征提取、候選框生成等。
官方開源代碼:https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/ssd
采用數據集:PASCAL VOC
PASCAL VOC挑戰賽是視覺對象的分類識別和檢測的一個基准測試,提供了檢測算法和學習性能的標准圖像注釋數據集和標准的評估系統。
PASCAL VOC圖片集包括20個目錄:
人類; 動物(鳥、貓、牛、狗、馬、羊);
交通工具(飛機、自行車、船、公共汽車、小轎車、摩托車、火車);
室內(瓶子、椅子、餐桌、盆栽植物、沙發、電視)。
這些類別在label_list文件中都有列出來,但這個文件中多了一個類別,就是背景(background)
在AI Studio 進行訓練得到預測模型和參數:
1 EasyEdge端計算模型生成流程
進入EasyEdge主頁: ai.baidu.com/easyedge ,點擊“立即使用”即可使用平台。
1.1上傳深度學習模型
在目錄【上傳原模型】中:
1) 填寫模型名稱
2) 依次選擇模型類型、模型框架、網絡模型
3) 依次上傳網絡參數文件、網絡結構文件、模型標簽、其他配置文件(點擊左側划線處可查看上傳要求)
對應關系如下:
網絡參數文件:mobilenet-ssd-final-model
網絡結構文件:mobilenet-ssd-final-params
模型標簽:label_list
4) 自定義分組並描述模型功能
5) 提交上傳
模型上傳成功后,可以在【我的模型】中看到上傳的模型。
1.2 生成端計算模型
成功上傳模型后,在目錄【生成端模型】中:
1) 選擇模型
2) 選擇並添加“芯片/硬件”、“操作系統”的組合,支持添加多種組合
3) 如需SDK支持離在線混合,需勾選同意EasyEdge在雲端加密部署模型
4) 開始生成模型
在【我的模型】點擊模型名稱,即可查看端計算模型的生成狀態
1.3 獲取離線SDK
若某版本端計算模型已成功生成,則可點擊右側操作中的“獲取SDK”,跳轉到【SDK列表】下載Demo體驗或正式的SDK
1.4 激活離線SDK
1) 在【SDK列表】頁面下載SDK后,點擊“獲取序列號激活”,打開【序列號列表】
2) 選擇鑒權方式:如需開發APP可選擇按產品線鑒權,否則需按設備鑒權
3) 點擊“新增序列號”,填寫相關信息
Android或iOS操作系統的SDK可以選擇按產品線激活,序列號與包名(Package Name/Bundle ID)綁定:
4) 用新增的序列號激活之前下載的SDK,參考開發文檔:
Android 系統:https://ai.baidu.com/docs#/EasyEdge-Android-SDK/top
2 SDK集成到手機APP
開發平台:Android Studio 2.3
安卓虛擬機:Genymotion 2.7.2
測試平台:Android 9.0
2.1 替換申請的序列號
2.2 添加依賴:
運行虛擬機如報如下錯誤:
解決辦法:
在同個build.gradle(app)頁面,android{}中添加:
splits {
abi {
enable true
reset()
include 'x86','x86_64'
universalApk true
}
}
2.3 手機測試效果
3 意見建議
整體效果不錯,優勢在於生成模型非常快捷,集成也很方便。當然也有需要改進的地方,本次采用的物體檢測SSD模型,SDK大小在25M,如生成的SDK能夠進一步壓縮,進而能減少APP的大小。