Android 面部识别之二(调用开源面部识别算法seetaface检测)
2017-02-28 16:22
495 查看
Android 面部识别之二(调用开源面部识别算法seetaface检测)
https://github.com/seetaface/SeetaFaceEngine(Seetaface官方地址)
如果有需要可以自己研究一下这个算法。
我这里是从网上得到的通过把开源的c++通过NDK封装成so文件,通过JNI调用。
https://www.zhihu.com/question/50631245
检测速度每个图片在1700毫秒左右(小米note作为测试机)
需要注意的几个点
这里只有armeabi-v7a 下的so所以只适用于部分的手机,如果有高手可以编译出其他的一定告诉小弟一声。
每次检测的时候需要使用几个bin文件,这是开源作者自己训练好的model。
domo地址我放在下面了,应用很多和摄像头做面部识别等等。这就看需要怎么用了,细节我就不贴了,需要的看一下源码(代码试用android studio写的)。欢迎讨论。
简单的看看jni接口把。
链接:http://pan.baidu.com/s/1hsn4bKK 密码:4n4y
https://github.com/seetaface/SeetaFaceEngine(Seetaface官方地址)
如果有需要可以自己研究一下这个算法。
我这里是从网上得到的通过把开源的c++通过NDK封装成so文件,通过JNI调用。
https://www.zhihu.com/question/50631245
检测速度每个图片在1700毫秒左右(小米note作为测试机)
需要注意的几个点
这里只有armeabi-v7a 下的so所以只适用于部分的手机,如果有高手可以编译出其他的一定告诉小弟一声。
每次检测的时候需要使用几个bin文件,这是开源作者自己训练好的model。
domo地址我放在下面了,应用很多和摄像头做面部识别等等。这就看需要怎么用了,细节我就不贴了,需要的看一下源码(代码试用android studio写的)。欢迎讨论。
简单的看看jni接口把。
/** * 采用中科院山世光开源的SeetaFaceEngine实现android上的人脸检测与对齐、识别 * */ package seetaface; import android.graphics.Bitmap; public class SeetaFace { static { System.loadLibrary("SeetafaceSo"); } //初始化so库,告诉底层人脸识别模型文件的目录 //该目录下应当包括这3个文件:seeta_fd_frontal_v1.0.bin,seeta_fa_v1.1.bin,seeta_fr_v1.0.bin public native boolean init(String vModelDir); /** * 检测人脸 * @param vImgData:图像数据 * @param vColNum:图像宽度 * @param vRowNum:图像高度 * @param vCh:通道数 * @param vFaceBmp:人脸抠图(有多个人脸也只抠1一个图返回) * @return */ //public native CMSeetaFace[] GetFaces(byte[] vImgData, int vColNum, int vRowNum, int vCh, Bitmap vFaceBmp); /** * 检测人脸 * @param vBmp:待检测人脸的大图 * @param vFaceBmp:其中一个人脸抠图 * @return */ public native CMSeetaFace[] DetectFaces(Bitmap vBmp, Bitmap vFaceBmp); /** * 测试 * @param vVal * @return */ public native int Test(int vVal); /** * 图像的gamma校正 * @param vColorBmp:原图 * @param vGammaBmp:处理后的图 * @param vGamma:gamma值 */ public native void imGamma(Bitmap vColorBmp, Bitmap vGammaBmp, float vGamma); /** * 彩色转灰度图 * @param vColorBmp * @param vGrayBmp */ public native void im2gray(Bitmap vColorBmp, Bitmap vGrayBmp); /** * 检测人脸,返回各人脸位置,每个人的以;分隔,坐标以分号分隔 * @param vImgData:图像的char*数据 * @param vColNum:图像列数 * @param vRowNum:图像行数 * @param vCh:图像通道数,3或4 * @param vDetectModelPath:正面人脸检测模型的绝对路径 * @param vFaceNo:人脸编号,用于保存特征数据生成文件名用 * @param vFaceBmp:人脸抠图 * @return */ public native String DetectFace(byte[] vImgData, int vColNum, int vRowNum, int vCh, String vDetectModelPath, int vFaceNo, Bitmap vFaceBmp); /** * 比对2个人脸特征值的相似度 * @param vFeat1 * @param vFeat2 * @param vNum * @return */ public native float CalcSimilarity(float[] vFeat1, float[] vFeat2); }
链接:http://pan.baidu.com/s/1hsn4bKK 密码:4n4y
相关文章推荐
- Android 面部识别之二(调用开源面部识别算法seetaface检测)
- Android 面部识别之一(SDK自带检测检测算法)
- Android手机新功能将支持视频聊天和面部识别
- android开源项目,与javascript交互调用
- 识别Android手机并检测驱动
- android IPC通信中的UID和PID识别(远程调用/本地调用)
- android 开源 OCR 项目 及手写识别
- android语音识别方法一:使用intent调用语音识别程序
- 识别Android手机并检测驱动
- android JNI学习之二 调用第三方动态库
- Android基础总结之二:检测Activity是否在当前Task栈顶
- 利用开源ZXing项目实现条形码和二维码扫描识别 —— Android端
- 可以检测你年龄面部识别服务Face.com
- android开发(17) 扫描二维码 - 调用第三方APK来实现二维码扫描,参考自 开源项目zxing
- android开源项目,与javascript交互调用
- Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码
- 苹果iOS面部识别专利申请流出,未抄袭Android
- android语音识别方法一:使用intent调用语音识别程序
- 面部识别(Face Recognition Using PCA, LDA and LPP) 开源
- 【Android 调用谷歌语音识别】