视觉任务设备端SDK使用说明
本文档主要说明定制化模型设备端SDK如何使用,如有疑问可以通过以下方式联系我们:
- 在百度智能云控制台内提交工单
- 进入EasyDL社区交流 ,与其他开发者进行互动
- 加入EasyDL官方QQ群(群号:868826008)联系群管
SDK说明
目前图像分类和物体检测模型均可封装为可离线计算的设备端SDK,支持iOS、Android、Linux、Windows四种操作系统。
以下为具体的系统、硬件环境支持:
操作系统 | 系统支持 | 硬件环境要求 |
---|---|---|
iOS | iOS 8.0 以上(A仿生芯片版要求11.0以上) | ARMv7 ARM64 (Starndard architectures)(暂不支持模拟器) |
Android | 通用ARM: Android 19以上 SNPE:Android 21以上 DDK:Android 21以上 |
通用ARM: 绝大部分的手机和平板 、比较耗时 SNPE:高通Soc,仅支持Qualcomm Snapdragon 450 之后发布的soc。其中 660 之后的型号可能含有 Hexagon DSP模块,具体列表见snpe 高通骁龙引擎 DDK:CPU支持华为麒麟970N、980的arm-v8a的soc,支持的机型 mate10,mate10pro,P20,mate20等 支持armeabi-v7a arm-v8a CPU 架构, DDK仅支持 arm-v8a |
Linux C++ | CPU: AArch64 ARMv7l ASIC: Hisilicon NNIE1.1 on AArch64(Hi3559AV100/Hi3559CV100等) ASIC: Hisilicon NNIE1.2 on ARMv7l(Hi3519AV100/Hi3559V200等) |
|
Linux Python | Intel Movidius MyRIAD2/MyRIAD X | |
Windows | 64位 Windows7 及以上 | Intel CPU x86_64 Intel Movidius MyRIAD2/MyRIAD X (仅支持Win10) 环境依赖: .NET Framework 4.5 Visual C++ Redistributable Packages for Visual Studio 2013 Visual C++ Redistributable Packages for Visual Studio 2015 |
说明
针对iOS操作系统:虽然SDK库文件很大(ipa文件很大),但最终应用在用户设备中所占用的大小会缩小很多,如图像分类下载的ipa文件可能会100M以上,但实际集成在设备中只有20M左右。 这与multi architechtures、bitcode和AppStore的优化有关。
单次预测耗时参考
根据具体设备、线程数不同,数据可能有波动,请以实测为准
芯片类型 | 实测硬件 | 图像分类模型 | 物体检测模型 | 备注 |
---|---|---|---|---|
ARM | RK3399 | 64-1560ms | 239-4100ms | 不同模型网络差异较大 |
Myriad 2 | Intel Movidius 1 | 40-615ms | - | |
Myriad X | Intel Movidius 2 | 25-238ms | - | |
海思NNIE | 海思Hi3559A | 38-42ms | - | 暂不支持SE-ResNeXt |
ARM | iPhone XR | 23-335ms | 209ms | |
ARM | HUAWEI Mate 20 | 29-563ms | -ms | |
苹果A芯片 | iPhone XR | -ms | - | |
高通骁龙SNPE | XIAOMI 8 | 11-81ms | - | |
麒麟NPU 980 | HUAWEI Mate 20 | -ms | - | |
麒麟NPU 970 | HUAWEI Mate 10 Pro | -ms | - | |
x86-64 | Xeon E5-2650 v4 | 114-4021ms | 162-3600ms |
自适应芯片版SDK
发布SDK时可根据实际应用时的硬件/芯片配置选择最合适的SDK。如“华为NPU版”就是针对华为NPU芯片做了适配与加速的SDK。如实际应用时需要适配多种芯片,就可以选择“自适应芯片版”SDK,SDK被集成后会自动判断设备的芯片并运行相应的模型。
加速版SDK
发布SDK时,勾选「同时获取加速版」,就可以同时获得适配部分芯片(需选中且右侧带有加速标记)的基础版SDK和加速版SDK。
目前加速版SDK已支持部分图像分类网络的Windows X86、Linux ARM、iOS ARM、Android ARM环境,加速后的SDK普遍在包大小、内存占用、识别速度等方面表现更优,以SE-ResNeXt50为例:
模型算法 | 芯片类型 | 操作系统 | 实测硬件 | SDK类型 | 单次预测耗时 |
---|---|---|---|---|---|
SE-ResNeXt50 | ARM | Linux | RK3399 | 基础版/加速版 | 564ms/408ms |
ARM | Android | HUAWEI Mate 20 | 基础版/加速版 | 323ms/167ms | |
ARM | iOS | iPhone XR | 基础版/加速版 | 308ms/90ms |
加速版SDK和基础版的测试方式类似,只需在EasyDL控制台新增「加速版」测试序列号,即可获得3个月的测试期。
激活&使用SDK
SDK的激活与使用分以下四步:
① 在【我的服务】-【服务详情】内下载SDK:
② 在BML控制台获取序列号
按设备获得授权并使用SDK时,每部署一个项目,即可新增2个序列号:
Android或iOS操作系统的SDK可以选择按产品线激活,序列号与包名(Package Name/Bundle ID)绑定:
③ 本地运行SDK,并完成首次联网激活
通过左侧导航栏查看不同操作系统SDK的开发文档
④ 正式使用
SDK常见问题
通过左侧导航栏查看不同操作系统SDK的FAQ
以下是通用FAQ,如您的问题仍未解决,欢迎加入官方QQ群813291890咨询群管
1、激活失败怎么办?
- 按设备激活时,激活失败可能由于以下几个原因造成:
①可能是当前序列号已被其他设备激活使用,请核实序列号后用未被激活的序列号重新激活
②序列号填写错误,请核实序列号后重新激活
③同一台设备绑定同一个序列号激活次数过多(超过50次),请更换序列号后重试
④首次激活需要联网,网络环境不佳或无网络环境,请检查网络环境后重试
⑤模型发布者和序列号所属账号非同一账号,如果存在这种异常建议更换账号获取有效序列号
⑥序列号已过有效期,请更换序列号后重试
- 按产品线激活时,激活失败可能由于以下几个原因造成:
①可能是包名填写错误,请核对与序列号绑定的包名是否与实际包名一致
②序列号填写错误,请核实序列号后重新激活
③首次激活需要联网,网络环境不佳或无网络环境,请检查网络环境后重试
④模型发布者和序列号所属账号非同一账号,如果存在这种异常建议更换账号获取有效序列号
⑤序列号已过有效期,请申请延期后重试
2、怎样申请序列号使用延期
序列号激活后有效期为三个月,可以在需要延期的序列号右侧「操作」找到申请延期的入口