face 人脸识别的android的依赖,ArcFace Android 人脸检测与人脸识别集成分享

目前咱们的应用内使用了 ArcFace 的人脸检测功能,其余的咱们并不了解,因此这里就和你们分享一下咱们的集成过程和一些使用心得web

集成

ArcFace FD 的集成过程很是简单svg

在 ArcFace FD 的文档上有说明支持的系统为 5.0 及以上系统,但其实在 4.4 系统上也是能够跑的,优化

if (engine == null) { // && Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {

try {

engine = new AFD_FSDKEngine();

AFD_FSDKError err = engine.AFD_FSDK_InitialFaceEngine(

"XXXX",

"XXXX",

AFD_FSDKEngine.AFD_OPF_0_HIGHER_EXT, 12, 3);

if (err.getCode() != 0) {

engine.AFD_FSDK_UninitialFaceEngine();

engine = null;

}

} catch (Exception e) {

e.printStackTrace();

engine = null;

}

}

我以为 ArcFace 的优点除了多角度检测以外,另一个是他的每次检测并非独立,即这一次的检测结果会指导下一次的检测 (我猜想的->_->)ui

因此 ArcFace 在检测到人脸以后,识别的时间会大幅减小,而 Seeta FD 的检测每次都是独立的,因此在无人脸的状况下,Seeta 的检测速度要快于 ArcFace, 可是检测到人脸以后,由于应用总体的计算量增长,致使 Seeta 的检测速度下降的很是明显,大大慢于 ArcFace, (因此两者是否是能够结合一下…)code

AFD_FSDKError err = engine.AFD_FSDK_StillImageFaceDetection(

data, width, height, AFD_FSDKEngine.CP_PAF_NV21, result);

优化

不得不说 ArcFace FD 的错误率是比较高的,比 Seeta 要高,虽然 ArcFace 没有提供任何能够调节的参数,可是仍是能够稍微优化一下!xml

由于从摄像头出来的 yuv 数据是横向的,而 ArcFace 只有 AFD_OPF_0_HIGHER_EXT 这个扩展选项,优先检测 0 度方向, 可是这个方向通常是没有人脸的,因此若是直接进行检测,咱们以为这个可能会增长检测的错误率(猜的->_->),因此处理方法是将 yuv 旋转到手机竖屏方向(固然这个操做不是直接由 CPU 来处理,而是从 Camera 的外部纹理上开始作操做)再拿去检测,这样会减小一点错误率(从用户反馈得出),虽然错误率依然很高(特别对于带栅格的物体)但愿虹软能继续优化!htm

最后但愿虹软能把 ArcFace 越作越好 _ 由于只有产品足够好才会不断的有人为你作免费宣传文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值