Faceverification
介绍
First Commit!
算法SDK(android版,以下简称VYSDK,64位),是基于腾讯ncnn架构+MTCNN人脸检测算法+vyface人脸特征提取构建的用于android设备的算法包。
可以完成MTCNN人脸检测与特征点定位,人脸剪切与扭正,128字节人脸特征码提取,支持android 7.0及以上平台。
VYSDK依赖第三方ncnn、opencv3.4.3(android)支持。
参考阅读:
ncnn+mtcnn+opencv
软件架构
VYSDK开发软件环境:
Windows 7 professional 64位平台
Android Studio 3.2
NDK使用android-ndk-r16b-windows-x86_64(可能需要必要的在线升级,但速度很快)
CMAKE3.10.2(android studio一般会自动下载)
安装教程
Android Studio 3.2
NDK使用android-ndk-r16b-windows-x86_64
使用说明
VYSDK 设计的目的是在 Android 平台上实现离线的人脸识别功能,可以广泛用于移动智能设备中。
VYSDK 底层使用了C++编程,封装为so文件。Android在应用时,需采用JNI的方式调用。
VYSDK 使用中主要包含了模型初始化、MTCNN检测人脸、基于特征点人脸扭正(仿射变换后为128*128大小)、特征码提取、特征码比对等主要功能
VYSDK 特征码长度为128个浮点数,512字节。
5、VYSDK 集成了MTCNN、VYREG两个类及其实现。为用户JNI调用提供 mtcnn.h, vyreg.h两个头文件、libvyalgo.so(动态库)、libncnn.a(ncnn Android 版+spp层 静态库)、libopencv_java3.so(opencv动态库)。其中头文件放在main/src/cpp/include下,库文件放在jniLibs目录下。
6、本项目是使用VYSDK的一个演示工程,主要目的是验证VYSDK,界面不是重点。重要的东西都在native-lib.cpp中。
使用第三方工具
腾讯ncnn(开源,修改了spp层的实现),完成了debug/release(win64,Android)版本的编译
vyface 提供了商业级人脸识别模型(鉴于商业保密,本项目并没公开模型,很遗憾)
由于人脸扭正需要,为了节省时间,使用了OPENCV3.4.3,这也是一个遗憾