Android 面部识别之二(调用开源面部识别算法seetaface检测)

Android 面部识别之二(调用开源面部识别算法seetaface检测)

https://github.com/seetaface/SeetaFaceEngine(Seetaface官方地址)
如果有需要可以自己研究一下这个算法。

我这里是从网上得到的通过把开源的c++通过NDK封装成so文件,通过JNI调用。
https://www.zhihu.com/question/50631245

检测速度每个图片在1700毫秒左右(小米note作为测试机)
需要注意的几个点

  1. 这里只有armeabi-v7a 下的so所以只适用于部分的手机,如果有高手可以编译出其他的一定告诉小弟一声。
  2. 每次检测的时候需要使用几个bin文件,这是开源作者自己训练好的model。
  3. 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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android人脸识别是指利用Android操作系统平台上开源的人脸识别技术进行人脸认证和识别的应用程序开发。在Android平台上有多种人脸识别开源库和框架可供选择,例如OpenCV、Face Recognition库等。 OpenCV是一个强大的开源计算机视觉库,其中包括了人脸检测识别的相关算法和函数。通过在Android应用中引入OpenCV库,可以轻松实现人脸识别功能。该库提供了多种人脸检测算法,如Haar Cascade、LBP等,以及人脸关键点检测和特征匹配算法,可实现更精确的人脸识别。 除了OpenCV,还有一些专门面向Android平台的人脸识别开源库,如Face Recognition库。这个库基于深度学习技术,提供了高性能的人脸检测、特征提取和人脸比对功能。它能够在移动设备上实时进行人脸识别,具有较高的准确率和鲁棒性。 通过使用以上这些开源库,开发者可以在Android平台上轻松实现人脸识别功能。这些库提供了丰富的API和文档,方便开发者进行集成和使用。同时,由于是开源的,开发者还可以根据需要进行修改和定制,以满足特定的应用场景需求。 总之,Android人脸识别开源提供了方便快捷的人脸识别解决方案,为开发者的应用程序增加了更高的安全性和用户体验。 ### 回答2: 人脸识别技术是一种通过计算机软件或硬件对人脸图像进行识别和验证的技术。随着智能手机的普及和发展,人脸识别技术也得到了广泛应用。在Android平台上,也存在一些开源的人脸识别库,为开发者提供了便利。 开源意味着源代码是公开的,开发者可以自由查看、修改和重新分配。在Android平台上,一些知名的人脸识别库如OpenCV、dlib、Google Play Services等都是开源的。这些库提供了丰富的人脸识别算法和功能,包括人脸检测、特征提取、识别和验证等。 使用开源的人脸识别库,开发者可以快速集成人脸识别功能到自己的应用中。通过调用库中的接口,可以实现人脸图像的检测识别,并可根据需求进行进一步的功能扩展和定制。这些库还通常提供了丰富的文档和示例代码,方便开发者学习和使用。 同时,开源库还可以通过社区的力量不断改进和优化。开发者可以与其他使用相同库的人进行交流,分享经验和解决问题。在社区的支持下,开源的人脸识别库也会不断更新和升级,以适应不断变化的需求和技术发展。 综上所述,Android平台上存在开源的人脸识别库,通过使用这些库,开发者可以方便地实现人脸识别功能,并与其他开发者进行交流和分享。开源的人脸识别库为Android开发者提供了便利和灵活性,推动了人脸识别技术的发展与应用。 ### 回答3: 当前市场上存在多种开源Android人脸识别方案,这些方案都可以帮助开发者在自己的应用中实现人脸识别功能。 其中一个比较常用的开源库是OpenCV(Open Source Computer Vision Library),它是一个跨平台的计算机视觉库,提供了丰富的图像处理和分析功能。在OpenCV中,有专门的人脸识别模块可以用于检测识别人脸。开发者可以使用该库来构建自己的Android人脸识别应用。 此外,还有名为Face++的人脸认证开放平台,它也提供了一套Android SDK来支持人脸检测、人脸识别等功能。Face++是一家专注于人工智能技术的公司,他们的人脸识别技术在国内外都被广泛应用于各类应用场景,目前是业界比较知名的开源人脸识别解决方案之一。 这些开源方案不仅提供了人脸识别的基本功能,而且通常还具备性能优化和丰富的人脸特征处理能力,能够识别各种不同场景下的人脸,同时还提供了一些高级功能如情绪检测、年龄检测等。开发者使用这些开源方案时需要阅读相应的文档,并根据需求进行相应的集成和调试,以实现自己所需的人脸识别功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值