1.准备工作
1.1 申请API对接所需的材料
步骤一:联系商米售前技术团队,申请对接API所需要的账号信息,需要向售前技术支持团队提供如下软件开发商信息
客户提供的信息 | 说明 |
客户名称 | 软件商公司名称 |
对接摄像头型号 | 对接API的型号,如SS(Store Sense)、FS(Face Sense) |
收银设备硬件指纹 | 获取到SDK后,通过SDK获取硬件指纹信息,用于申请Licence |
步骤二:售前技术团队根据客户的需求信息,返回软件商对接API所需的账号信息,包括:
返回给客户的信息 | 说明 |
SaaS代号 | 商米内部管理SaaS软件商信息的代号 |
设备激活码 | 激活设备端所需的激活码,用于签名校对软件商是否有权调用 |
SDK开发包 | 用于人脸识别以及AI识客设备开发的SDK,目前只支持安卓版本 |
SDK开发包:
序号 | 文件/文件名 | 说明 |
---|---|---|
1 | FaceDemo | Demo工程源码 |
2 | face-release.aar | 商米人脸识别SDK |
3 | libipcsdk-release.aar | IPC联动版sdk |
4 | asset | 商米 人脸识别资源文件 |
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配置页面