商米AI识客SDK开发指南

1.准备工作

1.1 申请API对接所需的材料

步骤一:联系商米售前技术团队,申请对接API所需要的账号信息,需要向售前技术支持团队提供如下软件开发商信息

客户提供的信息说明
客户名称软件商公司名称
对接摄像头型号对接API的型号,如SS(Store Sense)、FS(Face Sense)
收银设备硬件指纹获取到SDK后,通过SDK获取硬件指纹信息,用于申请Licence

步骤二:售前技术团队根据客户的需求信息,返回软件商对接API所需的账号信息,包括:

返回给客户的信息说明
SaaS代号商米内部管理SaaS软件商信息的代号
设备激活码激活设备端所需的激活码,用于签名校对软件商是否有权调用
SDK开发包用于人脸识别以及AI识客设备开发的SDK,目前只支持安卓版本

SDK开发包:

序号文件/文件名说明
1FaceDemoDemo工程源码
2face-release.aar商米人脸识别SDK
3libipcsdk-release.aarIPC联动版sdk
4asset 商米 人脸识别资源文件

2、申请Licence

登陆开发者网站,提供 以下信息申请Licence

提供的信息说明
收银设备硬件指纹 通过SDK API获取设备硬件信息
人脸库人脸库的限制大小

商米开发者网站会生成一个Licence文件。SaaS开发者获取到Licence后即使用SDK。

3、添加SDK到工程

3.1 导入SDK

右键点击app,选择New->Module->Import .JAR/.AAR Package

点击Finish即导入aar模块

3.2 权限申明

在AndroidManifest.xml文件里添加如下权限:

	‹uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/›
	‹uses-permission android:name="android.permission.INTERNET" /›
	‹uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /›
	‹uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /›
	‹uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /›
	‹uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /›
	‹uses-permission android:name="android.permission.CAMERA" /›

3.3 导入asset资源

导入提供的assets资源

说明:资源文件需要APP启动的时候复制到APP的运行目录,以方便SDK后续初始化。

3.4 导入licence文件

获取到licence_valid.txt文件,可以放到assets资源目录,也可以放到sdcard目录。

1)放到assets资源目录,则需要把licence_valid.txt文件从资源文件复制到app的工作目录。

2)如果放到sdcard目录,则需要app申请sdcard读取权限。

无论哪一种情况,最后使用的时候,需要传递licence_valid.txt文件的路径,以激活人脸识别SDK。详细见SDK初始化代码

4、DEMO说明

4.1 工程目录结构

4.1.1 app Module

app Module是DEMO的入口。其中包含了各个模块的入口函数调用。

4.1.2 commonlib

commonlib Module包含了整个DEMO通用的接口。其中包含摄像头管理,工具类。如下图:

4.1.2.1 FaceCameraManager

FaceCameraManager统一管理设备自带摄像头和USB摄像头。设备自带摄像头的流程是使用Android系统提供的摄像头通用方法。USB摄像头则使用UVC库提供的操作摄像头的方法。FaceCameraManager对上层应用提供统一的方法: startPreview和 stopPreview。

4.1.2.2 NormalCameraManager

NormalCameraManager使用Android系统提供的摄像头方法,实现startPreview和stopPreview。并在内部实现回调接口用于返回每一帧摄像头获得的数据。

4.1.2.3 UVCCameraManager

UVCCameraManager使用第三方库UVClib提供的方法用于操作USB摄像头,实现startPreview和stopPreview。 并在内部实现回调接口用于返回每一帧摄像头获得的数据 。

4.1.2.4 ByteUtils

ByteUtils提供Byte操作的一些通用方法。

4.1.2.5 DBHelper

DBHelper提供创建数据的方法。

4.1.2.6 ImageUtils

ImageUtils提供图片操作的一些方法。

4.1.3 libuvccamera

libuvccamera Module采用第三方库开源库libuvccamera

4.1.4 facedemo

facedemo Module是DEMO实现功能的主要模块。其包含:会员注册、会员管理、会员查询、IPC配置等功能。

5、SDK初始化

详细代码见 商米AI识客SDK示例代码-> SDK初始化

6、获取摄像头数据

详细代码见 商米AI识客SDK示例代码->获取摄像头信息

7、获取摄像头预览数据

详细代码见 商米AI识客SDK示例代码->获取摄像头预览信息

8、会员注册

详细代码见 商米AI识客SDK示例代码-> 会员注册

9、会员实时查询

会员实时查询,需要使用到,实时获取摄像头预览数据以及人脸特征提取两个功能

详细代码见 商米AI识客SDK示例代码->获取摄像头预览信息

详细代码见 商米AI识客SDK示例代码->人脸特征提取

10、配置摄像机

见IPC配置页面