Giter VIP home page Giter VIP logo

anylifezlb / faceverificationsdk Goto Github PK

View Code? Open in Web Editor NEW
275.0 4.0 49.0 14.65 MB

Android On_device 1:1 Face Recognition And Alive Detect;1:N & M:N Face Search SDK 。 🧒 离线版设备端Android1:1人脸识别动作活体检测,静默活体检测 以及1:N M:N 人脸搜索 SDK 封装

Java 46.30% Kotlin 53.70%
alive-check alive-detection face-detection face-recognition tensorflow-lite face-verify face-search face-verification android sdk

faceverificationsdk's Introduction

On_device Offline Android Face Detection 、Recognition 、Liveness Detection Anti Spoofing and 1:N/M:N Face Search SDK 设备端离线 Android人脸检测、人脸识别、活体检测反作弊以及1:N / M:N人脸搜索 SDK (SDK面向软件开发工程人员,破解灰色行业勿扰,谢谢)

设备端离线机器学习优点

当前版本说明 V1.8.8

  • 支持自定义摄像头(自行相机方向旋转管理)和双目摄像头搜索
  • 性能优化,人脸搜索速度加快;同时高配硬件支持多次过滤搜索结果

建议[Fork] + [Star] 关注订阅# FaceVerificationSDK 以便获取最新更新

简要说明

SDK包含动作活体、静默活体检测,1:1人脸识别以及1:N , M:N人脸识别检索所有处理都在设备终端离线执行,SDK本身不用联网,不保存不上传任何人脸信息或其他资料更具隐私安全

其中活体检测支持张嘴、微笑、眨眼、摇头、点头 随机两种组合验证(摇头点头也可拆分为左右上下4个动作),低端机离线验证速度正常。

SDK支持Android 5+,实验室设备2016年低配置魅蓝Note3 ARM Cortex-A53 1.8GHz x4 + ARM Mali T860 图形处理器运行流畅稳定

实验室测试效果能覆盖95% 的中高低端机器,识别成功率>99%;特殊DIY系统或特殊定制硬件,外接USB摄像头等如有问题请先提Issues附带系统版本、设备型号、错误log等信息; 或发邮件到[email protected] ,VIP用户添加微信ID:18707611416

【1:1】 移动考勤真人校验,App免密登录,酒店入驻、刷脸支付、刷脸解锁、真人校验

【1:N】 智能门锁,考勤机,通缉人员行踪搜索,智慧校园、景区、工地、社区、酒店等

【M:N】 公安布控,人群追踪 监控等等 (Demo 测试可使用图片 res/M:N_Test.png)

注:1:N & M:N 人脸检索可以独立依赖,体积更小 https://github.com/AnyLifeZLB/FaceSearchSDK_Android

接入使用

//1.首先Gradle 中引入依赖 
implementation 'io.github.anylifezlb:FaceRecognition:1.?.?'  //升级1.6 以上版本,老版本不维护
//2.Camera相机的初始化。第一个参数0/1 指定前后摄像头;第二个参数linearZoom [0.1f,1.0f] 指定焦距,默认0.1
CameraXFragment cameraXFragment = CameraXFragment.newInstance(cameraLensFacing,0.2f);

``` 
//3.人脸识别过程中各种参数的初始化。(更多说明请Github Clone代码体验,)

        FaceProcessBuilder faceProcessBuilder = new FaceProcessBuilder.Builder(this)
            .setThreshold(0.88f)                //threshold(阈值)设置,范围仅限[0.8-0.95],默认0.85
            .setBaseBitmap(baseBitmap)          //1:1 底片「底片请设置为正脸无遮挡,并如Demo裁剪为仅含人脸」
            .setLiveCheck(true)                 //是否需要活体检测,需要发送邮件,详情参考ReadMe
            .setVerifyTimeOut(10)               //活体检测支持设置超时时间 9-16 秒
            .setMotionStepSize(2)               //随机动作验证活体的步骤个数,支持1-2个步骤
            .setProcessCallBack(new ProcessCallBack() {
                @Override
                public void onCompleted(boolean isMatched) {
                     //1:1 人脸识别匹配成功
                }
                @Override
                public void onMostSimilar(String similar) {
                     //人脸检索识别
                }
            })
            .create();

    faceDetectorUtils.setDetectorParams(faceProcessBuilder);
```


