人脸识别Android离线SDK常见问题和解答
置顶
littergang 发布于2018-08 浏览:76163 回复:101
3
收藏
最后编辑于2023-10

1.咱们离线安卓sdk有没有windows的这个最多识别5个人脸的功能?

答:离线SDK不直接支持最多识别人数,有内部方法

2:同一台安卓设备程序更新 重新安装后,设备硬件指纹信息和原来的不一样了
导致同一个序列号 不能激活?

答:下载使用最新的SDK:版本变更1.0.1
1、修复设备指纹发生变化bug
2、替换近红外活体模型,优化效果
3、修复批量注册人脸到人脸库,失败问题
4、修复注册、图片人脸检测、视频返回图片抽取特征失败,经常出现检测不到人脸问题。

3.离线SDK,目前我使用的是离线激活的方式,按照步骤在序列号那里输入对应的硬件指纹,然后得到了license.zip这个授权文件,之后文档说:将该文件放到SDK指定位置即可,我完全不太明白你们说的"指定位置"是哪里?请问android版本的该如何操作?

答:android暂时不支持完全离线授权。

4:在demo里面,视频vs人脸库的特征抽取耗时与图片vs图片特征抽取耗时有差异,
视频流中提取耗时:500ms
图片当中提取耗时:700ms
请问是否符合预期呢?

答:图片提取包含了人脸检测的时间,视频流提取耗时应该只是特征提取的时间。

5:脸识别离线sdk可以识别其他平台人脸采集的信息吗
业务场景:Windows端拿到用户的一张人脸照片,Windows端对这张照片进行人脸采集和人脸注册的工作,接着Android端通过摄像头捕捉到人脸图片,调用在线API进行人脸识别比对的工作。这样子可以吗?

答:调在线的不行,目前发布的window和android可以互通。

6:人脸特征在windows端提取,建立人脸库,然后Android端可以进行人脸对比么?

答:是可以的。

7;示例中打开前置摄像头黑屏的,没有图像?

答:可以修改下代码:

8:人脸注册如果已经有这张人脸的数据就更新数据,不要重复添加,应该调用哪个方法?

答:

9.离线SDK,目前我使用的是离线激活的方式,按照步骤在序列号那里输入对应的硬件指纹,然后得到了license.zip这个授权文件,之后文档说:将该文件放到SDK指定位置即可,我完全不太明白你们说的"指定位置"是哪里?请问android版本的该如何操作?

答:android暂时不支持完全离线授权。

10.使用Android离线SDK,成功激活后,重装app后再输入序列号就报错license has actived on other device,是什么原因?

答:这个是由于硬件指纹变化导致的,目前已升级新版本1.0.1,。可以在官网下载最新的SDK,新的SDK激活不能使用以前旧的序列码激活,可以重新申请新的序列码重新激活设备。

11.在“人脸采集SDK”中,设置人脸回调
public void onDetectFace(final int retCode, FaceInfo[] infos, ImageFrame frame)
后infos里面是人脸的信息,我想 了解infos里面具体都有哪些信息?

答:

12.同一设备系统还原后再次激活离线sdk失败
一开发板硬件首次正常激活离线人脸识别sdk后,系统恢复出厂设置,离线sdk(永久、正式版)激活失败。
更新最新版 SDK也无法解决。换成sdk 1.0.1的人脸识别后,离线激活时,同一个设备原来的激活码用不了……显示已使用,该现象是否正常,应该如何处理?

答:这个是正常的,使用新的SDK后以前的序列码不能再使用,可以换个新的序列码重新激活。

13.离线的android-SDK
调用:getFeature接口
在使用Android-SDK时,对图片进行特征提取时,经常会出现特征提取失败的情况,错误码为6

答:应该是在人脸检测的过程中没有检测到人脸,建议调整设置下人脸的大小set_min_face_size的值。

14.TexturePreviewView我设置成match_parent 显示大小是1920*1080就可以,可是设置成指定大小320dp*180dp就显示不正确呢?预览大小还是setPreferredPreviewSize(640, 480);?

答:previewsize不是随便设置的,要是camera支持的才行,camera.getPreviewSize()确认下。

15.能解释下SDK参数配置的一些详细的说明吗?

答:

收藏
点赞
3
个赞
共101条回复 最后由柚夏柠Fq1K夏回复于2023-10
#96chen4778482回复于2021-09

初始化成功,到采集页面的时候 采集框是黑色的,是怎么回事

0

A problem occurred configuring project ':orbbec'.

Android studio4.0.1 报这个错误是为什么

1
#94梦方方醒回复于2021-06

安装的时候遇到了一些问题, java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.recognition-wL9O0d8iPZ8KvF5pkO_7Qw==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.recognition-wL9O0d8iPZ8KvF5pkO_7Qw==/lib/x86, /system/lib, /system/product/lib]]] couldn't find "libbdface_sdk.so"

1
#93tanranran回复于2021-05

横屏设备无法识别,该如何解决

