人体检测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)

功能:调用验证接口,进行权限认证。

参数详解:

参数名称是否必选数据类型说明
appkeystring官网获取的APP_KEY
appSecretstring官网获取的APP_SECRET
serviceKeystring官网获取的SERVICE_KEY
appContextstring上下文传递
initEngine(configuration)

功能:调用初始化接口,进行模型初始化。

参数详解:

参数名称是否必选数据类型说明
configurationstringConfiguration类模型参数
scoreThreshold float[] 长度为1的float数组,此参数用于判断人的置信度,当置信度小于设置的阈值时 就会被删除掉,最终的结果就不会存在这个人的数据
personDetect(bitmap)

功能:识别图片中的人并返回结果。

参数详解:

参数名称是否必选数据类型说明
bitmapstringbitmap格式图片数据
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

标签属性