EasyEdge是百度基於Paddle Mobile研發的端計算模型生成平臺,可以幫助深度學習開發者將自建模型快速部署到設備端。只需上傳模型,最快2分種便可生成端計算模型並獲取SDK。本文介紹EasyEdge生成端計算模型,並集成到手機APP的流程。android
採用模型:基於MobileNet 的SSD模型git
SSD使用一個卷積神經網絡實現「端到端」的檢測:輸入爲原始圖像,輸出爲檢測結果,無需藉助外部工具或流程進行特徵提取、候選框生成等。github
官方開源代碼:https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/ssd算法
採用數據集:PASCAL VOC網絡
PASCAL VOC挑戰賽是視覺對象的分類識別和檢測的一個基準測試,提供了檢測算法和學習性能的標準圖像註釋數據集和標準的評估系統。
PASCAL VOC圖片集包括20個目錄:app
人類; 動物(鳥、貓、牛、狗、馬、羊);
交通工具(飛機、自行車、船、公共汽車、小轎車、摩托車、火車);
室內(瓶子、椅子、餐桌、盆栽植物、沙發、電視)。
這些類別在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的大小。