目前我们的应用内使用了 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 越做越好 _ 因为只有产品足够好才会不断的有人为你做免费宣传

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

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

    前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,opencv的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的 ...

  2. MTCNN算法与代码理解—人脸检测和人脸对齐联合学习

    目录 写在前面 算法Pipeline详解 如何训练 损失函数 训练数据准备 多任务学习与在线困难样本挖掘 预测过程 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 主 ...

  3. ArcFace Android 人脸检测与人脸识别集成分享

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

  4. 人脸检测识别,人脸检测,人脸识别,离线检测,C#源码

    百度网盘地址 微云地址 使用虹软人工智能开放平台技术开发完成

  5. Android打开相机进行人脸识别,使用虹软人脸识别引擎

    上一张效果图,渣画质,能看就好 功能说明: 人脸识别使用的是虹软的FreeSDK,包含人脸追踪,人脸检测,人脸识别,年龄.性别检测功能,其中本demo只使用了FT和FR(人脸追踪和人脸识别),封装了开 ...

  6. Android—基于OpenCV+Android实现人脸检测

    导读 OpenCV 是一个开源的跨平台计算机视觉库, 采C++语言编写,实现了图像处理和计算机视觉方面的很多通用算法,同时也提供对Python,Java,Android等的支持,这里利用Android ...

  7. Android 中使用 dlib+opencv 实现动态人脸检测

    1 概述 完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo.该 demo 在相机预览过程中对人脸进行实时检测,并将检测到的人脸用 ...

  8. 第三十七节、人脸检测MTCNN和人脸识别Facenet(附源码)

    在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haar分类器),其检测效果也是不错的,但是目前人脸检测的应用场景逐渐 ...

  9. winds dlib人脸检测与识别库

    在人脸检测与人脸识别库中dlib库所谓是非常好的了.检测效果非常ok,下面我们来了解一下这个神奇的库吧! 第一步我们首先学会安装:dlib ,winds+pytho3.6.5  Windows不支持p ...

随机推荐

  1. Docker学习笔记之搭建 Java Web 项目运行环境

    0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务. 对我 ...

  2. PyCharm配置MySQL

    有时候电脑没有安装Navicat,也想要操作数据库,那么PyCharm也能实现Navicat的一些功能.下面演示,用PyCharm如何连接数据库并执行操作: 1. 打开PyCharm,在右侧边栏打开D ...

  3. alert.log中的minact-scn: useg scan erroring out with error e:376警告

    早上,开发说昨晚一台服务器的undo好像有异常,早上上去一看,库停了,正常startup之后,随手crud了一把,都正常.去看alert.log日志,发现undo某个数据块访问报I/O读错误,如下: ...

  4. css3-动画(animation)

    css3-动画(animation): 具有以下属性: 1.animation-name 自定义动画名称 2.animation-duration 动画指定需要多少秒或毫秒完成,默认值是0; 3.an ...

  5. InstallShield.12完美使用

    转载:http://www.360doc.com/content/13/0517/10/7918060_286039102.shtml 转载:http://jingyan.baidu.com/arti ...

  6. 2018年省赛蓝桥杯JavaB组

    第一题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 解法: 2000年为闰年,2月29天 31 ...

  7. 【python005-数据类型】

    数据类型 一.字符串的相加是拼接,数字的相加是求和 二.python的数值类型:整形,浮点型,e记法,布尔类型 >>> 1.2e412000.0>>> 1.2e-4 ...

  8. QML中打印

    1.console.log("123"); 2.console.log("a is ", a, "b is ", b); 3.打印代码块时间 ...

  9. noip模拟【ping】

    70:很容易想到的是枚举每一个可能的答案来判断是否可行,取最优即可,贪心选择. 100:满足题目条件的这个距离是满足单调性的.如果x不行,那么大于x的距离都不行,二分答案. 学会运用二分,by ws_ ...

  10. FJNU2018低程A 逃跑路线(Lucas + 中国剩余定理 + LGV定理)题解

    题目描述 n个人在w*h的监狱里面想要逃跑,已知他们的同伙在坐标(bi,h)接应他们,他们现在被关在(ai,1)现在他们必须要到同伙那里才有逃出去的机会,这n个人又很蠢只会从(x,y)->(x+ ...