0
#92skeapclose回复于2021-04
#91 skeapclose回复
同问,这个是什么bug啊,关了又不能调试,太烦了

SDK Self Check: Provider Error, 的问题解决了

我是这样解决的:

查看错误提示位置的那部分代码

try {
StringBuilder var3;
(var3 = new StringBuilder()).append(var0.getPackageName()).append(".liantian.ac.provider");
boolean var10000 = var0.getPackageManager().resolveContentProvider(var3.toString(), 0).multiprocess;
} catch (Throwable var5) {
var1.append("Provider Error,");
}

应该是resolveContentProvider这里有问题

查看了一下AndroidManifest里面确实有个 包名.liantian.ac.provider

然后这个包名不对,改为正确包名就可以了

1
#91skeapclose回复于2021-04
#90 DMC不落帝回复
你在buildTypes - debuggable 设置成 false,就能运行了,但是这样又会导致无法使用断点调试。。。
展开

同问,这个是什么bug啊,关了又不能调试,太烦了

0
#90DMC不落帝回复于2021-03
#89 8trace回复
你好,你这个问题解决了吗,怎么解决的

你在buildTypes - debuggable 设置成 false,就能运行了,但是这样又会导致无法使用断点调试。。。

0
#898trace回复于2021-03
#88 汉德天坤2017回复
人脸离线采集demo运行报错 2021-02-04 17:07:31.297 21521-21577/? E/AndroidRuntime: FATAL EXCEPTION: Thread-7 Process: com.handkoo.smartvideophone.yczndd, PID: 21521 java.lang.UnsupportedOperationException: SDK Self Check: Provider Error, at com.baidu.liantian.g.d.j(CommonMethods.java:1497) at com.baidu.liantian.core.d$1.run(MethodImpl.java:63) at java.lang.Thread.run(Thread.java:784)
展开

你好,你这个问题解决了吗,怎么解决的

2
#88汉德天坤2017回复于2021-02

人脸离线采集demo运行报错

2021-02-04 17:07:31.297 21521-21577/? E/AndroidRuntime: FATAL EXCEPTION: Thread-7
Process: com.handkoo.smartvideophone.yczndd, PID: 21521
java.lang.UnsupportedOperationException: SDK Self Check: Provider Error,
at com.baidu.liantian.g.d.j(CommonMethods.java:1497)
at com.baidu.liantian.core.d$1.run(MethodImpl.java:63)
at java.lang.Thread.run(Thread.java:784)

10
#87jiliuyj回复于2021-01

您好,我没有找到最新版人脸识别离线SDK-安卓的工程示例,有Demo吗?

麻烦给个链接或者发我邮箱:jiliuyj@163.com,谢谢

0
#86JIJGwfss7333回复于2021-01

不错

0
#75张旭东691回复于2020-11

您好,人脸识别的demo为什么摄像头是偏90度?

3
#71皆空明回复于2020-08

java.lang.NullPointerException: Attempt to invoke virtual method 'com.baidu.idl.main.facesdk.FaceInfo[] com.baidu.idl.main.facesdk.FaceDetect.detect(com.baidu.idl.main.facesdk.model.BDFaceSDKCommon$DetectType, com.baidu.idl.main.facesdk.model.BDFaceImageInstance)' on a null object reference
at com..manager.FaceSDKManager.personDetect(FaceSDKManager.java:983)
at com..ui.face.FaceDepthTestimonyActivity.onClick(FaceDepthTestimonyActivity.java:369)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21170)
at android.os.Handler.handleCallback(Handler.java:743)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:772)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662)

大家好,困扰了一下午,我移植sdk到我项目中,去图库获取图片返回后就报float ret = FaceSDKManager.getInstance().personDetect(bmp, secondFeature);有空对象 ,那么secondFeature在哪里进行赋值,求帮助

0
#69无她94回复于2020-08

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, ile /root/baidu/opencv-3.2.0/modules/highgui/src/window.cpp, line 583 terminate called after throwing an instance of 'cv::Exception'
what(): /root/baidu/opencv-3.2.0/modules/highgui/src/window.cpp:583: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage

demo编译成功后,运行demo程序后一直让我重新安装gtk和pkg,但是我是安装的,是因为demo中的opencv当初编译时不是用gtk没有安装gtk?还是涉及我3399开发板的屏幕问题?后来我将opcv.pc修改了路径后还是显示这个/root/baidu/opencv-3.2.0/modules/highgui/src/window.cpp,这个是因为当成编译位置被记录了?我想自己安装个opencv将库文件拉过去代替又怕出问题,正在安装!有没有大佬看下有啥问题?

0
#68youzhhua回复于2020-05

Android SDK 调用FaceSDKManager.getInstance().getFaceDetect().track(BDFaceSDKComm.DetectType detectType,BDFaceI mageInstance imageInstance) 方法返回FaceInfo [] 的size =0,该方法里的调用nativeTrack也是方法一个size = 0 的Array。请问是设置不对吗?要如何出来该问题?

0
#67liu49738回复于2020-03

