目前我们的应用内使用了 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 的错误率是有待优化的,虽然 ArcFace 没有提供任何可以调节的参数,但是还是可以稍微优化一下!

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

另外一个是目前 ArcFace 还没有支持 Android 8.x 系统,所以这种情况下,我们会启用备选的其他方案来进行人脸检测!

最后希望虹软能把 ArcFace 越做越好 _ 因为只有产品足够好才会不断的有人为你做免费宣传

android sdk教学,Android SDK开发相关推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...

    1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...

  2. 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境...

    1.前言 2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本.从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )

    文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...

  4. Android开发工具Android Studio、Android SDK和Genymotion完全配置

    所谓"工欲善其事,必先利其器".Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Androi ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...

    1.前言 在上一篇我们已经实现了离线地理数据库的下载,这一篇我们着重介绍离线数据库的加载与编辑. 由于ArcGIS Runtime SDK for Android 10.2.X版本并没提供要素绘制功能 ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载...

    1.前言 1.1.环境准备: ArcGIS for Desktop 10.4.1(10.2.1以上版本即可) ArcGIS for Server 10.4.1 (10.2.1以上版本即可) Postg ...

  9. 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO

    1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...

最新文章

  1. mac下MongoDB数据库安装
  2. webview检测html事件,在JavaFX WebView中检测HTML textarea onkeyup事件
  3. resin设置jvm参数
  4. python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码
  5. matlab中矩阵怎么敲_Ansys刚度(质量、阻尼)矩阵的提取(part 1)
  6. c#hello world_C#| 打印消息/文本(用于打印Hello world的程序)
  7. OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录
  8. 10分钟学会vuex
  9. lua 函数 默认值_Unity热更新框架之xLua
  10. symbian VC环境配置及其helloword详解
  11. 如何判断单链表里面是否有环【转载】
  12. Boost.log链接问题
  13. 血管分割技术文献综述
  14. Unity发布抖音小游戏:申请注册(包括主体认证和基础信息完善)
  15. Bill Gates和Elon Musk推荐,人工智能必读的三本书 -《终极算法》,《超级智能》和《终极发明》
  16. Java实现 四舍五入取整到百位 四舍五入取整到千位 数字取整到千位 数字取值到千位 数字取整到百位 数字取值到百位
  17. SSM框架中 出现的406 (Not Acceptable)
  18. 树莓派3B 安装微雪LCD5inch显示器(包含软键盘)
  19. FastDB 很难得的一篇分析
  20. 用于机器学习的 NumPy(ML)

热门文章

  1. 简版 Swift 5.7 新特性一览
  2. ftp,ftp软件登录不上
  3. vue实现农历日历插件——vue-jlunar-datepicker插件的使用——技能提升
  4. 仿乐享微信源码免费分享viicms
  5. 解决第N次出现bootsafe64_ev.sys丢失
  6. 程序调试篇 | 如何在Pycharm中高效调试Python程序,高效找bug!!!
  7. 北电的产品卖给Ciena后被拿去开源
  8. 最新!OpenAI掌门人自曝GPU短缺,未来GPT-4会更快、更便宜
  9. 车道线检测:LSTR论文解析
  10. Parallel Python(pp) 包的使用总结