人体检测SDK使用文档
本文档主要针对Android 端调用者, 创迹AI开放平台需要购买后, 下载SDK进行使用。本文以“人体检测”能力为例,指引您开启开发之旅 。
1、人体检测SDK配置文档
1.1、SDK下载
具体操作请参照[SDK下载-SDK下载],根据指南进行SDK下载。
1.2、SDK接入配置
1.2.1 aar放入libs文件夹
将SDK下载到本地后将文件解压,找到里面的.arr文件,将其放入项目中的libs文件中:
1.2.2 在build.gradle中加入代码:
添加dependency: implementation(name: 'PersonDetection_1.0.0', ext: 'aar') implementation 'com.squareup.okhttp3:okhttp:3.12.1' implementation 'com.google.code.gson:gson:2.8.5' implementation group: 'org.tensorflow', name: 'tensorflow-lite', version: '1.15.0' implementation group: 'org.tensorflow', name: 'tensorflow-lite-gpu', version: '1.15.0' implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.55' 在gradle文件中“Android{}”内添加 repositories { flatDir { dirs 'libs' } } aaptOptions { noCompress "tflite" }
1.2.3 添加阿里云maven :
添加阿里云maven仓库("http://maven.aliyun.com/nexus/content/groups/public/")
1.2.4 添加对应的权限:
1.2.5 demo实例:
因为权限认证、检测等API操作是耗时操作,在调用SDK的API接口时,须要创建子线程,在子线程中使用例子如下,Perosn detect Demo代码:
1.3、SDK使用流程
1.严格按照操作流程来,此三步中后一步对前一步有依赖,未认证、未初始化调用检测将会导致程序报错。
注意点:
①鉴权完毕后再进行初始化,初始化完毕后进行检测(可以循环调用检测),初始化一次即可,初始化多次会导致异常,且此操作存在内存泄漏。检测完毕后,最后进行模型关闭操作。
②模型初始化一次、关闭也是一次,初始化后不要重复初始化,模型关闭后不要重复关闭。
1.4、注意事项
1.SDK是按照设备数来购买的,当一个设备使用成功后就减少一台次数,所以请合理安排设备,避免造成购买次数的浪费。
2、人体检测SDK接口文档
2.1、能力介绍
检测给定图片中的人体,获取图片中人体的位置,支持多人。
2.2、调用方式
该SDK 主要用于android端,服务授权请参考[接入指南-SDK接入指南],根据指南进行服务授权,授权后进行SDK使用。
2.3、调用说明
点击下载,人体检测SDK。
下载完成后解压,对应文档目录:
|---libs | |---personRecognizeSDK-1.0.0.arr 人体识别的SDK |---explanatoryDocument.txt 说明文件
建议硬件信息:
Android版本:6.0 + 内存:2G +
详细调用:
记录下网站下的appkey,appsecret,servicekey。 配置configuration类中的数据(分数阈值和context)。 先调用授权接口,然后调用初始化接口,再调用检测接口(检测将图片转换成 base64编码)。
2.4、接口说明
authorizationOnline(appkey,appsecret,servicekey,appContext)
功能:调用验证接口,进行权限认证。
参数详解:
参数名称 | 是否必选 | 数据类型 | 说明 |
---|---|---|---|
appkey | 是 | string | 官网获取的APP_KEY |
appSecret | 是 | string | 官网获取的APP_SECRET |
serviceKey | 是 | string | 官网获取的SERVICE_KEY |
appContext | 是 | string | 上下文传递 |
initEngine(configuration)
功能:调用初始化接口,进行模型初始化。
参数详解:
参数名称 | 是否必选 | 数据类型 | 说明 |
---|---|---|---|
configuration | 是 | string | Configuration类模型参数 |
scoreThreshold | 否 | float[] | 长度为1的float数组,此参数用于判断人的置信度,当置信度小于设置的阈值时 就会被删除掉,最终的结果就不会存在这个人的数据 |
personDetect(bitmap)
功能:识别图片中的人并返回结果。
参数详解:
参数名称 | 是否必选 | 数据类型 | 说明 |
---|---|---|---|
bitmap | 是 | string | bitmap格式图片数据 |
closeEngine()
功能:关闭检测器(关闭一次即可,开启模型与关闭模型一一对应)。
注意:
1.权限认证通过之后,先初始化模型,再进行图片检测;权限认证不通过,初始化模型会失败;
2.权限认证、模型初始化、模型检测、模型关闭,必须按照顺序执行,否则可能会产生错误,或者程序崩溃。
2.5、返回码
功能 | Code返回码 | 返回码含义 |
---|---|---|
授权功能 | 11 | 授权失败 |
1 | 授权成功 | |
初始化功能 | 12 | 初始化失败 |
1 | 初始化成功 | |
13 | 关闭模型失败 | |
14 | 输入参数错误 |
2.6、检测结果
[ { "bottom": 666, "confidence": 0.99990976, "labelId": 1, "labelName": "person", "left": 282, "right": 609, "top": 232 }, { "bottom": 654, "confidence": 0.9904779, "labelId": 1, "labelName": "person", "left": 538, "right": 1000, "top": 0 } ]
2.7、返回字段详解
名称 | 说明 |
---|---|
left | 人体位置:左上角坐标x |
top | 人体位置:左上角坐标y |
right | 人体位置:右下角坐标x |
bottom | 人体位置:右下角坐标y |
confidence | 结果置信度(人检测分数例如:0.932,满分为1) |
labelId | 标签ID |
labelName | 标签属性 |