人脸识别SDK-android集成常见问题和解答
dingye360 发布于2017-10 浏览:25449 回复:30
7
收藏

安卓sdk相关问题

一、通用问题
1、 license文件有什么用,该放在什么地方?

license文件需要申请,目的是作为sdk校验开发者的使用合法性,license文件放置位置    不对或未放置license文件会导致没法使用sdk,一般应先申请license文件,并把申请得到的license文件,放置在assets目录下面。

2、 使用SDK时,进入到检测界面没有反应或过端时间后就提示超时。

出现这个的原因是授权没有成功,请查看Logcat日志,里面有授权提示。

提示可能是这样的:

a、FaceSDK-License LICENSE_INFO_CHECK_ERROR =license id,Config.licenseID不正确,licenseID可以到申请license地方查看,如下图。

下图中demo-turnstile-face-android为license里面的licenseID, demo-turnstile-face-android1为app运行时Config.licenseID,两者必须一致

 b 、FaceSDK-License LICENSE_INFO_CHECK_ERROR =signature md5 md5不一致错误,,签名的为license里面的md5,后面的为app运行时获取的签名文件的md5,这两个md5必须一致且区分大小写。

c 、FaceSDK-License LICENSE_INFO_CHECK_ERROR =package name,packagename不一致错误。License里面的packagename为申请license时填的,需要保证和app里面的packagename一致。

如果是老版SDK,提示还可以是这样的:

a.  FaceSDK-License authenticate =ak  demo-turnstile-face-android  demo-turnstile-face-android1 Config.licenseID不正确,请到申请license的地方查看license ID
b.  FaceSDK-License authenticate =pn  com.baidu.aip.face.demo.turnstile com.baidu.aip.face.demo.turnstile1 app.gradle->applicationId 配置不正确,androidManifest里面的包名也需要改。包名license申请界面查看。
c.  FaceSDK-License authenticate =sm  F5846C60804CC6042D55D09F1AB82364  1BD1A0936F7976D26624C6CC5E910D5D 签名文件不对,申请license时填入了签名文件的md5。签名文件的MD5,请查看 安卓签名MD5文档.pdf https://pan.baidu.com/s/1pLqQ93H
3、 检测超时的常见原因

(1) 检测网络是否正常
(2) Sdk鉴权是否成功,如license文件是否放在正确的位置,AppID命名是否正确(3) 申请时填写的MD5与实际使用的MD5不同
(3) 调用的API,没有对应权限,在线活体检测接口、公安接口是需要工作人员后台开通权限的

  (4) 传给SDK检测图片,里面的人脸是否是朝上

4、 活体检测常见有那些动作?是否可配置?

常见有6个动作,眨眼,张大嘴,向上抬头,向下低头,向左摇头,向右摇头等。 sdk提供FaceConfig参数设置类,如活体检测角度、光线,检测动作,检测动作数量等设置。

5、 使用sdk一般会用到活体检测拍照等功能,有什么需要注意?

android6.0+需要注意相机拍摄权限问题。如没申请权限,可能导致没法调起相机。

6、 在有些机型上出现特别卡或出现无响应?

SDK在armeabi上性能非常差,建议删掉其他so只留下armeabi-v7a,包括使用的其他第三方so。因为如果其他so有armeabi,根据android系统查找so的逻辑,在armeabi的机型上只会去该目录下查找so,而人脸SDK没有,就会出现找不到so。

7、license文件失效了,不能用了怎么办?

license文件申请时候有期限,如过期会导致校验失效,需要上官网申请延期

8、在线活体分数达不到0.8的阈值

在线活体主要用来检测图片是不是翻拍,需要通过人脸周围的反光来检测,而在线活体使用的是人脸占图片三分之一训练而成。所以上传人脸图片需要人脸占图片的三分之一。

9、 活体检查超时如何设置?

该时间是public,可以直接修改

10、      apiKey(ak)、secretKey(sk)以及AccessToken是用干什么的?怎么获取?

