# Faceverification **Repository Path**: huiwei13/Faceverification ## Basic Information - **Project Name**: Faceverification - **Description**: First Commit! ncnn+mtcnn+opencv - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-06-18 - **Last Updated**: 2022-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Faceverification #### 介绍 First Commit! 算法SDK(android版,以下简称VYSDK,64位),是基于腾讯ncnn架构+MTCNN人脸检测算法+vyface人脸特征提取构建的用于android设备的算法包。 可以完成MTCNN人脸检测与特征点定位,人脸剪切与扭正,128字节人脸特征码提取,支持android 7.0及以上平台。 VYSDK依赖第三方ncnn、opencv3.4.3(android)支持。 参考阅读: 1. Ncnn: https://github.com/Tencent/ncnn 2. MTCNN: https://github.com/moli232777144/mtcnn_ncnn ncnn+mtcnn+opencv #### 软件架构 VYSDK开发软件环境: 1. Windows 7 professional 64位平台 2. Android Studio 3.2 3. NDK使用android-ndk-r16b-windows-x86_64(可能需要必要的在线升级,但速度很快) 4. CMAKE3.10.2(android studio一般会自动下载) #### 安装教程 1. Android Studio 3.2 2. NDK使用android-ndk-r16b-windows-x86_64 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0605/151956_448a7fb9_5058011.jpeg "微信图片_20190605151735.jpg") #### 使用说明 1. VYSDK 设计的目的是在 Android 平台上实现离线的人脸识别功能,可以广泛用于移动智能设备中。 2. VYSDK 底层使用了C++编程,封装为so文件。Android在应用时,需采用JNI的方式调用。 3. VYSDK 使用中主要包含了模型初始化、MTCNN检测人脸、基于特征点人脸扭正(仿射变换后为128*128大小)、特征码提取、特征码比对等主要功能 4. 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中。 #### 使用第三方工具 1. 腾讯ncnn(开源,修改了spp层的实现),完成了debug/release(win64,Android)版本的编译 2. MTCNN https://github.com/moli232777144/mtcnn_ncnn,资料特别全,大家自己看 3. vyface 提供了商业级人脸识别模型(鉴于商业保密,本项目并没公开模型,很遗憾) 4. 由于人脸扭正需要,为了节省时间,使用了OPENCV3.4.3,这也是一个遗憾