常见问题
所有文档

          人脸识别

          常见问题

          安卓—常见问题

          Q:提示硬件指纹变化,导致激活失效?
          A:v1.0.1版本以上的SDK,已经修复了硬件指纹变化问题。但由于硬件本身的多样化原因,可能某些情况下,仍会导致指纹变化。

          Q:哪些情况可能导致指纹变化?
          A:刷机、更换硬件设备将会导致指纹变化。但安卓系统升级、APP卸载重装、恢复系统出厂值并不会导致硬件指纹变化。

          Q:同一台设备可以被多个序列号多次激活么?
          A:可以。一台设备可以被多个序列号激活,没有限制。

          Q:调用getFeature接口对图片进行特征提取,经常会出现特征提取失败的情况,错误码为6。
          A:主要可能为在人脸检测的过程中没有检测到人脸,建议调整设置下人脸的大小set_min_face_size的值。

          Q:序列号授权过期?
          A:一个序列号只能对应一台设备,一个设备可以绑定多个序列号,测试期间的序列号有使用时间,会过期,过期后需要到百度智能云Console平台上进行延期,正式使用的序列号是永久授权的。授权不过,人脸离线SDK将无法返回正确结果。

          Q: 序列号失效常见原因有哪些?
          A: 请根据以下列举原因进行排查:

          1. 测试序列号授权过期;
          2. CPU、网卡等硬件损坏导致硬件指纹(Device ID)变更;
          3. SDK升级: 安卓1.0 & 2.0版本升级至3.0 & 4.0 & 5.0版本会导致序列号失效,3.0版本之后升级无需替换序列号,如有特殊情况请在Console提交工单反馈问题;
          4. 设备时间复原:设备的系统时间早于激活时间,导致激活文件无法对其系统激活时间,需要手动修改系统时间;
          5. 激活后硬件指纹(Device ID)变更:需要排查指纹变更前后进行过的操作,偶发低频场景,需复现具体场景,如有特殊情况请在Console提交工单反馈问题。

          Q:视频流人脸检测和图片检测是否可以同时或间隔进行?
          A:人脸SDK为单例,同一时间只能进行一个图像源。另外进行人脸检测具体追踪功能,视频流进行检测时,不能插入其他图像帧。想VideoMatchImageActivityRgbIrVideoMatchImageActivityOrbbecVideoMatchImageActivity,需要先把图片进行人脸检测后,在把打开视频流检测。中间需要使用FaceSDKManager.getInstance().getFaceDetector().clearTrackedFaces();清除数据

          Q:人脸检测检测不到人脸?
          A:人脸SDK检测需要传入检测的人脸图片是人脸朝上,预览和实际传给SDK检测的图片方向不一定相同,需要把实际检测的数据转成(argb->bitmap)图片,显示确定人脸是否朝上。

          Q:如何调整人脸检测识别距离,以及调节检测的最小人脸?
          A:主要方法有三种,详情如下:

          1. 调整FaceDetector初始化时最小检测人脸大小(FaceEnvironment VALUE_MIN_FACE_SIZE = 100;),可选范围为:50~200(50*50px-200*200px),最小检测人脸越小,能检测到人脸越小。最小检测人脸越小,性能消耗越大。
          2. 调整人脸检测传入的图像分辨率,分辨率越大,能检测越越远。鉴于目前端设备性能,建议选择640*480,1280*720。分辨率越大,性能消耗越大。
          3. 选择更大焦距的摄像头,相当于把人脸拉近。同样距离,大焦距的镜头,图像视觉越小,人脸占比越大。通常USB摄像头为3mm、6mm焦距。对性能影响小,调整人脸检测距离明显。

          Q:人脸检测返回值问题?
          A:一般反馈OK(0)表示检测到合格的人脸,当传入检测数据间隔时间较长上,超过了追踪的时间,会返回DATA_HIT_LAST(9)。所有返回9也是检测到了合格的人脸,如下所示:

          public static enum ErrCode {
              OK,
              PITCH_OUT_OF_DOWN_MAX_RANGE,
              PITCH_OUT_OF_UP_MAX_RANGE,
              YAW_OUT_OF_LEFT_MAX_RANGE,
              YAW_OUT_OF_RIGHT_MAX_RANGE,
              POOR_ILLUMINATION,
              NO_FACE_DETECTED,
              DATA_NOT_READY,
              DATA_HIT_ONE,
              DATA_HIT_LAST,
              IMG_BLURED,
              OCCLUSION_LEFT_EYE,
              OCCLUSION_RIGHT_EYE,
              OCCLUSION_NOSE,
              OCCLUSION_MOUTH,
              OCCLUSION_LEFT_CONTOUR,
              OCCLUSION_RIGHT_CONTOUR,
              OCCLUSION_CHIN_CONTOUR,
              FACE_NOT_COMPLETE,
              UNKNOW_TYPE;
          
              private ErrCode() {
              }
          }

          Q:so加载问题?
          A:很多开发者反馈找不到so库,原因是前面只提供了armeabi-v7a的库,但开发者基本加了其他第三方的库arm64-v8aarmeabiarmeabi-v7ax86等都加进去了。so的加载原理是先加载当前CPU对应的so库,比如64位的手机会先加载arm64-v8a,只有在没有arm64-v8a目录才会去其他目录(如armeabi-v7a)下找,所有就算只留个空arm64-v8a目录也不行,因为这样他只会在arm64-v8a目录下找,这就要求每个目录下的so齐全一致。同时也不能把armeabi-v7a里面的so拷到其他目录,不要看名字一样。同时加入arm64-v8aarmeabi-v7a库。这样会导致打出来的包大不少。所以如果觉的包太大,只留armeabi-v7a是可以,他兼容其他cpu架构。注意:aar里面可能包含so,注意检查。

          Win—常见问题

          Q:为什么会报db_operation_error错误?
          A:请检查sdk路径是否带中文,这会导致数据库创建失败然后提示db_operation_error

          Q:编译demo工程时候出现如opencv-win\include\opencv2\flann\logger.h(66): error C4996: 'fopen': This function or variable may be unsafe的错误提示
          A:这种错误一般是因为vs强制要求安全等级提高所致,可以通过右键工程-属性-C/C++ -- 预处理器—预处理器定义中加入:_CRT_SECURE_NO_WARNINGS 后重新编译即可解决问题。

          Q:工程运行过程中,提示face-resource不存在?
          A:人脸sdk,需要一些模型文件,在demo工程的face-resource文件夹中,该文件夹需要放置在exe所在路径的上级目录下。若放置不正确,可能出现找不到模型文件,没法进行人脸识别。

          Q:激活后是否可以把激活文件license.ini和license.key拷贝到其他设备运行?
          A:不能,离线sdk和设备绑定,每个设备对应一个key和一个license文件,换设备无法运行。但对同一台设备,可把win32下的license.inilicense.key拷贝到x64下,则x64环境,该设备也等同于激活,可以使用。

          Q:exe不能运行或崩溃?
          A:编译的工程exe,需要和dll等在一个文件夹里面,如示例工程win32和x64就有不少动态库dll文件,这是exe运行所需的库文件,不放在一起的话,可能exe不能运行或者崩溃。

          Q:vs2010或vs2017打开工程编译提示错误不能通过编译?
          A:开发文档官方指定使用vs2015 comunity版本,因vs2010不支持c++11,但sdk使用了c++11的新功能,vs2017若编译提示json库错误,如json::reader的错误,建议更新为v1.1版本的SDK即可解决。

          Q:SDK是否支持多线程?
          A:Windows V4.1版本支持该功能,请在Console下载最新版本进行试用。

          Q:Windows离线SDK是否支持C#,Java语言?
          A:不支持,目前Windows离线SDK仅支持C++版本。

          Q:Windows离线sdk在debug版本报错?
          A:目前仅提供x86和x64的release版本的库,不支持debug版本,需要调试可在release版本下通过添加日志调试。

          Q:SDK中的激活工具licenseTool.exe和sdk的demo TestFaceApi.exe都不能运行,崩溃或提示缺少dll?
          A:此SDK基于C++编写,需要安装对应运行环境(推荐使用vs2015),崩溃或提示缺少dll是因为缺少运行环境。

          Q:证件照等图片检测不到人脸,但实际是有人脸的?
          A:默认可检测最小人脸大小是100,若检测不到,可通过设置最小人脸大小调整,例如调整最小检测人脸为30px,可使用api->set_min_face_size(30),达到调整最小人脸检测大小的目的,然后再调用检测,这样能检测到比较小得图片如证件照等。V4.1最新版本中已经集成了证件照模型,推荐您升级SDK版本解决此问题。

          上一篇
          Linux-ARM-SDK
          下一篇
          美颜滤镜SDK