Android 人脸检测方案概要

背景:

最近要搞人脸检测(非识别,也非取特征,也不是切割,仅仅是检测,框住)
刚好最近学了些深度学习下的人脸检测
那就当做复习找找各种方案,顺便理解下各个方案

场景:
需要在用户点击按钮时,顺便记录用户头像
上传服务器
现在人脸识别到处都是,api到是很多
但离线的sdk不多,好的开源也不多

要求:
1.离线
2.精确度高
3.多人脸识别
4.速度快

方案:

1. FaceDetect ,Android早期代码。

  • http://wiki.jikexueyuan.com/project/android-actual-combat-skills/static-human-face-detection.html

实测:代码简单,识别到一些不是人头的

2. 百度的离线的SDK

实测:有授权时间限制,甲方不一定会出这个钱

  • https://ai.baidu.com/tech/face/offline-sdk

3. 虹软的sdk免费,速度快

参考:

  • https://zhuanlan.zhihu.com/p
  • https://github.com/asdfqwrasdf/ArcFaceDemo

实测:可用,申请key,永久免费,摄像头预览部分已有

4. opencv3 有人脸检测的demo项目

  • https://sourceforge.net/projects/opencvlibrary/
  • https://www.jianshu.com/p/1fc91f9c9a67
  • https://github.com/typer9527/FaceDetector

实测:速度挺快,但是偶尔识别错误,

5. MTCNN 的Android版本

实测:大图慢10s以上,1000x1000还行。2s多

  • https://zhuanlan.zhihu.com/p/38576592

原论文

  • https://kpzhang93.github.io/
  • https://github.com/kpzhang93/MTCNN_face_detection_alignment
    论文解析
    https://blog.csdn.net/sparkexpert/article/details/73850174

6. dlib方案

Dlib是以编程语言C ++编写的通用跨平台软件库。

  • https://blog.csdn.net/u010670689/article/details/54409742
  • https://github.com/dengly/FaceDlibOpencv

实测:最后崩溃没有跑起来

7. google mobile vision api 方案

  • http://einverne.github.io/post/2016/08/android-face-detect.html
  • https://blog.csdn.net/wangguogai/article/details/78479836

实测:还没测试

最后

最后哪个好?同学们自己挑吧。。

YY下如果可以的话,当然是自己拿数据自己训练,然后导出pb

最后在Android上跑,而且还写jni或cv自己加速部分计算

你可能感兴趣的:(Android,人工智能)