Face++SDK接入流程
所用工具类和官方文档均可在Demo中找到
注册账号
创建应用获取API Key和API Secret
绑定BundleId,填写应用名和包名
-
下载SDK
- 在下载的SDK目录中找到Demo,然后在Demo里拿到SDK文件,拷贝到自己项目的libs下
- 在Demo中找到model文件,拷贝到自己项目的raw目录下
-
在Project的build.gradle中增加配置
... repositories { flatDir { dirs 'libs' } } dependencies { ... implementation(name: 'MGLicenseManagerSDK-0.3.1', ext: 'aar') implementation(name: 'MGFaceppSDK-0.5.2', ext: 'aar') }
-
调用流程
-
获取线上授权
private void onAuthFacepp() { final LicenseManager licenseManager = new LicenseManager(this); String uuid = ConUtil.getUUIDString(this); long apiName = Facepp.getApiName(); licenseManager.setAuthTimeBufferMillis(0); licenseManager.takeLicenseFromNetwork(Util.CN_LICENSE_URL, uuid, Util.API_KEY, Util.API_SECRET, apiName, "1", new LicenseManager.TakeLicenseCallback() { @Override public void onSuccess() { // 授权成功 initFacepp(); } @Override public void onFailed(int i, byte[] bytes) { if (TextUtils.isEmpty(Util.API_KEY) || TextUtils.isEmpty(Util.API_SECRET)) { ... } else { String msg; if (bytes != null && bytes.length > 0) { msg = new String(bytes);// 错误信息 ... } } } }); }
-
初始化SDK
private void initFacepp() { mFacepp = new Facepp(); // 是否只检测一张脸? 是: 1; 否: 0。 String errorCode = mFacepp.init(this, ConUtil.getFileContent(this, R.raw.megviifacepp_0_5_2_model), 1); if (null == errorCode) { // Face++初始化成功 ... } else { // Face++初始化失败 ... return; } Facepp.FaceppConfig faceppConfig = mFacepp.getFaceppConfig(); faceppConfig.detectionMode = Facepp.FaceppConfig.DETECTION_MODE_TRACKING_FAST; mFacepp.setFaceppConfig(faceppConfig); }
-
调用
Facepp.Face[] faces = mFacepp.detect(arr, width, height, Facepp.IMAGEMODE_BGR);
-