调用开放平台API之前,首先需要获取Access Token(用户身份验证和授权的凭证)您需要使用创建应用所分配到的AppID、API Key及Secret Key,进行Access Token的生成,方法详见 Access Token获取。ak/sk在百度AI开发平台ai.baidu.com的人脸模块创建应用,就会生成ak/sk

 

11、     授权成功了,但还是检测不出人脸

此种情况建议把要检测的图片在屏幕的角落显示出来,预览的图片和实际检测的图片有可能方向不一样。百度人脸检测要人脸的方向必须超时。

 

12、     发现在闸机等场景时,人走动是无法检查到人脸,需要人停下来才检测到,或不容易检测到人脸。

百度人脸检测SDK对人脸检测图片需要图片没有拖影或模糊。您可以把每帧图片保存下来查看是否有拖影或者模糊。视频看不出有拖影或模糊,是因为人的眼睛有延迟。建议使用曝光时间设置小于1/500s的摄像头。

13、     人脸识别和人脸认证在线接口有什么区别?

识别使用的是identify接口,不需要uid,传入人脸和group_id,返回注册库里面相似度最大的uid和分数。认证使用verify接口,需要传入uid、人脸、group_id, 和注册库中相同uid人脸比对,返回分数。认证在同一个uid里比对,可以解决双胞胎、重复注册等问题。

 

14、     人脸库如何创建

人脸库创建:每个appid有对应的人脸库,因此人脸库是不需要单独创建的,只需创建人脸库内的组、和用户id即可。
创建人脸组:使用“人脸注册”接口,在进行人脸注册时需要指定groupid,若这个group不是已经存在的,则会创建一个group,可以通过这种方式创建人脸组。具体请查看 https://ai.baidu.com/docs#/Face-API/top

15、     集成了这个SDK之后,demo中的人脸检测都是直接在客户端app上面发起的。那实际集成的时候,是全在客户端上面做,核身成功之后再把图片和身份信息传导我们的服务器;还是说我们的app要从我们的服务器发起这些核身的请求?

我们的建议是将ak/sk放在你们服务器上,用于获取调用在线接口需要传入的access_token,然后在终端上将人脸数据发到服务器,再由你们的服务器端请求API,理由是:如果是从app端发起请求的话,容易的ak/sk暴露出来,会影响安全性哈

16、     测试通过了,正式上线前需要做一些什么

(1) 联系百度工作人员,延长sdk权限的有效期

(2) 引入商务同学签署商务协议(如果有需要),或者直接在后台充值并开通付费。

(3) 收费情况介绍:http://ai.baidu.com/docs#/Face-Pricing ,其中活体检测0.01元/次

17、集成了这个SDK之后,demo中的人脸检测都是直接在客户端app上面发起的。那实际集成的时候,是全在客户端上面做,核身成功之后再把图片和身份信息传导我们的服务器;还是说我们的app要从我们的服务器发起这些核身的请求? 

我们的建议是将你们的图片发到服务器,再由你们的服务器端请求API,理由是:如果是从app端发起请求的话,容易的token暴露出来,会影响安全性哈~

收藏
点赞
7
个赞
共30条回复 最后由勇21614回复于2019-11
#32勇21614回复于2019-11
#8 康二叔666回复
demo 怎么老是检测不到人脸,,   一直提交把 人脸放入框中   检测超时?????????????、
展开

请问有怎么解决

0
#31lijingjian00回复于2019-10

java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.idl.facesdk.FaceDetect.nativeCreate() (tried Java_com_baidu_idl_facesdk_FaceDetect_nativeCreate and Java_com_baidu_idl_facesdk_FaceDetect_nativeCreate__) 怎么处理,使用案例没有问题,但是自己写的代码一运行,就崩溃。

0
#30duihao001回复于2019-04

总是报这个错,是什么原因呢

