[Android]虹软人脸检测与人脸识别集成分享

目前我们的应用内使用了 ArcFace 的人脸检测功能,其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得

集成

ArcFace FD 的集成过程非常简单
在 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 的优势除了多角度检测之外,另外一个是他的每次检测并不是独立,即这一次的检测结果会指导下一次的检测 (我猜测的->_->)
所以 ArcFace 在检测到人脸之后,识别的时间会大幅减少,而 Seeta FD 的检测每次都是独立的,所以在无人脸的情况下,Seeta 的检测速度要快于 ArcFace, 但是检测到人脸之后,因为应用整体的计算量增加,导致 Seeta 的检测速度降低的非常明显,大大慢于 ArcFace, (所以二者是不是可以结合一下…)

AFD_FSDKError err = engine.AFD_FSDK_StillImageFaceDetection(
        data, width, height, AFD_FSDKEngine.CP_PAF_NV21, result);

优化

不得不说 ArcFace FD 的错误率是比较高的,比 Seeta 要高,虽然 ArcFace 没有提供任何可以调节的参数,但是还是可以稍微优化一下!
因为从摄像头出来的 yuv 数据是横向的,而 ArcFace 只有 AFD_OPF_0_HIGHER_EXT 这个扩展选项,优先检测 0 度方向, 但是这个方向一般是没有人脸的,所以如果直接进行检测,我们觉得这个可能会增加检测的错误率(猜的->_->),所以处理方法是将 yuv 旋转到手机竖屏方向(当然这个操作不是直接由 CPU 来处理,而是从 Camera 的外部纹理上开始做操作)再拿去检测,这样会减少一点错误率(从用户反馈得出),虽然错误率依然很高(特别对于带栅格的物体)希望虹软能继续优化!
最后希望虹软能把 ArcFace 越做越好 _ 因为只有产品足够好才会不断的有人为你做免费宣传

原文地址:https://www.cnblogs.com/KEAIILINN/p/10654548.html

时间: 2024-10-27 13:52:37

[Android]虹软人脸检测与人脸识别集成分享的相关文章

基于OpenCV读取摄像头进行人脸检测和人脸识别

前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,opencv的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的了,识别的代码是从OpenCV官网上找到的:http://docs.opencv.org/trunk/modules/contrib/doc/facerec/facerec_api.html 需要注意的是,opencv的FaceRecogizer目前有三个类实现了它,特征脸和fisherface方法

人脸检测与人脸对齐指标

人脸检测指标: 召回率(Recall):正确检测到的人脸数量与测试数据集所有人脸数量之比.反映了检测器可以正确找到多少人脸. 精确度(Precision):在所有输出的人脸中,正确的人脸所占的比例.反映了检测器结果的可靠程度. 稳定度(Stability):当人脸在图片中的位置和大小发生变化时,输出的人脸位置和大小也需要相对于真实人脸保持不变,一般用标注的位置和检测到的位置的重合度来衡量. 人脸对齐指标: 平均相对误差(Mean Squared Error):各个检测到的基准点与实际基准的距离的

基于Android 虹软人脸、人证对比,活体检测

最近虹软新增了人证识别.活体检测的功能,好像之前的人脸识别也更新过版本,之前一篇文章用虹软Android SDK做人脸识 别,写过虹软人脸识别的用法,最近把人脸识别.人证识别,活体检测功能都简单的封装了一下,使用起来可以更简单一点: 但是由于appkey是和so库绑定的,所以不能直接依赖,需要下载项目换成自己的so库就能使用或者发布了,还是挺方便的 虹软人脸识别库的介绍``so库和appkey是绑定的 以人脸识别为例,它包括人脸检测.人脸追踪.人脸识别.年龄识别.性别识别这5种引擎,每个引擎都有

第三十七节、人脸检测MTCNN和人脸识别Facenet

在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haar分类器),其检测效果也是不错的,但是目前人脸检测的应用场景逐渐从室内演变到室外,从单一限定场景发展到广场.车站.地铁口等场景,人脸检测面临的要求越来越高,比如:人脸尺度多变.数量冗大.姿势多样包括俯拍人脸.戴帽子口罩等的遮挡.表情夸张.化妆伪装.光照条件恶劣.分辨率低甚至连肉眼都较难区分等.在这样复杂的环境下基于Haar特征的人脸检测表现的不尽人意.随着深度学

不惧恶意***,自带活体检测的人脸识别已上线!

如今,随着AI技术的普及应用程度越来越高,社区.学校.高铁.车站.工地.旅游风景区等众多民用行业领域的身份验证方式都在悄然发生改变.刷脸,这一大家所熟知的方式,已经从安防领域的应用,慢慢***到越来越多的日常应用场景.众多商业化应用场景人脸识别带来产业新聚变比如对于现代居民社区,居住环境的舒适性和安全性已经成为首选要求.而刷卡.指纹或密码门禁系统除体验较差外,还存在卡片或密码丢失.遗忘.复制以及被盗用的隐患和高成本问题.随着人脸识别门禁系统的问世,则解决了用户进.出及来访客人的管理,同时也对出入

《刷脸背后:人脸检测 人脸识别 人脸检索 》PDF 学习下载

发现一本系统讲解人脸识别一系列技术的好书,叫做<刷脸背后:人脸检测 人脸识别 人脸检索>,这里给大家分享一下,共同学习. 本书高清PDF版下载链接:<刷脸背后:人脸检测 人脸识别 人脸检索 >高清带标签可复制PDF 1 内容介绍: 人脸识别是当今热门的研发方向,在安防.金融.旅游等领域具有十分广泛的应用.本书全面.系统地介绍“刷脸”背后的技术,包括人脸检测.人脸识别.人脸检索相关的算法原理和实现技术.本书中讲解的算法具有高度的可操作性和实用性.通过学习本书,研究人员.工程师能够在3

人脸检测——基于OpenCV等开源库

一.人脸检测简介 人脸检测是自动人脸识别系统中的一个关键环节.早期的人脸识别研究主要针对具有较强约束条件的人脸图象(如无背景的图象),往往假设人脸位置一直或者容易获得,因此人脸检测问题并未受到重视.随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图象具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视.今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索.数字视频处理.视频检

Python-OpenCV人脸检测(代码)

Python-OpenCV人脸检测(代码) @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43523507 做人脸识别,首先要检测出图片/视频中的人脸,今天就研究了一下OpenCV的Python接口,把常用的一些功能模块写成函数.基于Python-OpenCV以及PIL,实现图片中人脸的检测以及截取保存.眼睛检测.笑脸检测.下面简单总结一下. 一.软件安装 安装Python-OpenCV以及其依赖库.PIL

人脸检测之Haar-like,Adaboost,级联(cascade)

0:写在前面的话 写在前面的牢骚话,作为一个非主流工程师,我专业与目前工作都与这些知识相隔十万八千里,所以,我所学习和实现的完全是因为兴趣,目前还研究学习的很浅,谈不上高深,所以还是要继续努力学习.希望和大家多交流,也欢迎伪大牛,假专家板砖伺候,也希望真大牛多指点(真大牛不会啰嗦一堆来显得他知道的多,哈哈),总之,本人还在菜鸟阶段,欢迎指教.0.0本文如有错误请及时留言指出,博主会在第一时间修改,确保不会对其他读者产生副作用. 1:人脸检测与识别 人脸识别系统主要包括四个组成部分,分别为:人脸图