多线程调用sdk会提示so库报错
Fatal signal 11 (SIGSEGV), code 1, fault addr 0xcb790000 in tid 24844 (detectThread)
2020-03-05 16:31:55.100 24564-24845/ A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xcb790000 in tid 24845 (detectThread)
2020-03-05 16:31:55.100 24564-24593/ A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xcb790000 in tid 24593 (detectThread)
2020-03-05 16:31:55.100 24564-24844/ I/libc: Another thread contacted debuggerd first; not contacting debuggerd.
2020-03-05 16:31:55.100 24564-24593/ I/libc: Another thread contacted debuggerd first; not contacting debuggerd.
2020-03-05 16:31:55.101 24564-24843/ A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xcb790000 in tid 24843 (detectThread)
2020-03-05 16:31:55.101 24564-24843/ I/libc: Another thread contacted debuggerd first; not contacting debuggerd.
2020-03-05 16:31:55.102 583-24715/system_process D/KingsunSmartAPIService: count:27
2020-03-05 16:31:55.175 25424-25424/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-03-05 16:31:55.175 25424-25424/? A/DEBUG: Build fingerprint: 'Android/sl3399pad7/sl3399pad7:7.1.2/NHG47K/lh11081038:userdebug/test-keys'
2020-03-05 16:31:55.175 25424-25424/? A/DEBUG: Revision: '0'
2020-03-05 16:31:55.175 25424-25424/? A/DEBUG: ABI: 'arm'
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: pid: 24564, tid: 24845, name: detectThread >>> <<<
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xcb790000
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: r0 00000000 r1 cb664110 r2 ffffce03 r3 cb790000
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: r4 cf083260 r5 cb664120 r6 00000120 r7 cb600180
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: r8 00000048 r9 00000003 sl cb6001c0 fp cb600170
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: ip e28355d8 sp b4555820 lr cb664120 pc cee94b9e cpsr a00d0030
2020-03-05 16:31:55.176 25424-25424/? A/DEBUG: backtrace:
2020-03-05 16:31:55.177 25424-25424/? A/DEBUG: #00 pc 00047b9e /data/app/-1/lib/arm/libpaddle_light_api_shared.so

3
#66daohehudong回复于2020-01

有没有研发QQ群,方便加我一个吗,QQ 42523405

0
#65SL_Vanilla回复于2019-12

问下 FaceInfo 中,72个关键点有数据,但是人脸的三个旋转方向都是 0 ,不知道怎么处理。

3.0 的 SDK,使用你们提供的 Demo ,在拿到数据组成图片再生成 FaceInfo[] 时,发现没有对应 3 个方向旋转的数据。

private void faceDataDetect(final byte[] argb, int width, int height, FaceDetectCallBack faceDetectCallBack) {
        LivenessModel livenessModel = new LivenessModel();

        BDFaceImageInstance rgbInstance = new BDFaceImageInstance(argb, height, width,
                BDFaceSDKCommon.BDFaceImageType.BDFACE_IMAGE_TYPE_YUV_420,
                SingleBaseConfig.getBaseConfig().getDetectDirection(),
                SingleBaseConfig.getBaseConfig().getMirrorRGB());

        livenessModel.setBdFaceImageInstance(rgbInstance);
        long startTime = System.currentTimeMillis();
        FaceInfo[] faceInfos = FaceSDKManager.getInstance().getFaceDetect()
                .track(BDFaceSDKCommon.DetectType.DETECT_VIS, rgbInstance);

        livenessModel.setRgbDetectDuration(System.currentTimeMillis() - startTime);
        // getImage() 获取送检图片
        livenessModel.setBdFaceImageInstance(rgbInstance.getImage());

        if (faceInfos != null && faceInfos.length > 0) {
//我在此处打印的 FaceInfo 的信息。
            Log.d("P.D:Face", "run faceInfos length :" + faceInfos.length);
            for(FaceInfo tempFaceInfo : faceInfos){
                Log.d("P.D:Face", "run faceInfos yaw:" + tempFaceInfo.yaw + " ; pitch: " + tempFaceInfo.pitch + " ;roll: " + tempFaceInfo.roll);
            }

            livenessModel.setTrackFaceInfo(faceInfos);
            FaceInfo faceInfo = faceInfos[0];
            livenessModel.setFaceInfo(faceInfo);
            livenessModel.setLandmarks(faceInfo.landmarks);
            
……

        } else {
            // 流程结束销毁图片,开始下一帧图片检测,否着内存泄露
            rgbInstance.destory();
            if (faceDetectCallBack != null) {
                faceDetectCallBack.onTip(0, "未检测到人脸");
                faceDetectCallBack.onFaceDetectCallback(null);
            }
        }
    }
0
#64蓝色哀殇回复于2019-12

调用接口注册人脸,importDBSuccess 成功但是查不到注册得人脸信息

0
#63dengxian138回复于2019-11
#43 菜心傻猪猪回复
我的也是,,  新的人脸DEMO打正式包报错

我是demo debug运行报错  release正常

0
TOP
切换版块