java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.idl.facesdk.FaceTracker.create() (tried Java_com_baidu_idl_facesdk_FaceTracker_create and Java_com_baidu_idl_facesdk_FaceTracker_create__)
at com.baidu.idl.facesdk.FaceTracker.create(Native Method)
at com.baidu.idl.facesdk.FaceTracker.(FaceTracker.java:59)
at com.baidu.aip.FaceSDKManager.getFaceTracker(FaceSDKManager.java:53)
at com.fl.DetectLoginActivity.init(DetectLoginActivity.java:395)
at com.fl.DetectLoginActivity.initView(DetectLoginActivity.java:350)
at com.fl.DetectLoginActivity.onCreate(DetectLoginActivity.java:106)

1
#29duihao001回复于2019-04

最新的SDK在哪呀,有支持到28的吗

0
#28独孤焰坤回复于2019-01

这是个大佬啊.

0
#27Ogawa_dev回复于2018-12

demo测试没问题,合入项目后人脸预览一直没法预览,但是可以实现人脸的正常识别,8.1,华为P20手机。

还有一个问题,背景一直无法设置为蓝色。

1
#26江苏信新回复于2018-10

小米8的打开前置摄像头是黑白照片没发现方案啊

1
#25广西随行科技回复于2018-10

我现在遇到这样的问题,无从下手:

采集SDK-Android 报错 small_detect.model 找不到

这是说明文档:https://ai.baidu.com/docs#/Face-Android-SDK/top

文档里完全没提到这个文件,我想知道这个文件在哪下载,有什么作用

以下为报错信息

E/FaceSDK: caffe_detect_model 2 ...
W/System.err: java.io.FileNotFoundException: small_detect.model
W/System.err: at android.content.res.AssetManager.openAsset(Native Method)
at android.content.res.AssetManager.open(AssetManager.java:318)
at android.content.res.AssetManager.open(AssetManager.java:292)
at com.baidu.idl.facesdk.BDFaceUtils.hasModel(BDFaceUtils.java:20)
at com.baidu.idl.facesdk.FaceTracker.(FaceTracker.java:71)
at com.baidu.idl.face.platform.FaceSDKManager.initialize(FaceSDKManager.java:47)
at com.yh.faceatt_client.MainActivity.initLib(MainActivity.java:47)
at com.yh.faceatt_client.MainActivity.onCreate(MainActivity.java:36)
at android.app.Activity.performCreate(Activity.java:6309)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

2
#24hubantech回复于2018-09

TexturePreviewView一直是的啥情况,检测摄像头实在工作的

 

 

0
#23北京专注美容回复于2018-09

有些机型 人脸捕获出来的照片400*400 有黑边,请问这个问题有人遇到过吗?怎么解决

0
#22北京专注美容回复于2018-09
#11 绿茵场小助手回复
demo拍出来的照片会有黑边是什么导致的?应该怎么调整使其全屏?

你这个问题解决了吗?我有的机型捕获到的图片是400*400 周边都是黑色的

0
#21董啊政回复于2018-08

我项目中有jni调用,依赖百度人脸识别的两个库之后,我原来的jni方法会报找不到实现方法是怎么回事,有没有大神帮忙解决一下

0
#20lichao_86回复于2018-08

很详细,对我们安卓开发很有帮助

0
#19大声点许个愿回复于2018-07

core_booster, getBoosterConfig = false  是什么原因导致的啊

1
#18恩润物细回复于2018-07

是否考虑支持多线程版本?

0
#17这一刻我爱你1回复于2018-07
#16 any3w回复
[图片] 旋转90,照相机拍的视频

这个是有的手机默认的是这样的,建议百度一下怎么调整角度

0
#16any3w回复于2018-07

旋转90,照相机拍的视频

0
#14突袭卡卡回复于2018-07

安卓偶尔会出现闪退怎么解决。

0
#13mittrq回复于2018-06

您好,我的少了R库请问怎么解决能否提供R库?

0
#12apples398回复于2018-06

人脸集合中search接口返回的score的值达到多少才认为是同一个人?

0
TOP
切换版块