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的大小。