人体检测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 | 标签属性 |