更多使用说明下载参考本Repo和下载Demo体验,里面有比较详尽的使用方法,其中 


* NaviActivity  Demo 演示导航页面
* /verify/目录  1:1 人脸检测识别,活体检测页面
* /search/目录  1:N 和 M:N 人脸识别搜索页面,人脸库管理
* 1:N 和 M:N人脸检索可以独立依赖,体积更小 https://github.com/AnyLifeZLB/FaceSearchSDK_Android

不含活体检测不需要license完全免费,包含活体检测的使用需要你发送邮件到[email protected] 申请
内容包括App名称、简要描述和要申请1:1/1:N/M:N哪种类型、包名(applicationId)3项内容。

Demo 下载体验

最新版体验下载地址: https://www.pgyer.com/faceVerify
微信或相机扫码后选择在浏览器中打开点击下载安装,验证是否符合你的业务需求

服务定制

如果 SDK 不能匹配你的应用场景需要特殊定制化,请发邮件到[email protected] 也可以加微信 HaoNan19990322 (请标注为 人脸识别 ,否则会自动忽略添加,谢谢)

欢迎关注Fork+Star获取最新动态 Github: https://github.com/AnyLifeZLB/FaceVerificationSDK

常见问题

常见问题请参考:https://github.com/AnyLifeZLB/FaceVerificationSDK/blob/main/questions.md 只是1:1 人脸识别不含活体检测是不需要申请授权的,直接永久使用;1:N,M:N需要授权,未明事宜请联系 所有的开发测试都在手机和平板进行,特殊定制硬件如RK3288 等适配需要兼容适配

faceverificationsdk's People

Contributors

anylifezlb avatar faceai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

faceverificationsdk's Issues

aar的混淆的包名容易和其他库有冲突

aar的包名有a.a, a.b之类的,容易和其他库有冲突
Duplicate class a.a found in modules jetified-FaceRecognition-1.5.0-runtime (io.github.anylifezlb:FaceRecognition:1.5.0) and jetified-xxx2.0.4-pm-runtime (xxx2.0.4-pm.aar)
......
......
恰好我的项目另一个aar也是混淆的,a.a,a.b等,都是冲突的
使用 Guardsquare/proguard 更改包名会出现以下问题

Process: com.iumlab.facetest, PID: 19705
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/tensorflow/lite/Interpreter$Options;
at io.aiface.j.(SourceFile:16)
at com.ai.face.faceVerify.verify.a.(SourceFile:250)
at com.ai.face.faceVerify.verify.b.(SourceFile:1)
at com.ai.face.faceVerify.verify.FaceVerifyUtils.setDetectorParams(SourceFile:1)
at com.iumlab.facetest.LivenessDetectionActivity.onCreate(LivenessDetectionActivity.kt:94)

人脸识别界面“Verify_11_javaActivity”不支持在子进程运行

如果在AndroidManifest文件里,对Verify_11_javaActivity添加支持多进程调用(multiprocess属性):

则activity无法启动,异常信息如下:
2024-02-19 15:16:42.286 1100-1214 WifiVendorHal pid-1100 E getWifiLinkLayerStats_1_3_Internal(l.973) failed {.code = ERROR_NOT_SUPPORTED, .description = }
2024-02-19 15:16:45.095 11800-11800 AI com.crcgas.rigUAT E 生成的随机活体步骤: 1
2024-02-19 15:16:45.095 11800-11800 AI com.crcgas.rigUAT E 生成的随机活体步骤: 0
--------- beginning of crash
2024-02-19 15:16:45.280 11800-11800 AndroidRuntime com.crcgas.rigUAT E FATAL EXCEPTION: main
Process: com.crcgas.rigUAT:unimp0, PID: 11800
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.crcgas.rigUAT/com.crcgas.commonlib.face.Verify_11_javaActivity}: java.lang.IllegalStateException: MlKitContext has not been initialized
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3491)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3643)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)

看起来主要问题是MlKitContext初始化异常,请排查处理一下哈~

和room冲突

java.lang.RuntimeException: Cannot find implementation for .db.AppDatabase. AppDatabase_Impl does not exist

如何支持多国语言?

你好,我正在关注和测试该项目,活体检测时的文字和语音提示都是SDK内部固定信息,请问如果我要开发支持多国语言,怎么办呢?建议开放更多的参数,比如增加参数用于检测的文字,增加参数用于控制动作数,是否需要语音提示?比如如果我只需要一个动作,我可以控制。

有问题先提issue,格式如下:👇

提issues 请标明手机型号,Android 系统版本号

  1. 问题场景描述

    在XX的时候 .....

  2. 手机品牌,型号

    Google Nexus X7 ......

  3. Android 系统版本

Android 8.2 ....

DEMO效果很好,就是跑不起来

直接编译sdk
compileSdkVersion 33
gradle插件 7.3.1
gradle 7.4
提示

Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
Could not determine artifacts for com.vanniktech.maven.publish.base:com.vanniktech.maven.publish.base.gradle.plugin:0.24.0: Skipped due to earlier error

另外gradle升级到7是不是很多依赖要跟着要做适配,直接依赖1.2.2提示

Unable to find method ''java.lang.String com.android.utils.FileUtils.relativePossiblyNonExistingPath(java.io.File, java.io.File)''
'java.lang.String com.android.utils.FileUtils.relativePossiblyNonExistingPath(java.io.File, java.io.File)'

compile sdk和gradle版本可以降吗,麻烦帮忙看下

Alpha SDK Version

1:1人脸识别时会出现“Alpha SDK Version”提示
1:1人脸识别通过后会出现“阀值范围的提示”,这个提示应该是在sdk里写的?这个提示sdk里能否去掉

功能需求

项目需求仅需要人脸检测, 就是只需要知道有人站在面前就行; 是谁, 有几个人都不关心,

下一阶段优化汇总.

  1. 摄像头预览的分辨率和分析的分辨率调大到接近1080 P
    2.画面中的人脸检测灵敏度调整大于120*120 即可
    3.提供一个两张人脸图片相识度方案,包括自动裁剪出人脸
    4.人脸搜索可以不仅仅是摄像头采集数据,支持Camera,RTSP和单张图Bitmap

kotlin1.7.1版本提示

依赖库,io.github.anylifezlb:FaceRecognition:1.0.0

Android studio 4.1.1 gradle是6.5,同步不下来1.7的kotlin版本,项目中只有1.4相关版本。
1:1识别的demo,移植到项目中,提示以下错误
Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.4.1.

在人脸认证页面.dialog弹出之前退出认证页面.BadTokenException

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@b8a959a is not valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:1141)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:409)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:111)
    at android.app.Dialog.show(Dialog.java:342)
    at android.app.AlertDialog$Builder.show(AlertDialog.java:1156)
    at com.faceVerify.test.VerifyActivity.lambda$showAliveDetectTips$1$com-faceVerify-test-VerifyActivity(VerifyActivity.java:158)
    at com.faceVerify.test.VerifyActivity$$ExternalSyntheticLambda1.run(Unknown Source:4)
    at android.app.Activity.runOnUiThread(Activity.java:7199)
    at com.faceVerify.test.VerifyActivity.showAliveDetectTips(VerifyActivity.java:146)
    at com.faceVerify.test.VerifyActivity.access$000(VerifyActivity.java:51)
    at com.faceVerify.test.VerifyActivity$1.onProcessTips(VerifyActivity.java:131)
    at com.AI.FaceVerify.verify.b$a.onFinish(FaceDetectorProcess.java:2)
    at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:127)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:236)
    at android.app.ActivityThread.main(ActivityThread.java:8087)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.